summaryrefslogtreecommitdiffstats
path: root/part/kxeconfiguration.h
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2016-03-26 13:50:43 +0100
committerSlávek Banko <slavek.banko@axis.cz>2016-03-26 13:50:43 +0100
commitd62c8c002c51fb7c36487839eeeb4ac89f044dee (patch)
treebb4d1f5c631ab1f22a3018ba39e6a806035f80fd /part/kxeconfiguration.h
downloadkxmleditor-d62c8c002c51fb7c36487839eeeb4ac89f044dee.tar.gz
kxmleditor-d62c8c002c51fb7c36487839eeeb4ac89f044dee.zip
Initial import of kxmleditor 1.1.4
Diffstat (limited to 'part/kxeconfiguration.h')
-rw-r--r--part/kxeconfiguration.h123
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