[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kmymoney] kmymoney: Ported KMyMoney's settings dialog to KF5
From:       Christian_Dávid <christian-david () web ! de>
Date:       2016-12-03 15:46:20
Message-ID: E1cDCW4-0002PP-91 () code ! kde ! org
[Download RAW message or body]

Git commit 6f47ed9d285fea48dd15fe55aa0b9b0adf4fa5db by Christian Dávid.
Committed on 03/12/2016 at 15:25.
Pushed by christiand into branch 'master'.

Ported KMyMoney's settings dialog to KF5

Some minor functions in KConfigDialog were made protected in KF5.
Therefore KConfigDialog has to be inherited.

Also simplified the code by removing a wrapper class.

M  +22   -6    kmymoney/dialogs/settings/CMakeLists.txt
A  +73   -0    kmymoney/dialogs/settings/ksettingskmymoney.cpp     [License: GPL \
(v2+)] A  +34   -0    kmymoney/dialogs/settings/ksettingskmymoney.h     [License: GPL \
(v2+)] D  +0    -63   kmymoney/dialogs/settings/ksettingsplugins.cpp
D  +0    -47   kmymoney/dialogs/settings/ksettingsplugins.h
M  +1    -1    kmymoney/dialogs/settings/ksettingsschedules.cpp
M  +2    -48   kmymoney/kmymoney.cpp

https://commits.kde.org/kmymoney/6f47ed9d285fea48dd15fe55aa0b9b0adf4fa5db

diff --git a/kmymoney/dialogs/settings/CMakeLists.txt \
b/kmymoney/dialogs/settings/CMakeLists.txt index d168710..72d4e1a 100644
--- a/kmymoney/dialogs/settings/CMakeLists.txt
+++ b/kmymoney/dialogs/settings/CMakeLists.txt
@@ -9,15 +9,20 @@ set (libsettings_a_SOURCES
   ksettingsonlinequotes.cpp
   ksettingsregister.cpp
   ksettingsschedules.cpp
-  ksettingsplugins.cpp
   ksettingsreports.cpp
+  ksettingskmymoney.cpp
   )
 
 set (libsettings_a_UI
-  ksettingscolorsdecl.ui ksettingsfontsdecl.ui
-  ksettingsforecastdecl.ui ksettingsgeneraldecl.ui ksettingsgpgdecl.ui
-  ksettingshomedecl.ui ksettingsonlinequotesdecl.ui
-  ksettingsregisterdecl.ui ksettingsschedulesdecl.ui
+  ksettingscolorsdecl.ui
+  ksettingsfontsdecl.ui
+  ksettingsforecastdecl.ui
+  ksettingsgeneraldecl.ui
+  ksettingsgpgdecl.ui
+  ksettingshomedecl.ui
+  ksettingsonlinequotesdecl.ui
+  ksettingsregisterdecl.ui
+  ksettingsschedulesdecl.ui
   ksettingsreportsdecl.ui
   )
 
@@ -26,7 +31,18 @@ ki18n_wrap_ui(libsettings_a_SOURCES ${libsettings_a_UI} )
 add_library(settings STATIC ${libsettings_a_SOURCES})
 
 # TODO: cleanup dependencies
-target_link_libraries(settings PUBLIC KF5::Completion KF5::KIOWidgets \
KF5::TextWidgets KF5::I18n KF5::IconThemes KF5::Completion KF5::KCMUtils \
KF5::ItemViews Alkimia::alkimia Qt5::Sql) +target_link_libraries(settings PUBLIC
+  KF5::Completion
+  KF5::KIOWidgets
+  KF5::TextWidgets
+  KF5::I18n
+  KF5::IconThemes
+  KF5::Completion
+  KF5::KCMUtils
+  KF5::ItemViews
+  Alkimia::alkimia
+  Qt5::Sql
+)
 
 if (KF5Holidays_FOUND)
   target_link_libraries(settings PUBLIC KF5::Holidays)
