void WorkAreaTabWidget::ui_duplicateTabRequested(int index) { QueryWidget *query = queryWidget(index); if (query) query->duplicate(); }
/** * @brief Overrides QTabWidget::keyPressEvent() in order to intercept * tab close key shortcuts (Ctrl+F4 and Ctrl+W) */ void WorkAreaTabWidget::keyPressEvent(QKeyEvent *keyEvent) { if ((keyEvent->modifiers() & Qt::ControlModifier) && (keyEvent->key()==Qt::Key_F4 || keyEvent->key()==Qt::Key_W)) { int index = currentIndex(); closeTab(index); return; } QueryWidget *widget = currentQueryWidget(); if (KeyboardManager::isPreviousTabShortcut(keyEvent)) { previousTab(); return; } else if (KeyboardManager::isNextTabShortcut(keyEvent)) { nextTab(); return; } else if (KeyboardManager::isNewTabShortcut(keyEvent) && widget) { widget->openNewTab(); return; } else if (KeyboardManager::isDuplicateTabShortcut(keyEvent) && widget) { widget->duplicate(); return; } else if (KeyboardManager::isSetFocusOnQueryLineShortcut(keyEvent) && widget) { widget->setScriptFocus(); return; } else if (KeyboardManager::isExecuteScriptShortcut(keyEvent) && widget) { widget->execute(); return; } else if (KeyboardManager::isAutoCompleteShortcut(keyEvent) && widget) { widget->showAutocompletion(); return; } else if (KeyboardManager::isHideAutoCompleteShortcut(keyEvent) && widget) { widget->hideAutocompletion(); return; } QTabWidget::keyPressEvent(keyEvent); }