]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/navigation/navigationsettingspage.cpp
Open new tab placement option
[dolphin.git] / src / settings / navigation / navigationsettingspage.cpp
index 41a39a537950bca7cd6a49ea2d4bbc2e1d312df6..11bc25f3b64fdd30332100b4b245dfe73d225ca4 100644 (file)
@@ -6,36 +6,48 @@
 
 #include "navigationsettingspage.h"
 
+#include "global.h"
 #include "dolphin_generalsettings.h"
 
 #include <KLocalizedString>
 
+#include <QButtonGroup>
 #include <QCheckBox>
+#include <QFormLayout>
+#include <QRadioButton>
 #include <QVBoxLayout>
 
 NavigationSettingsPage::NavigationSettingsPage(QWidget* parent) :
     SettingsPageBase(parent),
     m_openArchivesAsFolder(nullptr),
-    m_autoExpandFolders(nullptr)
+    m_autoExpandFolders(nullptr),
+    m_openNewTabAfterLastTab(nullptr),
+    m_openNewTabAfterCurrentTab(nullptr)
 {
-    QVBoxLayout* topLayout = new QVBoxLayout(this);
-    QWidget* vBox = new QWidget(this);
-    QVBoxLayout *vBoxLayout = new QVBoxLayout(vBox);
-    vBoxLayout->setContentsMargins(0, 0, 0, 0);
-    vBoxLayout->setAlignment(Qt::AlignTop);
+    QFormLayout* topLayout = new QFormLayout(this);
 
-    m_openArchivesAsFolder = new QCheckBox(i18nc("@option:check", "Open archives as folder"), vBox);
-    vBoxLayout->addWidget(m_openArchivesAsFolder);
+    // Tabs properties
+    m_openNewTabAfterCurrentTab = new QRadioButton(i18nc("option:radio", "After current tab"));
+    m_openNewTabAfterLastTab = new QRadioButton(i18nc("option:radio", "At end of tab bar"));
+    QButtonGroup* tabsBehaviorGroup = new QButtonGroup(this);
+    tabsBehaviorGroup->addButton(m_openNewTabAfterCurrentTab);
+    tabsBehaviorGroup->addButton(m_openNewTabAfterLastTab);
+    topLayout->addRow(i18nc("@title:group", "Open new tabs: "), m_openNewTabAfterCurrentTab);
+    topLayout->addRow(QString(), m_openNewTabAfterLastTab);
 
-    m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"), vBox);
-    vBoxLayout->addWidget(m_autoExpandFolders);
+    topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
 
-    topLayout->addWidget(vBox);
+    m_openArchivesAsFolder = new QCheckBox(i18nc("@option:check", "Open archives as folder"));
+    m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"));
+    topLayout->addRow(i18nc("@title:group", "General: "), m_openArchivesAsFolder);
+    topLayout->addRow(QString(), m_autoExpandFolders);
 
     loadSettings();
 
     connect(m_openArchivesAsFolder, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
     connect(m_autoExpandFolders, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
+    connect(m_openNewTabAfterCurrentTab, &QRadioButton::toggled, this, &NavigationSettingsPage::changed);
+    connect(m_openNewTabAfterLastTab, &QRadioButton::toggled, this, &NavigationSettingsPage::changed);
 }
 
 NavigationSettingsPage::~NavigationSettingsPage()
@@ -47,6 +59,7 @@ void NavigationSettingsPage::applySettings()
     GeneralSettings* settings = GeneralSettings::self();
     settings->setBrowseThroughArchives(m_openArchivesAsFolder->isChecked());
     settings->setAutoExpandFolders(m_autoExpandFolders->isChecked());
+    settings->setOpenNewTabAfterLastTab(m_openNewTabAfterLastTab->isChecked());
 
     settings->save();
 }
@@ -63,5 +76,7 @@ void NavigationSettingsPage::loadSettings()
 {
     m_openArchivesAsFolder->setChecked(GeneralSettings::browseThroughArchives());
     m_autoExpandFolders->setChecked(GeneralSettings::autoExpandFolders());
+    m_openNewTabAfterLastTab->setChecked(GeneralSettings::openNewTabAfterLastTab());
+    m_openNewTabAfterCurrentTab->setChecked(!m_openNewTabAfterLastTab->isChecked());
 }