summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2015-09-25 14:02:04 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2015-09-25 14:02:04 +0200
commita1ad9a74ebb3c556c5f70f7e03be68b09598ac53 (patch)
tree615a96db418219a57a745a5899e39a9ac90744ec /tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
parent6d78b7a0c46ea04f4bb771d960e2f7dff1362341 (diff)
parent462f355e4fb16cc7a1838fa2dda0f763eee58c84 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: src/corelib/io/io.pri src/corelib/io/qdatastream.cpp src/corelib/io/qdatastream.h src/network/socket/qabstractsocket.cpp src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp src/plugins/platforms/cocoa/qcocoaaccessibilityelement.h src/widgets/styles/qgtkstyle.cpp tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/qmimedatabase-cache.pro tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/qmimedatabase-xml.pro tests/auto/dbus/qdbusconnection/qdbusconnection.pro tests/auto/dbus/qdbuspendingcall/tst_qdbuspendingcall.cpp tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp Change-Id: I347549a024eb5bfa986699e0a11f96cc55c797a7
Diffstat (limited to 'tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp')
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp44
1 files changed, 41 insertions, 3 deletions
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index 802c6c3e2c..396dad4fa5 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -306,6 +306,7 @@ private slots:
void clearButton();
void clearButtonVisibleAfterSettingText_QTBUG_45518();
void sideWidgets();
+ void sideWidgetsActionEvents();
void shouldShowPlaceholderText_data();
void shouldShowPlaceholderText();
@@ -4320,6 +4321,13 @@ void tst_QLineEdit::clearButtonVisibleAfterSettingText_QTBUG_45518()
#endif // QT_BUILD_INTERNAL
}
+static inline QIcon sideWidgetTestIcon()
+{
+ QImage image(QSize(20, 20), QImage::Format_ARGB32);
+ image.fill(Qt::yellow);
+ return QIcon(QPixmap::fromImage(image));
+}
+
void tst_QLineEdit::sideWidgets()
{
QWidget testWidget;
@@ -4327,9 +4335,7 @@ void tst_QLineEdit::sideWidgets()
QLineEdit *lineEdit = new QLineEdit(&testWidget);
l->addWidget(lineEdit);
l->addSpacerItem(new QSpacerItem(0, 50, QSizePolicy::Ignored, QSizePolicy::Fixed));
- QImage image(QSize(20, 20), QImage::Format_ARGB32);
- image.fill(Qt::yellow);
- QAction *iconAction = new QAction(QIcon(QPixmap::fromImage(image)), QString(), lineEdit);
+ QAction *iconAction = new QAction(sideWidgetTestIcon(), QString(), lineEdit);
QWidgetAction *label1Action = new QWidgetAction(lineEdit);
label1Action->setDefaultWidget(new QLabel(QStringLiteral("l1")));
QWidgetAction *label2Action = new QWidgetAction(lineEdit);
@@ -4356,6 +4362,38 @@ void tst_QLineEdit::sideWidgets()
lineEdit->addAction(iconAction);
}
+void tst_QLineEdit::sideWidgetsActionEvents()
+{
+ // QTBUG-39660, verify whether action events are handled by the widget.
+ QWidget testWidget;
+ QVBoxLayout *l = new QVBoxLayout(&testWidget);
+ QLineEdit *lineEdit = new QLineEdit(&testWidget);
+ l->addWidget(lineEdit);
+ l->addSpacerItem(new QSpacerItem(0, 50, QSizePolicy::Ignored, QSizePolicy::Fixed));
+ QAction *iconAction = lineEdit->addAction(sideWidgetTestIcon(), QLineEdit::LeadingPosition);
+ testWidget.move(300, 300);
+ testWidget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&testWidget));
+
+ QWidget *toolButton = Q_NULLPTR;
+ foreach (QWidget *w, iconAction->associatedWidgets()) {
+ if (qobject_cast<QToolButton *>(w)) {
+ toolButton = w;
+ break;
+ }
+ }
+ QVERIFY(toolButton);
+
+ QVERIFY(toolButton->isVisible());
+ QVERIFY(toolButton->isEnabled());
+
+ iconAction->setEnabled(false);
+ QVERIFY(!toolButton->isEnabled());
+
+ iconAction->setVisible(false);
+ QVERIFY(!toolButton->isVisible());
+}
+
Q_DECLARE_METATYPE(Qt::AlignmentFlag)
void tst_QLineEdit::shouldShowPlaceholderText_data()
{