Salome HOME
Moved some functionality to VTKViewer_Utilities.h
[modules/kernel.git] / src / SALOMEGUI / QAD_Settings.h
1 //  SALOME SALOMEGUI : implementation of desktop and GUI kernel
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
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. 
10 // 
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. 
15 // 
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 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : QAD_Settings.h
25 //  Author : Nicolas REJNERI
26 //  Module : SALOME
27 //  $Header$
28
29 #ifndef QAD_SETTINGS_H
30 #define QAD_SETTINGS_H
31
32 #include <qlist.h>
33 #include <qstring.h>
34 #include <qobject.h>
35
36 /*!
37    Class Setting wraps a single setting with a name and a value.
38 */
39 class QAD_Setting
40 {
41
42 public:
43   /** Constructor. */
44   QAD_Setting() { autoValue=true; }
45   QAD_Setting( QString _name, QString _value, bool _autoValue=true )
46     { name=_name; value=_value; autoValue=_autoValue; }
47
48   ~QAD_Setting() {}
49   
50   /** Sets the name of this setting. */
51   void setName(QString _name)
52     { name=_name; }
53
54   /** Gets the name of this setting. */
55   QString getName()
56     { return name; }
57
58   /** Sets the value of this setting. */
59   void setValue(QString _value)
60     { value=_value; }
61
62   /** Gets the value of the setting. */
63   QString getValue()
64     { return value; }
65
66   /** Sets the auto value flag. */
67   void setAutoValue(bool _av)
68     { autoValue=_av; }
69
70   /** Gets the auto value flag. */
71   bool isAutoValue()
72     { return autoValue; }
73   
74 private:
75   QString name;
76   QString value;
77   bool autoValue;
78 };
79
80
81
82 class QAD_Settings : public QObject
83 {
84   Q_OBJECT
85
86 public:
87   /** Constructor. */
88   QAD_Settings() { settingList.setAutoDelete(true); }
89   QAD_Settings(QString _sectionName,
90                QChar _nameStarter, QChar _nameStopper,
91                QChar _valueStarter, QChar _valueStopper);
92   QAD_Settings(QString _sectionName,
93                QChar _nameStarter, QChar _separator,
94                QChar _valueStopper);
95   QAD_Settings(QChar _nameStopper, QChar _valueStarter,
96                QChar _valueStopper);
97   virtual ~QAD_Settings();
98
99   /** Returns the list of settings as a QList. */
100   QList<QAD_Setting>* getSettingList() { return &settingList; }
101
102   /** Sets the name of the section where this settings are saved. */
103   virtual void    setSectionName(QString name) { sectionName=name; }
104
105   virtual void    clear();
106   virtual void    addSetting(QString _name, QString _value, bool _autoValue=true);
107   virtual void    addSetting(QString _name, int _value, bool _autoValue=true);
108   virtual void    addSetting(QString _name, double _value, bool _autoValue=true);
109   virtual bool    removeSettings(QString name);
110   virtual void    removeNonAutoSettings();
111   virtual QString getSetting(QString name);
112   virtual QString replace(QString str);
113   virtual bool    hasSetting(QString name);
114
115 protected:
116   /** The list which contains all stored settings. */
117   QList<QAD_Setting> settingList;
118
119 private:
120   QString sectionName;
121   QChar nameStarter;
122   QChar nameStopper;
123   QChar valueStarter;
124   QChar valueStopper;
125
126 };
127
128 #endif
129
130
131
132
133