From 2610f0ff3becd3da735db4bf5cc99bdecd4ba717 Mon Sep 17 00:00:00 2001 From: Vladislav Tronko Date: Wed, 20 Apr 2016 21:45:50 +0300 Subject: [PATCH] core, ui: Add option for new tabs to be open next to current one --- src/core/settings.cpp | 9 +++++++++ src/core/settings.h | 3 +++ src/ui/forms/settingsdialog.ui | 16 ++++++++++++++++ src/ui/mainwindow.cpp | 4 +++- src/ui/settingsdialog.cpp | 4 ++++ 5 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/core/settings.cpp b/src/core/settings.cpp index 0dc04e7b..e9b2446d 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp @@ -41,6 +41,7 @@ namespace { const char GroupBrowser[] = "browser"; const char GroupDocsets[] = "docsets"; const char GroupGlobalShortcuts[] = "global_shortcuts"; +const char GroupTabs[] = "tabs"; const char GroupInternal[] = "internal"; const char GroupState[] = "state"; const char GroupProxy[] = "proxy"; @@ -89,6 +90,10 @@ void Settings::load() #endif m_settings->endGroup(); + m_settings->beginGroup(GroupTabs); + openNewTabAfterActive = m_settings->value(QStringLiteral("open_new_tab_after_active"), false).toBool(); + m_settings->endGroup(); + m_settings->beginGroup(GroupBrowser); minimumFontSize = m_settings->value(QStringLiteral("minimum_font_size"), QWebSettings::globalSettings()->fontSize(QWebSettings::MinimumFontSize)).toInt(); @@ -148,6 +153,10 @@ void Settings::save() m_settings->setValue(QStringLiteral("show"), showShortcut); m_settings->endGroup(); + m_settings->beginGroup(GroupTabs); + m_settings->setValue(QStringLiteral("open_new_tab_after_active"), openNewTabAfterActive); + m_settings->endGroup(); + m_settings->beginGroup(GroupBrowser); m_settings->setValue(QStringLiteral("minimum_font_size"), minimumFontSize); m_settings->endGroup(); diff --git a/src/core/settings.h b/src/core/settings.h index 20866961..eee11596 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -53,6 +53,9 @@ public: QKeySequence showShortcut; // TODO: QKeySequence searchSelectedTextShortcut; + // Tabs Behavior + bool openNewTabAfterActive; + // Browser int minimumFontSize; // TODO: bool askOnExternalLink; diff --git a/src/ui/forms/settingsdialog.ui b/src/ui/forms/settingsdialog.ui index 8b35742e..e1a8c11d 100644 --- a/src/ui/forms/settingsdialog.ui +++ b/src/ui/forms/settingsdialog.ui @@ -141,6 +141,22 @@ + + + + Tabs behavior + + + + + + Open new tab after active + + + + + + diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index fd1733dc..361c88ba 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -454,7 +454,9 @@ void MainWindow::closeTab(int index) void MainWindow::createTab(int index) { - if (index == -1) + if (m_settings->openNewTabAfterActive) + index = m_tabBar->currentIndex() + 1; + else if (index == -1) index = m_tabStates.size(); TabState *newTab = new TabState(); diff --git a/src/ui/settingsdialog.cpp b/src/ui/settingsdialog.cpp index 1e9be859..0b6722ba 100644 --- a/src/ui/settingsdialog.cpp +++ b/src/ui/settingsdialog.cpp @@ -762,6 +762,8 @@ void SettingsDialog::loadSettings() ui->toolButton->setKeySequence(settings->showShortcut); + ui->openNewTabAfterActive->setChecked(settings->openNewTabAfterActive); + // ui->minFontSize->setValue(settings->minimumFontSize); ui->storageEdit->setText(QDir::toNativeSeparators(settings->docsetPath)); @@ -798,6 +800,8 @@ void SettingsDialog::saveSettings() settings->showShortcut = ui->toolButton->keySequence(); + settings->openNewTabAfterActive = ui->openNewTabAfterActive->isChecked(); + // settings->minimumFontSize = ui->minFontSize->text().toInt();