added H,J,K,L vi keybindings

pull/42/head
EvanKoe 4 years ago
parent ebdbc079bc
commit 16ae5a6141

@ -1,10 +1,8 @@
# File Manager Vi version
Cutefish File Manager, simple to use, beautiful, and retain the classic PC interactive design.
Cutefish File Manager, simple to use, beautiful, and retain the classic PC interactive design.
On this branch, the Cutefish File Manager has an even easier way to browse your files thanks to the
vi mode. Instead of the classical shortcuts, vim fans will be pleased to use some of the vim shortcuts
to browse their files.
On this branch, the Cutefish File Manager has an even easier way to browse your files thanks to the vi mode. Instead of the classical shortcuts, vim fans will be pleased to use some of the vim shortcuts to browse their files.
![screenshot](screenshots/Screenshot_20211025_151224.png)

@ -43,50 +43,6 @@ void ShortCut::install(QObject *target)
}
}
// bool ShortCut::noShortcuts(QObject *obj, QEvent *e)
// {
// QKeyEvent *keyEvent = static_cast<QKeyEvent *>(e);
// if (e->type() == QEvent::KeyPress) {
// // int keyInt = keyEvent->modifiers() + keyEvent->key();
// if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return) {
// emit open();
// } else if (keyEvent->key() == Qt::Key_C && keyEvent->modifiers() & Qt::ControlModifier) {
// emit copy();
// } else if (keyEvent->key() == Qt::Key_X && keyEvent->modifiers() & Qt::ControlModifier) {
// emit cut();
// } else if (keyEvent->key() == Qt::Key_W && keyEvent->modifiers() & Qt::ControlModifier) {
// emit close();
// } else if (keyEvent->key() == Qt::Key_V && keyEvent->modifiers() & Qt::ControlModifier) {
// emit paste();
// } else if (keyEvent->key() == Qt::Key_F2) {
// emit rename();
// } else if (keyEvent->key() == Qt::Key_L && keyEvent->modifiers() & Qt::ControlModifier) {
// emit openPathEditor();
// } else if (keyEvent->key() == Qt::Key_A && keyEvent->modifiers() & Qt::ControlModifier) {
// emit selectAll();
// } else if (keyEvent->key() == Qt::Key_Backspace) {
// emit backspace();
// } else if (keyEvent->key() == Qt::Key_Delete) {
// emit deleteFile();
// } else if (keyEvent->key() == Qt::Key_F5) {
// emit refresh();
// } else if (keyEvent->key() == Qt::Key_H && keyEvent->modifiers() & Qt::ControlModifier) {
// emit showHidden();
// } else if (keyEvent->key() == Qt::Key_Z && keyEvent->modifiers() & Qt::ControlModifier) {
// emit undo();
// } else if (keyEvent->key() >= Qt::Key_A && keyEvent->key() <= Qt::Key_Z) {
// // Handle select
// // KeyboardSearchManager::self()->addKeys(keyEvent->text());
// emit keyPressed(keyEvent->text());
// keyEvent->ignore();
// }
// }
// return QObject::eventFilter(obj, e);
// }
bool ShortCut::eventFilter(QObject *obj, QEvent *e)
{
if (e->type() != QEvent::KeyPress) {

@ -186,7 +186,36 @@ GridView {
highlightMoveDuration: 0
keyNavigationEnabled : true
keyNavigationWraps : true
Keys.onPressed: {
// vim h,j,k,l keybindings
if (event.key === Qt.Key_J ||
event.key == Qt.Key_H ||
event.key == Qt.Key_K ||
event.key == Qt.Key_L
) { // if a vim H,J,K,L keybinding is pressed
var arrow = Qt.UpArrow; // sample arrow key
switch (event.key) { // setting up the arrow key
case (Qt.Key_J): a = Qt.DownArrow; break;
case (Qt.Key_H): a = Qt.LeftArrow; break;
case (Qt.Key_L): a = Qt.RightArrow; break;
case (Qt.Key_K): a = Qt.UpArrow; break;
}
// setting the selected file to the new one thanks to the arrow
if (!editor || !editor.targetItem) {
var newIndex = positioner.nearestItem(
currentIndex,
effectiveNavDirection(control.flow, control.effectiveLayoutDirection, arrow)
)
if (newIndex !== -1) {
currentIndex = newIndex
updateSelection(event.modifiers)
}
}
}
// focus on control/shift event
control.keyPress(event)
if (event.key === Qt.Key_Control) {
@ -218,8 +247,11 @@ GridView {
}
Keys.onUpPressed: {
if (!editor || !editor.targetItem) {
var newIndex = positioner.nearestItem(currentIndex,
effectiveNavDirection(control.flow, control.effectiveLayoutDirection, Qt.UpArrow))
var newIndex = positioner.nearestItem(
currentIndex, effectiveNavDirection(
control.flow, control.effectiveLayoutDirection, Qt.UpArrow
)
)
if (newIndex !== -1) {
currentIndex = newIndex
updateSelection(event.modifiers)
@ -228,8 +260,11 @@ GridView {
}
Keys.onDownPressed: {
if (!editor || !editor.targetItem) {
var newIndex = positioner.nearestItem(currentIndex,
effectiveNavDirection(control.flow, control.effectiveLayoutDirection, Qt.DownArrow))
var newIndex = positioner.nearestItem(
currentIndex, effectiveNavDirection(
control.flow, control.effectiveLayoutDirection, Qt.DownArrow
)
)
if (newIndex !== -1) {
currentIndex = newIndex
updateSelection(event.modifiers)
@ -238,8 +273,11 @@ GridView {
}
Keys.onLeftPressed: {
if (!editor || !editor.targetItem) {
var newIndex = positioner.nearestItem(currentIndex,
effectiveNavDirection(control.flow, control.effectiveLayoutDirection, Qt.LeftArrow))
var newIndex = positioner.nearestItem(
currentIndex, effectiveNavDirection(
control.flow, control.effectiveLayoutDirection, Qt.LeftArrow
)
)
if (newIndex !== -1) {
currentIndex = newIndex
updateSelection(event.modifiers)
@ -248,8 +286,11 @@ GridView {
}
Keys.onRightPressed: {
if (!editor || !editor.targetItem) {
var newIndex = positioner.nearestItem(currentIndex,
effectiveNavDirection(control.flow, control.effectiveLayoutDirection, Qt.RightArrow))
var newIndex = positioner.nearestItem(
currentIndex, effectiveNavDirection(
control.flow, control.effectiveLayoutDirection, Qt.RightArrow
)
)
if (newIndex !== -1) {
currentIndex = newIndex
updateSelection(event.modifiers)

Loading…
Cancel
Save