QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
qgsspinbox.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsspinbox.h
3  --------------------------------------
4  Date : 09.2014
5  Copyright : (C) 2014 Denis Rouzaud
6  Email : [email protected]
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSSPINBOX_H
17 #define QGSSPINBOX_H
18 
19 #include <QSpinBox>
20 #include "qgis_sip.h"
21 #include "qgis_gui.h"
22 
23 class QgsSpinBoxLineEdit;
24 
25 
26 #ifdef SIP_RUN
27 % ModuleHeaderCode
28 // fix to allow compilation with sip 4.7 that for some reason
29 // doesn't add this include to the file where the code from
30 // ConvertToSubClassCode goes.
31 #include <qgsspinbox.h>
32 % End
33 #endif
34 
35 
42 class GUI_EXPORT QgsSpinBox : public QSpinBox
43 {
44 
45 #ifdef SIP_RUN
47  if ( qobject_cast<QgsSpinBox *>( sipCpp ) )
48  sipType = sipType_QgsSpinBox;
49  else
50  sipType = NULL;
51  SIP_END
52 #endif
53 
54  Q_OBJECT
55  Q_PROPERTY( bool showClearButton READ showClearButton WRITE setShowClearButton )
56  Q_PROPERTY( bool clearValue READ clearValue WRITE setClearValue )
57  Q_PROPERTY( bool expressionsEnabled READ expressionsEnabled WRITE setExpressionsEnabled )
58 
59  public:
60 
63  {
67  };
68 
73  explicit QgsSpinBox( QWidget *parent SIP_TRANSFERTHIS = nullptr );
74 
81  void setShowClearButton( bool showClearButton );
82 
87  bool showClearButton() const {return mShowClearButton;}
88 
95  void setExpressionsEnabled( bool enabled );
96 
103  bool expressionsEnabled() const {return mExpressionsEnabled;}
104 
106  void clear() override;
107 
114  void setClearValue( int customValue, const QString &clearValueText = QString() );
115 
121  void setClearValueMode( ClearValueMode mode, const QString &clearValueText = QString() );
122 
127  int clearValue() const;
128 
133  void setLineEditAlignment( Qt::Alignment alignment );
134 
140  void setSpecialValueText( const QString &txt );
141 
142  int valueFromText( const QString &text ) const override;
143  QValidator::State validate( QString &input, int &pos ) const override;
144 
145  protected:
146 
147  void changeEvent( QEvent *event ) override;
148  void paintEvent( QPaintEvent *event ) override;
149  void wheelEvent( QWheelEvent *event ) override;
150  // This is required because private implementation of
151  // QAbstractSpinBoxPrivate may trigger a second
152  // undesired event from the auto-repeat mouse timer
153  void timerEvent( QTimerEvent *event ) override;
154 
155  private slots:
156  void changed( int value );
157 
158  private:
159  int frameWidth() const;
160  bool shouldShowClearForValue( int value ) const;
161 
162  QgsSpinBoxLineEdit *mLineEdit = nullptr;
163 
164  bool mShowClearButton = true;
165  ClearValueMode mClearValueMode = MinimumValue;
166  int mCustomClearValue = 0;
167 
168  bool mExpressionsEnabled = true;
169 
170  // This is required because private implementation of
171  // QAbstractSpinBoxPrivate checks for specialText emptiness
172  // and skips specialText handling if it's empty
173  static QString SPECIAL_TEXT_WHEN_EMPTY;
174 
175  QString stripped( const QString &originalText ) const;
176 
177  friend class TestQgsRangeWidgetWrapper;
178 
179 };
180 
181 #endif // QGSSPINBOX_H
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
ClearValueMode
Behavior when widget is cleared.
Definition: qgsspinbox.h:62
Reset value to maximum()
Definition: qgsspinbox.h:65
Reset value to custom value (see setClearValue() )
Definition: qgsspinbox.h:66
bool showClearButton() const
Returns whether the widget is showing a clear button.
Definition: qgsspinbox.h:87
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value...
Definition: qgsspinbox.h:42
bool expressionsEnabled() const
Returns whether the widget will allow entry of simple expressions, which are evaluated and then disca...
Definition: qgsspinbox.h:103
Reset value to minimum()
Definition: qgsspinbox.h:64
#define SIP_END
Definition: qgis_sip.h:189
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:172