summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/widgets/qlineedit.cpp7
-rw-r--r--src/widgets/widgets/qlineedit.h1
-rw-r--r--src/widgets/widgets/qlineedit_p.cpp12
-rw-r--r--src/widgets/widgets/qlineedit_p.h1
4 files changed, 16 insertions, 5 deletions
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp
index 07985cf966..9f1f00ced7 100644
--- a/src/widgets/widgets/qlineedit.cpp
+++ b/src/widgets/widgets/qlineedit.cpp
@@ -1691,8 +1691,11 @@ void QLineEdit::mouseDoubleClickEvent(QMouseEvent* e)
/*!
\fn void QLineEdit::editingFinished()
- This signal is emitted when the Return or Enter key is pressed or
- the line edit loses focus. Note that if there is a validator() or
+ This signal is emitted when the Return or Enter key is pressed, or
+ if the line edit loses focus and its contents have changed since the
+ last time this signal was emitted.
+
+ Note that if there is a validator() or
inputMask() set on the line edit and enter/return is pressed, the
editingFinished() signal will only be emitted if the input follows
the inputMask() and the validator() returns QValidator::Acceptable.
diff --git a/src/widgets/widgets/qlineedit.h b/src/widgets/widgets/qlineedit.h
index f09d62ec78..b4f6641b86 100644
--- a/src/widgets/widgets/qlineedit.h
+++ b/src/widgets/widgets/qlineedit.h
@@ -263,6 +263,7 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_updateNeeded(const QRect &))
Q_PRIVATE_SLOT(d_func(), void _q_textChanged(const QString &))
Q_PRIVATE_SLOT(d_func(), void _q_clearButtonClicked())
+ Q_PRIVATE_SLOT(d_func(), void _q_controlEditingFinished())
};
QT_END_NAMESPACE
diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp
index 9fe5b5af3f..1839941036 100644
--- a/src/widgets/widgets/qlineedit_p.cpp
+++ b/src/widgets/widgets/qlineedit_p.cpp
@@ -193,10 +193,8 @@ void QLineEditPrivate::init(const QString& txt)
q, SLOT(_q_cursorPositionChanged(int,int)));
QObject::connect(control, SIGNAL(selectionChanged()),
q, SLOT(_q_selectionChanged()));
- QObject::connect(control, SIGNAL(accepted()),
- q, SIGNAL(returnPressed()));
QObject::connect(control, SIGNAL(editingFinished()),
- q, SIGNAL(editingFinished()));
+ q, SLOT(_q_controlEditingFinished()));
#ifdef QT_KEYPAD_NAVIGATION
QObject::connect(control, SIGNAL(editFocusChange(bool)),
q, SLOT(_q_editFocusChange(bool)));
@@ -485,6 +483,14 @@ void QLineEditPrivate::_q_clearButtonClicked()
}
}
+void QLineEditPrivate::_q_controlEditingFinished()
+{
+ Q_Q(QLineEdit);
+ edited = false;
+ emit q->returnPressed();
+ emit q->editingFinished();
+}
+
QLineEditPrivate::SideWidgetParameters QLineEditPrivate::sideWidgetParameters() const
{
Q_Q(const QLineEdit);
diff --git a/src/widgets/widgets/qlineedit_p.h b/src/widgets/widgets/qlineedit_p.h
index 049f7a3bdf..936cf2d088 100644
--- a/src/widgets/widgets/qlineedit_p.h
+++ b/src/widgets/widgets/qlineedit_p.h
@@ -233,6 +233,7 @@ public:
#endif
void _q_textChanged(const QString &);
void _q_clearButtonClicked();
+ void _q_controlEditingFinished();
QMargins textMargins; // use effectiveTextMargins() in case of icon.