summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-06-13 16:23:44 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-08-06 08:19:38 +0200
commit9ce12cc8de940cdd450a28f4bd079acfc3621aa3 (patch)
treeca07f5b57179b58caae43f0297be4f4d9834d8e5 /tests
parentc207724c9bb8e205e756086950063cc91656e401 (diff)
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 <zander@kde.org> Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index ae3fefc45a..cd715b7b06 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -46,6 +46,9 @@
#include "qstringlist.h"
#include "qstyle.h"
#include "qvalidator.h"
+#include "qwidgetaction.h"
+#include "qimage.h"
+#include "qicon.h"
#include "qcompleter.h"
#include "qstandarditemmodel.h"
#include <qpa/qplatformtheme.h>
@@ -61,8 +64,12 @@
#include <private/qlineedit_p.h>
#include <private/qwidgetlinecontrol_p.h>
#include <qmenu.h>
+#include <qlabel.h>
#include <qlayout.h>
#include <qspinbox.h>
+#include <qlistview.h>
+#include <qstringlistmodel.h>
+#include <qsortfilterproxymodel.h>
#include <qdebug.h>
#include "qcommonstyle.h"
@@ -290,6 +297,8 @@ private slots:
void undoRedoAndEchoModes_data();
void undoRedoAndEchoModes();
+ void sideWidgets();
+
protected slots:
void editingFinished();
@@ -4048,5 +4057,39 @@ void tst_QLineEdit::undoRedoAndEchoModes()
QCOMPARE(testWidget->text(), expected.at(2));
}
+void tst_QLineEdit::sideWidgets()
+{
+ 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));
+ QImage image(QSize(20, 20), QImage::Format_ARGB32);
+ image.fill(Qt::yellow);
+ QAction *iconAction = new QAction(QIcon(QPixmap::fromImage(image)), QString(), lineEdit);
+ QWidgetAction *label1Action = new QWidgetAction(lineEdit);
+ label1Action->setDefaultWidget(new QLabel(QStringLiteral("l1")));
+ QWidgetAction *label2Action = new QWidgetAction(lineEdit);
+ label2Action->setDefaultWidget(new QLabel(QStringLiteral("l2")));
+ QWidgetAction *label3Action = new QWidgetAction(lineEdit);
+ label3Action->setDefaultWidget(new QLabel(QStringLiteral("l3")));
+ lineEdit->addAction(iconAction, QLineEdit::LeadingPosition);
+ lineEdit->addAction(label2Action, QLineEdit::LeadingPosition);
+ lineEdit->addAction(label1Action, QLineEdit::TrailingPosition);
+ lineEdit->addAction(label3Action, QLineEdit::TrailingPosition);
+ testWidget.move(300, 300);
+ testWidget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&testWidget));
+ // Arbitrarily add/remove actions, trying to detect crashes. Add QTRY_VERIFY(false) to view the result.
+ delete label3Action;
+ lineEdit->removeAction(label2Action);
+ lineEdit->removeAction(iconAction);
+ lineEdit->removeAction(label1Action);
+ lineEdit->removeAction(iconAction);
+ lineEdit->removeAction(label1Action);
+ lineEdit->addAction(iconAction);
+ lineEdit->addAction(iconAction);
+}
+
QTEST_MAIN(tst_QLineEdit)
#include "tst_qlineedit.moc"