From: Schantl Stefan Date: Sun, 31 Oct 2010 21:46:16 +0000 (+0100) Subject: qt: Add patches to fix a lot of bugs. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=378d39c4698f795d84c85543b666e1bd07493d16;p=ipfire-3.x.git qt: Add patches to fix a lot of bugs. --- diff --git a/pkgs/core/qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch b/pkgs/core/qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch new file mode 100644 index 000000000..bb2588dae --- /dev/null +++ b/pkgs/core/qt/patches/0002-This-patch-makes-override-redirect-windows-popup-men.patch @@ -0,0 +1,67 @@ +From 339e220e29ff39b86705438b4be6f90e5618d27b Mon Sep 17 00:00:00 2001 +From: Lubos Lunak +Date: Tue, 2 Oct 2007 16:08:32 +0200 +Subject: [PATCH 02/13] This patch makes override-redirect windows (popup menu, dropdown menu, + tooltip, combobox, etc.) also have more window properties like WM_CLASS, + so they can be used when compositing. + +qt-bugs@ issue : none +bugs.kde.org number : none +--- + src/gui/kernel/qwidget_x11.cpp | 21 +++++++++++++++------ + 1 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp +index 79ee8c9..a74a849 100644 +--- a/src/gui/kernel/qwidget_x11.cpp ++++ b/src/gui/kernel/qwidget_x11.cpp +@@ -719,6 +719,11 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO + Q_ASSERT(id); + XChangeWindowAttributes(dpy, id, CWOverrideRedirect | CWSaveUnder, + &wsa); ++ XClassHint class_hint; ++ QByteArray appName = qAppName().toLatin1(); ++ class_hint.res_name = appName.data(); // application name ++ class_hint.res_class = const_cast(QX11Info::appClass()); // application class ++ XSetWMProperties(dpy, id, 0, 0, 0, 0, 0, 0, &class_hint); + } else if (topLevel && !desktop) { // top-level widget + if (!X11->wm_client_leader) + create_wm_client_leader(); +@@ -769,13 +774,21 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO + // set EWMH window types + setNetWmWindowTypes(); + ++ // when we create a toplevel widget, the frame strut should be dirty ++ data.fstrut_dirty = 1; ++ ++ } else { ++ // non-toplevel widgets don't have a frame, so no need to ++ // update the strut ++ data.fstrut_dirty = 0; ++ } ++ ++ if (initializeWindow && (popup || (topLevel && !desktop))) { // properties set on all toplevel windows + // set _NET_WM_PID + long curr_pid = getpid(); + XChangeProperty(dpy, id, ATOM(_NET_WM_PID), XA_CARDINAL, 32, PropModeReplace, + (unsigned char *) &curr_pid, 1); + +- // when we create a toplevel widget, the frame strut should be dirty +- data.fstrut_dirty = 1; + + // declare the widget's window role + if (QTLWExtra *topData = maybeTopData()) { +@@ -791,10 +804,6 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO + XChangeProperty(dpy, id, ATOM(WM_CLIENT_LEADER), + XA_WINDOW, 32, PropModeReplace, + (unsigned char *)&X11->wm_client_leader, 1); +- } else { +- // non-toplevel widgets don't have a frame, so no need to +- // update the strut +- data.fstrut_dirty = 0; + } + + if (initializeWindow && q->internalWinId()) { +-- +1.6.5.1 + diff --git a/pkgs/core/qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch b/pkgs/core/qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch new file mode 100644 index 000000000..4005734be --- /dev/null +++ b/pkgs/core/qt/patches/0004-This-patch-adds-support-for-using-isystem-to-allow-p.patch @@ -0,0 +1,56 @@ +From 86fc0d43cdcf3232ae0e4e6f4f28cf8f1a45ede5 Mon Sep 17 00:00:00 2001 +From: Benjamin Reed +Date: Tue, 19 Feb 2008 17:37:37 +0100 +Subject: [PATCH 04/13] This patch adds support for using -isystem to allow putting an include + directory at the end of the compiler's header search path. + +I don't have the exact output anymore (I've since patched Qt's configure) but +essentially, since I have pcre.h in /opt/kde4-deps/include, it was +conflicting with Qt's (modified) pcre.h in the WebKit bits, since +-I /opt/kde4-deps/include ends up in CXXFLAGS in the generated makefiles, it +comes *before* the specific locations in INCPATH on the compile line, and you +end up with a conflict with the system-installed pcre.h. + +Presumably, if your pcre.h is in /usr/include as on most Linux systems, you +wouldn't notice this issue since /usr/include's already in your include path +and people likely don't pass -I /usr/include to configure. I suspect that on +any platform with a regular, system-installed pcre.h (or clucene headers), +adding -I /usr/include would exhibit this bug, just as a custom-installed +pcre/clucene in another root would. + +qt-bugs@ issue : 199610 +Trolltech task ID : +bugs.kde.org number : +--- + configure | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/configure b/configure +index 2c108ad..610a201 100755 +--- a/configure ++++ b/configure +@@ -927,6 +927,11 @@ while [ "$#" -gt 0 ]; do + VAL=`echo $1 | sed 's,-D,,'` + fi + ;; ++ -isystem) ++ VAR="add_isystempath" ++ shift ++ VAL="$1" ++ ;; + -I?*|-I) + VAR="add_ipath" + if [ "$1" = "-I" ]; then +@@ -1890,6 +1895,9 @@ while [ "$#" -gt 0 ]; do + add_ipath) + I_FLAGS="$I_FLAGS -I\"${VAL}\"" + ;; ++ add_isystempath) ++ I_FLAGS="$I_FLAGS -isystem \"${VAL}\"" ++ ;; + add_lpath) + L_FLAGS="$L_FLAGS -L\"${VAL}\"" + ;; +-- +1.6.5.1 + diff --git a/pkgs/core/qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch b/pkgs/core/qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch new file mode 100644 index 000000000..0386a47e4 --- /dev/null +++ b/pkgs/core/qt/patches/0005-When-tabs-are-inserted-or-removed-in-a-QTabBar.patch @@ -0,0 +1,47 @@ +From 733d1afd03908d695aa8a6518f453b9ff0e5b8a2 Mon Sep 17 00:00:00 2001 +From: Robert Knight +Date: Sun, 20 Apr 2008 16:28:31 +0200 +Subject: [PATCH 05/13] When tabs are inserted or removed in a QTabBar, + QTabBarPrivate::refresh() is called to update the layout. If the + tabbar widget is hidden, this just sets a boolean variable + (layoutDirty) and returns, so the parent widget's layout is not + notified about the possible geometry change. + +Prior to Qt 4.4 this was not a problem because the geometry was +recalculated in QTabBar::sizeHint() if the layoutDirty variable was +set. In Qt 4.4 however the layout caches size hint information in +QWidgetItemV2. Since the cache information is not invalidated, the +layout may end up using out-of-date size hint information to compute +the widget size. + +If the QTabBar is empty when QTabBar::sizeHint() is called, it will +return a size with a height of 0, which will be kept in the cache and +so the tab bar will never be shown. + +This patch fixes the problem by calling updateGeometry() whenever the +tab bar's layout is refreshed. + +qt-bugs@ issue : 208185 +Trolltech task ID : 208349 +bugs.kde.org number : 159014 +--- + src/gui/widgets/qtabbar.cpp | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp +index 419d456..41107a0 100644 +--- a/src/gui/widgets/qtabbar.cpp ++++ b/src/gui/widgets/qtabbar.cpp +@@ -678,8 +678,8 @@ void QTabBarPrivate::refresh() + layoutTabs(); + makeVisible(currentIndex); + q->update(); +- q->updateGeometry(); + } ++ q->updateGeometry(); + } + + /*! +-- +1.6.5.1 + diff --git a/pkgs/core/qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch b/pkgs/core/qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch new file mode 100644 index 000000000..2b552d397 --- /dev/null +++ b/pkgs/core/qt/patches/0012-Add-context-to-tr-calls-in-QShortcut.patch @@ -0,0 +1,70 @@ +From 9eb3560cfd5cd0bc9c7bf79f2c27657ee07b8f95 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Sat, 8 Aug 2009 14:40:25 +0200 +Subject: [PATCH 12/13] Add context to tr calls in QShortcut + +Some languages have special rules for using "+" to concatenate strings and +for example it needs to be Ctrl + Shift instead of Ctrl+Shift, adding +context to these strings helps creating a more correct translation +--- + src/gui/kernel/qkeysequence.cpp | 20 ++++++++++---------- + 1 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp +index 894f663..c17f253 100644 +--- a/src/gui/kernel/qkeysequence.cpp ++++ b/src/gui/kernel/qkeysequence.cpp +@@ -991,10 +991,10 @@ int QKeySequencePrivate::decodeString(const QString &str, QKeySequence::Sequence + + QList modifs; + if (nativeText) { +- modifs << QModifKeyName(Qt::CTRL, QShortcut::tr("Ctrl").toLower().append(QLatin1Char('+'))) +- << QModifKeyName(Qt::SHIFT, QShortcut::tr("Shift").toLower().append(QLatin1Char('+'))) +- << QModifKeyName(Qt::ALT, QShortcut::tr("Alt").toLower().append(QLatin1Char('+'))) +- << QModifKeyName(Qt::META, QShortcut::tr("Meta").toLower().append(QLatin1Char('+'))); ++ modifs << QModifKeyName(Qt::CTRL, QShortcut::tr("Ctrl", "Ctrl key, used for shortcuts").toLower().append(QLatin1Char('+'))) ++ << QModifKeyName(Qt::SHIFT, QShortcut::tr("Shift", "Shift key, used for shortcuts").toLower().append(QLatin1Char('+'))) ++ << QModifKeyName(Qt::ALT, QShortcut::tr("Alt", "Alt key, used for shortcuts").toLower().append(QLatin1Char('+'))) ++ << QModifKeyName(Qt::META, QShortcut::tr("Meta", "Meta key, used for shortcuts").toLower().append(QLatin1Char('+'))); + } + modifs += *gmodifs; // Test non-translated ones last + +@@ -1086,7 +1086,7 @@ QString QKeySequence::encodeString(int key) + static inline void addKey(QString &str, const QString &theKey, QKeySequence::SequenceFormat format) + { + if (!str.isEmpty()) +- str += (format == QKeySequence::NativeText) ? QShortcut::tr("+") ++ str += (format == QKeySequence::NativeText) ? QShortcut::tr("+", "Symbol used to concatenate keys in shortcuts") + : QString::fromLatin1("+"); + str += theKey; + } +@@ -1111,13 +1111,13 @@ QString QKeySequencePrivate::encodeString(int key, QKeySequence::SequenceFormat + { + // On other systems the order is Meta, Control, Alt, Shift + if ((key & Qt::META) == Qt::META) +- s = nativeText ? QShortcut::tr("Meta") : QString::fromLatin1("Meta"); ++ s = nativeText ? QShortcut::tr("Meta", "Meta key, used for shortcuts") : QString::fromLatin1("Meta"); + if ((key & Qt::CTRL) == Qt::CTRL) +- addKey(s, nativeText ? QShortcut::tr("Ctrl") : QString::fromLatin1("Ctrl"), format); ++ addKey(s, nativeText ? QShortcut::tr("Ctrl", "Ctrl key, used for shortcuts") : QString::fromLatin1("Ctrl"), format); + if ((key & Qt::ALT) == Qt::ALT) +- addKey(s, nativeText ? QShortcut::tr("Alt") : QString::fromLatin1("Alt"), format); ++ addKey(s, nativeText ? QShortcut::tr("Alt", "Alt key, used for shortcuts") : QString::fromLatin1("Alt"), format); + if ((key & Qt::SHIFT) == Qt::SHIFT) +- addKey(s, nativeText ? QShortcut::tr("Shift") : QString::fromLatin1("Shift"), format); ++ addKey(s, nativeText ? QShortcut::tr("Shift", "Shift key, used for shortcuts") : QString::fromLatin1("Shift"), format); + } + + +@@ -1132,7 +1132,7 @@ QString QKeySequencePrivate::encodeString(int key, QKeySequence::SequenceFormat + p += QChar((key-0x10000)%400+0xdc00); + } + } else if (key >= Qt::Key_F1 && key <= Qt::Key_F35) { +- p = nativeText ? QShortcut::tr("F%1").arg(key - Qt::Key_F1 + 1) ++ p = nativeText ? QShortcut::tr("F%1", "Fx key, used for shortcuts").arg(key - Qt::Key_F1 + 1) + : QString::fromLatin1("F%1").arg(key - Qt::Key_F1 + 1); + } else if (key) { + int i=0; +-- +1.6.5.1 + diff --git a/pkgs/core/qt/patches/qt b/pkgs/core/qt/patches/qt new file mode 160000 index 000000000..76078aea2 --- /dev/null +++ b/pkgs/core/qt/patches/qt @@ -0,0 +1 @@ +Subproject commit 76078aea2e778defe516b39bd4367dedd4a71ca5 diff --git a/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562049.patch b/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562049.patch new file mode 100644 index 000000000..0e562e4b1 --- /dev/null +++ b/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562049.patch @@ -0,0 +1,15 @@ +diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +--- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-02 07:33:13.000000000 +0530 ++++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-04 13:27:33.000000000 +0530 +@@ -1741,6 +1741,11 @@ static int indic_nextSyllableBoundary(HB + if (state == Halant && uc[pos] == 0x200d /* ZWJ */) + break; + // the control character should be the last char in the item ++ if (state == Consonant && script == HB_Script_Bengali && uc[pos-1] == 0x09B0 && uc[pos] == 0x200d /* ZWJ */) ++ break; ++ if (state == Consonant && script == HB_Script_Kannada && uc[pos-1] == 0x0CB0 && uc[pos] == 0x200d /* ZWJ */) ++ break; ++ // Bengali and Kannada has a special exception for rendering yaphala with ra (to avoid reph) see http://www.unicode.org/faq/indic.html#15 + ++pos; + goto finish; + case Consonant: diff --git a/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562058.patch b/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562058.patch new file mode 100644 index 000000000..ee76927d1 --- /dev/null +++ b/pkgs/core/qt/patches/qt-4.6.3-bn-rendering-bz562058.patch @@ -0,0 +1,12 @@ +diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-30 07:23:12.000000000 +0530 ++++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-22 14:33:33.000000000 +0530 +@@ -37,7 +37,7 @@ static HB_Bool isLetter(HB_UChar16 ucs) + FLAG(HB_Letter_Titlecase) | + FLAG(HB_Letter_Modifier) | + FLAG(HB_Letter_Other); +- return FLAG(HB_GetUnicodeCharCategory(ucs)) & test; ++ return (FLAG(HB_GetUnicodeCharCategory(ucs)) & test) != 0; + } + + static HB_Bool isMark(HB_UChar16 ucs) diff --git a/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz631732.patch b/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz631732.patch new file mode 100644 index 000000000..507f8767b --- /dev/null +++ b/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz631732.patch @@ -0,0 +1,14 @@ +diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +--- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-02 07:33:13.000000000 +0530 ++++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-10 18:37:23.000000000 +0530 +@@ -1779,10 +1779,6 @@ static int indic_nextSyllableBoundary(HB + case Matra: + if (state == Consonant || state == Nukta) + break; +- if (state == Matra) { +- // ### needs proper testing for correct two/three part matras +- break; +- } + // ### not sure if this is correct. If it is, does it apply only to Bengali or should + // it work for all Indic languages? + // the combination Independent_A + Vowel Sign AA is allowed. diff --git a/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz636399.patch b/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz636399.patch new file mode 100644 index 000000000..bf49f3011 --- /dev/null +++ b/pkgs/core/qt/patches/qt-4.6.3-indic-rendering-bz636399.patch @@ -0,0 +1,30 @@ +diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-30 07:23:12.000000000 +0530 ++++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-20 11:40:58.000000000 +0530 +@@ -660,18 +660,18 @@ static const unsigned char indicPosition + None, None, None, None, + + None, None, None, None, +- None, None, None, None, +- None, None, None, None, +- None, None, None, None, ++ None, Below, Below, Below, ++ Below, Below, Below, Below, ++ Below, Below, None, Below, + +- None, None, None, None, +- Below, None, None, None, +- Below, None, None, None, ++ Below, Below, Below, Below, ++ Below, Below, Below, Below, ++ Below, None, Below, Below, + Below, Below, Below, Post, + + Below, None, Below, Below, +- None, None, None, None, +- None, None, None, None, ++ None, Below, Below, Below, ++ Below, Below, None, None, + None, None, Post, Above, + + Post, Below, Below, Below, diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.2-cups.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.2-cups.patch new file mode 100644 index 000000000..e0305e11b --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.2-cups.patch @@ -0,0 +1,84 @@ +diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp +--- qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-11 16:55:22.000000000 +0100 ++++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-28 04:34:16.000000000 +0100 +@@ -569,6 +569,32 @@ + void QPrintDialogPrivate::selectPrinter(QCUPSSupport *cups) + { + options.duplex->setEnabled(cups && cups->ppdOption("Duplex")); ++ ++ if (cups) { ++ const ppd_option_t* duplex = cups->ppdOption("Duplex"); ++ if (duplex) { ++ // copy default ppd duplex to qt dialog ++ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0) ++ options.duplexShort->setChecked(true); ++ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0) ++ options.duplexLong->setChecked(true); ++ else ++ options.noDuplex->setChecked(true); ++ } ++ ++ if (cups->currentPPD()) { ++ // set default color ++ if (cups->currentPPD()->color_device) ++ options.color->setChecked(true); ++ else ++ options.grayscale->setChecked(true); ++ } ++ ++ // set collation ++ const ppd_option_t *collate = cups->ppdOption("Collate"); ++ if (collate) ++ options.collate->setChecked(qstrcmp(collate->defchoice, "True")==0); ++ } + } + #endif + +diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp +--- qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp 2010-02-11 16:55:22.000000000 +0100 ++++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp 2010-02-28 04:55:15.000000000 +0100 +@@ -627,6 +627,44 @@ + && d_ptr->paintEngine->type() != QPaintEngine::MacPrinter) { + setOutputFormat(QPrinter::PdfFormat); + } ++ ++#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) ++ // fill in defaults from ppd file ++ QCUPSSupport cups; ++ ++ int printernum = -1; ++ for (int i = 0; i < cups.availablePrintersCount(); i++) { ++ if (printerName().toLocal8Bit() == cups.availablePrinters()[i].name) ++ printernum = i; ++ } ++ if (printernum >= 0) { ++ cups.setCurrentPrinter(printernum); ++ ++ const ppd_option_t* duplex = cups.ppdOption("Duplex"); ++ if (duplex) { ++ // copy default ppd duplex to qt dialog ++ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0) ++ setDuplex(DuplexShortSide); ++ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0) ++ setDuplex(DuplexLongSide); ++ else ++ setDuplex(DuplexNone); ++ } ++ ++ if (cups.currentPPD()) { ++ // set default color ++ if (cups.currentPPD()->color_device) ++ setColorMode(Color); ++ else ++ setColorMode(GrayScale); ++ } ++ ++ // set collation ++ const ppd_option_t *collate = cups.ppdOption("Collate"); ++ if (collate) ++ setCollateCopies(qstrcmp(collate->defchoice, "True")==0); ++ } ++#endif + } + + /*! diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch new file mode 100644 index 000000000..f0c9eaa94 --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch @@ -0,0 +1,21 @@ +diff -up qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp.glib_eventloop_nullcheck qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp +--- qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp.glib_eventloop_nullcheck 2010-06-01 21:03:15.000000000 -0500 ++++ qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp 2010-06-29 14:58:12.299073784 -0500 +@@ -76,7 +76,7 @@ static gboolean x11EventSourcePrepare(GS + GX11EventSource *source = reinterpret_cast(s); + return (XEventsQueued(X11->display, QueuedAfterFlush) + || (!(source->flags & QEventLoop::ExcludeUserInputEvents) +- && !source->d->queuedUserInputEvents.isEmpty())); ++ && source->d && !source->d->queuedUserInputEvents.isEmpty())); + } + + static gboolean x11EventSourceCheck(GSource *s) +@@ -84,7 +84,7 @@ static gboolean x11EventSourceCheck(GSou + GX11EventSource *source = reinterpret_cast(s); + return (XEventsQueued(X11->display, QueuedAfterFlush) + || (!(source->flags & QEventLoop::ExcludeUserInputEvents) +- && !source->d->queuedUserInputEvents.isEmpty())); ++ && source->d && !source->d->queuedUserInputEvents.isEmpty())); + } + + static gboolean x11EventSourceDispatch(GSource *s, GSourceFunc callback, gpointer user_data) diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch new file mode 100644 index 000000000..32b971372 --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-CVE-2010-1822-crash-svg-image.patch @@ -0,0 +1,26 @@ +diff -up qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp.CVE-2010-1822-crash-svg-image qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp +--- qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp.CVE-2010-1822-crash-svg-image 2010-09-10 11:05:20.000000000 +0200 ++++ qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.cpp 2010-10-25 14:22:06.542771102 +0200 +@@ -86,6 +86,11 @@ RenderObject* SVGGElement::createRendere + return new (arena) RenderSVGTransformableContainer(this); + } + ++bool SVGGElement::rendererIsNeeded(RenderStyle*) ++{ ++ return parentNode() && parentNode()->isSVGElement(); ++} ++ + } + + #endif // ENABLE(SVG) +diff -up qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h.CVE-2010-1822-crash-svg-image qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h +--- qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h.CVE-2010-1822-crash-svg-image 2010-09-10 11:05:21.000000000 +0200 ++++ qt-everywhere-opensource-src-4.7.0/src/3rdparty/webkit/WebCore/svg/SVGGElement.h 2010-10-25 14:28:37.467854695 +0200 +@@ -43,6 +43,7 @@ namespace WebCore { + virtual void parseMappedAttribute(MappedAttribute*); + virtual void svgAttributeChanged(const QualifiedName&); + virtual void synchronizeProperty(const QualifiedName&); ++ virtual bool rendererIsNeeded(RenderStyle*); + virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0); + + virtual RenderObject* createRenderer(RenderArena*, RenderStyle*); diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch new file mode 100644 index 000000000..d517de539 --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-13567-QTreeView.patch @@ -0,0 +1,31 @@ +From 6da6b7099d4e0b49329793e4b90703ec3d868048 Mon Sep 17 00:00:00 2001 +From: Frank Reininghaus +Date: Wed, 22 Sep 2010 10:19:59 +0200 +Subject: [PATCH] QTreeView: do not scroll to top if last item is removed + +When the last item is the current item and is removed, +QTreeViewPrivate::updateScrollBars() is called after QTreeViewPrivate's +viewItems member is cleared. This commit makes sure that viewItems is +restored by calling QTreeView::doItemsLayout() in this case, preventing +that the scroll bar range is set to zero temporarily and the view is +scrolled to the top unexpectedly (this was a regression in 4.7.0: +QTBUG-13567). + +Merge-request: 2481 +Reviewed-by: Olivier Goffart + +diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp +index b797776..40b51fe 100644 +--- a/src/gui/itemviews/qtreeview.cpp ++++ b/src/gui/itemviews/qtreeview.cpp +@@ -3435,6 +3435,10 @@ void QTreeViewPrivate::updateScrollBars() + if (!viewportSize.isValid()) + viewportSize = QSize(0, 0); + ++ if (viewItems.isEmpty()) { ++ q->doItemsLayout(); ++ } ++ + int itemsInViewport = 0; + if (uniformRowHeights) { + if (defaultItemHeight <= 0) diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch new file mode 100644 index 000000000..0b99d08b6 --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-QTBUG-6185.patch @@ -0,0 +1,34 @@ +From 9e9a7bc29319d52c3e563bc2c5282cb7e6890eba Mon Sep 17 00:00:00 2001 +From: Denis Dzyubenko +Date: Wed, 29 Sep 2010 14:02:10 +0200 +Subject: [PATCH] Fixes cursor shape when widget becomes native on X11. + +When a native window handle is created for a widget that has override +cursor set, we should reset the cursor on the parent and set the cursor +on the new window handle. + +Task-number: QTBUG-6185 +Reviewed-by: Olivier Goffart +--- + src/gui/kernel/qwidget_x11.cpp | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp +index e01489f..8d80e10 100644 +--- a/src/gui/kernel/qwidget_x11.cpp ++++ b/src/gui/kernel/qwidget_x11.cpp +@@ -889,8 +889,10 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO + q->setWindowOpacity(maybeTopData()->opacity/255.); + + } +- } else if (q->testAttribute(Qt::WA_SetCursor) && q->internalWinId()) { ++ } else if (q->internalWinId()) { + qt_x11_enforce_cursor(q); ++ if (QWidget *p = q->parentWidget()) // reset the cursor on the native parent ++ qt_x11_enforce_cursor(p); + } + + if (extra && !extra->mask.isEmpty() && q->internalWinId()) +-- +1.6.1 + diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch new file mode 100644 index 000000000..016b3b419 --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch @@ -0,0 +1,19 @@ +diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp.pluginpath qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp +--- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp.pluginpath 2010-05-03 19:43:20.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/WebCore/plugins/PluginDatabase.cpp 2010-06-18 10:02:37.004788646 -0500 +@@ -345,6 +345,7 @@ Vector PluginDatabase::defaultPl + paths.append("/usr/lib/firefox/plugins"); + paths.append("/usr/lib64/browser-plugins"); + paths.append("/usr/lib/browser-plugins"); ++ paths.append("/usr/lib/mozilla/plugins-wrapped"); + paths.append("/usr/lib/mozilla/plugins"); + paths.append("/usr/local/netscape/plugins"); + paths.append("/opt/mozilla/plugins"); +@@ -355,6 +356,7 @@ Vector PluginDatabase::defaultPl + paths.append("/usr/lib/netscape/plugins-libc5"); + paths.append("/usr/lib/netscape/plugins-libc6"); + paths.append("/usr/lib64/netscape/plugins"); ++ paths.append("/usr/lib64/mozilla/plugins-wrapped"); + paths.append("/usr/lib64/mozilla/plugins"); + paths.append("/usr/lib/nsbrowser/plugins"); + paths.append("/usr/lib64/nsbrowser/plugins"); diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch new file mode 100644 index 000000000..1eedf83f6 --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch @@ -0,0 +1,61 @@ +diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390x qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +--- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390x 2010-06-16 13:54:50.000000000 +0200 ++++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2010-06-16 13:53:43.000000000 +0200 +@@ -179,6 +179,18 @@ + #define WTF_CPU_SPARC 1 + #endif + ++/* CPU(S390X) - S390 64-bit */ ++#if defined(__s390x__) ++#define WTF_CPU_S390X 1 ++#define WTF_CPU_BIG_ENDIAN 1 ++#endif ++ ++/* CPU(S390) - S390 32-bit */ ++#if defined(__s390__) ++#define WTF_CPU_S390 1 ++#define WTF_CPU_BIG_ENDIAN 1 ++#endif ++ + /* CPU(X86) - i386 / x86 32-bit */ + #if defined(__i386__) \ + || defined(i386) \ +@@ -860,7 +872,7 @@ + #endif + + #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64) +-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) ++#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(S390X) + #define WTF_USE_JSVALUE64 1 + #elif CPU(ARM) || CPU(PPC64) + #define WTF_USE_JSVALUE32 1 +diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h.s390x qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h +--- qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h.s390x 2010-06-16 13:49:00.000000000 +0200 ++++ qt-everywhere-opensource-src-4.7.0-beta1/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h 2010-06-16 13:50:01.000000000 +0200 +@@ -169,6 +169,18 @@ + #define WTF_CPU_SPARC 1 + #endif + ++/* CPU(S390X) - S390 64-bit */ ++#if defined(__s390x__) ++#define WTF_CPU_S390X 1 ++#define WTF_CPU_BIG_ENDIAN 1 ++#endif ++ ++/* CPU(S390) - S390 32-bit */ ++#if defined(__s390__) ++#define WTF_CPU_S390 1 ++#define WTF_CPU_BIG_ENDIAN 1 ++#endif ++ + /* CPU(X86) - i386 / x86 32-bit */ + #if defined(__i386__) \ + || defined(i386) \ +@@ -874,6 +886,7 @@ + #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \ + || (CPU(IA64) && !CPU(IA64_32)) \ + || CPU(ALPHA) \ ++ || CPU(S390X) \ + || CPU(SPARC64) + #define WTF_USE_JSVALUE64 1 + #elif CPU(ARM) || CPU(PPC64) || CPU(MIPS) diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch new file mode 100644 index 000000000..09670c104 --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta1-uic_multilib.patch @@ -0,0 +1,36 @@ +diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp +--- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp.uic_multilib 2010-05-03 19:43:25.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/embed.cpp 2010-06-25 14:11:21.815474310 -0500 +@@ -152,7 +152,7 @@ void Ui3Reader::embed(const char *projec + for ( it = images.begin(); it != images.end(); ++it ) + out << "** " << *it << "\n"; + out << "**\n"; +- out << "** Created: " << QDateTime::currentDateTime().toString() << "\n"; ++ out << "** Created: " << "\n"; + out << "** by: The User Interface Compiler for Qt version " << QT_VERSION_STR << "\n"; + out << "**\n"; + out << "** WARNING! All changes made in this file will be lost!\n"; +diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp +--- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp.uic_multilib 2010-05-03 19:43:25.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic3/uic.cpp 2010-06-25 14:11:32.910460623 -0500 +@@ -146,7 +146,7 @@ void Uic::writeCopyrightHeader(DomUI *ui + out << "/********************************************************************************\n"; + out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n"; + out << "**\n"; +- out << "** Created: " << QDateTime::currentDateTime().toString() << "\n"; ++ out << "** Created: " << "\n"; + out << "** " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR)); + out << "**\n"; + out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n"; +diff -up qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp +--- qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp.uic_multilib 2010-05-03 19:43:25.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta1/src/tools/uic/uic.cpp 2010-06-25 14:10:45.360711498 -0500 +@@ -139,7 +139,7 @@ void Uic::writeCopyrightHeader(DomUI *ui + out << "/********************************************************************************\n"; + out << "** Form generated from reading UI file '" << QFileInfo(opt.inputFile).fileName() << "'\n"; + out << "**\n"; +- out << "** Created: " << QDateTime::currentDateTime().toString() << "\n"; ++ out << "** Created: " << "\n"; + out << "** " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR)); + out << "**\n"; + out << "** WARNING! All changes made in this file will be lost when recompiling UI file!\n"; diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch new file mode 100644 index 000000000..822ace87f --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-kde4_plugins.patch @@ -0,0 +1,19 @@ +diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp.kde4_plugins qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp +--- qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp.kde4_plugins 2010-06-29 20:53:15.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta2/src/corelib/kernel/qcoreapplication.cpp 2010-07-08 08:24:12.714604479 -0500 +@@ -2262,6 +2262,15 @@ QStringList QCoreApplication::libraryPat + if (!app_libpaths->contains(installPathPlugins)) + app_libpaths->append(installPathPlugins); + } ++ ++ // hack in support for kde4 plugin paths -- Rex ++ QString kde4PathPlugins = QLibraryInfo::location(QLibraryInfo::LibrariesPath) + QLatin1String("/kde4/plugins"); ++ if (QFile::exists(kde4PathPlugins)) { ++ // Make sure we convert from backslashes to slashes. ++ // kde4PathPlugins = QDir(kde4PathPlugins).canonicalPath(); ++ if (!app_libpaths->contains(kde4PathPlugins)) ++ app_libpaths->append(kde4PathPlugins); ++ } + #endif + + // If QCoreApplication is not yet instantiated, diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch new file mode 100644 index 000000000..47c066b5f --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-mysql_config.patch @@ -0,0 +1,19 @@ +diff -up qt-everywhere-opensource-src-4.7.0-beta2/configure.mysql_config qt-everywhere-opensource-src-4.7.0-beta2/configure +--- qt-everywhere-opensource-src-4.7.0-beta2/configure.mysql_config 2010-06-29 20:53:10.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta2/configure 2010-07-08 08:30:32.148864934 -0500 +@@ -4849,8 +4849,15 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do + [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config` + if [ -x "$CFG_MYSQL_CONFIG" ]; then + QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null` ++ $CFG_MYSQL_CONFIG --pkglibdir &>/dev/null && \ ++ QT_MYSQL_PKGLIBDIR=`$CFG_MYSQL_CONFIG --pkglibdir 2>/dev/null` ++ if [ -n "$QT_MYSQL_PKGLIBDIR" ]; then ++ QT_LFLAGS_MYSQL_R="-L$QT_MYSQL_PKGLIBDIR -lmysqlclient_r" ++ QT_LFLAGS_MYSQL="-L$QT_MYSQL_PKGLIBDIR -lmysqlclient" ++ else + QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null` + QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null` ++ fi + QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null` + QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1` + fi diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch new file mode 100644 index 000000000..e5ef6a02e --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-beta2-phonon_servicesfile.patch @@ -0,0 +1,40 @@ +diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop +--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop.servicesfile 2010-06-29 20:53:12.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/phonon/gstreamer/gstreamer.desktop 2010-07-08 08:25:50.419855085 -0500 +@@ -2,7 +2,7 @@ + Type=Service + X-KDE-ServiceTypes=PhononBackend + MimeType=application/x-annodex;video/quicktime;video/x-quicktime;audio/x-m4a;application/x-quicktimeplayer;video/mkv;video/msvideo;video/x-msvideo;video/x-flic;audio/x-aiff;audio/aiff;audio/x-pn-aiff;audio/x-realaudio;audio/basic;audio/x-basic;audio/x-pn-au;audio/x-8svx;audio/8svx;audio/x-16sv;audio/168sv;image/x-ilbm;image/ilbm;video/x-anim;video/anim;image/png;image/x-png;video/mng;video/x-mng;audio/x-ogg;audio/x-speex+ogg;application/ogg;application/ogg;audio/vnd.rn-realaudio;audio/x-pn-realaudio-plugin;audio/x-real-audio;application/vnd.rn-realmedia;video/mpeg;video/x-mpeg;audio/x-wav;audio/wav;audio/x-pn-wav;audio/x-pn-windows-acm;audio/mpeg2;audio/x-mpeg2;audio/mpeg3;audio/x-mpeg3;audio/mpeg;audio/x-mpeg;x-mpegurl;audio/x-mpegurl;audio/mp3;audio/mpeg; +-X-KDE-Library=phonon_gstreamer ++X-KDE-Library=libphonon_gstreamer + X-KDE-PhononBackendInfo-InterfaceVersion=1 + X-KDE-PhononBackendInfo-Version=0.1 + X-KDE-PhononBackendInfo-Website=http://gstreamer.freedesktop.org/ +diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro +--- qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro.servicesfile 2010-06-29 20:53:13.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta2/src/phonon/phonon.pro 2010-07-08 08:26:58.307612257 -0500 +@@ -122,6 +122,11 @@ contains(QT_CONFIG, dbus) { + DEFINES += QT_NO_DBUS + } + ++# install dbus service file ++sources.files = $$PHONON_DIR/org.kde.Phonon.AudioOutput.xml ++sources.path = /usr/share/dbus-1/interfaces ++INSTALLS += sources ++ + contains(QT_CONFIG, reduce_exports): CONFIG += hide_symbols + + unix:!isEmpty(QT_CFLAGS_PULSEAUDIO) { +diff -up qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro.servicesfile qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro +--- qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro.servicesfile 2010-06-29 20:53:14.000000000 -0500 ++++ qt-everywhere-opensource-src-4.7.0-beta2/src/plugins/phonon/gstreamer/gstreamer.pro 2010-07-08 08:25:50.387854526 -0500 +@@ -64,6 +64,8 @@ SOURCES += $$PHONON_GSTREAMER_DIR/abstra + } + + target.path = $$[QT_INSTALL_PLUGINS]/phonon_backend +-INSTALLS += target ++services.files = $$PHONON_GSTREAMER_DIR/gstreamer.desktop ++services.path = /usr/share/kde4/services/phononbackends ++INSTALLS += target services + + include(../../qpluginbase.pri) diff --git a/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch new file mode 100644 index 000000000..910e15f10 --- /dev/null +++ b/pkgs/core/qt/patches/qt-everywhere-opensource-src-4.7.0-bpp24.patch @@ -0,0 +1,15 @@ +diff -up qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp.me qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp +--- qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp.me 2010-10-15 22:04:09.000000000 +0200 ++++ qt-everywhere-opensource-src-4.7.0/src/gui/image/qpixmap_x11.cpp 2010-10-15 22:04:18.000000000 +0200 +@@ -900,9 +900,9 @@ void QX11PixmapData::fromImage(const QIm + case BPP24_888: // 24 bit MSB + CYCLE( + for (int x=0; x