From 889d9cbd71d41b9a117b7eeb74d8d9617253592d Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Fri, 18 Mar 2016 09:12:15 -0500 Subject: [PATCH] Revert "QLineEdit - fix visibility of side widgets" This reverts commit 1c75053c8f79b853a1706784186aaf1f07fe9249. --- ...eedit-fix-visibility-of-side-widgets.patch | 120 ------------------ qt5-qtbase.spec | 10 +- 2 files changed, 1 insertion(+), 129 deletions(-) delete mode 100644 qt5-qtbase-qlineedit-fix-visibility-of-side-widgets.patch diff --git a/qt5-qtbase-qlineedit-fix-visibility-of-side-widgets.patch b/qt5-qtbase-qlineedit-fix-visibility-of-side-widgets.patch deleted file mode 100644 index ca48046..0000000 --- a/qt5-qtbase-qlineedit-fix-visibility-of-side-widgets.patch +++ /dev/null @@ -1,120 +0,0 @@ -diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp -index 6645a37..e24cc8a 100644 ---- a/src/widgets/widgets/qlineedit_p.cpp -+++ b/src/widgets/widgets/qlineedit_p.cpp -@@ -329,7 +329,7 @@ void QLineEditIconButton::actionEvent(QActionEvent *e) - switch (e->type()) { - case QEvent::ActionChanged: { - const QAction *action = e->action(); -- if (isVisible() != action->isVisible()) { -+ if (isVisibleTo(parentWidget()) != action->isVisible()) { - setVisible(action->isVisible()); - if (QLineEdit *le = qobject_cast(parentWidget())) - static_cast(qt_widget_private(le))->positionSideWidgets(); -@@ -433,13 +433,13 @@ void QLineEditPrivate::positionSideWidgets() - QRect widgetGeometry(QPoint(QLineEditIconButton::IconMargin, (contentRect.height() - iconSize.height()) / 2), iconSize); - foreach (const SideWidgetEntry &e, leftSideWidgetList()) { - e.widget->setGeometry(widgetGeometry); -- if (e.widget->isVisible()) -+ if (e.action->isVisible()) - widgetGeometry.moveLeft(widgetGeometry.left() + delta); - } - widgetGeometry.moveLeft(contentRect.width() - iconSize.width() - QLineEditIconButton::IconMargin); - foreach (const SideWidgetEntry &e, rightSideWidgetList()) { - e.widget->setGeometry(widgetGeometry); -- if (e.widget->isVisible()) -+ if (e.action->isVisible()) - widgetGeometry.moveLeft(widgetGeometry.left() - delta); - } - } -diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp -index e6d63ee..1a5acbd 100644 ---- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp -+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp -@@ -4319,10 +4319,10 @@ void tst_QLineEdit::clearButtonVisibleAfterSettingText_QTBUG_45518() - #endif // QT_BUILD_INTERNAL - } - --static inline QIcon sideWidgetTestIcon() -+static inline QIcon sideWidgetTestIcon(Qt::GlobalColor color = Qt::yellow) - { - QImage image(QSize(20, 20), QImage::Format_ARGB32); -- image.fill(Qt::yellow); -+ image.fill(color); - return QIcon(QPixmap::fromImage(image)); - } - -@@ -4360,6 +4360,15 @@ void tst_QLineEdit::sideWidgets() - lineEdit->addAction(iconAction); - } - -+template T *findAssociatedWidget(const QAction *a) -+{ -+ foreach (QWidget *w, a->associatedWidgets()) { -+ if (T *result = qobject_cast(w)) -+ return result; -+ } -+ return Q_NULLPTR; -+} -+ - void tst_QLineEdit::sideWidgetsActionEvents() - { - // QTBUG-39660, verify whether action events are handled by the widget. -@@ -4369,27 +4378,43 @@ void tst_QLineEdit::sideWidgetsActionEvents() - l->addWidget(lineEdit); - l->addSpacerItem(new QSpacerItem(0, 50, QSizePolicy::Ignored, QSizePolicy::Fixed)); - QAction *iconAction = lineEdit->addAction(sideWidgetTestIcon(), QLineEdit::LeadingPosition); -+ QAction *iconAction1 = lineEdit->addAction(sideWidgetTestIcon(Qt::red), QLineEdit::LeadingPosition); -+ QAction *iconAction2 = lineEdit->addAction(sideWidgetTestIcon(Qt::blue), QLineEdit::LeadingPosition); -+ QAction *iconAction3 = lineEdit->addAction(sideWidgetTestIcon(Qt::yellow), QLineEdit::LeadingPosition); -+ iconAction3->setVisible(false); -+ - testWidget.move(300, 300); - testWidget.show(); - QVERIFY(QTest::qWaitForWindowExposed(&testWidget)); - -- QWidget *toolButton = Q_NULLPTR; -- foreach (QWidget *w, iconAction->associatedWidgets()) { -- if (qobject_cast(w)) { -- toolButton = w; -- break; -- } -- } -- QVERIFY(toolButton); -+ QWidget *toolButton1 = findAssociatedWidget(iconAction1); -+ QWidget *toolButton2 = findAssociatedWidget(iconAction2); -+ QWidget *toolButton3 = findAssociatedWidget(iconAction3); -+ -+ QVERIFY(toolButton1); -+ QVERIFY(toolButton2); -+ QVERIFY(toolButton3); -+ -+ QVERIFY(!toolButton3->isVisible()); // QTBUG-48899 , action hidden before show(). -+ -+ QVERIFY(toolButton1->isVisible()); -+ QVERIFY(toolButton1->isEnabled()); -+ -+ QVERIFY(toolButton2->isVisible()); -+ QVERIFY(toolButton2->isEnabled()); -+ -+ const int toolButton1X = toolButton1->x(); -+ const int toolButton2X = toolButton2->x(); -+ QVERIFY(toolButton1X < toolButton2X); // QTBUG-48806, positioned beside each other. - -- QVERIFY(toolButton->isVisible()); -- QVERIFY(toolButton->isEnabled()); -+ iconAction1->setEnabled(false); -+ QVERIFY(!toolButton1->isEnabled()); - -- iconAction->setEnabled(false); -- QVERIFY(!toolButton->isEnabled()); -+ iconAction1->setVisible(false); -+ QVERIFY(!toolButton1->isVisible()); - -- iconAction->setVisible(false); -- QVERIFY(!toolButton->isVisible()); -+ // QTBUG-39660, button 2 takes position of invisible button 1. -+ QCOMPARE(toolButton2->x(), toolButton1X); - } - - Q_DECLARE_METATYPE(Qt::AlignmentFlag) diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index cd891c7..8e332b3 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -44,7 +44,7 @@ Summary: Qt5 - QtBase components Name: qt5-qtbase Version: 5.5.1 -Release: 10%{?dist} +Release: 9%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -97,9 +97,6 @@ Patch52: https://smani.fedorapeople.org/138201.patch # 'make docs' crash on el6, use qSort instead of std::sort Patch100: qtbase-opensource-src-5.4.0-QTBUG-43057.patch -# Fix for https://bugreports.qt.io/browse/QTBUG-4246 -Patch101: qt5-qtbase-qlineedit-fix-visibility-of-side-widgets.patch - # macros, be mindful to keep sync'd with macros.qt5 Source1: macros.qt5 %define _qt5 %{name} @@ -374,8 +371,6 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags %patch100 -p1 -b .QTBUG-43057 %endif -%patch101 -p1 -b .qlineedit-fix-visibility-of-side-widgets - # drop -fexceptions from $RPM_OPT_FLAGS RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'` @@ -937,9 +932,6 @@ fi %changelog -* Tue Jan 05 2016 Jan Grulich - 5.5.1-10 -- QLineEdit - fix visibility handling of side widgets - * Thu Dec 31 2015 Rex Dieter 5.5.1-9 - qt-5.5 segfault on QFileDialog without parent (#1291003)