Skip to content

Commit

Permalink
Enable browser-like DbTab experience (Alt + Nums)
Browse files Browse the repository at this point in the history
* Pressing ALT+1-9 goes to 1-9 tab
* Pressing ALT+0 goes to the last tab
  • Loading branch information
JulianVolodia authored and droidmonkey committed Jan 21, 2020
1 parent b6ff613 commit ddec18d
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
39 changes: 39 additions & 0 deletions src/gui/MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,27 @@ MainWindow::MainWindow()
new QShortcut(Qt::CTRL + Qt::Key_PageDown, this, SLOT(selectNextDatabaseTab()));
new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_Tab, this, SLOT(selectPreviousDatabaseTab()));
new QShortcut(Qt::CTRL + Qt::Key_PageUp, this, SLOT(selectPreviousDatabaseTab()));
new QShortcut(Qt::ALT + Qt::Key_0, this, SLOT(selectLastDatabaseTab()));

auto shortcut = new QShortcut(Qt::ALT + Qt::Key_1, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(1); });
shortcut = new QShortcut(Qt::ALT + Qt::Key_2, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(2); });
shortcut = new QShortcut(Qt::ALT + Qt::Key_3, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(3); });
shortcut = new QShortcut(Qt::ALT + Qt::Key_4, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(4); });
shortcut = new QShortcut(Qt::ALT + Qt::Key_5, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(5); });
shortcut = new QShortcut(Qt::ALT + Qt::Key_6, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(6); });
shortcut = new QShortcut(Qt::ALT + Qt::Key_7, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(7); });
shortcut = new QShortcut(Qt::ALT + Qt::Key_8, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(8); });
shortcut = new QShortcut(Qt::ALT + Qt::Key_9, this);
connect(shortcut, &QShortcut::activated, [this]() { selectDatabaseTab(9); });

// Toggle password and username visibility in entry view
new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_C, this, SLOT(togglePasswordsHidden()));
new QShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_B, this, SLOT(toggleUsernamesHidden()));
Expand Down Expand Up @@ -974,6 +995,24 @@ void MainWindow::selectPreviousDatabaseTab()
}
}

void MainWindow::selectDatabaseTab(int tabIndex)
{
if (m_ui->stackedWidget->currentIndex() == DatabaseTabScreen) {
if (tabIndex <= m_ui->tabWidget->count()) {
m_ui->tabWidget->setCurrentIndex(--tabIndex);
}
}
}

void MainWindow::selectLastDatabaseTab()
{
if (m_ui->stackedWidget->currentIndex() == DatabaseTabScreen) {
int index = m_ui->tabWidget->count() - 1;
m_ui->tabWidget->setCurrentIndex(index);
}
}


void MainWindow::databaseTabChanged(int tabIndex)
{
if (tabIndex != -1 && m_ui->stackedWidget->currentIndex() == WelcomeScreen) {
Expand Down
2 changes: 2 additions & 0 deletions src/gui/MainWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ private slots:
void showErrorMessage(const QString& message);
void selectNextDatabaseTab();
void selectPreviousDatabaseTab();
void selectDatabaseTab(int tabIndex);
void selectLastDatabaseTab();
void togglePasswordsHidden();
void toggleUsernamesHidden();
void obtainContextFocusLock();
Expand Down

0 comments on commit ddec18d

Please sign in to comment.