1 // Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 // File: QtxPreferenceMgr.h
23 // Author: Sergey TELKOV
25 #ifndef QTXPREFERENCEMGR_H
26 #define QTXPREFERENCEMGR_H
29 #pragma warning( disable:4251 )
40 class QtxPreferenceMgr;
42 class QTX_EXPORT QtxPreferenceItem
47 QtxPreferenceItem( QtxPreferenceItem* = 0 );
48 QtxPreferenceItem( const QString&, QtxPreferenceItem* );
49 QtxPreferenceItem( const QString&, const QString&, const QString&, QtxPreferenceItem* );
50 virtual ~QtxPreferenceItem();
53 virtual int rtti() const;
55 QtxPreferenceItem* rootItem() const;
56 QtxPreferenceItem* parentItem() const;
57 QList<QtxPreferenceItem*> childItems( const bool = false ) const;
61 virtual bool isEmpty() const;
63 void appendItem( QtxPreferenceItem* );
64 void removeItem( QtxPreferenceItem* );
65 void insertItem( QtxPreferenceItem*, QtxPreferenceItem* = 0 );
68 QString title() const;
69 void resource( QString&, QString& ) const;
71 virtual void setIcon( const QIcon& );
72 virtual void setTitle( const QString& );
73 virtual void setResource( const QString&, const QString& );
75 virtual void updateContents();
77 QVariant option( const QString& ) const;
78 void setOption( const QString&, const QVariant& );
80 bool isEvaluateValues() const;
81 void setEvaluateValues( const bool );
83 virtual void store() = 0;
84 virtual void retrieve() = 0;
86 QString resourceValue() const;
87 void setResourceValue( const QString& );
89 QtxPreferenceItem* findItem( const int, const bool = false ) const;
90 QtxPreferenceItem* findItem( const QString&, const bool = false ) const;
91 QtxPreferenceItem* findItem( const QString&, const int, const bool = false ) const;
93 virtual QtxResourceMgr* resourceMgr() const;
94 virtual QtxPreferenceMgr* preferenceMgr() const;
96 virtual void activate();
102 int getInteger( const int = 0 ) const;
103 double getDouble( const double = 0.0 ) const;
104 bool getBoolean( const bool = false ) const;
105 QColor getColor( const QColor& = QColor() ) const;
106 QFont getFont( const QFont& = QFont() ) const;
107 QString getString( const QString& = QString() ) const;
109 void setInteger( const int );
110 void setDouble( const double );
111 void setBoolean( const bool );
112 void setColor( const QColor& );
113 void setFont( const QFont& );
114 void setString( const QString& );
116 virtual void itemAdded( QtxPreferenceItem* );
117 virtual void itemRemoved( QtxPreferenceItem* );
118 virtual void itemChanged( QtxPreferenceItem* );
120 virtual void ensureVisible( QtxPreferenceItem* );
122 void sendItemChanges();
124 virtual void triggerUpdate();
126 virtual QVariant optionValue( const QString& ) const;
127 virtual void setOptionValue( const QString&, const QVariant& );
130 typedef QList<QtxPreferenceItem*> ItemList;
133 static int generateId();
137 QtxPreferenceItem* myParent;
147 class QTX_EXPORT QtxPreferenceMgr : public QtxPreferenceItem
150 QtxPreferenceMgr( QtxResourceMgr* );
151 virtual ~QtxPreferenceMgr();
153 virtual QtxResourceMgr* resourceMgr() const;
154 virtual QtxPreferenceMgr* preferenceMgr() const;
156 QVariant option( const int, const QString& ) const;
157 void setOption( const int, const QString&, const QVariant& );
159 virtual void store();
160 virtual void retrieve();
162 virtual void update();
164 virtual void toBackup();
165 virtual void fromBackup();
168 typedef QMap<QtxPreferenceItem*, QString> ResourceMap;
170 void resourceValues( QMap<int, QString>& ) const;
171 void resourceValues( ResourceMap& ) const;
173 void setResourceValues( QMap<int, QString>& ) const;
174 void setResourceValues( ResourceMap& ) const;
176 void differentValues( const QMap<int, QString>&, const QMap<int, QString>&,
177 QMap<int, QString>&, const bool fromFirst = false ) const;
178 void differentValues( const ResourceMap&, const ResourceMap&,
179 ResourceMap&, const bool fromFirst = false ) const;
181 virtual void changedResources( const ResourceMap& );
184 QtxResourceMgr* myResMgr;
185 ResourceMap myBackup;
189 #pragma warning( default:4251 )