You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kxmleditor/part/kxeconfiguration.h

124 lines
4.1 KiB

/***************************************************************************
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