Version: 9.16.0
QDS_Datum.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 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, or (at your option) any later version.
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.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23#ifndef QDS_DATUM_H
24#define QDS_DATUM_H
25
26#include "QDS.h"
27#include <QPointer>
28#include <QMap>
29#include <QLabel>
30
31class QHBoxLayout;
32class QVBoxLayout;
33class QGridLayout;
34class QValidator;
35
36#include <DDS_DicItem.h>
37
38class QWidget;
39
40class QDS_EXPORT QDS_Datum : public QObject, public QDS
41{
42 Q_OBJECT
43
44 class Wrapper;
45
46public:
47 QDS_Datum( const QString&, QWidget* = 0, const int = All, const QString& = QString() );
48 virtual ~QDS_Datum();
49
50 QString id() const;
51 int type() const;
52 QString label() const;
53 QString units() const;
54 QString filter() const;
55 QString format() const;
56 QString longDescription() const;
57 QString shortDescription() const;
58
59 QString defaultValue() const;
60 QString minimumValue() const;
61 QString maximumValue() const;
62
63 QStringList options() const;
64 QVariant option( const QString& ) const;
65 QString optionString( const QString& ) const;
66 double optionDouble( const QString& ) const;
67 int optionInteger( const QString& ) const;
68
69 virtual QVariant value() const;
70
71 virtual QString stringValue() const;
72 virtual double doubleValue() const;
73 virtual int integerValue() const;
74
75 QString text() const;
76
77 virtual bool isEmpty() const;
78
79 virtual void reset();
80 virtual void clear();
81
82 virtual void setValue( const QVariant& );
83
84 virtual void setStringValue( const QString& );
85 virtual void setDoubleValue( const double );
86 virtual void setIntegerValue( const int );
87
88 virtual bool isEnabled( const int = Control ) const;
89 virtual void setEnabled( const bool, const int );
90
91 void show( const int = All );
92 void hide( const int = All );
93 virtual void setShown( const bool, const int = All );
94
95 QWidget* widget( const int ) const;
96 void setFocus();
97
98 virtual bool isValid( const bool = true,
99 const QString& = QString(),
100 const QString& = QString() ) const;
101 virtual QValidator* validator( const bool = false ) const;
102
103 void addTo( QVBoxLayout* );
104 void addTo( QHBoxLayout* );
105 void addTo( QGridLayout*, const int, const int, const bool = false );
106
107 virtual void setAlignment( const int, const int = Label );
108
109 static QString unitsToText( const QString& );
110 static QString textToUnits( const QString& );
111
112 static QString format( const QString&, const QString&, const bool = false );
113 static QString format( const int, const QString&, const bool = false );
114 static QString format( const double, const QString&, const bool = false );
115 static QString units( const QString& );
116
117 virtual QString getString() const = 0;
118
119 virtual bool eventFilter( QObject*, QEvent* );
120
121 operator QWidget*() const;
122
123 bool isCustomTr() const;
124 void enableCustomTr( const bool );
125
126signals:
128 void paramChanged( QString& );
129
130public slots:
131 void setEnabled( bool );
132
133protected slots:
134 virtual void onParamChanged();
135
136private slots:
137 void onInitDatum();
138 void onDestroyed( QObject* );
139
140protected:
141 QLabel* labelWidget() const;
142 QLabel* unitsWidget() const;
143 QWidget* controlWidget() const;
144
145 Handle(DDS_DicItem) dicItem() const;
147
148 int flags() const;
149
150 void invalidateCache();
151
152 virtual QLabel* createLabel( QWidget* );
153 virtual QLabel* createUnits( QWidget* );
154 virtual QWidget* createControl( QWidget* ) = 0;
155
156 virtual void setString( const QString& ) = 0;
157
158 virtual bool validate( const QString& ) const;
159
160 QString prefix() const;
161 QString suffix() const;
162 virtual QString minValue() const;
163 virtual QString maxValue() const;
164
165 static QString format( const QString&, const int, const int );
166 static QString format( const QString&, const int, const double );
167 static QString format( const QString&, const int, const QString& );
168
169 static QString sprintf( const QString&, const int );
170 static QString sprintf( const QString&, const double );
171 static QString sprintf( const QString&, const QString& );
172
173 virtual void unitSystemChanged( const QString& );
174
175 void initDatum() const;
176
177private:
178 void initialize();
179
180 Wrapper* wrapper( QWidget* ) const;
181 Wrapper* wrapper( const int ) const;
182 int wrapperType( Wrapper* ) const;
183
184 static QString removeAccel( const QString& );
185 static bool isDoubleFormat( const QString& );
186 static QString canonicalFormat( const QString& );
187 static QString canonicalFormat( const QString&, QString& );
188
189private:
190 typedef QPointer<QLabel> GuardedLabel;
191 typedef QPointer<QWidget> GuardedWidget;
192
193private:
194 QString myId;
196 Handle(DDS_DicItem) myDicItem;
197 QMap<int, Wrapper*> myWrapper;
198
202
205
206 bool myInitialised, myTr;
207
208 friend class QDS;
209};
210
211#endif
Handle(TDocStd_Application) CAF_Application
Get OCAF application.
Definition: CAF_Application.cxx:97
#define QDS_EXPORT
Definition: QDS.h:33
bool isValid(const QPolygon *thePoints, const QPoint &theCurrent)
Definition: SVTK_InteractorStyle.cxx:1762
This class provides an information about datum (phisical characteristic parameter).
Definition: DDS_DicItem.h:53
Wrapper for sub widgets.
Definition: QDS_Datum.cxx:42
Base class for all controls using the data dictionary.
Definition: QDS_Datum.h:41
QMap< int, Wrapper * > myWrapper
Definition: QDS_Datum.h:197
QString mySourceValue
Definition: QDS_Datum.h:203
QString myTargetValue
Definition: QDS_Datum.h:204
void paramChanged()
The signal is emitted when the datum value is changed.
bool myInitialised
Definition: QDS_Datum.h:206
GuardedLabel myUnits
Definition: QDS_Datum.h:200
QString myId
Definition: QDS_Datum.h:194
Handle(DDS_DicItem) dicItem() const
virtual QWidget * createControl(QWidget *)=0
Create QDS::Control widget.
GuardedLabel myLabel
Definition: QDS_Datum.h:199
QPointer< QWidget > GuardedWidget
Definition: QDS_Datum.h:191
void setDicItem(const Handle(DDS_DicItem)&)
GuardedWidget myControl
Definition: QDS_Datum.h:201
virtual void setString(const QString &)=0
QPointer< QLabel > GuardedLabel
Definition: QDS_Datum.h:190
virtual QString getString() const =0
Get string value from datum.
Handle(DDS_DicItem) myDicItem
void paramChanged(QString &)
int myFlags
Definition: QDS_Datum.h:195
A set of usefull static functions.
Definition: QDS.h:51
For more information see QT documentation.