diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 47d455dd55be855e4cc691c32f687f723d9247ee (patch) | |
tree | 52e236aaa2576bdb3840ebede26619692fed6d7d /kpovmodeler/pmviewbase.h | |
download | tdegraphics-47d455dd55be855e4cc691c32f687f723d9247ee.tar.gz tdegraphics-47d455dd55be855e4cc691c32f687f723d9247ee.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegraphics@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kpovmodeler/pmviewbase.h')
-rw-r--r-- | kpovmodeler/pmviewbase.h | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/kpovmodeler/pmviewbase.h b/kpovmodeler/pmviewbase.h new file mode 100644 index 00000000..cce59922 --- /dev/null +++ b/kpovmodeler/pmviewbase.h @@ -0,0 +1,128 @@ +/* +************************************************************************** + description + -------------------- + copyright : (C) 2003 by Andreas Zehender + email : zehender@kde.org +************************************************************************** + +************************************************************************** +* * +* 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 PMVIEWBASE_H +#define PMVIEWBASE_H + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <qwidget.h> +#include <qstring.h> + +class QDomElement; + +/** + * This class stores the view configuration for one view. + * + * Reimplement this class for each view type that has to store + * additional values. + * + * Created, loaded from and saved to the xml config by the corresponding + * @ref PMViewTypeFactory factory class. + */ +class PMViewOptions +{ +public: + /** + * Returns a deep copy + */ + virtual PMViewOptions* copy( ) const = 0; + /** + * Returns the identifier for the view type. Has to be equal + * to @ref PMViewBase::viewType for the corresponding view type. + */ + virtual QString viewType( ) const = 0; + /** + * Loads the data from the xml element + */ + virtual void loadData( QDomElement& e ) = 0; + /** + * Saves the data from to xml element + */ + virtual void saveData( QDomElement& e ) = 0; +}; + +/** + * Base class for configuration widgets for view types + * for the layout settings dialog page + */ +class PMViewOptionsWidget : public QWidget +{ + Q_OBJECT +public: + /** + * Default constructor + */ + PMViewOptionsWidget( QWidget* parent, const char* name = 0 ) + : QWidget( parent, name ) + { + } + +signals: + /** + * Emitted when the view type description has changed + */ + void viewTypeDescriptionChanged( ); +}; + +/** + * Interface for views. + * + * Each view type has to implement this interface. Handles the + * config loading and saving + */ +class PMViewBase : public QWidget +{ + Q_OBJECT +public: + /** + * Default constructor + */ + PMViewBase( QWidget* parent, const char* name = 0, WFlags f = 0 ) + : QWidget( parent, name, f ) + { + } + /** + * Returns the identifier for the view type. Has to be unique + * for all view types. + */ + virtual QString viewType( ) const = 0; + /** + * Returns a i18n'ed description + */ + virtual QString description( ) const = 0; + /** + * Restores the view configuration + * + * Reimplement this function if the view type has to + * restore additional values. + * @see PMViewOptions + */ + virtual void restoreViewConfig( PMViewOptions* ) { } + /** + * Saves the view configuration + * + * Reimplement this function if the view type has to + * restore additional values. + * @see PMViewOptions + */ + virtual void saveViewConfig( PMViewOptions* ) const { } +}; + +#endif |