Version: 9.16.0
QtxPreferenceMgr.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20// File: QtxPreferenceMgr.h
21// Author: Sergey TELKOV
22//
23#ifndef QTXPREFERENCEMGR_H
24#define QTXPREFERENCEMGR_H
25
26#ifdef WIN32
27#pragma warning( disable:4251 )
28#endif
29
30#include "Qtx.h"
31
32#include <QFont>
33#include <QIcon>
34#include <QColor>
35#include <QVariant>
36
37class QtxResourceMgr;
39
41{
42 class Updater;
43
44public:
46 QtxPreferenceItem( const QString&, QtxPreferenceItem* );
47 QtxPreferenceItem( const QString&, const QString&, const QString&, QtxPreferenceItem* );
48 virtual ~QtxPreferenceItem();
49
50 int id() const;
51 virtual int rtti() const;
52
53 QtxPreferenceItem* rootItem() const;
54 QtxPreferenceItem* parentItem() const;
55 QList<QtxPreferenceItem*> childItems( const bool = false ) const;
56
57 int depth() const;
58 int count() const;
59 virtual bool isEmpty() const;
60
61 void appendItem( QtxPreferenceItem* );
62 void removeItem( QtxPreferenceItem* );
63 void insertItem( QtxPreferenceItem*, QtxPreferenceItem* = 0 );
64
65 QIcon icon() const;
66 QString title() const;
67 void resource( QString&, QString& ) const;
68
69 virtual void setIcon( const QIcon& );
70 virtual void setTitle( const QString& );
71 virtual void setResource( const QString&, const QString& );
72
73 virtual void updateContents();
74
75 QVariant option( const QString& ) const;
76 void setOption( const QString&, const QVariant& );
77
78 bool isEvaluateValues() const;
79 void setEvaluateValues( const bool );
80
81 bool isRestartRequired() const;
82 void setRestartRequired( const bool );
83
84 virtual void store() = 0;
85 virtual void retrieve() = 0;
86 virtual void retrieveDefault();
87
88 QString resourceValue() const;
89 void setResourceValue( const QString& );
90
91 QtxPreferenceItem* findItem( const int, const bool = false ) const;
92 QtxPreferenceItem* findItem( const QString&, const bool = false ) const;
93 QtxPreferenceItem* findItem( const QString&, const int, const bool = false ) const;
94
95 virtual QtxResourceMgr* resourceMgr() const;
96 virtual QtxPreferenceMgr* preferenceMgr() const;
97
98 virtual void activate();
99 void ensureVisible();
100
101 static int RTTI();
102
103protected:
104 int getInteger( const int = 0 ) const;
105 double getDouble( const double = 0.0 ) const;
106 bool getBoolean( const bool = false ) const;
107 QColor getColor( const QColor& = QColor() ) const;
108 QFont getFont( const QFont& = QFont() ) const;
109 QString getString( const QString& = QString() ) const;
110
111 void setInteger( const int );
112 void setDouble( const double );
113 void setBoolean( const bool );
114 void setColor( const QColor& );
115 void setFont( const QFont& );
116 void setString( const QString& );
117
118 virtual void itemAdded( QtxPreferenceItem* );
119 virtual void itemRemoved( QtxPreferenceItem* );
120 virtual void itemChanged( QtxPreferenceItem* );
121
122 virtual void ensureVisible( QtxPreferenceItem* );
123
124 void sendItemChanges();
125
126 virtual void triggerUpdate();
127
128 virtual QVariant optionValue( const QString& ) const;
129 virtual void setOptionValue( const QString&, const QVariant& );
130
131protected:
133
134private:
135 static int generateId();
136
137private:
138 int myId;
141
142 bool myEval;
144 QIcon myIcon;
145 QString myTitle;
146 QString mySection;
147 QString myParameter;
148};
149
151{
152public:
154 virtual ~QtxPreferenceMgr();
155
156 virtual QtxResourceMgr* resourceMgr() const;
157 virtual QtxPreferenceMgr* preferenceMgr() const;
158
159 QVariant option( const int, const QString& ) const;
160 void setOption( const int, const QString&, const QVariant& );
161
162 virtual void store();
163 virtual void retrieve();
164 virtual void retrieveDefault();
165
166 virtual void update();
167
168 virtual void toBackup();
169 virtual void fromBackup();
170
171protected:
172 typedef QMap<QtxPreferenceItem*, QString> ResourceMap;
173
174 void resourceValues( QMap<int, QString>& ) const;
175 void resourceValues( ResourceMap& ) const;
176
177 void setResourceValues( QMap<int, QString>& ) const;
178 void setResourceValues( ResourceMap& ) const;
179
180 void differentValues( const QMap<int, QString>&, const QMap<int, QString>&,
181 QMap<int, QString>&, const bool fromFirst = false ) const;
182 void differentValues( const ResourceMap&, const ResourceMap&,
183 ResourceMap&, const bool fromFirst = false ) const;
184
185 virtual void changedResources( const ResourceMap& );
186
187private:
190};
191
192#ifdef WIN32
193#pragma warning( default:4251 )
194#endif
195
196#endif
#define QTX_EXPORT
Definition: Qtx.h:36
Preference item updater.
Definition: QtxPreferenceMgr.cxx:37
Base class for implementing of all the preference items.
Definition: QtxPreferenceMgr.h:41
QString myTitle
Definition: QtxPreferenceMgr.h:145
bool myEval
Definition: QtxPreferenceMgr.h:142
QtxPreferenceItem * myParent
Definition: QtxPreferenceMgr.h:139
int myId
Definition: QtxPreferenceMgr.h:138
virtual void retrieve()=0
Restore preference item (for example, from the resource file).
QIcon myIcon
Definition: QtxPreferenceMgr.h:144
QString myParameter
Definition: QtxPreferenceMgr.h:147
QString mySection
Definition: QtxPreferenceMgr.h:146
QList< QtxPreferenceItem * > ItemList
Definition: QtxPreferenceMgr.h:132
virtual void store()=0
Save preference item (for example, to the resource file).
ItemList myChildren
Definition: QtxPreferenceMgr.h:140
bool myRestartNeeded
Definition: QtxPreferenceMgr.h:143
Class for managing preferences items.
Definition: QtxPreferenceMgr.h:151
QtxResourceMgr * myResMgr
Definition: QtxPreferenceMgr.h:188
QMap< QtxPreferenceItem *, QString > ResourceMap
Definition: QtxPreferenceMgr.h:172
ResourceMap myBackup
Definition: QtxPreferenceMgr.h:189
Application resources manager.
Definition: QtxResourceMgr.h:53