QGIS API Documentation  2.10.1-Pisa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qgsfilterlineedit.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfilterlineedit.h
3  ------------------------
4  begin : October 27, 2012
5  copyright : (C) 2012 by Alexander Bruy
6  email : alexander dot bruy at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSFILTERLINEEDIT_H
19 #define QGSFILTERLINEEDIT_H
20 
21 #include <QLineEdit>
22 
23 class QToolButton;
24 
28 class GUI_EXPORT QgsFilterLineEdit : public QLineEdit
29 {
30  Q_OBJECT
31  Q_PROPERTY( QString nullValue READ nullValue WRITE setNullValue )
32 
33  public:
34  QgsFilterLineEdit( QWidget* parent = 0, QString nullValue = QString::null );
35 
36  void setNullValue( QString nullValue ) { mNullValue = nullValue; }
37 
38  QString nullValue() const { return mNullValue; }
39 
45  void setValue( QString value ) { setText( value.isNull() ? mNullValue : value ); }
46 
52  QString value() const { return isNull() ? QString::null : text(); }
53 
59  inline bool isNull() const { return text() == mNullValue; }
60 
61  signals:
62  void cleared();
63 
69  void valueChanged( const QString& value );
70 
71  protected:
72  void mousePressEvent( QMouseEvent* e ) override;
73  void focusInEvent( QFocusEvent* e ) override;
74  void resizeEvent( QResizeEvent* e ) override;
75  void changeEvent( QEvent* e ) override;
76  void paintEvent( QPaintEvent* e ) override;
77 
78  private slots:
79  void clear();
80  void onTextChanged( const QString &text );
81 
82  private:
83  QString mNullValue;
84  QToolButton *btnClear;
85  QString mStyleSheet;
86  bool mFocusInEvent;
87 };
88 
89 #endif // QGSFILTERLINEEDIT_H
void clear()
void setText(const QString &)
virtual void changeEvent(QEvent *ev)
bool isNull() const
QString nullValue() const
QString value() const
Returns the text of this edit with NULL support.
Lineedit with builtin clear button.
void setNullValue(QString nullValue)
void setValue(QString value)
Sets the current text with NULL support.
virtual void paintEvent(QPaintEvent *)
bool isNull() const
Determine if the current text represents Null.
virtual void focusInEvent(QFocusEvent *e)
virtual void resizeEvent(QResizeEvent *event)
bool isNull(const QVariant &v)
virtual void mousePressEvent(QMouseEvent *e)