Revert "QLineEdit - fix visibility of side widgets"
This reverts commit 1c75053c8f
.
This commit is contained in:
parent
01f6a19d1a
commit
889d9cbd71
@ -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<QLineEdit *>(parentWidget()))
|
|
||||||
static_cast<QLineEditPrivate *>(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 <class T> T *findAssociatedWidget(const QAction *a)
|
|
||||||
+{
|
|
||||||
+ foreach (QWidget *w, a->associatedWidgets()) {
|
|
||||||
+ if (T *result = qobject_cast<T *>(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<QToolButton *>(w)) {
|
|
||||||
- toolButton = w;
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- QVERIFY(toolButton);
|
|
||||||
+ QWidget *toolButton1 = findAssociatedWidget<QToolButton>(iconAction1);
|
|
||||||
+ QWidget *toolButton2 = findAssociatedWidget<QToolButton>(iconAction2);
|
|
||||||
+ QWidget *toolButton3 = findAssociatedWidget<QToolButton>(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)
|
|
@ -44,7 +44,7 @@
|
|||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Version: 5.5.1
|
Version: 5.5.1
|
||||||
Release: 10%{?dist}
|
Release: 9%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
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
|
# 'make docs' crash on el6, use qSort instead of std::sort
|
||||||
Patch100: qtbase-opensource-src-5.4.0-QTBUG-43057.patch
|
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
|
# macros, be mindful to keep sync'd with macros.qt5
|
||||||
Source1: macros.qt5
|
Source1: macros.qt5
|
||||||
%define _qt5 %{name}
|
%define _qt5 %{name}
|
||||||
@ -374,8 +371,6 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
|
|||||||
%patch100 -p1 -b .QTBUG-43057
|
%patch100 -p1 -b .QTBUG-43057
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%patch101 -p1 -b .qlineedit-fix-visibility-of-side-widgets
|
|
||||||
|
|
||||||
# drop -fexceptions from $RPM_OPT_FLAGS
|
# drop -fexceptions from $RPM_OPT_FLAGS
|
||||||
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
|
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
|
||||||
|
|
||||||
@ -937,9 +932,6 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Jan 05 2016 Jan Grulich <jgrulich@redhat.com> - 5.5.1-10
|
|
||||||
- QLineEdit - fix visibility handling of side widgets
|
|
||||||
|
|
||||||
* Thu Dec 31 2015 Rex Dieter <rdieter@fedoraproject.org> 5.5.1-9
|
* Thu Dec 31 2015 Rex Dieter <rdieter@fedoraproject.org> 5.5.1-9
|
||||||
- qt-5.5 segfault on QFileDialog without parent (#1291003)
|
- qt-5.5 segfault on QFileDialog without parent (#1291003)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user