summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeva <deva>2010-08-17 08:34:16 +0000
committerdeva <deva>2010-08-17 08:34:16 +0000
commit399906b24e7a98f627418a87b39fa0c959352798 (patch)
tree7f6d2d495987face0a1b9ecbd650b4711138fdcb
parent57c5ca5b7fc3db3ab16d9a1cf2760d114e5685ca (diff)
Make enter/return skip to next (tab) widget.
-rw-r--r--client/test/testlineedit.cc37
-rw-r--r--client/widgets/lineedit.cc2
2 files changed, 38 insertions, 1 deletions
diff --git a/client/test/testlineedit.cc b/client/test/testlineedit.cc
index 577e0da..e8c9e40 100644
--- a/client/test/testlineedit.cc
+++ b/client/test/testlineedit.cc
@@ -2,6 +2,9 @@
#include <QtTest/QtTest>
#include "util.h"
#include "lineedit.h"
+#include <QApplication>
+#include <QWidget>
+#include <QLineEdit>
static QString xml = "<lineedit name=\"mylineedit\"/>\n";
@@ -40,6 +43,40 @@ private slots:
QTest::keyClicks(le.qwidget(), "h");
QCOMPARE(spy.count(), 1);
}
+
+ void tabOut()
+ {
+ QDomDocument doc; doc.setContent(xml);
+ QDomElement e = doc.documentElement();
+ QWidget main;
+ LineEdit le(e, createMacroWindow());
+ le.qwidget()->setParent(&main);
+ QLineEdit qle(&main);
+ main.show();
+
+ QApplication::processEvents();
+
+ QTest::mouseClick(le.qwidget(), Qt::LeftButton);
+ QApplication::processEvents();
+ QCOMPARE(QApplication::focusWidget(), le.qwidget());
+ QTest::keyClick(le.qwidget(), Qt::Key_Enter);
+ QApplication::processEvents();
+ QVERIFY(QApplication::focusWidget() != le.qwidget());
+
+ QTest::mouseClick(le.qwidget(), Qt::LeftButton);
+ QApplication::processEvents();
+ QCOMPARE(QApplication::focusWidget(), le.qwidget());
+ QTest::keyClick(le.qwidget(), Qt::Key_Return);
+ QApplication::processEvents();
+ QVERIFY(QApplication::focusWidget() != le.qwidget());
+
+ QTest::mouseClick(le.qwidget(), Qt::LeftButton);
+ QApplication::processEvents();
+ QCOMPARE(QApplication::focusWidget(), le.qwidget());
+ QTest::keyClick(le.qwidget(), Qt::Key_Tab);
+ QApplication::processEvents();
+ QVERIFY(QApplication::focusWidget() != le.qwidget());
+ }
};
QTEST_MAIN(TestLineEdit)
diff --git a/client/widgets/lineedit.cc b/client/widgets/lineedit.cc
index 9fb5f09..a8ea600 100644
--- a/client/widgets/lineedit.cc
+++ b/client/widgets/lineedit.cc
@@ -103,7 +103,7 @@ bool LineEdit::eventFilter(QObject *, QEvent *event)
if(keyEvent->key() == Qt::Key_Return ||
keyEvent->key() == Qt::Key_Enter) {
QKeyEvent tabevent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier);
- QCoreApplication::sendEvent(this, &tabevent);
+ QCoreApplication::sendEvent(lineedit, &tabevent);
}
}
return false;