diff options
Diffstat (limited to 'part/kxeconfiguration.h')
-rw-r--r-- | part/kxeconfiguration.h | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/part/kxeconfiguration.h b/part/kxeconfiguration.h new file mode 100644 index 0000000..3afd8b2 --- /dev/null +++ b/part/kxeconfiguration.h @@ -0,0 +1,123 @@ +/*************************************************************************** + kxeconfiguration.h + ------------------ + begin : Tue Dec 02 2003 + copyright : (C) 2003 by The KXMLEditor Team + email : hartig@users.sourceforge.net + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 KXECONFIGURATION_H +#define KXECONFIGURATION_H + +#include <qobject.h> + +class KXETreeViewSettings; +class KXETextViewSettings; +class KXENewFileSettings; +class KXEPrintSettings; +class KXEArchiveExtsSettings; + +class KConfig; +class KDialogBase; + +/** + * This class is a container for KXMLEditor's configuration data. + * It consists of objects for the different groups of settings + * (objects of child classes of KXESettings) and manages the configuration + * dialog (@ref m_pDialog). This dialog consists of one page per settings + * group, that are initialized by them (using their dialogPage* functions). + * + * @short container for KXMLEditor's configuration data + * @author Olaf Hartig + */ +class KXEConfiguration : public QObject +{ + Q_OBJECT + + public: + + /** + * The constructor initializes the configuration setting groups + * (objects of KXESettings' child classes) and restores the + * configuration data from the config file by calling @ref restore. + */ + KXEConfiguration(); + /** + * The destructor deletes the configuration dialog, if there is one. + */ + ~KXEConfiguration(); + + /** + * Stores all configuration to the given @ref KConfig object by + * using @ref KXESettings's @ref store function. + * If no @ref KConfig object is given, @ref KGlobal::config is + * used. + */ + void store( KConfig * pConfig = 0 ) const; + /** + * Restores all configuration from the given @ref KConfig object + * by using @ref KXESettings's @ref restore function. + * If no @ref KConfig object is given, @ref KGlobal::config is + * used. + */ + void restore( KConfig * pConfig = 0 ); + /** + * Shows the configuration dialog. + * If there is no one yet, it is created by. + */ + void showDialog(); + + // The following functions return pointers to the configuration setting + // groups (objects of KXESettings' child classes), that can be used to + // access their data (or to connect to their signals). + + KXETreeViewSettings * const treeview() const { return m_pTreeView; } + KXETextViewSettings * const textview() const { return m_pTextView; } + KXENewFileSettings * const newfile() const { return m_pNewFile; } + KXEPrintSettings * const print() const { return m_pPrint; } + KXEArchiveExtsSettings * const archexts() const { return m_pArcExts; } + + protected slots: + + /** + * Applies the new data in the dialog's pages to our setting groups + * by using @ref KXESettings's @ref apply function and stores + * all settings with @ref store. + * After applying, the dialog's state is reseted (disabled Apply- and + * OK-buttons). + */ + void slotDlgApplied(); + /** + * Enables the configuration dialog's Apply- and OK-button. + */ + void slotDlgChanged(); + + protected: + + // The following members are the configuration setting + // groups (objects of KXESettings' child classes). + + KXETreeViewSettings * m_pTreeView; + KXETextViewSettings * m_pTextView; + KXENewFileSettings * m_pNewFile; + KXEPrintSettings * m_pPrint; + KXEArchiveExtsSettings * m_pArcExts; + + /** + * This is a pointer to our configuration dialog. + * The dialog itself is created on demand in @ref showDialog. + * It consists of one page per settings group. + */ + KDialogBase * m_pDialog; +}; + +#endif |