Browse Source

bug-fix: shortcuts for ActivateNextTab and ActivatePreviousTab

Le Tan 8 years ago
parent
commit
cb4d32e95f
3 changed files with 29 additions and 7 deletions
  1. 4 0
      src/resources/vnote.ini
  2. 0 7
      src/utils/vvim.cpp
  3. 25 0
      src/veditarea.cpp

+ 4 - 0
src/resources/vnote.ini

@@ -193,6 +193,10 @@ FindNext=F3
 FindPrevious=Shift+F3
 ; Recover last closed file
 LastClosedFile=Ctrl+Shift+T
+; Activate next tab
+ActivateNextTab=Ctrl+Tab
+; Activate previous tab
+ActivatePreviousTab=Ctrl+Shift+Tab
 
 [captain_mode_shortcuts]
 ; Define shortcuts in Captain mode here.

+ 0 - 7
src/utils/vvim.cpp

@@ -521,13 +521,6 @@ bool VVim::handleKeyPressEvent(int key, int modifiers, int *p_autoIndentPos)
         goto accept;
     }
 
-    // Ctrl+Tab and Ctrl+Shift+BackTab to alternate tabs.
-    if ((key == Qt::Key_Tab && modifiers == Qt::ControlModifier)
-        || (key == Qt::Key_Backtab && modifiers == (Qt::ShiftModifier | Qt::ControlModifier))) {
-        // Let it be handled outside VVim.
-        goto exit;
-    }
-
     if (m_replayLeaderSequence) {
         qDebug() << "replaying sequence" << keyToChar(key, modifiers);
     }

+ 25 - 0
src/veditarea.cpp

@@ -28,6 +28,31 @@ VEditArea::VEditArea(QWidget *parent)
     setCurrentWindow(0, false);
 
     registerCaptainTargets();
+
+
+    QString keySeq = g_config->getShortcutKeySequence("ActivateNextTab");
+    qDebug() << "set ActivateNextTab shortcut to" << keySeq;
+    QShortcut *activateNextTab = new QShortcut(QKeySequence(keySeq), this);
+    activateNextTab->setContext(Qt::ApplicationShortcut);
+    connect(activateNextTab, &QShortcut::activated,
+            this, [this]() {
+                VEditWindow *win = getCurrentWindow();
+                if (win) {
+                    win->focusNextTab(true);
+                }
+            });
+
+    keySeq = g_config->getShortcutKeySequence("ActivatePreviousTab");
+    qDebug() << "set ActivatePreviousTab shortcut to" << keySeq;
+    QShortcut *activatePreviousTab = new QShortcut(QKeySequence(keySeq), this);
+    activatePreviousTab->setContext(Qt::ApplicationShortcut);
+    connect(activatePreviousTab, &QShortcut::activated,
+            this, [this]() {
+                VEditWindow *win = getCurrentWindow();
+                if (win) {
+                    win->focusNextTab(false);
+                }
+            });
 }
 
 void VEditArea::setupUI()