From 9ce12cc8de940cdd450a28f4bd079acfc3621aa3 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 13 Jun 2013 16:23:44 +0200 Subject: Add side widgets to QLineEdit via QAction. Add QLineEdit::addAction() overloads, allowing for a variable number of icons or user-defined widgets. Change-Id: Id298f18c2f47cc998170357e65cc6098df851aab Done-with: Kevin.Ottens@kdab.com Reviewed-by: Thomas Zander Reviewed-by: Richard J. Moore Reviewed-by: Frederik Gladhorn --- src/widgets/widgets/qlineedit.h | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/widgets/widgets/qlineedit.h') diff --git a/src/widgets/widgets/qlineedit.h b/src/widgets/widgets/qlineedit.h index e2b944314b..3d16e527b6 100644 --- a/src/widgets/widgets/qlineedit.h +++ b/src/widgets/widgets/qlineedit.h @@ -59,12 +59,14 @@ class QCompleter; class QStyleOptionFrame; class QAbstractSpinBox; class QDateTimeEdit; +class QIcon; +class QToolButton; class Q_WIDGETS_EXPORT QLineEdit : public QWidget { Q_OBJECT - Q_ENUMS(EchoMode) + Q_ENUMS(ActionPosition EchoMode) Q_PROPERTY(QString inputMask READ inputMask WRITE setInputMask) Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged USER true) Q_PROPERTY(int maxLength READ maxLength WRITE setMaxLength) @@ -83,8 +85,12 @@ class Q_WIDGETS_EXPORT QLineEdit : public QWidget Q_PROPERTY(bool acceptableInput READ hasAcceptableInput) Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText) Q_PROPERTY(Qt::CursorMoveStyle cursorMoveStyle READ cursorMoveStyle WRITE setCursorMoveStyle) - public: + enum ActionPosition { + LeadingPosition, + TrailingPosition + }; + explicit QLineEdit(QWidget* parent=0); explicit QLineEdit(const QString &, QWidget* parent=0); ~QLineEdit(); @@ -164,6 +170,16 @@ public: void getTextMargins(int *left, int *top, int *right, int *bottom) const; QMargins textMargins() const; +#ifdef Q_NO_USING_KEYWORD + inline void addAction(QAction *action) + { QWidget::addAction(action); } +#else + using QWidget::addAction; +#endif + + void addAction(QAction *action, ActionPosition position); + QAction *addAction(const QIcon &icon, ActionPosition position); + public Q_SLOTS: void setText(const QString &); void clear(); @@ -240,6 +256,7 @@ private: #endif Q_PRIVATE_SLOT(d_func(), void _q_selectionChanged()) Q_PRIVATE_SLOT(d_func(), void _q_updateNeeded(const QRect &)) + Q_PRIVATE_SLOT(d_func(), void _q_textChanged(const QString &)) }; #endif // QT_NO_LINEEDIT -- cgit v1.2.3