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

List:       kde-commits
Subject:    KDE/kdebase/workspace/systemsettings
From:       Ben Cooksley <sourtooth () gmail ! com>
Date:       2009-08-11 9:01:14
Message-ID: 1249981274.148931.15409.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1009930 by bcooksley:

Add initial support of configuration pages for views to System Settings

 M  +8 -3      app/SettingsBase.cpp  
 M  +2 -2      app/SettingsBase.h  
 M  +6 -0      core/BaseMode.cpp  
 M  +8 -0      core/BaseMode.h  


--- trunk/KDE/kdebase/workspace/systemsettings/app/SettingsBase.cpp #1009929:1009930
@@ -151,14 +151,19 @@
 void SettingsBase::initConfig()
 {
     // Prepare dialog first
-    configDialog = new KDialog(this);
+    configDialog = new KConfigDialog( this, "systemsettingsconfig", BaseConfig::self() );
     configDialog->setButtons( KDialog::Ok | KDialog::Cancel );
-    configWidget.setupUi(configDialog->mainWidget());
-    configDialog->setCaption(i18n("Configure"));
     configDialog->setInitialSize(QSize(400,160));
     configDialog->restoreDialogSize( KGlobal::config()->group("ConfigDialog") );
+
+    // Add our page
+    QWidget * configPage = new QWidget( configDialog );
+    configWidget.setupUi(configPage);
+    QString iconName = KGlobal::activeComponent().aboutData()->programIconName();
+    configDialog->addPage( configPage, i18n("General"), iconName );
     // Get the list of modules
     foreach( BaseMode * mode, possibleViews ) {
+        mode->addConfiguration( configDialog );
         configWidget.CbPlugins->addItem( KIcon(mode->service()->icon()), mode->service()->name() );
     }
     connect(configDialog, SIGNAL(okClicked()), this, SLOT(configUpdated()));
--- trunk/KDE/kdebase/workspace/systemsettings/app/SettingsBase.h #1009929:1009930
@@ -28,10 +28,10 @@
 #include <QMap>
 #include <QStackedWidget>
 
-#include <KDialog>
 #include <KService>
 #include <KLineEdit>
 #include <KActionMenu>
+#include <KConfigDialog>
 #include <KXmlGuiWindow>
 #include <KAboutApplicationDialog>
 
@@ -79,7 +79,7 @@
     KAction * aboutModuleAction;
     KActionMenu * helpActionMenu;
     // The configuration
-    KDialog * configDialog;
+    KConfigDialog * configDialog;
     Ui::ConfigDialog configWidget;
     // The control module
     QStackedWidget * stackedWidget;
--- trunk/KDE/kdebase/workspace/systemsettings/core/BaseMode.cpp #1009929:1009930
@@ -24,6 +24,7 @@
 #include <QAbstractItemView>
 
 #include <KConfigGroup>
+#include <KConfigDialog>
 #include <KServiceTypeTrader>
 
 #include "MenuItem.h"
@@ -106,6 +107,11 @@
 {
 }
 
+void BaseMode::addConfiguration( KConfigDialog * config )
+{
+    Q_UNUSED( config );
+}
+
 MenuItem * BaseMode::rootItem() const
 {
     return d->rootItem;
--- trunk/KDE/kdebase/workspace/systemsettings/core/BaseMode.h #1009929:1009930
@@ -28,6 +28,7 @@
 class QAction;
 class MenuItem;
 class ModuleView;
+class KConfigDialog;
 class QAbstractItemView;
 template<typename T> class QList;
 
@@ -163,6 +164,13 @@
      */
     virtual void searchChanged( const QString& text );
 
+    /**
+     * Allows views to add custom configuration pages to the System Settings configure dialog
+     *
+     * @warning Deleting the config object will cause System Settings to crash
+     */
+    virtual void addConfiguration( KConfigDialog * config );
+
 Q_SIGNALS:
     /**
      * Triggers a reload of the views actions by the host application.
[prev in list] [next in list] [prev in thread] [next in thread] 

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