Ejemplo n.º 1
0
    void WorkAreaTabWidget::ui_duplicateTabRequested(int index)
    {
        QueryWidget *query = queryWidget(index);

        if (query)
            query->duplicate();
    }
Ejemplo n.º 2
0
/**
 * @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);
}