1 // File: QtxResourceEdit.h
2 // Author: Sergey TELKOV
4 #ifndef QTXRESOURCEEDIT_H
5 #define QTXRESOURCEEDIT_H
8 #pragma warning( disable:4251 )
20 class QTX_EXPORT QtxResourceEdit
26 QtxResourceEdit( QtxResourceMgr* );
27 virtual ~QtxResourceEdit();
29 QtxResourceMgr* resourceMgr() const;
31 virtual int addItem( const QString& label, const int pId = -1, const int = -1,
32 const QString& section = QString::null,
33 const QString& param = QString::null );
35 QVariant itemProperty( const int, const QString& ) const;
36 virtual void setItemProperty( const int, const QString&, const QVariant& );
38 void resource( const int, QString&, QString& ) const;
41 virtual void retrieve();
43 virtual void update();
45 virtual void toBackup();
46 virtual void fromBackup();
49 Item* item( const int ) const;
50 Item* item( const QString& ) const;
51 Item* item( const QString&, const int ) const;
53 virtual Item* createItem( const QString&, const int ) = 0;
55 void resourceValues( QMap<int, QString>& ) const;
56 void resourceValues( QMap<Item*, QString>& ) const;
58 void setResourceValues( QMap<int, QString>& ) const;
59 void setResourceValues( QMap<Item*, QString>& ) const;
61 void differentValues( const QMap<int, QString>&, const QMap<int, QString>&,
62 QMap<int, QString>&, const bool fromFirst = false ) const;
63 void differentValues( const QMap<Item*, QString>&, const QMap<Item*, QString>&,
64 QMap<Item*, QString>&, const bool fromFirst = false ) const;
66 virtual void changedResources( const QMap<Item*, QString>& );
68 virtual void itemAdded( Item* );
69 virtual void itemRemoved( Item* );
71 void childItems( QPtrList<Item>& ) const;
74 void removeItem( Item* );
75 Item* createItem( const QString&, const int, const int );
78 typedef QMap<int, Item*> ItemMap;
82 QtxResourceMgr* myResMgr;
83 QMap<Item*, QString> myBackup;
84 QPtrList<Item> myChildren;
86 friend class QtxResourceEdit::Item;
90 Class: QtxResourceEditor::Item
91 Descr: Class for incapsulation of one preference item
94 class QtxResourceEdit::Item
97 Item( QtxResourceEdit*, Item* = 0 );
101 virtual int type() const = 0;
103 Item* parentItem() const;
104 void childItems( QPtrList<Item>& ) const;
106 virtual bool isEmpty() const;
108 QString title() const;
109 void resource( QString&, QString& ) const;
111 virtual void setTitle( const QString& );
112 virtual void setResource( const QString&, const QString& );
114 virtual void update();
116 QVariant property( const QString& ) const;
117 virtual void setProperty( const QString&, const QVariant& );
119 virtual void store() = 0;
120 virtual void retrieve() = 0;
122 virtual Item* createItem( const QString&, const int ) = 0;
124 QString resourceValue() const;
125 void setResourceValue( const QString& );
127 virtual void insertChild( Item* );
128 virtual void removeChild( Item* );
131 QtxResourceMgr* resourceMgr() const;
132 QtxResourceEdit* resourceEdit() const;
134 int getInteger( const int = 0 ) const;
135 double getDouble( const double = 0.0 ) const;
136 bool getBoolean( const bool = false ) const;
137 QColor getColor( const QColor& = QColor() ) const;
138 QFont getFont( const QFont& = QFont() ) const;
139 QString getString( const QString& = QString::null ) const;
141 void setInteger( const int );
142 void setDouble( const double );
143 void setBoolean( const bool );
144 void setColor( const QColor& );
145 void setFont( const QFont& );
146 void setString( const QString& );
148 Item* item( const int ) const;
149 Item* item( const QString& ) const;
150 Item* item( const QString&, const int ) const;
153 typedef QPtrList<Item> ItemList;
154 typedef QPtrListIterator<Item> ItemListIterator;
157 static int generateId();
165 QString myResSection;
166 QString myResParameter;
168 QtxResourceEdit* myEdit;
172 #pragma warning( default:4251 )