diff --git a/kmymoney/dialogs/settings/ksettingskmymoney.cpp \
b/kmymoney/dialogs/settings/ksettingskmymoney.cpp new file mode 100644
index 0000000..05759f8
--- /dev/null
+++ b/kmymoney/dialogs/settings/ksettingskmymoney.cpp
@@ -0,0 +1,73 @@
+/*
+ * This file is part of KMyMoney, A Personal Finance Manager for KDE
+ * Copyright (C) 2016 Christian Dávid <christian-david@web.de>
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ksettingskmymoney.h"
+
+#include <KPluginSelector>
+
+#include "ksettingsgeneral.h"
+#include "ksettingsregister.h"
+#include "ksettingsgpg.h"
+#include "ksettingscolors.h"
+#include "ksettingsfonts.h"
+#include "ksettingsschedules.h"
+#include "ksettingsonlinequotes.h"
+#include "ksettingshome.h"
+#include "ksettingsforecast.h"
+#include "ksettingsreports.h"
+
+#include "pluginloader.h"
+
+KSettingsKMyMoney::KSettingsKMyMoney(QWidget *parent, const QString &name, \
KCoreConfigSkeleton *config) +    : KConfigDialog(parent, name, config)
+{
+  // create the pages ...
+  KSettingsGeneral* generalPage = new KSettingsGeneral();
+  KSettingsRegister* registerPage = new KSettingsRegister();
+  KSettingsHome* homePage = new KSettingsHome();
+  KSettingsSchedules* schedulesPage = new KSettingsSchedules();
+  KSettingsGpg* encryptionPage = new KSettingsGpg();
+  KSettingsColors* colorsPage = new KSettingsColors();
+  KSettingsFonts* fontsPage = new KSettingsFonts();
+  KSettingsOnlineQuotes* onlineQuotesPage = new KSettingsOnlineQuotes();
+  KSettingsForecast* forecastPage = new KSettingsForecast();
+  KPluginSelector* pluginsPage = \
KMyMoneyPlugin::PluginLoader::instance()->pluginSelectorWidget(); +  \
KSettingsReports* reportsPage = new KSettingsReports(); +
+  addPage(generalPage, i18nc("General settings", "General"), "system-run");
+  addPage(homePage, i18n("Home"), "go-home");
+  addPage(registerPage, i18nc("Ledger view settings", "Ledger"), \
"view-financial-list"); +
+  addPage(schedulesPage, i18n("Scheduled transactions"), "view-pim-calendar");
+
+  addPage(onlineQuotesPage, i18n("Online Quotes"), "preferences-system-network");
+  addPage(reportsPage, i18nc("Report settings", "Reports"), "office-chart-bar");
+  addPage(forecastPage, i18nc("Forecast settings", "Forecast"), \
"view-financial-forecast"); +  addPage(encryptionPage, i18n("Encryption"), "kgpg");
+  addPage(colorsPage, i18n("Colors"), "preferences-desktop-color");
+  addPage(fontsPage, i18n("Fonts"), "preferences-desktop-font");
+  addPage(pluginsPage, i18n("Plugins"), "network-disconnect");
+
+  setHelp("details.settings", "kmymoney");
+
+  QAbstractButton* defaultButton = button(QDialogButtonBox::RestoreDefaults);
+  connect(this, &KConfigDialog::rejected, schedulesPage, \
&KSettingsSchedules::slotResetRegion); +
+  connect(this, &KConfigDialog::accepted, pluginsPage, &KPluginSelector::save);
+  connect(defaultButton, &QAbstractButton::clicked, pluginsPage, \
&KPluginSelector::defaults); +}
diff --git a/kmymoney/dialogs/settings/ksettingskmymoney.h \
b/kmymoney/dialogs/settings/ksettingskmymoney.h new file mode 100644
index 0000000..33a2280
--- /dev/null
+++ b/kmymoney/dialogs/settings/ksettingskmymoney.h
@@ -0,0 +1,34 @@
+/*
+ * This file is part of KMyMoney, A Personal Finance Manager for KDE
+ * Copyright (C) 2016 Christian Dávid <christian-david@web.de>
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef KSETTINGSKMYMONEY_H
+#define KSETTINGSKMYMONEY_H
+
+#include <KConfigDialog>
+
+/**
+ * @brief The general settings dialog
+ */
+class KSettingsKMyMoney : public KConfigDialog
+{
+public:
+  KSettingsKMyMoney(QWidget *parent, const QString &name, KCoreConfigSkeleton \
*config); +};
+
+
+#endif /* KSETTINGSKMYMONEY_H */
diff --git a/kmymoney/dialogs/settings/ksettingsplugins.cpp \
b/kmymoney/dialogs/settings/ksettingsplugins.cpp deleted file mode 100644
index 33481c5..0000000
--- a/kmymoney/dialogs/settings/ksettingsplugins.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/***************************************************************************
-                          ksettingsplugins.cpp
-                          -------------------
-    begin                : Thu Feb 12 2009
-    copyright            : (C) 2009 Cristian Onet
-    email                : onet.cristian@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.                                   *
- *                                                                         *
- ***************************************************************************/
-
-#include "ksettingsplugins.h"
-
-// ----------------------------------------------------------------------------
-// QT Includes
-
-#include <QLayout>
-#include <QString>
-#include <QLabel>
-#include <QVBoxLayout>
-
-// ----------------------------------------------------------------------------
-// KDE Includes
-
-#include <KPluginSelector>
-
-// ----------------------------------------------------------------------------
-// Project Includes
-
-#include "kmymoney/pluginloader.h"
-
-KSettingsPlugins::KSettingsPlugins(QWidget* parent)
-    : QWidget(parent)
-{
-  QVBoxLayout *layout = new QVBoxLayout(this);
-  KMyMoneyPlugin::PluginLoader::instance()->pluginSelectorWidget()->setParent(this);
-  layout->addWidget(KMyMoneyPlugin::PluginLoader::instance()->pluginSelectorWidget());
                
-}
-
-KSettingsPlugins::~KSettingsPlugins()
-{
-}
-
-void KSettingsPlugins::slotLoadPlugins()
-{
-  KMyMoneyPlugin::PluginLoader::instance()->pluginSelectorWidget()->load();
-}
-
-void KSettingsPlugins::slotSavePlugins()
-{
-  KMyMoneyPlugin::PluginLoader::instance()->pluginSelectorWidget()->save();
-}
-
-void KSettingsPlugins::slotDefaultsPlugins()
-{
-  KMyMoneyPlugin::PluginLoader::instance()->pluginSelectorWidget()->defaults();
-}
diff --git a/kmymoney/dialogs/settings/ksettingsplugins.h \
b/kmymoney/dialogs/settings/ksettingsplugins.h deleted file mode 100644
index 4945fe5..0000000
--- a/kmymoney/dialogs/settings/ksettingsplugins.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/***************************************************************************
-                          ksettingsplugins.h
-                             -------------------
-    begin                : Thu Feb 12 2009
-    copyright            : (C) 2009 Cristian Onet
-    email                : onet.cristian@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.                                   *
- *                                                                         *
- ***************************************************************************/
-
-#ifndef KSETTINGSPLUGINS_H
-#define KSETTINGSPLUGINS_H
-
-// ----------------------------------------------------------------------------
-// QT Includes
-
-#include <QWidget>
-
-// ----------------------------------------------------------------------------
-// KDE Includes
-
-// ----------------------------------------------------------------------------
-// Project Includes
-
-class KSettingsPlugins : public QWidget
-{
-  Q_OBJECT
-
-public:
-
-  KSettingsPlugins(QWidget* parent = 0);
-  ~KSettingsPlugins();
-
-public slots:
-  void slotLoadPlugins();
-  void slotSavePlugins();
-  void slotDefaultsPlugins();
-};
-
-#endif // KSETTINGSPLUGINS_H
diff --git a/kmymoney/dialogs/settings/ksettingsschedules.cpp \
b/kmymoney/dialogs/settings/ksettingsschedules.cpp index 57f5563..a23a42b 100644
--- a/kmymoney/dialogs/settings/ksettingsschedules.cpp
+++ b/kmymoney/dialogs/settings/ksettingsschedules.cpp
@@ -80,7 +80,7 @@ void KSettingsSchedules::slotSetRegion(const QString &region)
 void KSettingsSchedules::slotLoadRegion(const QString &region)
 {
   // only need this once
-  disconnect(kcfg_HolidayRegion, SIGNAL(textChanged(QString)), this, \
SLOT(slotLoadRegion(QString))); +  disconnect(kcfg_HolidayRegion, \
&KLineEdit::textChanged, this, &KSettingsSchedules::slotLoadRegion);  int i = 0;
   if (!region.isEmpty())
     i = m_holidayRegion->findText(m_regionMap.key(region));
diff --git a/kmymoney/kmymoney.cpp b/kmymoney/kmymoney.cpp
index b8f9a4e..550de35 100644
--- a/kmymoney/kmymoney.cpp
+++ b/kmymoney/kmymoney.cpp
@@ -97,17 +97,7 @@
 #include "kmymoneyglobalsettings.h"
 #include "kmymoneyadaptor.h"
 
-#include "dialogs/settings/ksettingsgeneral.h"
-#include "dialogs/settings/ksettingsregister.h"
-#include "dialogs/settings/ksettingsgpg.h"
-#include "dialogs/settings/ksettingscolors.h"
-#include "dialogs/settings/ksettingsfonts.h"
-#include "dialogs/settings/ksettingsschedules.h"
-#include "dialogs/settings/ksettingsonlinequotes.h"
-#include "dialogs/settings/ksettingshome.h"
-#include "dialogs/settings/ksettingsforecast.h"
-#include "dialogs/settings/ksettingsplugins.h"
-#include "dialogs/settings/ksettingsreports.h"
+#include "dialogs/settings/ksettingskmymoney.h"
 #include "dialogs/kbackupdlg.h"
 #include "dialogs/kexportdlg.h"
 #include "dialogs/kimportdlg.h"
@@ -2514,44 +2504,8 @@ void KMyMoneyApp::slotSettings()
     return;
 
   // otherwise, we have to create it
-  KConfigDialog* dlg = new KConfigDialog(this, "KMyMoney-Settings", \
                KMyMoneyGlobalSettings::self());
-
-  // create the pages ...
-  KSettingsGeneral* generalPage = new KSettingsGeneral();
-  KSettingsRegister* registerPage = new KSettingsRegister();
-  KSettingsHome* homePage = new KSettingsHome();
-  KSettingsSchedules* schedulesPage = new KSettingsSchedules();
-  KSettingsGpg* encryptionPage = new KSettingsGpg();
-  KSettingsColors* colorsPage = new KSettingsColors();
-  KSettingsFonts* fontsPage = new KSettingsFonts();
-  KSettingsOnlineQuotes* onlineQuotesPage = new KSettingsOnlineQuotes();
-  KSettingsForecast* forecastPage = new KSettingsForecast();
-  KSettingsPlugins* pluginsPage = new KSettingsPlugins();
-  KSettingsReports* reportsPage = new KSettingsReports();
-
-  dlg->addPage(generalPage, i18nc("General settings", "General"), "system-run");
-  dlg->addPage(homePage, i18n("Home"), "go-home");
-  dlg->addPage(registerPage, i18nc("Ledger view settings", "Ledger"), \
                "view-financial-list");
-
-  dlg->addPage(schedulesPage, i18n("Scheduled transactions"), "view-pim-calendar");
-
-  dlg->addPage(onlineQuotesPage, i18n("Online Quotes"), \
                "preferences-system-network");
-  dlg->addPage(reportsPage, i18nc("Report settings", "Reports"), \
                "office-chart-bar");
-  dlg->addPage(forecastPage, i18nc("Forecast settings", "Forecast"), \
                "view-financial-forecast");
-  dlg->addPage(encryptionPage, i18n("Encryption"), "kgpg");
-  dlg->addPage(colorsPage, i18n("Colors"), "preferences-desktop-color");
-  dlg->addPage(fontsPage, i18n("Fonts"), "preferences-desktop-font");
-  dlg->addPage(pluginsPage, i18n("Plugins"), "network-disconnect");
-
-  // TODO: port KF5
-  //dlg->setHelp("details.settings", "kmymoney");
-
+  KConfigDialog* dlg = new KSettingsKMyMoney(this, "KMyMoney-Settings", \
KMyMoneyGlobalSettings::self());  connect(dlg, &KConfigDialog::settingsChanged, this, \
                &KMyMoneyApp::slotUpdateConfiguration);
-  connect(dlg, &KConfigDialog::rejected, schedulesPage, \
                &KSettingsSchedules::slotResetRegion);
-  connect(dlg, &KConfigDialog::accepted, pluginsPage, \
                &KSettingsPlugins::slotSavePlugins);
-  //! @todo: Port KF5
-  //connect(dlg, &KConfigDialog::defaultClicked, pluginsPage, \
                &KSettingsPlugins::slotDefaultsPlugins);
-
   dlg->show();
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic