[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