From 0aff623ddf1ccec100addf7d5251d2f3bb0a6880 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Tue, 3 Jun 2014 17:28:09 -0500 Subject: [PATCH] backport selected upstream commits... - Fix visual index lookup (QTBUG-37813) - RGB30 fix (QTBUG-25998,#1018566) - QDBus comparison --- 0010-QDbus-Fix-a-b-comparison.patch | 31 +++++++++++++ ...-lookup-in-QTreeViewPrivate-adjustVi.patch | 43 +++++++++++++++++++ 0034-Fix-raster-graphics-on-X11-RGB30.patch | 33 ++++++++++++++ qt.spec | 20 +++++++-- 4 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 0010-QDbus-Fix-a-b-comparison.patch create mode 100644 0025-Fix-visual-index-lookup-in-QTreeViewPrivate-adjustVi.patch create mode 100644 0034-Fix-raster-graphics-on-X11-RGB30.patch diff --git a/0010-QDbus-Fix-a-b-comparison.patch b/0010-QDbus-Fix-a-b-comparison.patch new file mode 100644 index 0000000..0909ae0 --- /dev/null +++ b/0010-QDbus-Fix-a-b-comparison.patch @@ -0,0 +1,31 @@ +From d0b790dcd02da959cbdfc83d606906cead9e8375 Mon Sep 17 00:00:00 2001 +From: David Faure +Date: Sat, 12 Apr 2014 11:25:28 +0200 +Subject: [PATCH 10/37] QDbus: Fix (!a == b) comparison + +! binds to a, and that is wrong here. + +(cherry picked from qtbase/4b7cd57719a637189696d673b014ae785df669bf) + +Change-Id: I75542a0c27f39fb6e684dedd9925a1f3748d4919 +Reviewed-by: Thiago Macieira +--- + src/dbus/qdbuspendingcall.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/dbus/qdbuspendingcall.cpp b/src/dbus/qdbuspendingcall.cpp +index 06597a6..b7def2e 100644 +--- a/src/dbus/qdbuspendingcall.cpp ++++ b/src/dbus/qdbuspendingcall.cpp +@@ -225,7 +225,7 @@ void QDBusPendingCallPrivate::checkReceivedSignature() + return; // no signature to validate against + + // can't use startsWith here because a null string doesn't start or end with an empty string +- if (!replyMessage.signature().indexOf(expectedReplySignature) == 0) { ++ if (replyMessage.signature().indexOf(expectedReplySignature) != 0) { + QString errorMsg = QLatin1String("Unexpected reply signature: got \"%1\", " + "expected \"%2\""); + replyMessage = QDBusMessage::createError( +-- +1.9.3 + diff --git a/0025-Fix-visual-index-lookup-in-QTreeViewPrivate-adjustVi.patch b/0025-Fix-visual-index-lookup-in-QTreeViewPrivate-adjustVi.patch new file mode 100644 index 0000000..46af0d0 --- /dev/null +++ b/0025-Fix-visual-index-lookup-in-QTreeViewPrivate-adjustVi.patch @@ -0,0 +1,43 @@ +From 6d76e943dab0971d376cebb15fe531efc60622ac Mon Sep 17 00:00:00 2001 +From: Friedemann Kleint +Date: Mon, 5 May 2014 10:59:56 +0200 +Subject: [PATCH 25/37] Fix visual index lookup in + QTreeViewPrivate::adjustViewOptionsForIndex(). + +Determine the visual index by looking up the column of the QModelIndex +in the logicalIndices array instead of looping. + +Task-number: QTBUG-37813 +Change-Id: I5c3c73c67537877b03cdc2c36a52041d99f7f49d +Reviewed-by: David Faure +(cherry picked from qtbase/85aef2dd4b059d2ba9cba4605d9fef87f3e2c4fc) +--- + src/gui/itemviews/qtreeview.cpp | 11 ++--------- + tests/auto/qtreeview/tst_qtreeview.cpp | 27 +++++++++++++++++++++++++++ + 2 files changed, 29 insertions(+), 9 deletions(-) + +diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp +index f506f48..fdf020e 100644 +--- a/src/gui/itemviews/qtreeview.cpp ++++ b/src/gui/itemviews/qtreeview.cpp +@@ -1367,15 +1367,8 @@ void QTreeViewPrivate::adjustViewOptionsForIndex(QStyleOptionViewItemV4 *option, + const int right = (spanning ? header->visualIndex(0) : header->count() - 1 ); + calcLogicalIndices(&logicalIndices, &viewItemPosList, left, right); + +- int columnIndex = 0; +- for (int visualIndex = 0; visualIndex < current.column(); ++visualIndex) { +- int logicalIndex = header->logicalIndex(visualIndex); +- if (!header->isSectionHidden(logicalIndex)) { +- ++columnIndex; +- } +- } +- +- option->viewItemPosition = viewItemPosList.at(columnIndex); ++ const int visualIndex = logicalIndices.indexOf(current.column()); ++ option->viewItemPosition = viewItemPosList.at(visualIndex); + } + + +-- +1.9.3 + diff --git a/0034-Fix-raster-graphics-on-X11-RGB30.patch b/0034-Fix-raster-graphics-on-X11-RGB30.patch new file mode 100644 index 0000000..e26d9f2 --- /dev/null +++ b/0034-Fix-raster-graphics-on-X11-RGB30.patch @@ -0,0 +1,33 @@ +From 01f42466d37dbbdedd0c2386f2b83c3bc7c3873b Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Mon, 26 May 2014 09:25:42 +0200 +Subject: [PATCH 34/37] Fix raster graphics on X11 RGB30 + +The window surface incorrectly assumes that any pixel depth of 24 or +above would be on 8bit/color. This breaks 10bit/color formats like +RGB30. This patch instead make it specifically check for color depth 24 +or 32 which are the two with 8bit/color. + +Task-number: QTBUG-25998 +Change-Id: Id0b7e07bdb64679f8c647158938da12efede9142 +Reviewed-by: Gunnar Sletta +--- + src/gui/painting/qwindowsurface_raster.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gui/painting/qwindowsurface_raster.cpp b/src/gui/painting/qwindowsurface_raster.cpp +index ae5a591..1f2b3fe 100644 +--- a/src/gui/painting/qwindowsurface_raster.cpp ++++ b/src/gui/painting/qwindowsurface_raster.cpp +@@ -256,7 +256,7 @@ void QRasterWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoi + { + int depth = widget->x11Info().depth(); + const QImage &src = d->image->image; +- if (src.format() != QImage::Format_RGB32 || depth < 24 || X11->bppForDepth.value(depth) != 32) { ++ if (src.format() != QImage::Format_RGB32 || (depth != 24 && depth != 32) || X11->bppForDepth.value(depth) != 32) { + Q_ASSERT(src.depth() >= 16); + const QImage sub_src(src.scanLine(br.y()) + br.x() * (uint(src.depth()) / 8), + br.width(), br.height(), src.bytesPerLine(), src.format()); +-- +1.9.3 + diff --git a/qt.spec b/qt.spec index 3ddc592..5742753 100644 --- a/qt.spec +++ b/qt.spec @@ -25,7 +25,7 @@ Summary: Qt toolkit Name: qt Epoch: 1 Version: 4.8.6 -Release: 7%{?dist} +Release: 8%{?dist} # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT @@ -156,10 +156,13 @@ Patch180: qt-aarch64.patch Patch185: qt-everywhere-opensource-src-4.8-ppc64le_support.patch ## upstream git +Patch210: 0010-QDbus-Fix-a-b-comparison.patch +Patch225: 0025-Fix-visual-index-lookup-in-QTreeViewPrivate-adjustVi.patch +Patch234: 0034-Fix-raster-graphics-on-X11-RGB30.patch ## security patches # https://bugreports.qt-project.org/browse/QTBUG-38367 -Patch200: qt-everywhere-opensource-src-4.8.6-QTBUG-38367.patch +Patch300: qt-everywhere-opensource-src-4.8.6-QTBUG-38367.patch # desktop files Source20: assistant.desktop @@ -524,11 +527,16 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags %patch180 -p1 -b .aarch64 %patch185 -p1 -b .ppc64le +# upstream git +%patch210 -p1 -b .0010 +%patch225 -p1 -b .0025 +%patch234 -p1 -b .0034 + # security fixes # regression fixes for the security fixes %patch84 -p1 -b .QTBUG-35459 %patch86 -p1 -b .systemtrayicon -%patch200 -p1 -b .QTBUG-38367 +%patch300 -p1 -b .QTBUG-38367 # drop -fexceptions from $RPM_OPT_FLAGS RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'` @@ -1221,6 +1229,12 @@ fi %changelog +* Tue Jun 03 2014 Rex Dieter 4.8.6-8 +- backport selected upstream commits... +- Fix visual index lookup (QTBUG-37813) +- RGB30 fix (QTBUG-25998,#1018566) +- QDBus comparison + * Wed May 07 2014 Rex Dieter 4.8.6-7 - gcc should be fixed, drop workaround (#1091482)