]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/navigation/navigationsettingspage.cpp
GIT_SILENT Sync po/docbooks with svn
[dolphin.git] / src / settings / navigation / navigationsettingspage.cpp
index 5894599a1e2bc7bf276d268993d1d38f60c77865..3b38e52e77a7cfc00b1d62ba5cdad49a241dcba3 100644 (file)
@@ -1,77 +1,52 @@
-/***************************************************************************
- *   Copyright (C) 2009 by Peter Penz <peter.penz19@gmail.com>             *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
+/*
+ * SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
 
 #include "navigationsettingspage.h"
 
 #include "dolphin_generalsettings.h"
+#include "global.h"
 
-#include <KDialog>
-#include <KGlobalSettings>
-#include <KLocale>
-#include <KVBox>
+#include <KLocalizedString>
 
+#include <QButtonGroup>
 #include <QCheckBox>
-#include <QGroupBox>
-#include <QLabel>
+#include <QFormLayout>
 #include <QRadioButton>
-#include <QVBoxLayout>
 
-NavigationSettingsPage::NavigationSettingsPage(QWidget* parent) :
-    SettingsPageBase(parent),
-    m_openArchivesAsFolder(0),
-    m_autoExpandFolders(0)
+NavigationSettingsPage::NavigationSettingsPage(QWidget *parent)
+    : SettingsPageBase(parent)
+    , m_openArchivesAsFolder(nullptr)
+    , m_autoExpandFolders(nullptr)
+    , m_openNewTabAfterLastTab(nullptr)
+    , m_openNewTabAfterCurrentTab(nullptr)
 {
-    const int spacing = KDialog::spacingHint();
+    QFormLayout *topLayout = new QFormLayout(this);
 
-    QVBoxLayout* topLayout = new QVBoxLayout(this);
-    KVBox* vBox = new KVBox(this);
-    vBox->setSpacing(spacing);
+    // 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);
 
-    // create 'Mouse' group
-    QGroupBox* mouseBox = new QGroupBox(i18nc("@title:group", "Mouse"), vBox);
-    mouseBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum);
-    m_singleClick = new QRadioButton(i18nc("@option:check Mouse Settings",
-                                           "Single-click to open files and folders"), mouseBox);
-    m_doubleClick = new QRadioButton(i18nc("@option:check Mouse Settings",
-                                           "Double-click to open files and folders"), mouseBox);
+    topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
 
-    QVBoxLayout* mouseBoxLayout = new QVBoxLayout(mouseBox);
-    mouseBoxLayout->addWidget(m_singleClick);
-    mouseBoxLayout->addWidget(m_doubleClick);
-
-    m_openArchivesAsFolder = new QCheckBox(i18nc("@option:check", "Open archives as folder"), vBox);
-
-    m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"), vBox);
-
-    // Add a dummy widget with no restriction regarding
-    // a vertical resizing. This assures that the dialog layout
-    // is not stretched vertically.
-    new QWidget(vBox);
-
-    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_singleClick, &QRadioButton::toggled, this, &NavigationSettingsPage::changed);
-    connect(m_doubleClick, &QRadioButton::toggled, this, &NavigationSettingsPage::changed);
     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()
@@ -80,38 +55,28 @@ NavigationSettingsPage::~NavigationSettingsPage()
 
 void NavigationSettingsPage::applySettings()
 {
-    KConfig config("kcminputrc");
-    KConfigGroup group = config.group("KDE");
-    group.writeEntry("SingleClick", m_singleClick->isChecked(), KConfig::Persistent|KConfig::Global);
-    config.sync();
-    KGlobalSettings::self()->emitChange(KGlobalSettings::SettingsChanged, KGlobalSettings::SETTINGS_MOUSE);
-
-    GeneralSettings* settings = GeneralSettings::self();
+    GeneralSettings *settings = GeneralSettings::self();
     settings->setBrowseThroughArchives(m_openArchivesAsFolder->isChecked());
     settings->setAutoExpandFolders(m_autoExpandFolders->isChecked());
+    settings->setOpenNewTabAfterLastTab(m_openNewTabAfterLastTab->isChecked());
 
-    settings->writeConfig();
+    settings->save();
 }
 
 void NavigationSettingsPage::restoreDefaults()
 {
-    GeneralSettingssettings = GeneralSettings::self();
+    GeneralSettings *settings = GeneralSettings::self();
     settings->useDefaults(true);
     loadSettings();
     settings->useDefaults(false);
-
-    // The mouse settings stored in KGlobalSettings must be reset to
-    // the default values (= single click) manually.
-    m_singleClick->setChecked(true);
-    m_doubleClick->setChecked(false);
 }
 
 void NavigationSettingsPage::loadSettings()
 {
-    const bool singleClick = KGlobalSettings::singleClick();
-    m_singleClick->setChecked(singleClick);
-    m_doubleClick->setChecked(!singleClick);
     m_openArchivesAsFolder->setChecked(GeneralSettings::browseThroughArchives());
     m_autoExpandFolders->setChecked(GeneralSettings::autoExpandFolders());
+    m_openNewTabAfterLastTab->setChecked(GeneralSettings::openNewTabAfterLastTab());
+    m_openNewTabAfterCurrentTab->setChecked(!m_openNewTabAfterLastTab->isChecked());
 }
 
+#include "moc_navigationsettingspage.cpp"