From b7658a0d5eca24a9d37c6e04f88298ef02389db0 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Fri, 25 Jan 2013 16:27:34 -0600 Subject: Fix FTBFS resulting from KCModule rename --- tdeui/CMakeLists.txt | 4 +- tdeui/MAINTAINERS | 2 +- tdeui/Makefile.am | 4 +- tdeui/kcmodule.cpp | 220 ------------------------------- tdeui/kcmodule.h | 361 --------------------------------------------------- tdeui/tdecmodule.cpp | 220 +++++++++++++++++++++++++++++++ tdeui/tdecmodule.h | 361 +++++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 586 insertions(+), 586 deletions(-) delete mode 100644 tdeui/kcmodule.cpp delete mode 100644 tdeui/kcmodule.h create mode 100644 tdeui/tdecmodule.cpp create mode 100644 tdeui/tdecmodule.h (limited to 'tdeui') diff --git a/tdeui/CMakeLists.txt b/tdeui/CMakeLists.txt index 9ff7efc91..f7c1027d7 100644 --- a/tdeui/CMakeLists.txt +++ b/tdeui/CMakeLists.txt @@ -58,7 +58,7 @@ install( FILES kdualcolorbtn.h kdualcolorbutton.h ktoolbarbutton.h ktoolbarradiogroup.h ktextbrowser.h kaction.h kactioncollection.h kactionclasses.h khelpmenu.h kswitchlanguagedialog.h - kcmodule.h kcmenumngr.h kpanelmenu.h kpanelappmenu.h + tdecmodule.h kcmenumngr.h kpanelmenu.h kpanelappmenu.h kactionshortcutlist.h kstdaction.h kcombobox.h kiconview.h klistview.h klistbox.h kbugreport.h kpassdlg.h kxmlguiclient.h kxmlgui.h kxmlguibuilder.h kxmlguifactory.h @@ -129,7 +129,7 @@ set( ${target}_SRCS kanimwidget.cpp krootpixmap.cpp kaboutkde.cpp kaboutapplication.cpp kpanelapplet.cpp kdcopactionproxy.cpp kcolorcombo.cpp kpushbutton.cpp kpanelextension.cpp - kcompletionbox.cpp ksqueezedtextlabel.cpp kcmodule.cpp + kcompletionbox.cpp ksqueezedtextlabel.cpp tdecmodule.cpp kcommand.cpp twindowlistmenu.cpp kfontcombo.cpp ktip.cpp kdatewidget.cpp karrowbutton.cpp kmainwindowiface.cpp kmainwindowiface.skel kguiitem.cpp kstdguiitem.cpp diff --git a/tdeui/MAINTAINERS b/tdeui/MAINTAINERS index f666536cb..a5c4465b6 100644 --- a/tdeui/MAINTAINERS +++ b/tdeui/MAINTAINERS @@ -16,7 +16,7 @@ kbugreport.cpp kbuttonbox.cpp kcharselect.cpp kcmenumngr.cpp -kcmodule.cpp +tdecmodule.cpp kcolorbutton.cpp kcolorcombo.cpp kcolordialog.cpp Waldo Bastian diff --git a/tdeui/Makefile.am b/tdeui/Makefile.am index 821e2e682..b28c38584 100644 --- a/tdeui/Makefile.am +++ b/tdeui/Makefile.am @@ -55,7 +55,7 @@ include_HEADERS = kprogressbox.h kprogress.h kcolordlg.h \ kdualcolorbtn.h kdualcolorbutton.h ktoolbarbutton.h \ ktoolbarradiogroup.h ktextbrowser.h \ kaction.h kactioncollection.h kactionclasses.h khelpmenu.h kswitchlanguagedialog.h \ - kcmodule.h kcmenumngr.h kpanelmenu.h kpanelappmenu.h \ + tdecmodule.h kcmenumngr.h kpanelmenu.h kpanelappmenu.h \ kactionshortcutlist.h kstdaction.h kcombobox.h \ kiconview.h klistview.h klistbox.h kbugreport.h kpassdlg.h \ kxmlguiclient.h kxmlgui.h kxmlguibuilder.h kxmlguifactory.h \ @@ -110,7 +110,7 @@ libtdeui_la_SOURCES = \ kanimwidget.cpp krootpixmap.cpp kaboutkde.cpp \ kaboutapplication.cpp kpanelapplet.cpp kdcopactionproxy.cpp \ kcolorcombo.cpp kpushbutton.cpp kpanelextension.cpp \ - kcompletionbox.cpp ksqueezedtextlabel.cpp kcmodule.cpp \ + kcompletionbox.cpp ksqueezedtextlabel.cpp tdecmodule.cpp \ kcommand.cpp twindowlistmenu.cpp kfontcombo.cpp ktip.cpp \ kdatewidget.cpp karrowbutton.cpp kmainwindowiface.cpp \ kmainwindowiface.skel kguiitem.cpp kstdguiitem.cpp \ diff --git a/tdeui/kcmodule.cpp b/tdeui/kcmodule.cpp deleted file mode 100644 index 904c1cdc4..000000000 --- a/tdeui/kcmodule.cpp +++ /dev/null @@ -1,220 +0,0 @@ -/* - This file is part of the KDE libraries - -<< - Copyright (C) 2004 Frans Englich - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - -*/ - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "kcmodule.h" -#include "kcmodule.moc" - -class TDECModulePrivate -{ -public: - TDECModulePrivate(): - _about( 0 ), - _useRootOnlyMsg( false ), - _hasOwnInstance( true ), - _unmanagedWidgetChangeState( false ) - { } - - TDEInstance *_instance; - TDEAboutData *_about; - TQString _rootOnlyMsg; - bool _useRootOnlyMsg; - bool _hasOwnInstance; - TQPtrList managers; - TQString _quickHelp; - - // this member is used to record the state on non-automatically - // managed widgets, allowing for mixed TDEConfigXT-drive and manual - // widgets to coexist peacefully and do the correct thing with - // the changed(bool) signal - bool _unmanagedWidgetChangeState; -}; - -TDECModule::TDECModule(TQWidget *parent, const char *name, const TQStringList &) - : TQWidget(parent, name) -{ - init(); - if (name && strlen(name)) { - d->_instance = new TDEInstance(name); - TDEGlobal::locale()->insertCatalogue(name); - } else - d->_instance = new TDEInstance("kcmunnamed"); - TDEGlobal::setActiveInstance(this->instance()); - - d->managers.setAutoDelete( true ); - -} - -TDECModule::TDECModule(TDEInstance *instance, TQWidget *parent, const TQStringList & ) - : TQWidget(parent, instance ? instance->instanceName().data() : 0) -{ - init(); - d->_instance = instance; - - if (instance) - { - TDEGlobal::locale()->insertCatalogue(instance->instanceName()); - } - - d->_hasOwnInstance = false; - TDEGlobal::setActiveInstance(this->instance()); -} - -void TDECModule::init() -{ - d = new TDECModulePrivate; - _btn = Help|Default|Apply; -} - -TDEConfigDialogManager* TDECModule::addConfig( TDEConfigSkeleton *config, TQWidget* widget ) -{ - TDEConfigDialogManager* manager = new TDEConfigDialogManager( widget, config, name() ); - connect( manager, TQT_SIGNAL( widgetModified() ), TQT_SLOT( widgetChanged() )); - d->managers.append( manager ); - return manager; -} - -TDECModule::~TDECModule() -{ - if (d->_hasOwnInstance) - delete d->_instance; - delete d->_about; - delete d; -} - -void TDECModule::load() -{ - TDEConfigDialogManager* manager; - for( manager = d->managers.first(); manager; manager = d->managers.next() ) - manager->updateWidgets(); -} - -void TDECModule::save() -{ - TDEConfigDialogManager* manager; - for( manager = d->managers.first(); manager; manager = d->managers.next() ) - manager->updateSettings(); - emit( changed( false )); -} - -void TDECModule::defaults() -{ - TDEConfigDialogManager* manager; - for( manager = d->managers.first(); manager; manager = d->managers.next() ) - manager->updateWidgetsDefault(); -} - -void TDECModule::widgetChanged() -{ - emit changed(d->_unmanagedWidgetChangeState || managedWidgetChangeState()); -} - -bool TDECModule::managedWidgetChangeState() const -{ - TDEConfigDialogManager* manager; - for( manager = d->managers.first(); manager; manager = d->managers.next() ) - { - if ( manager->hasChanged() ) - return true; - } - - return false; -} - -void TDECModule::unmanagedWidgetChangeState(bool changed) -{ - d->_unmanagedWidgetChangeState = changed; - widgetChanged(); -} - -const TDEAboutData *TDECModule::aboutData() const -{ - return d->_about; -} - -void TDECModule::setAboutData( TDEAboutData* about ) -{ - delete d->_about; - d->_about = about; -} - -void TDECModule::setRootOnlyMsg(const TQString& msg) -{ - d->_rootOnlyMsg = msg; -} - -TQString TDECModule::rootOnlyMsg() const -{ - return d->_rootOnlyMsg; -} - -void TDECModule::setUseRootOnlyMsg(bool on) -{ - d->_useRootOnlyMsg = on; -} - -bool TDECModule::useRootOnlyMsg() const -{ - return d->_useRootOnlyMsg; -} - -void TDECModule::changed() -{ - emit changed(true); -} - -TDEInstance *TDECModule::instance() const -{ - return d->_instance; -} - -void TDECModule::setQuickHelp( const TQString& help ) -{ - d->_quickHelp = help; - emit( quickHelpChanged() ); -} - -TQString TDECModule::quickHelp() const -{ - return d->_quickHelp; -} - - -const TQPtrList& TDECModule::configs() const -{ - return d->managers; -} - -void TDECModule::virtual_hook( int, void* ) -{ /*BASE::virtual_hook( id, data );*/ } - -// vim: sw=4 et sts=4 diff --git a/tdeui/kcmodule.h b/tdeui/kcmodule.h deleted file mode 100644 index 41d8d095e..000000000 --- a/tdeui/kcmodule.h +++ /dev/null @@ -1,361 +0,0 @@ -/* - This file is part of the KDE libraries - - Copyright (c) 1999 Matthias Hoelzer-Kluepfel - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - -*/ - -#ifndef KCMODULE_H -#define KCMODULE_H - -#include - -#include - -class TQStringList; - -class TDEAboutData; -class TDEConfigDialogManager; -class TDEConfigSkeleton; -class TDECModulePrivate; -class TDEInstance; - -/** - * The base class for control center modules. - * - * Starting from KDE 2.0, control center modules are realized as shared - * libraries that are loaded into the control center at runtime. - * - * The module in principle is a simple widget displaying the - * item to be changed. The module has a very small interface. - * - * All the necessary glue logic and the GUI bells and whistles - * are provided by the control center and must not concern - * the module author. - * - * To write a config module, you have to create a library - * that contains at one factory function like this: - * - * \code - * #include - * - * typedef KGenericFactory YourTDECModuleFactory; - * K_EXPORT_COMPONENT_FACTORY( yourLibName, YourTDECModuleFactory("name_of_the_po_file") ); - * \endcode - * - * The parameter "name_of_the_po_file" has to correspond with the messages target - * that you created in your Makefile.am. - * - * See http://developer.kde.org/documentation/other/kcm_howto.html - * for more detailed documentation. - * - * @author Matthias Hoelzer-Kluepfel - */ -class TDEUI_EXPORT TDECModule : public TQWidget -{ - Q_OBJECT - -public: - - /** - * An enumeration type for the buttons used by this module. - * You should only use Help, Default and Apply. The rest is obsolete. - * - * @see TDECModule::buttons @see TDECModule::setButtons - */ - enum Button {Help=1, Default=2, Apply=16, - Reset=4, /* obsolete, do not use! */ - Cancel=8, /* obsolete, do not use! */ - Ok=32, /* obsolete, do not use! */ - SysDefault=64 /* obsolete, do not use! */ }; - - /* - * Base class for all KControlModules. - * Make sure you have a TQStringList argument in your - * implementation. - */ - TDECModule(TQWidget *parent=0, const char *name=0, const TQStringList &args=TQStringList() ); - - TDECModule(TDEInstance *instance, TQWidget *parent=0, const TQStringList &args=TQStringList() ); - - /* - * Destroys the module. - */ - ~TDECModule(); - - /** - * Load the configuration data into the module. - * - * The load method sets the user interface elements of the - * module to reflect the current settings stored in the - * configuration files. - * - * This method is invoked whenever the module should read its configuration - * (most of the times from a config file) and update the user interface. - * This happens when the user clicks the "Reset" button in the control - * center, to undo all of his changes and restore the currently valid - * settings. - * - * If you use TDEConfigXT, loading is taken care of automatically and - * you do not need to do it manually. However, if you for some reason reimplement it and - * also are using TDEConfigXT, you must call this function otherwise the loading of TDEConfigXT - * options will not work. - * - */ - virtual void load(); - // ### KDE 4: Call load() automatically through a single-shot timer - // from the constructor // and change documentation - - /** - * Save the configuration data. - * - * The save method stores the config information as shown - * in the user interface in the config files. - * - * If necessary, this method also updates the running system, - * e.g. by restarting applications. This normally does not apply for - * KSettings::Dialog modules where the updating is taken care of by - * KSettings::Dispatcher. - * - * save is called when the user clicks "Apply" or "Ok". - * - * If you use TDEConfigXT, saving is taken care off automatically and - * you do not need to load manually. However, if you for some reason reimplement it and - * also are using TDEConfigXT, you must call this function, otherwise the saving of TDEConfigXT - * options will not work. Call it at the very end of your reimplementation, to avoid - * changed() signals getting emitted when you modify widgets. - */ - virtual void save(); - - /** - * Sets the configuration to sensible default values. - * - * This method is called when the user clicks the "Default" - * button. It should set the display to useful values. - * - * If you use TDEConfigXT, you do not have to reimplement this function since - * the fetching and settings of default values is done automatically. However, if you - * reimplement and also are using TDEConfigXT, remember to call the base function at the - * very end of your reimplementation. - */ - virtual void defaults(); - - /** - * Set the configuration to system default values. - * - * This method is called when the user clicks the "System-Default" - * button. It should set the display to the system default values. - * - * @note The default behavior is to call defaults(). - */ - virtual void sysdefaults() { defaults(); } - // KDE 4 deprecate - - /** - * Return a quick-help text. - * - * This method is called when the module is docked. - * The quick-help text should contain a short description of the module and - * links to the module's help files. You can use QML formatting tags in the text. - * - * @note make sure the quick help text gets translated (use i18n()). - */ - virtual TQString quickHelp() const; - - /** - * This is generally only called for the KBugReport. - * If you override you should have it return a pointer to a constant. - * - * - * @returns the TDEAboutData for this module - */ - virtual const TDEAboutData *aboutData() const; - - /** - * This sets the TDEAboutData returned by aboutData() - * @since 3.3 - */ - void setAboutData( TDEAboutData* about ); - - /** - * Indicate which buttons will be used. - * - * The return value is a value or'ed together from - * the Button enumeration type. - * - * @see TDECModule::setButtons - */ - int buttons() const { return _btn; } - - /** - * Get the RootOnly message for this module. - * - * When the module must be run as root, or acts differently - * for root and a normal user, it is sometimes useful to - * customize the message that appears at the top of the module - * when used as a normal user. This function returns this - * customized message. If none has been set, a default message - * will be used. - * - * @see TDECModule::setRootOnlyMsg - */ - TQString rootOnlyMsg() const; - - /** - * Tell if KControl should show a RootOnly message when run as - * a normal user. - * - * In some cases, the module don't want a RootOnly message to - * appear (for example if it has already one). This function - * tells KControl if a RootOnly message should be shown - * - * @see TDECModule::setUseRootOnlyMsg - */ - bool useRootOnlyMsg() const; - - TDEInstance *instance() const; - - /** - * @return a list of @ref TDEConfigDialogManager's in use, if any. - * @since 3.4 - */ - const TQPtrList& configs() const; - -protected: - /** - * Adds a TDEConfigskeleton @p config to watch the widget @p widget - * - * This function is useful if you need to handle multiple configuration files. - * - * @since 3.3 - * @return a pointer to the TDEConfigDialogManager in use - * @param config the TDEConfigSkeleton to use - * @param widget the widget to watch - */ - TDEConfigDialogManager* addConfig( TDEConfigSkeleton *config, TQWidget* widget ); - - /** - * Sets the quick help. - * - * @since 3.3 - */ - void setQuickHelp( const TQString& help ); - -signals: - - /** - * Indicate that the state of the modules contents has changed. - * - * This signal is emitted whenever the state of the configuration - * shown in the module changes. It allows the control center to - * keep track of unsaved changes. - */ - void changed(bool state); - - /** - * Indicate that the module's quickhelp has changed. - * - * Emit this signal whenever the module's quickhelp changes. - * Modules implemented as tabbed dialogs might want to implement - * per-tab quickhelp for example. - * - */ - void quickHelpChanged(); - -protected slots: - - /** - * Calling this slot is equivalent to emitting changed(true). - * @since 3.3 - */ - void changed(); - - /** - * A managed widget was changed, the widget settings and the current - * settings are compared and a corresponding changed() signal is emitted - * @since 3.4 - */ - void widgetChanged(); - -protected: - - /** - * Sets the buttons to display. - * - * Help: shows a "Help" button. - * Default: shows a "Use Defaults" button - * Apply: in kcontrol this will show an "Apply" and "Reset" button - * in kcmshell this will show an "Ok", "Apply" and "Cancel" button - * - * If Apply is not specified, kcmshell will show a "Close" button. - * - * @see TDECModule::buttons - */ - void setButtons(int btn) { _btn = btn; } - - /** - * Sets the RootOnly message. - * - * This message will be shown at the top of the module of the - * corresponding desktop file contains the line X-TDE-RootOnly=true. - * If no message is set, a default one will be used. - * - * @see TDECModule::rootOnlyMsg - */ - void setRootOnlyMsg(const TQString& msg); - - /** - * Change whether or not the RootOnly message should be shown. - * - * Following the value of @p on, the RootOnly message will be - * shown or not. - * - * @see TDECModule::useRootOnlyMsg - */ - void setUseRootOnlyMsg(bool on); - - /** - * Returns the changed state of automatically managed widgets in this dialog - * @since 3.5 - */ - bool managedWidgetChangeState() const; - - /** - * Call this method when your manually managed widgets change state between - * changed and not changed - * @since 3.5 - */ - void unmanagedWidgetChangeState(bool); - -private: - - int _btn; -protected: - virtual void virtual_hook( int id, void* data ); -private: - TDECModulePrivate *d; - - /** - * Internal function for initialization of the class. - */ - void init(); - -}; - -#endif //KCMODULE_H - diff --git a/tdeui/tdecmodule.cpp b/tdeui/tdecmodule.cpp new file mode 100644 index 000000000..0b1b4f5fb --- /dev/null +++ b/tdeui/tdecmodule.cpp @@ -0,0 +1,220 @@ +/* + This file is part of the KDE libraries + +<< + Copyright (C) 2004 Frans Englich + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + +*/ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "tdecmodule.h" +#include "tdecmodule.moc" + +class TDECModulePrivate +{ +public: + TDECModulePrivate(): + _about( 0 ), + _useRootOnlyMsg( false ), + _hasOwnInstance( true ), + _unmanagedWidgetChangeState( false ) + { } + + TDEInstance *_instance; + TDEAboutData *_about; + TQString _rootOnlyMsg; + bool _useRootOnlyMsg; + bool _hasOwnInstance; + TQPtrList managers; + TQString _quickHelp; + + // this member is used to record the state on non-automatically + // managed widgets, allowing for mixed TDEConfigXT-drive and manual + // widgets to coexist peacefully and do the correct thing with + // the changed(bool) signal + bool _unmanagedWidgetChangeState; +}; + +TDECModule::TDECModule(TQWidget *parent, const char *name, const TQStringList &) + : TQWidget(parent, name) +{ + init(); + if (name && strlen(name)) { + d->_instance = new TDEInstance(name); + TDEGlobal::locale()->insertCatalogue(name); + } else + d->_instance = new TDEInstance("kcmunnamed"); + TDEGlobal::setActiveInstance(this->instance()); + + d->managers.setAutoDelete( true ); + +} + +TDECModule::TDECModule(TDEInstance *instance, TQWidget *parent, const TQStringList & ) + : TQWidget(parent, instance ? instance->instanceName().data() : 0) +{ + init(); + d->_instance = instance; + + if (instance) + { + TDEGlobal::locale()->insertCatalogue(instance->instanceName()); + } + + d->_hasOwnInstance = false; + TDEGlobal::setActiveInstance(this->instance()); +} + +void TDECModule::init() +{ + d = new TDECModulePrivate; + _btn = Help|Default|Apply; +} + +TDEConfigDialogManager* TDECModule::addConfig( TDEConfigSkeleton *config, TQWidget* widget ) +{ + TDEConfigDialogManager* manager = new TDEConfigDialogManager( widget, config, name() ); + connect( manager, TQT_SIGNAL( widgetModified() ), TQT_SLOT( widgetChanged() )); + d->managers.append( manager ); + return manager; +} + +TDECModule::~TDECModule() +{ + if (d->_hasOwnInstance) + delete d->_instance; + delete d->_about; + delete d; +} + +void TDECModule::load() +{ + TDEConfigDialogManager* manager; + for( manager = d->managers.first(); manager; manager = d->managers.next() ) + manager->updateWidgets(); +} + +void TDECModule::save() +{ + TDEConfigDialogManager* manager; + for( manager = d->managers.first(); manager; manager = d->managers.next() ) + manager->updateSettings(); + emit( changed( false )); +} + +void TDECModule::defaults() +{ + TDEConfigDialogManager* manager; + for( manager = d->managers.first(); manager; manager = d->managers.next() ) + manager->updateWidgetsDefault(); +} + +void TDECModule::widgetChanged() +{ + emit changed(d->_unmanagedWidgetChangeState || managedWidgetChangeState()); +} + +bool TDECModule::managedWidgetChangeState() const +{ + TDEConfigDialogManager* manager; + for( manager = d->managers.first(); manager; manager = d->managers.next() ) + { + if ( manager->hasChanged() ) + return true; + } + + return false; +} + +void TDECModule::unmanagedWidgetChangeState(bool changed) +{ + d->_unmanagedWidgetChangeState = changed; + widgetChanged(); +} + +const TDEAboutData *TDECModule::aboutData() const +{ + return d->_about; +} + +void TDECModule::setAboutData( TDEAboutData* about ) +{ + delete d->_about; + d->_about = about; +} + +void TDECModule::setRootOnlyMsg(const TQString& msg) +{ + d->_rootOnlyMsg = msg; +} + +TQString TDECModule::rootOnlyMsg() const +{ + return d->_rootOnlyMsg; +} + +void TDECModule::setUseRootOnlyMsg(bool on) +{ + d->_useRootOnlyMsg = on; +} + +bool TDECModule::useRootOnlyMsg() const +{ + return d->_useRootOnlyMsg; +} + +void TDECModule::changed() +{ + emit changed(true); +} + +TDEInstance *TDECModule::instance() const +{ + return d->_instance; +} + +void TDECModule::setQuickHelp( const TQString& help ) +{ + d->_quickHelp = help; + emit( quickHelpChanged() ); +} + +TQString TDECModule::quickHelp() const +{ + return d->_quickHelp; +} + + +const TQPtrList& TDECModule::configs() const +{ + return d->managers; +} + +void TDECModule::virtual_hook( int, void* ) +{ /*BASE::virtual_hook( id, data );*/ } + +// vim: sw=4 et sts=4 diff --git a/tdeui/tdecmodule.h b/tdeui/tdecmodule.h new file mode 100644 index 000000000..41d8d095e --- /dev/null +++ b/tdeui/tdecmodule.h @@ -0,0 +1,361 @@ +/* + This file is part of the KDE libraries + + Copyright (c) 1999 Matthias Hoelzer-Kluepfel + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + +*/ + +#ifndef KCMODULE_H +#define KCMODULE_H + +#include + +#include + +class TQStringList; + +class TDEAboutData; +class TDEConfigDialogManager; +class TDEConfigSkeleton; +class TDECModulePrivate; +class TDEInstance; + +/** + * The base class for control center modules. + * + * Starting from KDE 2.0, control center modules are realized as shared + * libraries that are loaded into the control center at runtime. + * + * The module in principle is a simple widget displaying the + * item to be changed. The module has a very small interface. + * + * All the necessary glue logic and the GUI bells and whistles + * are provided by the control center and must not concern + * the module author. + * + * To write a config module, you have to create a library + * that contains at one factory function like this: + * + * \code + * #include + * + * typedef KGenericFactory YourTDECModuleFactory; + * K_EXPORT_COMPONENT_FACTORY( yourLibName, YourTDECModuleFactory("name_of_the_po_file") ); + * \endcode + * + * The parameter "name_of_the_po_file" has to correspond with the messages target + * that you created in your Makefile.am. + * + * See http://developer.kde.org/documentation/other/kcm_howto.html + * for more detailed documentation. + * + * @author Matthias Hoelzer-Kluepfel + */ +class TDEUI_EXPORT TDECModule : public TQWidget +{ + Q_OBJECT + +public: + + /** + * An enumeration type for the buttons used by this module. + * You should only use Help, Default and Apply. The rest is obsolete. + * + * @see TDECModule::buttons @see TDECModule::setButtons + */ + enum Button {Help=1, Default=2, Apply=16, + Reset=4, /* obsolete, do not use! */ + Cancel=8, /* obsolete, do not use! */ + Ok=32, /* obsolete, do not use! */ + SysDefault=64 /* obsolete, do not use! */ }; + + /* + * Base class for all KControlModules. + * Make sure you have a TQStringList argument in your + * implementation. + */ + TDECModule(TQWidget *parent=0, const char *name=0, const TQStringList &args=TQStringList() ); + + TDECModule(TDEInstance *instance, TQWidget *parent=0, const TQStringList &args=TQStringList() ); + + /* + * Destroys the module. + */ + ~TDECModule(); + + /** + * Load the configuration data into the module. + * + * The load method sets the user interface elements of the + * module to reflect the current settings stored in the + * configuration files. + * + * This method is invoked whenever the module should read its configuration + * (most of the times from a config file) and update the user interface. + * This happens when the user clicks the "Reset" button in the control + * center, to undo all of his changes and restore the currently valid + * settings. + * + * If you use TDEConfigXT, loading is taken care of automatically and + * you do not need to do it manually. However, if you for some reason reimplement it and + * also are using TDEConfigXT, you must call this function otherwise the loading of TDEConfigXT + * options will not work. + * + */ + virtual void load(); + // ### KDE 4: Call load() automatically through a single-shot timer + // from the constructor // and change documentation + + /** + * Save the configuration data. + * + * The save method stores the config information as shown + * in the user interface in the config files. + * + * If necessary, this method also updates the running system, + * e.g. by restarting applications. This normally does not apply for + * KSettings::Dialog modules where the updating is taken care of by + * KSettings::Dispatcher. + * + * save is called when the user clicks "Apply" or "Ok". + * + * If you use TDEConfigXT, saving is taken care off automatically and + * you do not need to load manually. However, if you for some reason reimplement it and + * also are using TDEConfigXT, you must call this function, otherwise the saving of TDEConfigXT + * options will not work. Call it at the very end of your reimplementation, to avoid + * changed() signals getting emitted when you modify widgets. + */ + virtual void save(); + + /** + * Sets the configuration to sensible default values. + * + * This method is called when the user clicks the "Default" + * button. It should set the display to useful values. + * + * If you use TDEConfigXT, you do not have to reimplement this function since + * the fetching and settings of default values is done automatically. However, if you + * reimplement and also are using TDEConfigXT, remember to call the base function at the + * very end of your reimplementation. + */ + virtual void defaults(); + + /** + * Set the configuration to system default values. + * + * This method is called when the user clicks the "System-Default" + * button. It should set the display to the system default values. + * + * @note The default behavior is to call defaults(). + */ + virtual void sysdefaults() { defaults(); } + // KDE 4 deprecate + + /** + * Return a quick-help text. + * + * This method is called when the module is docked. + * The quick-help text should contain a short description of the module and + * links to the module's help files. You can use QML formatting tags in the text. + * + * @note make sure the quick help text gets translated (use i18n()). + */ + virtual TQString quickHelp() const; + + /** + * This is generally only called for the KBugReport. + * If you override you should have it return a pointer to a constant. + * + * + * @returns the TDEAboutData for this module + */ + virtual const TDEAboutData *aboutData() const; + + /** + * This sets the TDEAboutData returned by aboutData() + * @since 3.3 + */ + void setAboutData( TDEAboutData* about ); + + /** + * Indicate which buttons will be used. + * + * The return value is a value or'ed together from + * the Button enumeration type. + * + * @see TDECModule::setButtons + */ + int buttons() const { return _btn; } + + /** + * Get the RootOnly message for this module. + * + * When the module must be run as root, or acts differently + * for root and a normal user, it is sometimes useful to + * customize the message that appears at the top of the module + * when used as a normal user. This function returns this + * customized message. If none has been set, a default message + * will be used. + * + * @see TDECModule::setRootOnlyMsg + */ + TQString rootOnlyMsg() const; + + /** + * Tell if KControl should show a RootOnly message when run as + * a normal user. + * + * In some cases, the module don't want a RootOnly message to + * appear (for example if it has already one). This function + * tells KControl if a RootOnly message should be shown + * + * @see TDECModule::setUseRootOnlyMsg + */ + bool useRootOnlyMsg() const; + + TDEInstance *instance() const; + + /** + * @return a list of @ref TDEConfigDialogManager's in use, if any. + * @since 3.4 + */ + const TQPtrList& configs() const; + +protected: + /** + * Adds a TDEConfigskeleton @p config to watch the widget @p widget + * + * This function is useful if you need to handle multiple configuration files. + * + * @since 3.3 + * @return a pointer to the TDEConfigDialogManager in use + * @param config the TDEConfigSkeleton to use + * @param widget the widget to watch + */ + TDEConfigDialogManager* addConfig( TDEConfigSkeleton *config, TQWidget* widget ); + + /** + * Sets the quick help. + * + * @since 3.3 + */ + void setQuickHelp( const TQString& help ); + +signals: + + /** + * Indicate that the state of the modules contents has changed. + * + * This signal is emitted whenever the state of the configuration + * shown in the module changes. It allows the control center to + * keep track of unsaved changes. + */ + void changed(bool state); + + /** + * Indicate that the module's quickhelp has changed. + * + * Emit this signal whenever the module's quickhelp changes. + * Modules implemented as tabbed dialogs might want to implement + * per-tab quickhelp for example. + * + */ + void quickHelpChanged(); + +protected slots: + + /** + * Calling this slot is equivalent to emitting changed(true). + * @since 3.3 + */ + void changed(); + + /** + * A managed widget was changed, the widget settings and the current + * settings are compared and a corresponding changed() signal is emitted + * @since 3.4 + */ + void widgetChanged(); + +protected: + + /** + * Sets the buttons to display. + * + * Help: shows a "Help" button. + * Default: shows a "Use Defaults" button + * Apply: in kcontrol this will show an "Apply" and "Reset" button + * in kcmshell this will show an "Ok", "Apply" and "Cancel" button + * + * If Apply is not specified, kcmshell will show a "Close" button. + * + * @see TDECModule::buttons + */ + void setButtons(int btn) { _btn = btn; } + + /** + * Sets the RootOnly message. + * + * This message will be shown at the top of the module of the + * corresponding desktop file contains the line X-TDE-RootOnly=true. + * If no message is set, a default one will be used. + * + * @see TDECModule::rootOnlyMsg + */ + void setRootOnlyMsg(const TQString& msg); + + /** + * Change whether or not the RootOnly message should be shown. + * + * Following the value of @p on, the RootOnly message will be + * shown or not. + * + * @see TDECModule::useRootOnlyMsg + */ + void setUseRootOnlyMsg(bool on); + + /** + * Returns the changed state of automatically managed widgets in this dialog + * @since 3.5 + */ + bool managedWidgetChangeState() const; + + /** + * Call this method when your manually managed widgets change state between + * changed and not changed + * @since 3.5 + */ + void unmanagedWidgetChangeState(bool); + +private: + + int _btn; +protected: + virtual void virtual_hook( int id, void* data ); +private: + TDECModulePrivate *d; + + /** + * Internal function for initialization of the class. + */ + void init(); + +}; + +#endif //KCMODULE_H + -- cgit v1.2.1