From ec0e3e5952df19e1ff801204f0f10b2037cac236 Mon Sep 17 00:00:00 2001 From: alihanozturk Date: Tue, 1 Sep 2015 21:50:32 +0300 Subject: [PATCH] qt:delete --- desktop/toolkit/qt/actions.py | 181 -- desktop/toolkit/qt/files/CVE-2014-0190.patch | 32 - .../toolkit/qt/files/data/assistant.desktop | 136 -- desktop/toolkit/qt/files/data/assistant.png | Bin 15052 -> 0 bytes .../toolkit/qt/files/data/designer.desktop | 132 -- desktop/toolkit/qt/files/data/designer.png | Bin 2302 -> 0 bytes .../qt/files/data/hi128-app-qt4-logo.png | Bin 16119 -> 0 bytes .../qt/files/data/hi48-app-qt4-logo.png | Bin 3307 -> 0 bytes .../toolkit/qt/files/data/linguist.desktop | 128 -- desktop/toolkit/qt/files/data/linguist.png | Bin 14785 -> 0 bytes .../qt/files/data/phonon-gstreamer.svg | 54 - .../toolkit/qt/files/data/qdbusviewer.desktop | 11 - .../toolkit/qt/files/data/qtconfig.desktop | 9 - desktop/toolkit/qt/files/data/qtdemo.desktop | 10 - .../qt/files/fedora/qt-cupsEnumDests.patch | 238 --- ...everywhere-opensource-src-4.6.2-cups.patch | 84 - ...e-src-4.6.3-glib_eventloop_nullcheck.patch | 69 - ...ere-opensource-src-4.8.0-QTBUG-22037.patch | 41 - ...ource-src-4.8.0-tp-multilib-optflags.patch | 36 - ...ource-src-4.8.1-qt3support_debuginfo.patch | 10 - ...where-opensource-src-4.8.3-no_Werror.patch | 12 - ...8.4-qmake_pkgconfig_requires_private.patch | 16 - ...ere-opensource-src-4.8.5-QTBUG-14467.patch | 24 - ...ere-opensource-src-4.8.5-QTBUG-21900.patch | 84 - ...ere-opensource-src-4.8.5-QTBUG-35459.patch | 12 - ...here-opensource-src-4.8.5-QTBUG-4862.patch | 29 - ...re-opensource-src-4.8.5-mysql_config.patch | 19 - ....5-qgtkstyle_disable_gtk_theme_check.patch | 22 - ...-opensource-src-4.8.5-qt_plugin_path.patch | 19 - ...rce-src-4.8.5-tds_no_strict_aliasing.patch | 12 - ...re-opensource-src-4.8.5-uic_multilib.patch | 28 - ...ensource-src-4.8.5-webcore_debuginfo.patch | 16 - ...ere-opensource-src-4.8.6-QTBUG-34614.patch | 95 -- ...ere-opensource-src-4.8.6-QTBUG-37380.patch | 64 - ...ere-opensource-src-4.8.6-QTBUG-38585.patch | 13 - ...rce-src-4.5.0-fix-qatomic-inline-asm.patch | 50 - ...source-src-4.5.1-enable_ft_lcdfilter.patch | 12 - desktop/toolkit/qt/files/mkspecs.patch | 54 - ...001-Don-t-crash-on-broken-GIF-images.patch | 42 - .../qt/files/opensuse/0180-window-role.diff | 96 -- .../0188-fix-moc-parser-same-name-header.diff | 37 - .../0191-listview-alternate-row-colors.diff | 24 - .../opensuse/0195-compositing-properties.diff | 60 - ...nvalidate-tabbar-geometry-on-refresh.patch | 35 - .../qt/files/opensuse/QSystemTrayicon.diff | 1486 ----------------- .../qt/files/opensuse/build-qvfb-tool.diff | 13 - ...ix-moc-from-choking-on-boost-headers.patch | 12 - .../fix_assistant_segfault_QTBUG-25324.patch | 14 - .../opensuse/handle-tga-files-properly.diff | 56 - .../files/opensuse/libqt4-libtool-nodate.diff | 13 - .../qt/files/opensuse/no-moc-date.diff | 26 - .../qt/files/opensuse/qatomic-generic.patch | 21 - .../qdbusconnection-no-warning-output.patch | 15 - .../qt/files/opensuse/qfatal-noreturn.diff | 12 - .../qlocale_icu-no-warning-output.patch | 61 - .../qt/files/opensuse/qt-debug-timer.diff | 26 - .../qt/files/opensuse/qt-never-strip.diff | 30 - .../files/opensuse/use-freetype-default.diff | 40 - desktop/toolkit/qt/files/turkish.patch.bz2 | Bin 35990 -> 0 bytes desktop/toolkit/qt/pspec.xml | 496 ------ desktop/toolkit/qt/translations.xml | 35 - 61 files changed, 4402 deletions(-) delete mode 100644 desktop/toolkit/qt/actions.py delete mode 100644 desktop/toolkit/qt/files/CVE-2014-0190.patch delete mode 100644 desktop/toolkit/qt/files/data/assistant.desktop delete mode 100644 desktop/toolkit/qt/files/data/assistant.png delete mode 100644 desktop/toolkit/qt/files/data/designer.desktop delete mode 100644 desktop/toolkit/qt/files/data/designer.png delete mode 100644 desktop/toolkit/qt/files/data/hi128-app-qt4-logo.png delete mode 100644 desktop/toolkit/qt/files/data/hi48-app-qt4-logo.png delete mode 100644 desktop/toolkit/qt/files/data/linguist.desktop delete mode 100644 desktop/toolkit/qt/files/data/linguist.png delete mode 100644 desktop/toolkit/qt/files/data/phonon-gstreamer.svg delete mode 100755 desktop/toolkit/qt/files/data/qdbusviewer.desktop delete mode 100755 desktop/toolkit/qt/files/data/qtconfig.desktop delete mode 100644 desktop/toolkit/qt/files/data/qtdemo.desktop delete mode 100644 desktop/toolkit/qt/files/fedora/qt-cupsEnumDests.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.6.2-cups.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.3-no_Werror.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-mysql_config.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-webcore_debuginfo.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-37380.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-38585.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch delete mode 100644 desktop/toolkit/qt/files/fedora/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch delete mode 100644 desktop/toolkit/qt/files/mkspecs.patch delete mode 100644 desktop/toolkit/qt/files/opensuse/0001-Don-t-crash-on-broken-GIF-images.patch delete mode 100644 desktop/toolkit/qt/files/opensuse/0180-window-role.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/0188-fix-moc-parser-same-name-header.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/0191-listview-alternate-row-colors.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/0195-compositing-properties.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/0225-invalidate-tabbar-geometry-on-refresh.patch delete mode 100644 desktop/toolkit/qt/files/opensuse/QSystemTrayicon.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/build-qvfb-tool.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/fix-moc-from-choking-on-boost-headers.patch delete mode 100644 desktop/toolkit/qt/files/opensuse/fix_assistant_segfault_QTBUG-25324.patch delete mode 100644 desktop/toolkit/qt/files/opensuse/handle-tga-files-properly.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/libqt4-libtool-nodate.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/no-moc-date.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/qatomic-generic.patch delete mode 100644 desktop/toolkit/qt/files/opensuse/qdbusconnection-no-warning-output.patch delete mode 100644 desktop/toolkit/qt/files/opensuse/qfatal-noreturn.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/qlocale_icu-no-warning-output.patch delete mode 100644 desktop/toolkit/qt/files/opensuse/qt-debug-timer.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/qt-never-strip.diff delete mode 100644 desktop/toolkit/qt/files/opensuse/use-freetype-default.diff delete mode 100644 desktop/toolkit/qt/files/turkish.patch.bz2 delete mode 100644 desktop/toolkit/qt/pspec.xml delete mode 100644 desktop/toolkit/qt/translations.xml diff --git a/desktop/toolkit/qt/actions.py b/desktop/toolkit/qt/actions.py deleted file mode 100644 index 7218e7ad02..0000000000 --- a/desktop/toolkit/qt/actions.py +++ /dev/null @@ -1,181 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Licensed under the GNU General Public License, version 3. -# See the file http://www.gnu.org/licenses/gpl.txt - -from pisi.actionsapi import shelltools -from pisi.actionsapi import autotools -from pisi.actionsapi import pisitools -from pisi.actionsapi import qt4 -from pisi.actionsapi import get - -import os - -WorkDir = "qt-everywhere-opensource-src-%s" % get.srcVERSION().replace('_','-').replace('pre1', 'tp') - -qtbase = qt4.prefix -absoluteWorkDir = "%s/%s" % (get.workDIR(), WorkDir) -bindirQt4="/usr/lib/qt4/bin" - -def setup(): - pisitools.flags.add("-I/usr/include/gtk-2.0/gdk") - #make sure we don't use them - checkdeletepath="%s/qtbase/src/3rdparty" % absoluteWorkDir - for dir in ('libjpeg', 'freetype', 'libpng', 'zlib', "libtiff"): - if os.path.exists(checkdeletepath+dir): - shelltools.unlinkDir(checkdeletepath+dir) - - filteredCFLAGS = get.CFLAGS().replace("-g3", "-g") - filteredCXXFLAGS = get.CXXFLAGS().replace("-g3", "-g") - - vars = {"PISILINUX_CC" : get.CC() + (" -m32" if get.buildTYPE() == "emul32" else ""), - "PISILINUX_CXX": get.CXX() + (" -m32" if get.buildTYPE() == "emul32" else ""), - "PISILINUX_CFLAGS": filteredCFLAGS + (" -m32" if get.buildTYPE() == "emul32" else ""), - "PISILINUX_LDFLAGS": get.LDFLAGS() + (" -m32" if get.buildTYPE() == "emul32" else "")} - - for k, v in vars.items(): - pisitools.dosed("mkspecs/common/g++-base.conf", k, v) - pisitools.dosed("mkspecs/common/g++-unix.conf", k, v) - - shelltools.export("CFLAGS", filteredCFLAGS) - shelltools.export("CXXFLAGS", filteredCXXFLAGS) - #check that dosed commands without releated patches - pisitools.dosed("mkspecs/common/gcc-base-unix.conf", "\-Wl,\-rpath,") - pisitools.dosed("mkspecs/common/gcc-base.conf", "\-O2", filteredCFLAGS) - pisitools.dosed("mkspecs/common/gcc-base.conf", "^(QMAKE_LFLAGS\s+\+=)", r"\1 %s" % get.LDFLAGS()) - - if not get.buildTYPE() == "emul32": - #-no-pch makes build ccache-friendly - options = "-no-pch \ - -v \ - -stl \ - -fast \ - -qdbus \ - -qvfb \ - -glib \ - -no-sql-sqlite2 \ - -no-sql-sqlite \ - -system-sqlite \ - -system-zlib \ - -system-libpng \ - -system-libjpeg \ - -system-libtiff \ - -system-libmng \ - -plugin-sql-sqlite \ - -plugin-sql-odbc \ - -plugin-sql-psql \ - -plugin-sql-ibase \ - -I/usr/include/firebird/ \ - -I/usr/include/postgresql/server/ \ - -release \ - -no-separate-debug-info \ - -phonon \ - -no-phonon-backend \ - -webkit \ - -no-rpath \ - -openssl-linked \ - -dbus-linked \ - -xmlpatterns \ - -opensource \ - -reduce-relocations \ - -prefix %s \ - -bindir %s \ - -libdir %s \ - -docdir %s \ - -examplesdir %s \ - -demosdir %s\ - -plugindir %s \ - -translationdir %s \ - -sysconfdir %s \ - -datadir %s \ - -importdir %s \ - -headerdir %s \ - -confirm-license " % (qt4.prefix, bindirQt4, qt4.libdir, qt4.docdir, qt4.examplesdir, qt4.demosdir, qt4.plugindir, qt4.translationdir, -qt4.sysconfdir, -qt4.datadir, qt4.importdir, qt4.includedir) - else: - pisitools.dosed("mkspecs/linux-g++-64/qmake.conf", "-m64", "-m32") - shelltools.export("LDFLAGS", "-m32 %s" % get.LDFLAGS()) - options = "-no-pch \ - -v \ - -prefix /usr \ - -libdir /usr/lib32 \ - -plugindir /usr/lib32/qt/plugins \ - -importdir /usr/lib32/qt/imports \ - -datadir /usr/share/qt \ - -translationdir /usr/share/qt/translations \ - -sysconfdir /etc \ - -system-sqlite \ - -no-phonon \ - -no-phonon-backend \ - -webkit \ - -graphicssystem raster \ - -openssl-linked \ - -nomake demos \ - -nomake examples \ - -nomake docs \ - -nomake tools \ - -optimized-qmake \ - -no-rpath \ - -dbus-linked \ - -reduce-relocations \ - -no-openvg \ - -confirm-license \ - -opensource " - - autotools.rawConfigure(options) - -def build(): - shelltools.export("LD_LIBRARY_PATH", "%s/lib:%s" % (get.curDIR(), get.ENV("LD_LIBRARY_PATH"))) - autotools.make() - -def install(): - if get.buildTYPE() == "emul32": - qt4.install("INSTALL_ROOT=%s32" % get.installDIR()) - shelltools.move("%s32/usr/lib32" % get.installDIR(), "%s/usr" % get.installDIR()) - return - - qt4.install() - pisitools.dodir(qt4.bindir) - - #Remove phonon, we use KDE's phonon but we have to build Qt with Phonon support for webkit and some other stuff - pisitools.remove("%s/libphonon*" % qt4.libdir) - pisitools.removeDir("%s/phonon" % qt4.includedir) - if shelltools.isDirectory("%s/%s/phonon_backend" % (get.installDIR(), qt4.plugindir)): - pisitools.removeDir("%s/phonon_backend" % qt4.plugindir) - pisitools.remove("%s/pkgconfig/phonon*" % qt4.libdir) - # Phonon 4.5 provides libphononwidgets.so file - pisitools.remove("%s/designer/libphononwidgets.so" % qt4.plugindir) - - #Remove lost /usr/tests directory - pisitools.removeDir("usr/tests") - - # Turkish translations - shelltools.export("LD_LIBRARY_PATH", "%s%s" % (get.installDIR(), qt4.libdir)) - shelltools.system("%s%s/lrelease l10n-tr/*.ts" % (get.installDIR(), bindirQt4)) - pisitools.insinto(qt4.translationdir, "l10n-tr/*.qm") - - # Fix all occurances of WorkDir in pc files - pisitools.dosed("%s%s/pkgconfig/*.pc" % (get.installDIR(), qt4.libdir), "%s/qt-x11-opensource-src-%s" % (get.workDIR(), get.srcVERSION()), qt4.prefix) - - #I hope qtchooser will manage this issue - for bin in shelltools.ls("%s/usr/lib/qt4/bin" % get.installDIR()): - pisitools.dosym("/usr/lib/qt4/bin/%s" % bin, "/usr/bin/%s-qt4" % bin) - - mkspecPath = "%s/mkspecs" % qtbase - - for root, dirs, files in os.walk("%s%s" % (get.installDIR(), qtbase)): - # Remove unnecessary spec files.. - if root.endswith(mkspecPath): - for dir in dirs: - if not dir.startswith("linux") and dir not in ["common","qws","features","default"]: - pisitools.removeDir(os.path.join(mkspecPath,dir)) - for name in files: - if name.endswith(".prl"): - pisitools.dosed(os.path.join(root, name), "^QMAKE_PRL_BUILD_DIR.*", "") - - # Remove useless image directory, images of HTML docs are in doc/html/images - pisitools.removeDir("%s/src" % qt4.docdir) - - pisitools.dodoc("changes-*", "LGPL_EXCEPTION.txt", "LICENSE.*", "README") diff --git a/desktop/toolkit/qt/files/CVE-2014-0190.patch b/desktop/toolkit/qt/files/CVE-2014-0190.patch deleted file mode 100644 index da0b69d163..0000000000 --- a/desktop/toolkit/qt/files/CVE-2014-0190.patch +++ /dev/null @@ -1,32 +0,0 @@ -Don't crash on broken GIF images - -Broken GIF images could set invalid width and height -values inside the image, leading to Qt creating a null -QImage for it. In that case we need to abort decoding -the image and return an error. - -Initial patch by Rich Moore. - -Backport of Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e from Qt 5 - -Task-number: QTBUG-38367 -Change-Id: I0680740018aaa8356d267b7af3f01fac3697312a -Security-advisory: CVE-2014-0190 - -diff -up qt-everywhere-opensource-src-4.8.6/src/gui/image/qgifhandler.cpp.QTBUG-38367 qt-everywhere-opensource-src-4.8.6/src/gui/image/qgifhandler.cpp ---- qt-everywhere-opensource-src-4.8.6/src/gui/image/qgifhandler.cpp.QTBUG-38367 2014-04-10 13:37:12.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.6/src/gui/image/qgifhandler.cpp 2014-04-24 15:58:54.515862458 -0500 -@@ -359,6 +359,13 @@ int QGIFFormat::decode(QImage *image, co - memset(bits, 0, image->byteCount()); - } - -+ // Check if the previous attempt to create the image failed. If it -+ // did then the image is broken and we should give up. -+ if (image->isNull()) { -+ state = Error; -+ return -1; -+ } -+ - disposePrevious(image); - disposed = false; - diff --git a/desktop/toolkit/qt/files/data/assistant.desktop b/desktop/toolkit/qt/files/data/assistant.desktop deleted file mode 100644 index 55a65a8d3a..0000000000 --- a/desktop/toolkit/qt/files/data/assistant.desktop +++ /dev/null @@ -1,136 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Exec=/usr/lib/qt4/bin/assistant -Name=Qt4 Assistant -Name[af]=Qt4 Assistent -Name[ar]=معاون Qt4 -Name[az]=Qt4 Yardımçısı -Name[bn]=কিউ-টি সহায়ক -Name[br]=Skoazeller Qt4 -Name[bs]=Qt4 Asistent -Name[ca]=Assistent Qt4 -Name[cs]=Qt4 asistent -Name[cy]=Cymhorthwr Qt4 -Name[de]=Qt4-Assistent -Name[el]=Βοηθός Qt4 -Name[eo]=Qt4-Asistilo -Name[es]=Asistente Qt4 -Name[eu]=Qt4 laguntzailea -Name[fa]=دستیار Qt4 -Name[fo]=Qt4-hjálpari -Name[fy]=Qt4-assistent -Name[hi]=क्यूटी सहायक -Name[hr]=Qt4 Asistent -Name[hsb]=Qt4 Asistent -Name[ja]=Qt4 アシスタント -Name[km]=អ្នក​ជំនួយការ Qt4 -Name[ko]=Qt4 도우미 -Name[lo]=ຄຳແນະນຳການໃ້ຊ້Qt4 -Name[lv]=Qt4 Asistents -Name[mk]=Qt4-Асистент -Name[mn]=Qt4-туслагч -Name[ms]=Pembantu Qt4 -Name[nds]=Qt4-Hölper -Name[nl]=Qt4 Assistent -Name[nso]=Mothusi wa Qt4 -Name[pa]=Qt4 ਸਹਾਇਕ -Name[pt]=Assistente do Qt4 -Name[pt_BR]=Assistente Qt4 -Name[ro]=Asistent Qt4 -Name[ru]=Помощник Qt4 -Name[rw]=Umufasha Qt4 -Name[sl]=Pomočnik za Qt4 -Name[ss]=Lisekela leQt4 -Name[ta]=Qt4 துணைவன் -Name[tg]=Дастёри Qt4 -Name[th]=คำแนะนำการใช้ Qt4 -Name[tr]=Qt4 Asistanı -Name[uk]=Qt4-асистент -Name[uz]=Qt43 ёрдамчи -Name[ven]=Qt4 Muthusi -Name[vi]=Trợ giúp Qt4 -Name[wa]=Macrea Qt4 -Name[xh]=Qt4 Umncedi -Name[zh_CN]=Qt4 助手 -Name[zh_TW]=Qt4 助理 -Name[zu]=Umsizi we-Qt4 -GenericName=Document Browser -GenericName[af]=Dokument Blaaier -GenericName[ar]=متصفح المستندات -GenericName[az]=Sənəd Səyyahı -GenericName[bg]=Преглед на документи -GenericName[bn]=নথী ব্রাউজার -GenericName[br]=Furcher Teulioù -GenericName[bs]=Preglednik QT dokumenata -GenericName[ca]=Navegador de documents -GenericName[cs]=Prohlížeč dokumentace -GenericName[cy]=Porydd Dogfen -GenericName[da]=Dokumentfremviser -GenericName[de]=Dokumentbrowser -GenericName[el]=Προβολέας εγγράφων -GenericName[eo]=Dokumentorigardilo -GenericName[es]=Navegador de documentos -GenericName[et]=Dokumentatsiooni brauser -GenericName[eu]=Dokumentu arakatzailea -GenericName[fa]=مرورگر سند -GenericName[fi]=Asiakirjaselain -GenericName[fo]=Skjalakagari -GenericName[fr]=Explorateur de documentation Qt4 -GenericName[fy]=Dokumintblêder -GenericName[ga]=Brabhsálaí Cáipéise -GenericName[gl]=Navegador de Documentos -GenericName[he]=דפדפן מסמכים -GenericName[hi]=दस्तावेज़ ब्राउज़रज़र -GenericName[hr]=Preglednik dokumenata -GenericName[hu]=Dokumentumböngésző -GenericName[id]=Peselancar Document -GenericName[is]=Skjalavafri -GenericName[it]=Visualizzatore di documenti -GenericName[ja]=ドキュメントブラウザ -GenericName[km]=កម្មវិធី​រុករក​ឯកសារ -GenericName[ko]=문서 탐색기 -GenericName[lo]=ເຄື່ອງມືເລືອກເບິ່ງແຟ້ມເອກະສານ -GenericName[lt]=Dokumentų naršyklė -GenericName[lv]=Dokumentu Pārlūks -GenericName[mk]=Прелистувач на документи -GenericName[mn]=Баримтын хөтөч -GenericName[ms]=Pelungsur Dokumen -GenericName[mt]=Browser ta' Dokumenti -GenericName[nb]=Dokumentleser -GenericName[nds]=Dokmentkieker -GenericName[nl]=Documentbrowser -GenericName[nn]=Dokumentlesar -GenericName[nso]=Seinyakisi sa Tokomane -GenericName[pa]=ਦਸਤਾਵੇਜ਼ ਝਲਕਾਰਾ -GenericName[pl]=Przeglądarka dokumentów -GenericName[pt]=Navegador de Documentos -GenericName[pt_BR]=Navegador de Documentos -GenericName[ro]=Navigator de documente -GenericName[ru]=Программа просмотра документов -GenericName[rw]=Mucukumbuzi w'Inyandiko -GenericName[se]=Dokumeantalogan -GenericName[sk]=Prehliadač dokumentácie -GenericName[sl]=Pregledovalnik dokumentov -GenericName[sr]=Прегледач докумената -GenericName[sr@Latn]=Pregledač dokumenata -GenericName[ss]=Ibrawuza yelidokhumente -GenericName[sv]=Dokumentbläddrare -GenericName[ta]=ஆவண உலாவி -GenericName[tg]=Тафсири ҳуҷҷат -GenericName[th]=เครื่องมือเลือกดูแฟ้มเอกสาร -GenericName[tr]=Belge Tarayıcısı -GenericName[tt]=İstälek Küzätüçe -GenericName[uk]=Навігатор документів -GenericName[uz]=Ҳужжат браузери -GenericName[ven]=Buronza ya manwalwa -GenericName[vi]=Trình duyệt tài liệu -GenericName[wa]=Foyteu di documints -GenericName[xh]=Umkhangeli Wencwadi Zoxwebhu -GenericName[zh_CN]=文档浏览器 -GenericName[zh_TW]=文件閱讀器 -GenericName[zu]=Umcingi Woshicilelo -X-KDE-StartupNotify=true -Icon=assistant -Terminal=false -Type=Application -Categories=Qt;Development; diff --git a/desktop/toolkit/qt/files/data/assistant.png b/desktop/toolkit/qt/files/data/assistant.png deleted file mode 100644 index bfb642dc2d1718109dd71b4cd5b1ba38d916450b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15052 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 Y1ppbD4msK+4FCWD07*qoM6N<$f=8TF?EnA( diff --git a/desktop/toolkit/qt/files/data/hi128-app-qt4-logo.png b/desktop/toolkit/qt/files/data/hi128-app-qt4-logo.png deleted file mode 100644 index b8f8263bbe8af00a6f368dfd092b28bdd3c1c20c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16119 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 diff --git a/desktop/toolkit/qt/files/data/linguist.desktop b/desktop/toolkit/qt/files/data/linguist.desktop deleted file mode 100644 index 223d18a749..0000000000 --- a/desktop/toolkit/qt/files/data/linguist.desktop +++ /dev/null @@ -1,128 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Exec=/usr/lib/qt4/bin/linguist -Name=Qt4 Linguist -Name[ar]=لغوي Qt4 -Name[bn]=কিউ-টি লিঙ্গুইস্ট -Name[ca]=Lingüista Qt4 -Name[cy]=Ieithydd Qt4 -Name[de]=Qt4-Linguist -Name[eo]=Qt4-Lingvisto -Name[es]=Lingüista Qt4 -Name[fa]=Qt4 زبان‌شناس -Name[fi]=Qt4 Linquist -Name[fy]=Qt4 Linquist -Name[gl]=Lingüista Qt4 -Name[hi]=क्यूटी लिंग्विस्ट -Name[hr]=Qt4 Lingvist -Name[km]=ភាសាវិទូ Qt4 -Name[ko]=Qt4 언어학자 -Name[lo]=ແປພາສາຂອງ Qt4 -Name[lv]=Qt4 Lingvists -Name[mk]=Qt4-Јазичар -Name[mn]=Qt4-Хэл зүй -Name[ms]=Jurubahasa Qt4 -Name[mt]=Lingwist Qt4 -Name[nb]=Qt4-Linguist -Name[nds]=Qt4-Linguist -Name[nl]=Qt4 Linquist -Name[nso]=Sekaleleme sa Qt4 -Name[pa]=Qt4 ਲੈਂਗੂਇਸਟ -Name[pl]=Lingwista Qt4 -Name[ru]=Qt4 Лингвист -Name[rw]=Byindimi Qt4 -Name[sl]=Jezikoslovec Qt4 -Name[sv]=Qt4 linguist -Name[ta]=Qt4 மொழியறிஞர் -Name[tg]=Забони Qt4 -Name[th]=แปลภาษาของ Qt4 -Name[tr]=Qt4 Dilci -Name[tt]=Qt4 Telbelgeç -Name[uk]=Qt4-лінгвіст -Name[uz]=Qt4 лингвист -Name[ven]=Qt4 Radzinyambo -Name[vi]=Ngôn ngữ Qt4 -Name[xh]=Usolwimi we Qt4 -Name[zh_CN]=Qt4 语言家 -Name[zh_TW]=Qt4 語言學家 -Name[zu]=Owozolimi we-Qt4 -GenericName=Translation Tool -GenericName[af]=Vertaling Program -GenericName[ar]=أداة للترجمة -GenericName[az]=Tərcümə Vasitəsi -GenericName[bn]=অনুবাদ টুল -GenericName[br]=Ostilh troidigezh -GenericName[bs]=Alat za prevođenje -GenericName[ca]=Eina de traducció -GenericName[cs]=Překladatelský nástroj -GenericName[cy]=Erfyn Cyfieithu -GenericName[da]=Oversættelsesværktøj -GenericName[de]=Übersetzungsprogramm -GenericName[el]=Εργαλείο μεταφράσεων -GenericName[eo]=Tradukilo por Qt4-programoj -GenericName[es]=Herramienta de traducción -GenericName[et]=Tõlkimise rakendus -GenericName[eu]=Itzulpenerako tresnak -GenericName[fa]=ابزار ترجمه -GenericName[fi]=Käännöstyökalu -GenericName[fo]=Umsetingaramboð -GenericName[fr]=Outil de traduction -GenericName[fy]=Fertaalprogramma -GenericName[ga]=Uirlis Aistriúcháin -GenericName[gl]=Ferramenta de Tradución -GenericName[he]=כלי תרגום -GenericName[hi]=अनुवाद औज़ार -GenericName[hr]=Alat za prevođenje -GenericName[hsb]=Grat za přełožowanje -GenericName[hu]=Fordítássegítő -GenericName[id]=Kakas Penerjemah -GenericName[is]=Þýðingartól -GenericName[it]=Strumento per le traduzioni -GenericName[ja]=翻訳ツール -GenericName[km]=កម្មវិធី​បកប្រែ -GenericName[ko]=번역 도구 -GenericName[lo]=ເຄື່ອງມືແປພາສາ -GenericName[lt]=Vertimo įrankis -GenericName[lv]=Tulkošanas Rīks -GenericName[mk]=Алатка за преведување -GenericName[mn]=Орчуулгын програм -GenericName[ms]=Perkakasan Penterjemahan -GenericName[mt]=Għodda tat-traduzzjoni -GenericName[nb]=Oversettelsesverktøy -GenericName[nds]=Warktüüch för't Översetten -GenericName[nl]=Vertaalprogramma -GenericName[nn]=Omsetjingsverktøy -GenericName[nso]=Sebereka sa Thlathollo -GenericName[pa]=ਅਨੁਵਾਦ ਸੰਦ -GenericName[pl]=Narzędzie dla tłumaczy -GenericName[pt]=Ferramenta de Tradução -GenericName[pt_BR]=Ferramenta de Tradução -GenericName[ro]=Utilitar de traducere -GenericName[ru]=Переводчик для Qt4 -GenericName[se]=Jorgalanreaidu -GenericName[sk]=Prekladací nástroj -GenericName[sl]=Orodje za prevajanje -GenericName[sr]=Алат за превођење -GenericName[sr@Latn]=Alat za prevođenje -GenericName[ss]=Lithulusi lekuhumusha -GenericName[sv]=Översättningsverktyg -GenericName[ta]=மொழிபெயர்ப்புக் கருவி -GenericName[tg]=Тарҷумагар барои QT -GenericName[th]=เครื่องมือแปลภาษา -GenericName[tr]=Çeviri Aracı -GenericName[tt]=Tärcemäläw Qoralı -GenericName[uk]=Засіб для перекладів -GenericName[uz]=Таржима қилиш воситаси -GenericName[ven]=Zwishumiswa zwau Dologa -GenericName[vi]=Công cụ dịch -GenericName[wa]=Usteye di ratournaedje -GenericName[xh]=Isixhobo Soguqulelo lomsebenzi kolunye ulwimi -GenericName[zh_CN]=翻译工具 -GenericName[zh_TW]=翻譯工具 -GenericName[zu]=Ithuluzi Lokuguqulela -X-KDE-StartupNotify=true -MimeType=application/x-linguist; -Terminal=false -Type=Application -Icon=linguist -Categories=Qt;Development; diff --git a/desktop/toolkit/qt/files/data/linguist.png b/desktop/toolkit/qt/files/data/linguist.png deleted file mode 100644 index 47c9f17a4f91ed41a17a794a31479f090ed64fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14785 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 - - - -]> - - - - - - - - - - - - - - diff --git a/desktop/toolkit/qt/files/data/qdbusviewer.desktop b/desktop/toolkit/qt/files/data/qdbusviewer.desktop deleted file mode 100755 index d1b05715d0..0000000000 --- a/desktop/toolkit/qt/files/data/qdbusviewer.desktop +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env xdg-open -[Desktop Entry] -Name=Qt4 QDbusViewer -GenericName=D-Bus Debugger -Comment=Debug D-Bus applications -Exec=/usr/lib/qt4/bin/qdbusviewer -Icon=qdbusviewer -Terminal=false -Type=Application -Categories=Qt;Development;Debugger; - diff --git a/desktop/toolkit/qt/files/data/qtconfig.desktop b/desktop/toolkit/qt/files/data/qtconfig.desktop deleted file mode 100755 index 3f461f8e22..0000000000 --- a/desktop/toolkit/qt/files/data/qtconfig.desktop +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env xdg-open -[Desktop Entry] -Name=Qt4 Config -Comment=Configure Qt4 behavior, styles, fonts -Exec=/usr/lib/qt4/bin/qtconfig -Icon=qt4-logo -Terminal=false -Type=Application -Categories=Qt;Settings; diff --git a/desktop/toolkit/qt/files/data/qtdemo.desktop b/desktop/toolkit/qt/files/data/qtdemo.desktop deleted file mode 100644 index 1f0b5baa0e..0000000000 --- a/desktop/toolkit/qt/files/data/qtdemo.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Name=Qt4 Demo -Comment=Show Qt4 demos and programming examples -Comment[tr]=Qt4 demolarını ve programlama örneklerini göster -Exec=/usr/lib/qt4/bin/qtdemo -Icon=qt4-logo -Terminal=false -Encoding=UTF-8 -Type=Application -Categories=Qt;Development; diff --git a/desktop/toolkit/qt/files/fedora/qt-cupsEnumDests.patch b/desktop/toolkit/qt/files/fedora/qt-cupsEnumDests.patch deleted file mode 100644 index 7d59f22e8d..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-cupsEnumDests.patch +++ /dev/null @@ -1,238 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups.cpp.cupsEnumDests qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups.cpp ---- qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups.cpp.cupsEnumDests 2012-11-23 10:09:53.000000000 +0000 -+++ qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups.cpp 2013-07-03 15:30:06.232936976 +0100 -@@ -50,9 +50,19 @@ - - QT_BEGIN_NAMESPACE - -+typedef int (*CupsEnumDests)(unsigned flags, int msec, int *cancel, -+ cups_ptype_t type, cups_ptype_t mask, -+ cups_dest_cb_t cb, void *user_data); -+typedef http_t * (*CupsConnectDest)(cups_dest_t *dest, unsigned flags, -+ int msec, int *cancel, -+ char *resource, size_t resourcesize, -+ cups_dest_cb_t cb, void *user_data); -+typedef int (*CupsCopyDest)(cups_dest_t *dest, int num_dests, -+ cups_dest_t **dests); - typedef int (*CupsGetDests)(cups_dest_t **dests); - typedef void (*CupsFreeDests)(int num_dests, cups_dest_t *dests); - typedef const char* (*CupsGetPPD)(const char *printer); -+typedef const char* (*CupsGetPPD2)(http_t *http, const char *printer); - typedef int (*CupsMarkOptions)(ppd_file_t *ppd, int num_options, cups_option_t *options); - typedef ppd_file_t* (*PPDOpenFile)(const char *filename); - typedef void (*PPDMarkDefaults)(ppd_file_t *ppd); -@@ -66,12 +76,24 @@ typedef const char* (*CupsLangEncoding)( - typedef int (*CupsAddOption)(const char *name, const char *value, int num_options, cups_option_t **options); - typedef int (*CupsTempFd)(char *name, int len); - typedef int (*CupsPrintFile)(const char * name, const char * filename, const char * title, int num_options, cups_option_t * options); -+typedef int (*CupsPrintFile2)(http_t *http, const char *name, const char *filename, const char *title, int num_options, cups_option_t *options); -+ -+typedef struct -+{ -+ cups_dest_t *printers; -+ int num_printers; -+} EnumDestsContext; - - static bool cupsLoaded = false; - static int qt_cups_num_printers = 0; -+static cups_dest_t *qt_cups_printers = 0; -+static CupsEnumDests _cupsEnumDests = 0; -+static CupsConnectDest _cupsConnectDest = 0; -+static CupsCopyDest _cupsCopyDest = 0; - static CupsGetDests _cupsGetDests = 0; - static CupsFreeDests _cupsFreeDests = 0; - static CupsGetPPD _cupsGetPPD = 0; -+static CupsGetPPD2 _cupsGetPPD2 = 0; - static PPDOpenFile _ppdOpenFile = 0; - static PPDMarkDefaults _ppdMarkDefaults = 0; - static PPDClose _ppdClose = 0; -@@ -84,14 +106,35 @@ static CupsLangEncoding _cupsLangEncodin - static CupsAddOption _cupsAddOption = 0; - static CupsTempFd _cupsTempFd = 0; - static CupsPrintFile _cupsPrintFile = 0; -+static CupsPrintFile2 _cupsPrintFile2 = 0; -+ -+static int enum_dest_cb (void *user_data, unsigned flags, cups_dest_t *dest) -+{ -+ EnumDestsContext *context = (EnumDestsContext *) user_data; -+ -+ if ((flags & (CUPS_DEST_FLAGS_UNCONNECTED | -+ CUPS_DEST_FLAGS_REMOVED | -+ CUPS_DEST_FLAGS_ERROR | -+ CUPS_DEST_FLAGS_RESOLVING | -+ CUPS_DEST_FLAGS_CONNECTING | -+ CUPS_DEST_FLAGS_CANCELED)) == 0) -+ context->num_printers = _cupsCopyDest (dest, context->num_printers, -+ &context->printers); -+ -+ return 1; -+} - - static void resolveCups() - { - QLibrary cupsLib(QLatin1String("cups"), 2); - if(cupsLib.load()) { -+ _cupsEnumDests = (CupsEnumDests) cupsLib.resolve("cupsEnumDests"); -+ _cupsConnectDest = (CupsConnectDest) cupsLib.resolve("cupsConnectDest"); -+ _cupsCopyDest = (CupsCopyDest) cupsLib.resolve("cupsCopyDest"); - _cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests"); - _cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests"); - _cupsGetPPD = (CupsGetPPD) cupsLib.resolve("cupsGetPPD"); -+ _cupsGetPPD2 = (CupsGetPPD2) cupsLib.resolve("cupsGetPPD2"); - _cupsLangGet = (CupsLangGet) cupsLib.resolve("cupsLangGet"); - _cupsLangEncoding = (CupsLangEncoding) cupsLib.resolve("cupsLangEncoding"); - _ppdOpenFile = (PPDOpenFile) cupsLib.resolve("ppdOpenFile"); -@@ -104,14 +147,27 @@ static void resolveCups() - _cupsAddOption = (CupsAddOption) cupsLib.resolve("cupsAddOption"); - _cupsTempFd = (CupsTempFd) cupsLib.resolve("cupsTempFd"); - _cupsPrintFile = (CupsPrintFile) cupsLib.resolve("cupsPrintFile"); -+ _cupsPrintFile2 = (CupsPrintFile2) cupsLib.resolve("cupsPrintFile2"); - -- if (_cupsGetDests && _cupsFreeDests) { -- cups_dest_t *printers; -+ if (_cupsEnumDests && _cupsCopyDest && -+ _cupsConnectDest && _cupsGetPPD2 && -+ _cupsPrintFile2) { -+ EnumDestsContext context; -+ context.printers = 0; -+ context.num_printers = 0; -+ _cupsEnumDests(0, -1, 0, 0, 0, -+ enum_dest_cb, &context); -+ -+ qt_cups_printers = context.printers; -+ qt_cups_num_printers = context.num_printers; -+ } else if (_cupsGetDests && _cupsFreeDests) { -+ cups_dest_t *printers; - int num_printers = _cupsGetDests(&printers); -- if (num_printers) -- _cupsFreeDests(num_printers, printers); -- qt_cups_num_printers = num_printers; -- } -+ -+ if (num_printers) -+ _cupsFreeDests(num_printers, printers); -+ qt_cups_num_printers = num_printers; -+ } - } - cupsLoaded = true; - } -@@ -134,7 +190,15 @@ QCUPSSupport::QCUPSSupport() - return; - - // Update the available printer count -- qt_cups_num_printers = prnCount = _cupsGetDests(&printers); -+ if (qt_cups_printers && _cupsCopyDest) { -+ int i; -+ for (i = 0; i < qt_cups_num_printers; ++i) { -+ prnCount = _cupsCopyDest (&qt_cups_printers[i], -+ prnCount, -+ &printers); -+ } -+ } else -+ qt_cups_num_printers = prnCount = _cupsGetDests(&printers); - - for (int i = 0; i < prnCount; ++i) { - if (printers[i].is_default) { -@@ -188,7 +252,19 @@ const ppd_file_t* QCUPSSupport::setCurre - currPPD = 0; - page_sizes = 0; - -- const char *ppdFile = _cupsGetPPD(printers[index].name); -+ const char *ppdFile = 0; -+ if (_cupsConnectDest && _cupsGetPPD2) { -+ char resource[HTTP_MAX_URI]; -+ http_t *http = _cupsConnectDest (&printers[index], 0, -1, 0, -+ resource, sizeof (resource), -+ 0, 0); -+ if (http) { -+ char *name = strrchr (resource, '/'); -+ if (name) -+ ppdFile = _cupsGetPPD2 (http, ++name); -+ } -+ } else -+ ppdFile = _cupsGetPPD(printers[index].name); - - if (!ppdFile) - return 0; -@@ -343,7 +419,29 @@ bool QCUPSSupport::printerHasPPD(const c - { - if (!isAvailable()) - return false; -- const char *ppdFile = _cupsGetPPD(printerName); -+ -+ const char *ppdFile = 0; -+ if (_cupsConnectDest && _cupsGetPPD2) { -+ int i; -+ for (i = 0; i < prnCount; ++i) -+ if (!strcmp (printers[i].name, printerName)) -+ break; -+ -+ if (i == prnCount) -+ return false; -+ -+ char resource[HTTP_MAX_URI]; -+ http_t *http = _cupsConnectDest (&printers[i], 0, -1, 0, -+ resource, sizeof (resource), -+ 0, 0); -+ if (http) { -+ char *name = strrchr (resource, '/'); -+ if (name) -+ ppdFile = _cupsGetPPD2 (http, ++name); -+ } -+ } else -+ ppdFile = _cupsGetPPD(printerName); -+ - if (ppdFile) - unlink(ppdFile); - return (ppdFile != 0); -@@ -394,6 +492,26 @@ QPair QCUPSSupport::tempFd - int QCUPSSupport::printFile(const char * printerName, const char * filename, const char * title, - int num_options, cups_option_t * options) - { -+ if (_cupsConnectDest && _cupsPrintFile2) { -+ int i; -+ for (i = 0; i < prnCount; ++i) -+ if (!strcmp (printers[i].name, printerName)) -+ break; -+ -+ if (i != prnCount) { -+ char resource[HTTP_MAX_URI]; -+ http_t *http = _cupsConnectDest (&printers[i], 0, -1, 0, -+ resource, sizeof (resource), -+ 0, 0); -+ if (http) { -+ char *name = strrchr (resource, '/'); -+ if (name) -+ return _cupsPrintFile2 (http, ++name, filename, title, -+ num_options, options); -+ } -+ } -+ } -+ - return _cupsPrintFile(printerName, filename, title, num_options, options); - } - -diff -up qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups_p.h.cupsEnumDests qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups_p.h ---- qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups_p.h.cupsEnumDests 2012-11-23 10:09:53.000000000 +0000 -+++ qt-everywhere-opensource-src-4.8.4/src/gui/painting/qcups_p.h 2013-07-03 15:27:24.733343017 +0100 -@@ -92,7 +92,7 @@ public: - - QStringList options() const; - -- static bool printerHasPPD(const char *printerName); -+ bool printerHasPPD(const char *printerName); - - QString unicodeString(const char *s); - -diff -up qt-everywhere-opensource-src-4.8.4/src/gui/painting/qprinter.cpp.cupsEnumDests qt-everywhere-opensource-src-4.8.4/src/gui/painting/qprinter.cpp ---- qt-everywhere-opensource-src-4.8.4/src/gui/painting/qprinter.cpp.cupsEnumDests 2013-07-03 15:27:24.531342277 +0100 -+++ qt-everywhere-opensource-src-4.8.4/src/gui/painting/qprinter.cpp 2013-07-03 15:27:24.733343017 +0100 -@@ -844,7 +844,7 @@ void QPrinter::setPrinterName(const QStr - if(d->use_default_engine - && d->outputFormat == QPrinter::NativeFormat) { - if (QCUPSSupport::cupsVersion() >= 10200 -- && QCUPSSupport::printerHasPPD(name.toLocal8Bit().constData())) -+ && QCUPSSupport().printerHasPPD(name.toLocal8Bit().constData())) - setOutputFormat(QPrinter::PdfFormat); - else - setOutputFormat(QPrinter::PostScriptFormat); diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.6.2-cups.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.6.2-cups.patch deleted file mode 100644 index e0305e11b8..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.6.2-cups.patch +++ /dev/null @@ -1,84 +0,0 @@ -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/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch deleted file mode 100644 index d4e5924dff..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch +++ /dev/null @@ -1,69 +0,0 @@ -diff -ur qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck/src/gui/kernel/qguieventdispatcher_glib.cpp ---- qt-everywhere-opensource-src-4.6.3/src/gui/kernel/qguieventdispatcher_glib.cpp 2010-06-02 04:03:15.000000000 +0200 -+++ qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck/src/gui/kernel/qguieventdispatcher_glib.cpp 2010-12-08 22:22:38.000000000 +0100 -@@ -76,7 +76,7 @@ - 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 @@ - 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) -@@ -95,7 +95,7 @@ - do { - XEvent event; - if (!(source->flags & QEventLoop::ExcludeUserInputEvents) -- && !source->d->queuedUserInputEvents.isEmpty()) { -+ && source->d && !source->d->queuedUserInputEvents.isEmpty()) { - // process a pending user input event - event = source->d->queuedUserInputEvents.takeFirst(); - } else if (XEventsQueued(X11->display, QueuedAlready)) { -@@ -112,7 +112,8 @@ - case XKeyRelease: - case EnterNotify: - case LeaveNotify: -- source->d->queuedUserInputEvents.append(event); -+ if (source->d) -+ source->d->queuedUserInputEvents.append(event); - continue; - - case ClientMessage: -@@ -127,7 +128,8 @@ - break; - } - } -- source->d->queuedUserInputEvents.append(event); -+ if (source->d) -+ source->d->queuedUserInputEvents.append(event); - continue; - - default: -@@ -140,7 +142,7 @@ - } - - // send through event filter -- if (source->q->filterEvent(&event)) -+ if (source->q && source->q->filterEvent(&event)) - continue; - - if (qApp->x11ProcessEvent(&event) == 1) -@@ -152,7 +154,8 @@ - - out: - -- source->d->runTimersOnceWithNormalPriority(); -+ if (source->d) -+ source->d->runTimersOnceWithNormalPriority(); - - if (callback) - callback(user_data); diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch deleted file mode 100644 index 4279ce2e77..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h.QTBUG-22037 qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h ---- qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h.QTBUG-22037 2011-10-03 22:44:32.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.0/src/corelib/tools/qlist.h 2011-10-15 14:25:52.238694974 -0500 -@@ -769,26 +769,18 @@ Q_OUTOFLINE_TEMPLATE void QList::clea - template - Q_OUTOFLINE_TEMPLATE int QList::removeAll(const T &_t) - { -- int index = indexOf(_t); -- if (index == -1) -- return 0; -- -+ detachShared(); - const T t = _t; -- detach(); -- -- Node *i = reinterpret_cast(p.at(index)); -- Node *e = reinterpret_cast(p.end()); -- Node *n = i; -- node_destruct(i); -- while (++i != e) { -- if (i->t() == t) -- node_destruct(i); -- else -- *n++ = *i; -- } -- -- int removedCount = e - n; -- d->end -= removedCount; -+ int removedCount=0, i=0; -+ Node *n; -+ while (i < p.size()) -+ if ((n = reinterpret_cast(p.at(i)))->t() == t) { -+ node_destruct(n); -+ p.remove(i); -+ ++removedCount; -+ } else { -+ ++i; -+ } - return removedCount; - } - diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch deleted file mode 100644 index 5c8b5a1dda..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf ---- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf.multilib 2011-05-23 12:26:21.000000000 +0200 -+++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-32/qmake.conf 2011-05-25 13:39:38.789054074 +0200 -@@ -12,6 +12,8 @@ QMAKE_INCREMENTAL_STYLE = sublib - QMAKE_CFLAGS = -m32 - QMAKE_LFLAGS = -m32 - -+QMAKE_CFLAGS_RELEASE += -O2 -+ - include(../common/linux.conf) - include(../common/gcc-base-unix.conf) - include(../common/g++-unix.conf) -diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf ---- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf.multilib 2011-05-23 12:26:21.000000000 +0200 -+++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++-64/qmake.conf 2011-05-25 13:39:47.460747770 +0200 -@@ -15,6 +15,8 @@ QMAKE_INCREMENTAL_STYLE = sublib - QMAKE_CFLAGS = -m64 - QMAKE_LFLAGS = -m64 - -+QMAKE_CFLAGS_RELEASE += -O2 -+ - include(../common/linux.conf) - include(../common/gcc-base-unix.conf) - include(../common/g++-unix.conf) -diff -up qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf.multilib qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf ---- qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf.multilib 2011-05-23 12:26:21.000000000 +0200 -+++ qt-everywhere-opensource-src-4.8.0-tp/mkspecs/linux-g++/qmake.conf 2011-05-25 13:39:26.630088814 +0200 -@@ -9,6 +9,8 @@ CONFIG += qt warn_on release increment - QT += core gui - QMAKE_INCREMENTAL_STYLE = sublib - -+QMAKE_CFLAGS_RELEASE += -O2 -+ - include(../common/linux.conf) - include(../common/gcc-base-unix.conf) - include(../common/g++-unix.conf) diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch deleted file mode 100644 index 7458314672..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro.debuginfo qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro ---- qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro.debuginfo 2012-03-14 09:01:17.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.1/src/qt3support/qt3support.pro 2012-05-11 11:55:37.780070386 -0500 -@@ -34,6 +34,3 @@ MOCDIR = .moc - - *-g++*: QMAKE_CXXFLAGS += -fno-strict-aliasing - --CONFIG -= separate_debug_info --CONFIG += no_debug_info -- diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.3-no_Werror.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.3-no_Werror.patch deleted file mode 100644 index 86dcc288d5..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.3-no_Werror.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.3/src/3rdparty/webkit/Source/WebKit.pri.no_Werror qt-everywhere-opensource-src-4.8.3/src/3rdparty/webkit/Source/WebKit.pri ---- qt-everywhere-opensource-src-4.8.3/src/3rdparty/webkit/Source/WebKit.pri.no_Werror 2012-09-06 02:33:50.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.3/src/3rdparty/webkit/Source/WebKit.pri 2012-09-11 09:03:19.152159783 -0500 -@@ -102,7 +102,7 @@ CONFIG -= warn_on - - # Treat warnings as errors on x86/Linux/GCC - linux-g++* { -- !CONFIG(standalone_package):if(isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386)): QMAKE_CXXFLAGS += -Werror -+ #!CONFIG(standalone_package):if(isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386)): QMAKE_CXXFLAGS += -Werror - - greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 5) { - if (!contains(QMAKE_CXXFLAGS, -std=c++0x) && !contains(QMAKE_CXXFLAGS, -std=gnu++0x)) { diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch deleted file mode 100644 index 0494c81f06..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.4/qmake/generators/makefile.cpp.qmake_pkgconfig_requires_private qt-everywhere-opensource-src-4.8.4/qmake/generators/makefile.cpp ---- qt-everywhere-opensource-src-4.8.4/qmake/generators/makefile.cpp.qmake_pkgconfig_requires_private 2012-11-23 04:11:21.000000000 -0600 -+++ qt-everywhere-opensource-src-4.8.4/qmake/generators/makefile.cpp 2013-02-11 07:36:36.192779528 -0600 -@@ -3293,6 +3293,12 @@ MakefileGenerator::writePkgConfigFile() - t << "Requires: " << requires << endl; - } - -+ // requires.private -+ const QString requires_private = project->values("QMAKE_PKGCONFIG_REQUIRES_PRIVATE").join(" "); -+ if (!requires_private.isEmpty()) { -+ t << "Requires.private: " << requires_private << endl; -+ } -+ - t << endl; - } - diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch deleted file mode 100644 index 81d74ff4d5..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/mkspecs/features/qt_functions.prf.QTBUG-14467 qt-everywhere-opensource-src-4.8.5/mkspecs/features/qt_functions.prf ---- qt-everywhere-opensource-src-4.8.5/mkspecs/features/qt_functions.prf.QTBUG-14467 2013-05-30 16:19:17.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.5/mkspecs/features/qt_functions.prf 2013-06-09 11:53:45.709773603 -0500 -@@ -72,7 +72,7 @@ defineTest(qtAddLibrary) { - } - isEmpty(LINKAGE) { - if(!debug_and_release|build_pass):CONFIG(debug, debug|release) { -- win32:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}d -+ win32:LINKAGE = -l$${LIB_NAME}d$${QT_LIBINFIX} - mac:LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}_debug - } - isEmpty(LINKAGE):LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX} -diff -up qt-everywhere-opensource-src-4.8.5/mkspecs/features/win32/windows.prf.QTBUG-14467 qt-everywhere-opensource-src-4.8.5/mkspecs/features/win32/windows.prf ---- qt-everywhere-opensource-src-4.8.5/mkspecs/features/win32/windows.prf.QTBUG-14467 2013-05-30 16:19:17.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.5/mkspecs/features/win32/windows.prf 2013-06-09 11:53:45.710773593 -0500 -@@ -6,7 +6,7 @@ contains(TEMPLATE, ".*app"){ - - qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) { - isEqual(entryLib, -lqtmain): { -- CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}d -+ CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}d$${QT_LIBINFIX} - else: QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX} - } else { - QMAKE_LIBS += $${entryLib} diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch deleted file mode 100644 index 018872f6d4..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch +++ /dev/null @@ -1,84 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/src/gui/kernel/qapplication_x11.cpp.QTBUG-21900 qt-everywhere-opensource-src-4.8.5/src/gui/kernel/qapplication_x11.cpp ---- qt-everywhere-opensource-src-4.8.5/src/gui/kernel/qapplication_x11.cpp.QTBUG-21900 2013-05-30 16:18:05.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.5/src/gui/kernel/qapplication_x11.cpp 2013-06-09 11:53:45.891771748 -0500 -@@ -818,6 +818,27 @@ static Bool qt_sync_request_scanner(Disp - #endif - #endif // QT_NO_XSYNC - -+struct qt_configure_event_data -+{ -+ WId window; -+ WId parent; -+}; -+ -+static Bool qt_configure_event_scanner(Display*, XEvent *event, XPointer arg) -+{ -+ qt_configure_event_data *data = -+ reinterpret_cast(arg); -+ if (event->type == ConfigureNotify && -+ event->xconfigure.window == data->window) { -+ return true; -+ } else if (event->type == ReparentNotify && -+ event->xreparent.window == data->window) { -+ data->parent = event->xreparent.parent; -+ } -+ -+ return false; -+} -+ - static void qt_x11_create_intern_atoms() - { - const char *names[QX11Data::NAtoms]; -@@ -5302,8 +5323,11 @@ bool QETWidget::translateConfigEvent(con - if (d->extra->compress_events) { - // ConfigureNotify compression for faster opaque resizing - XEvent otherEvent; -- while (XCheckTypedWindowEvent(X11->display, internalWinId(), ConfigureNotify, -- &otherEvent)) { -+ qt_configure_event_data configureData; -+ configureData.window = internalWinId(); -+ configureData.parent = d->topData()->parentWinId; -+ while (XCheckIfEvent(X11->display, &otherEvent, -+ &qt_configure_event_scanner, (XPointer)&configureData)) { - if (qt_x11EventFilter(&otherEvent)) - continue; - -@@ -5316,13 +5340,19 @@ bool QETWidget::translateConfigEvent(con - newSize.setWidth(otherEvent.xconfigure.width); - newSize.setHeight(otherEvent.xconfigure.height); - -+ trust = isVisible() -+ && (configureData.parent == XNone || -+ configureData.parent == QX11Info::appRootWindow()); -+ - if (otherEvent.xconfigure.send_event || trust) { - newCPos.rx() = otherEvent.xconfigure.x + - otherEvent.xconfigure.border_width; - newCPos.ry() = otherEvent.xconfigure.y + - otherEvent.xconfigure.border_width; - isCPos = true; -- } -+ } else { -+ isCPos = false; -+ } - } - #ifndef QT_NO_XSYNC - qt_sync_request_event_data sync_event; -@@ -5335,9 +5365,14 @@ bool QETWidget::translateConfigEvent(con - } - - if (!isCPos) { -- // we didn't get an updated position of the toplevel. -- // either we haven't moved or there is a bug in the window manager. -- // anyway, let's query the position to be certain. -+ // If the last configure event didn't have a trustable position, -+ // it's necessary to query, see ICCCM 4.24: -+ // -+ // Any real ConfigureNotify event on a top-level window implies -+ // that the window’s position on the root may have changed, even -+ // though the event reports that the window’s position in its -+ // parent is unchanged because the window may have been reparented. -+ - int x, y; - Window child; - XTranslateCoordinates(X11->display, internalWinId(), diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch deleted file mode 100644 index dede8324d5..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur qt-everywhere-opensource-src-4.8.5-CVE-2013-4549/src/xml/sax/qxml.cpp qt-everywhere-opensource-src-4.8.5-QTBUG-35459/src/xml/sax/qxml.cpp ---- qt-everywhere-opensource-src-4.8.5-CVE-2013-4549/src/xml/sax/qxml.cpp 2013-12-05 19:23:33.000000000 +0100 -+++ qt-everywhere-opensource-src-4.8.5-QTBUG-35459/src/xml/sax/qxml.cpp 2014-01-13 20:13:59.000000000 +0100 -@@ -428,7 +428,7 @@ - // for the DTD currently being parsed. - static const int dtdRecursionLimit = 2; - // The maximum amount of characters an entity value may contain, after expansion. -- static const int entityCharacterLimit = 1024; -+ static const int entityCharacterLimit = 65536; - - const QString &string(); - void stringClear(); diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch deleted file mode 100644 index ee1d19136a..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp.QTBUG-4862 qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp ---- qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp.QTBUG-4862 2013-06-09 12:02:50.323221694 -0500 -+++ qt-everywhere-opensource-src-4.8.5/src/corelib/io/qfilesystemengine_unix.cpp 2013-06-09 12:38:53.140804742 -0500 -@@ -624,6 +624,25 @@ QString QFileSystemEngine::homePath() - { - QString home = QFile::decodeName(qgetenv("HOME")); - if (home.isEmpty()) -+ { -+#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) -+ int size_max = sysconf(_SC_GETPW_R_SIZE_MAX); -+ if (size_max == -1) -+ size_max = 1024; -+ QVarLengthArray buf(size_max); -+#endif -+ struct passwd *pw = 0; -+ uid_t user_id = getuid(); -+ pw = getpwuid(user_id); -+#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) -+ struct passwd entry; -+ getpwuid_r(user_id, &entry, buf.data(), buf.size(), &pw); -+#else -+ pw = getpwuid(user_id); -+#endif -+ home = QFile::decodeName(QByteArray(pw->pw_dir)); -+ } -+ if (home.isEmpty()) - home = rootPath(); - return QDir::cleanPath(home); - } diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-mysql_config.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-mysql_config.patch deleted file mode 100644 index fc0ee7670b..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-mysql_config.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/configure.mysql_config qt-everywhere-opensource-src-4.8.5/configure ---- qt-everywhere-opensource-src-4.8.5/configure.mysql_config 2013-06-07 00:16:41.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.5/configure 2014-03-07 10:09:27.412071146 -0600 -@@ -5480,8 +5480,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 --variable=pkglibdir &>/dev/null && \ -+ QT_MYSQL_PKGLIBDIR=`$CFG_MYSQL_CONFIG --variable=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/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch deleted file mode 100644 index 9a9f773537..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/src/gui/styles/qgtkstyle_p.cpp.qgtkstyle_disable_gtk_theme_check qt-everywhere-opensource-src-4.8.5/src/gui/styles/qgtkstyle_p.cpp ---- qt-everywhere-opensource-src-4.8.5/src/gui/styles/qgtkstyle_p.cpp.qgtkstyle_disable_gtk_theme_check 2013-06-09 16:28:22.938840346 -0500 -+++ qt-everywhere-opensource-src-4.8.5/src/gui/styles/qgtkstyle_p.cpp 2013-06-09 17:03:01.781125479 -0500 -@@ -503,18 +503,6 @@ void QGtkStylePrivate::initGtkWidgets() - return; - } - -- static QString themeName; -- if (!gtkWidgetMap()->contains("GtkWindow") && themeName.isEmpty()) { -- themeName = getThemeName(); -- -- if (themeName == QLS("Qt") || themeName == QLS("Qt4")) { -- // Due to namespace conflicts with Qt3 and obvious recursion with Qt4, -- // we cannot support the GTK_Qt Gtk engine -- qWarning("QGtkStyle cannot be used together with the GTK_Qt engine."); -- return; -- } -- } -- - if (QGtkStylePrivate::gtk_init) { - // Gtk will set the Qt error handler so we have to reset it afterwards - x11ErrorHandler qt_x_errhandler = XSetErrorHandler(0); diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch deleted file mode 100644 index 6a87783e3a..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/src/corelib/kernel/qcoreapplication.cpp.qt_plugin_path qt-everywhere-opensource-src-4.8.5/src/corelib/kernel/qcoreapplication.cpp ---- qt-everywhere-opensource-src-4.8.5/src/corelib/kernel/qcoreapplication.cpp.qt_plugin_path 2013-06-07 00:16:52.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.5/src/corelib/kernel/qcoreapplication.cpp 2013-06-21 07:14:10.045039936 -0500 -@@ -2511,6 +2511,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/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch deleted file mode 100644 index 2deeb51bbf..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/src/sql/drivers/tds/qsql_tds.pri.tds_no_strict_aliasing qt-everywhere-opensource-src-4.8.5/src/sql/drivers/tds/qsql_tds.pri ---- qt-everywhere-opensource-src-4.8.5/src/sql/drivers/tds/qsql_tds.pri.tds_no_strict_aliasing 2013-06-09 11:57:49.198291245 -0500 -+++ qt-everywhere-opensource-src-4.8.5/src/sql/drivers/tds/qsql_tds.pri 2013-06-09 12:01:24.120100371 -0500 -@@ -1,6 +1,8 @@ - HEADERS += $$PWD/qsql_tds.h - SOURCES += $$PWD/qsql_tds.cpp - -+*-g++*: QMAKE_CXXFLAGS += -fno-strict-aliasing -+ - unix|win32-g++*: { - LIBS += $$QT_LFLAGS_TDS - !contains(LIBS, .*sybdb.*):LIBS += -lsybdb diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch deleted file mode 100644 index d04d1be5af..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/src/tools/moc/moc.cpp.uic_multilib qt-everywhere-opensource-src-4.8.5/src/tools/moc/moc.cpp -diff -up qt-everywhere-opensource-src-4.8.5/src/tools/uic3/embed.cpp.uic_multilib qt-everywhere-opensource-src-4.8.5/src/tools/uic3/embed.cpp ---- qt-everywhere-opensource-src-4.8.5/src/tools/uic3/embed.cpp.uic_multilib 2013-05-30 16:18:04.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.5/src/tools/uic3/embed.cpp 2013-06-09 11:50:25.597813974 -0500 -@@ -152,8 +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 << "** by: The User Interface Compiler for Qt version " << QT_VERSION_STR << "\n"; -+ out << "** Created: 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"; - out << "****************************************************************************/\n"; -diff -up qt-everywhere-opensource-src-4.8.5/src/tools/uic3/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.8.5/src/tools/uic3/uic.cpp ---- qt-everywhere-opensource-src-4.8.5/src/tools/uic3/uic.cpp.uic_multilib 2013-05-30 16:18:04.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.5/src/tools/uic3/uic.cpp 2013-06-09 11:51:28.310174526 -0500 -@@ -146,8 +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 << "** " << QString::fromLatin1("by: Qt User Interface Compiler version %1\n").arg(QLatin1String(QT_VERSION_STR)); -+ out << "** Created by: " << QString::fromLatin1("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"; - out << "********************************************************************************/\n\n"; -diff -up qt-everywhere-opensource-src-4.8.5/src/tools/uic/uic.cpp.uic_multilib qt-everywhere-opensource-src-4.8.5/src/tools/uic/uic.cpp diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-webcore_debuginfo.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-webcore_debuginfo.patch deleted file mode 100644 index 1ea8af2b0e..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.5-webcore_debuginfo.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -up qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebCore/WebCore.pri.webkit_debuginfo qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebCore/WebCore.pri ---- qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebCore/WebCore.pri.webkit_debuginfo 2013-06-07 00:16:55.000000000 -0500 -+++ qt-everywhere-opensource-src-4.8.5/src/3rdparty/webkit/Source/WebCore/WebCore.pri 2013-07-11 14:04:19.937056249 -0500 -@@ -5,6 +5,12 @@ include(features.pri) - - # Uncomment this to enable Texture Mapper. - # CONFIG += texmap -+# -+equals(QT_ARCH, s390)|equals(QT_ARCH, arm)|equals(QT_ARCH, mips)|equals(QT_ARCH, i386)|equals(QT_ARCH, i686)|equals(QT_ARCH, x86_64)|equals(QT_ARCH, powerpc64)|equals(QT_ARCH, powerpc) { -+ message("WebCore workaround for QtWebkit: do not build with -g, but with -g1") -+ QMAKE_CXXFLAGS_RELEASE -= -g -+ QMAKE_CXXFLAGS_RELEASE += -g1 -+} - - QT *= network - diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch deleted file mode 100644 index 8b0468bb66..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch +++ /dev/null @@ -1,95 +0,0 @@ ---- src/corelib/kernel/qeventdispatcher_glib.cpp.sav 2014-03-28 15:26:37.000000000 +0100 -+++ qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventdispatcher_glib.cpp 2014-04-24 09:44:09.358659204 +0200 -@@ -255,22 +255,30 @@ struct GPostEventSource - GSource source; - QAtomicInt serialNumber; - int lastSerialNumber; -+ QEventLoop::ProcessEventsFlags processEventsFlags; - QEventDispatcherGlibPrivate *d; - }; - - static gboolean postEventSourcePrepare(GSource *s, gint *timeout) - { -+ GPostEventSource *source = reinterpret_cast(s); - QThreadData *data = QThreadData::current(); - if (!data) - return false; - -+ QEventLoop::ProcessEventsFlags excludeAllFlags -+ = QEventLoop::ExcludeUserInputEvents -+ | QEventLoop::ExcludeSocketNotifiers -+ | QEventLoop::X11ExcludeTimers; -+ if ((source->processEventsFlags & excludeAllFlags) == excludeAllFlags) -+ return false; -+ - gint dummy; - if (!timeout) - timeout = &dummy; - const bool canWait = data->canWaitLocked(); - *timeout = canWait ? -1 : 0; - -- GPostEventSource *source = reinterpret_cast(s); - return (!canWait - || (source->serialNumber != source->lastSerialNumber)); - } -@@ -284,8 +292,14 @@ static gboolean postEventSourceDispatch( - { - GPostEventSource *source = reinterpret_cast(s); - source->lastSerialNumber = source->serialNumber; -- QCoreApplication::sendPostedEvents(); -- source->d->runTimersOnceWithNormalPriority(); -+ QEventLoop::ProcessEventsFlags excludeAllFlags -+ = QEventLoop::ExcludeUserInputEvents -+ | QEventLoop::ExcludeSocketNotifiers -+ | QEventLoop::X11ExcludeTimers; -+ if ((source->processEventsFlags & excludeAllFlags) != excludeAllFlags) { -+ QCoreApplication::sendPostedEvents(); -+ source->d->runTimersOnceWithNormalPriority(); -+ } - return true; // i dunno, george... - } - -@@ -329,6 +343,7 @@ QEventDispatcherGlibPrivate::QEventDispa - postEventSource = reinterpret_cast(g_source_new(&postEventSourceFuncs, - sizeof(GPostEventSource))); - postEventSource->serialNumber = 1; -+ postEventSource->processEventsFlags = QEventLoop::AllEvents; - postEventSource->d = this; - g_source_set_can_recurse(&postEventSource->source, true); - g_source_attach(&postEventSource->source, mainContext); -@@ -423,6 +438,7 @@ bool QEventDispatcherGlib::processEvents - - // tell postEventSourcePrepare() and timerSource about any new flags - QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags; -+ d->postEventSource->processEventsFlags = flags; - d->timerSource->processEventsFlags = flags; - d->socketNotifierSource->processEventsFlags = flags; - -@@ -435,6 +451,7 @@ bool QEventDispatcherGlib::processEvents - while (!result && canWait) - result = g_main_context_iteration(d->mainContext, canWait); - -+ d->postEventSource->processEventsFlags = savedFlags; - d->timerSource->processEventsFlags = savedFlags; - d->socketNotifierSource->processEventsFlags = savedFlags; - ---- src/corelib/kernel/qeventdispatcher_unix.cpp.sav 2013-06-07 07:16:52.000000000 +0200 -+++ qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qeventdispatcher_unix.cpp 2014-04-24 09:43:06.927589535 +0200 -@@ -905,7 +905,15 @@ bool QEventDispatcherUNIX::processEvents - - // we are awake, broadcast it - emit awake(); -- QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); -+ -+ QEventLoop::ProcessEventsFlags excludeAllFlags -+ = QEventLoop::ExcludeUserInputEvents -+ | QEventLoop::ExcludeSocketNotifiers -+ | QEventLoop::X11ExcludeTimers; -+ if ((flags & excludeAllFlags) == excludeAllFlags) -+ return false; -+ if(( flags & excludeAllFlags ) != excludeAllFlags ) -+ QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); - - int nevents = 0; - const bool canWait = (d->threadData->canWaitLocked() - diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-37380.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-37380.patch deleted file mode 100644 index 296a5ada69..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-37380.patch +++ /dev/null @@ -1,64 +0,0 @@ -Author: Jan-Marek Glogowski -Date: Thu Mar 06 18:44:43 2014 +0100 - - Honor QEventLoop::ExcludeSocketNotifiers in glib event loop. - - Implements QEventLoop::ExcludeSocketNotifiers in the same way - QEventLoop::X11ExcludeTimers is already implemented for the glib - event loop. - ---- qt4-x11-4.8.1.orig/src/corelib/kernel/qeventdispatcher_glib.cpp -+++ qt4-x11-4.8.1/src/corelib/kernel/qeventdispatcher_glib.cpp -@@ -65,6 +65,7 @@ struct GPollFDWithQSocketNotifier - struct GSocketNotifierSource - { - GSource source; -+ QEventLoop::ProcessEventsFlags processEventsFlags; - QList pollfds; - }; - -@@ -80,6 +81,9 @@ static gboolean socketNotifierSourceChec - GSocketNotifierSource *src = reinterpret_cast(source); - - bool pending = false; -+ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers) -+ return pending; -+ - for (int i = 0; !pending && i < src->pollfds.count(); ++i) { - GPollFDWithQSocketNotifier *p = src->pollfds.at(i); - -@@ -103,6 +107,9 @@ static gboolean socketNotifierSourceDisp - QEvent event(QEvent::SockAct); - - GSocketNotifierSource *src = reinterpret_cast(source); -+ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers) -+ return true; -+ - for (int i = 0; i < src->pollfds.count(); ++i) { - GPollFDWithQSocketNotifier *p = src->pollfds.at(i); - -@@ -330,6 +337,7 @@ QEventDispatcherGlibPrivate::QEventDispa - reinterpret_cast(g_source_new(&socketNotifierSourceFuncs, - sizeof(GSocketNotifierSource))); - (void) new (&socketNotifierSource->pollfds) QList(); -+ socketNotifierSource->processEventsFlags = QEventLoop::AllEvents; - g_source_set_can_recurse(&socketNotifierSource->source, true); - g_source_attach(&socketNotifierSource->source, mainContext); - -@@ -415,6 +423,7 @@ bool QEventDispatcherGlib::processEvents - // tell postEventSourcePrepare() and timerSource about any new flags - QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags; - d->timerSource->processEventsFlags = flags; -+ d->socketNotifierSource->processEventsFlags = flags; - - if (!(flags & QEventLoop::EventLoopExec)) { - // force timers to be sent at normal priority -@@ -426,6 +435,7 @@ bool QEventDispatcherGlib::processEvents - result = g_main_context_iteration(d->mainContext, canWait); - - d->timerSource->processEventsFlags = savedFlags; -+ d->socketNotifierSource->processEventsFlags = savedFlags; - - if (canWait) - emit awake(); - diff --git a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-38585.patch b/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-38585.patch deleted file mode 100644 index 6aee4fee73..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-38585.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- src/gui/kernel/qclipboard_x11.cpp.sav 2014-04-25 09:52:03.855693228 +0200 -+++ qt-everywhere-opensource-src-4.8.6/src/gui/kernel/qclipboard_x11.cpp 2014-04-25 09:51:58.038693777 +0200 -@@ -548,7 +548,8 @@ bool QX11Data::clipboardWaitForEvent(Win - return false; - - XSync(X11->display, false); -- usleep(50000); -+ if (!XPending(X11->display)) -+ usleep(5000); - - now.start(); - - diff --git a/desktop/toolkit/qt/files/fedora/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch b/desktop/toolkit/qt/files/fedora/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch deleted file mode 100644 index e5ab4bad96..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff -ur qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_i386.h qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_i386.h ---- qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_i386.h 2009-02-25 22:09:21.000000000 +0100 -+++ qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_i386.h 2009-04-01 17:54:21.000000000 +0200 -@@ -115,8 +115,8 @@ - asm volatile("lock\n" - "incl %0\n" - "setne %1" -- : "=m" (_q_value), "=qm" (ret) -- : "m" (_q_value) -+ : "+m" (_q_value), "=qm" (ret) -+ : - : "memory"); - return ret != 0; - } -@@ -127,8 +127,8 @@ - asm volatile("lock\n" - "decl %0\n" - "setne %1" -- : "=m" (_q_value), "=qm" (ret) -- : "m" (_q_value) -+ : "+m" (_q_value), "=qm" (ret) -+ : - : "memory"); - return ret != 0; - } -diff -ur qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_x86_64.h qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_x86_64.h ---- qt-x11-opensource-src-4.5.0/src/corelib/arch/qatomic_x86_64.h 2009-02-25 22:09:21.000000000 +0100 -+++ qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm/src/corelib/arch/qatomic_x86_64.h 2009-04-01 17:54:32.000000000 +0200 -@@ -116,8 +116,8 @@ - asm volatile("lock\n" - "incl %0\n" - "setne %1" -- : "=m" (_q_value), "=qm" (ret) -- : "m" (_q_value) -+ : "+m" (_q_value), "=qm" (ret) -+ : - : "memory"); - return ret != 0; - } -@@ -128,8 +128,8 @@ - asm volatile("lock\n" - "decl %0\n" - "setne %1" -- : "=m" (_q_value), "=qm" (ret) -- : "m" (_q_value) -+ : "+m" (_q_value), "=qm" (ret) -+ : - : "memory"); - return ret != 0; - } diff --git a/desktop/toolkit/qt/files/fedora/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch b/desktop/toolkit/qt/files/fedora/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch deleted file mode 100644 index 4ab3ea4b11..0000000000 --- a/desktop/toolkit/qt/files/fedora/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up qt-x11-opensource-src-4.5.1/src/gui/text/qfontengine_ft.cpp.enable_ft_lcdfilter qt-x11-opensource-src-4.5.1/src/gui/text/qfontengine_ft.cpp ---- qt-x11-opensource-src-4.5.1/src/gui/text/qfontengine_ft.cpp.enable_ft_lcdfilter 2009-04-21 18:57:41.000000000 -0500 -+++ qt-x11-opensource-src-4.5.1/src/gui/text/qfontengine_ft.cpp 2009-04-24 11:17:49.562695405 -0500 -@@ -72,7 +72,7 @@ - #include FT_CONFIG_OPTIONS_H - #endif - --#if defined(FT_LCD_FILTER_H) && defined(FT_CONFIG_OPTION_SUBPIXEL_RENDERING) -+#if defined(FT_LCD_FILTER_H) - #define QT_USE_FREETYPE_LCDFILTER - #endif - diff --git a/desktop/toolkit/qt/files/mkspecs.patch b/desktop/toolkit/qt/files/mkspecs.patch deleted file mode 100644 index 2cd05f90e5..0000000000 --- a/desktop/toolkit/qt/files/mkspecs.patch +++ /dev/null @@ -1,54 +0,0 @@ -diff -Naur mkspecs/common.orig/g++-base.conf mkspecs/common/g++-base.conf ---- mkspecs/common.orig/g++-base.conf 2012-03-14 16:01:12.000000000 +0200 -+++ mkspecs/common/g++-base.conf 2012-04-05 14:53:05.670347102 +0300 -@@ -8,17 +8,23 @@ - # you can use the manual test in tests/manual/mkspecs. - # - --QMAKE_CC = gcc -+QMAKE_CC = PISILINUX_CC - - QMAKE_LINK_C = $$QMAKE_CC - QMAKE_LINK_C_SHLIB = $$QMAKE_CC - --QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g -+QMAKE_CFLAGS_RELEASE += PISILINUX_CFLAGS -+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += PISILINUX_CFLAGS -g - --QMAKE_CXX = g++ -+QMAKE_CXX = PISILINUX_CXX - --QMAKE_LINK = $$QMAKE_CXX --QMAKE_LINK_SHLIB = $$QMAKE_CXX -+ -+QMAKE_LINK = PISILINUX_CXX -+QMAKE_LINK_SHLIB = PISILINUX_CXX -+QMAKE_LINK_C = PISILINUX_CC -+QMAKE_LINK_C_SHLIB = PISILINUX_CC -+ -+QMAKE_LFLAGS_RELEASE += PISILINUX_LDFLAGS - - QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO - -diff -Naur mkspecs/common.orig/g++-unix.conf mkspecs/common/g++-unix.conf ---- mkspecs/common.orig/g++-unix.conf 2012-03-14 16:01:12.000000000 +0200 -+++ mkspecs/common/g++-unix.conf 2012-04-05 14:49:41.723399705 +0300 -@@ -10,5 +10,5 @@ - - include(g++-base.conf) - --QMAKE_LFLAGS_RELEASE += -Wl,-O1 -+QMAKE_LFLAGS_RELEASE += PISILINUX_LDFLAGS - QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined -diff -Naur mkspecs/common.orig/linux.conf mkspecs/common/linux.conf ---- mkspecs/common.orig/linux.conf 2012-03-14 16:01:12.000000000 +0200 -+++ mkspecs/common/linux.conf 2012-04-05 14:54:23.487037709 +0300 -@@ -57,7 +57,7 @@ - QMAKE_MOVE = mv -f - QMAKE_DEL_FILE = rm -f - QMAKE_DEL_DIR = rmdir --QMAKE_STRIP = strip -+QMAKE_STRIP = - QMAKE_STRIPFLAGS_LIB += --strip-unneeded - QMAKE_CHK_DIR_EXISTS = test -d - QMAKE_MKDIR = mkdir -p diff --git a/desktop/toolkit/qt/files/opensuse/0001-Don-t-crash-on-broken-GIF-images.patch b/desktop/toolkit/qt/files/opensuse/0001-Don-t-crash-on-broken-GIF-images.patch deleted file mode 100644 index 011918935e..0000000000 --- a/desktop/toolkit/qt/files/opensuse/0001-Don-t-crash-on-broken-GIF-images.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 19d31c5b036a46365584d7d97e87f7fe16150623 Mon Sep 17 00:00:00 2001 -From: Lars Knoll -Date: Thu, 24 Apr 2014 15:33:27 +0200 -Subject: [PATCH] Don't crash on broken GIF images - -Broken GIF images could set invalid width and height -values inside the image, leading to Qt creating a null -QImage for it. In that case we need to abort decoding -the image and return an error. - -Initial patch by Rich Moore. - -Backport of Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e from Qt 5 - -Task-number: QTBUG-38367 -Change-Id: I0680740018aaa8356d267b7af3f01fac3697312a -Security-advisory: CVE-2014-0190 ---- - src/gui/image/qgifhandler.cpp | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/gui/image/qgifhandler.cpp b/src/gui/image/qgifhandler.cpp -index 3324f04..5199dd3 100644 ---- a/src/gui/image/qgifhandler.cpp -+++ b/src/gui/image/qgifhandler.cpp -@@ -359,6 +359,13 @@ int QGIFFormat::decode(QImage *image, const uchar *buffer, int length, - memset(bits, 0, image->byteCount()); - } - -+ // Check if the previous attempt to create the image failed. If it -+ // did then the image is broken and we should give up. -+ if (image->isNull()) { -+ state = Error; -+ return -1; -+ } -+ - disposePrevious(image); - disposed = false; - --- -1.9.0 - diff --git a/desktop/toolkit/qt/files/opensuse/0180-window-role.diff b/desktop/toolkit/qt/files/opensuse/0180-window-role.diff deleted file mode 100644 index 661c3ba5b2..0000000000 --- a/desktop/toolkit/qt/files/opensuse/0180-window-role.diff +++ /dev/null @@ -1,96 +0,0 @@ -Index: src/corelib/kernel/qobject.cpp -=================================================================== ---- src/corelib/kernel/qobject.cpp.orig -+++ src/corelib/kernel/qobject.cpp -@@ -1102,10 +1102,19 @@ void QObject::setObjectName(const QStrin - - d->objectName = name; - -+#if defined(Q_WS_X11) -+ d->checkWindowRole(); -+#endif -+ - if (objectNameChanged) - d->declarativeData->objectNameChanged(d->declarativeData, this); - } - -+#if defined(Q_WS_X11) -+void QObjectPrivate::checkWindowRole() -+{ -+} -+#endif - - #ifdef QT3_SUPPORT - /*! \internal -Index: src/corelib/kernel/qobject_p.h -=================================================================== ---- src/corelib/kernel/qobject_p.h.orig -+++ src/corelib/kernel/qobject_p.h -@@ -162,6 +162,9 @@ public: - #ifdef QT3_SUPPORT - void sendPendingChildInsertedEvents(); - #endif -+#if defined(Q_WS_X11) -+ virtual void checkWindowRole(); -+#endif - - static inline Sender *setCurrentSender(QObject *receiver, - Sender *sender); -Index: src/gui/kernel/qwidget_p.h -=================================================================== ---- src/gui/kernel/qwidget_p.h.orig -+++ src/gui/kernel/qwidget_p.h -@@ -784,6 +784,7 @@ public: - static QWidget *keyboardGrabber; - - void setWindowRole(); -+ virtual void checkWindowRole(); - void sendStartupMessage(const char *message) const; - void setNetWmWindowTypes(); - void x11UpdateIsOpaque(); -Index: src/gui/kernel/qwidget_x11.cpp -=================================================================== ---- src/gui/kernel/qwidget_x11.cpp.orig -+++ src/gui/kernel/qwidget_x11.cpp -@@ -849,13 +849,17 @@ void QWidgetPrivate::create_sys(WId wind - - - // declare the widget's window role -+ QByteArray windowRole; - if (QTLWExtra *topData = maybeTopData()) { -- if (!topData->role.isEmpty()) { -- QByteArray windowRole = topData->role.toUtf8(); -- XChangeProperty(dpy, id, -- ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace, -- (unsigned char *)windowRole.constData(), windowRole.length()); -- } -+ if (!topData->role.isEmpty()) -+ windowRole = topData->role.toUtf8(); -+ } -+ if (windowRole.isEmpty()) // use object name as a fallback -+ windowRole = objectName.toUtf8(); -+ if (!windowRole.isEmpty()) { -+ XChangeProperty(dpy, id, -+ ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace, -+ (unsigned char *)windowRole.constData(), windowRole.length()); - } - - // set client leader property -@@ -3015,6 +3019,17 @@ void QWidgetPrivate::setWindowRole() - XChangeProperty(X11->display, q->internalWinId(), - ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace, - (unsigned char *)windowRole.constData(), windowRole.length()); -+} -+ -+void QWidgetPrivate::checkWindowRole() -+{ -+ Q_Q(QWidget); -+ if( !q->windowRole().isEmpty() || !q->internalWinId()) -+ return; -+ QByteArray windowRole = objectName.toUtf8(); // use as a fallback -+ XChangeProperty(X11->display, q->internalWinId(), -+ ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace, -+ (unsigned char *)windowRole.constData(), windowRole.length()); - } - - Q_GLOBAL_STATIC(QX11PaintEngine, qt_widget_paintengine) diff --git a/desktop/toolkit/qt/files/opensuse/0188-fix-moc-parser-same-name-header.diff b/desktop/toolkit/qt/files/opensuse/0188-fix-moc-parser-same-name-header.diff deleted file mode 100644 index 660dfdf0ad..0000000000 --- a/desktop/toolkit/qt/files/opensuse/0188-fix-moc-parser-same-name-header.diff +++ /dev/null @@ -1,37 +0,0 @@ -qt-bugs@ issue : none -Trolltech task ID : none -applied: yes -author: Helio Chissini de Castro -os: unix - -In situations where included header have same name as their parent dir, i.e. -include/QtMyModule/QtMyModule and #include on code. moc will fail if parent dir was -added in front of includepath. -moc -Iinclude -Iinclude/QtMyModule fails -moc -Iinclude/QtMyModule works -This patch move dir test to proper place, as entry is validated only if is a real file, not a dir. -Detected by qca2 plugins code that uses QtCrypto/QtCrypto -Thanks to Thiago to find proper syntax - -Index: src/tools/moc/preprocessor.cpp -=================================================================== ---- src/tools/moc/preprocessor.cpp.orig -+++ src/tools/moc/preprocessor.cpp -@@ -799,7 +799,7 @@ void Preprocessor::preprocess(const QByt - QFileInfo fi; - if (local) - fi.setFile(QFileInfo(QString::fromLocal8Bit(filename)).dir(), QString::fromLocal8Bit(include)); -- for (int j = 0; j < Preprocessor::includes.size() && !fi.exists(); ++j) { -+ for (int j = 0; j < Preprocessor::includes.size() && ( !fi.exists() || fi.isDir() ); ++j) { - const IncludePath &p = Preprocessor::includes.at(j); - if (p.isFrameworkPath) { - const int slashPos = include.indexOf('/'); -@@ -819,7 +819,7 @@ void Preprocessor::preprocess(const QByt - } - } - -- if (!fi.exists() || fi.isDir()) -+ if ( !fi.exists() ) - continue; - include = fi.canonicalFilePath().toLocal8Bit(); - diff --git a/desktop/toolkit/qt/files/opensuse/0191-listview-alternate-row-colors.diff b/desktop/toolkit/qt/files/opensuse/0191-listview-alternate-row-colors.diff deleted file mode 100644 index 480464cee2..0000000000 --- a/desktop/toolkit/qt/files/opensuse/0191-listview-alternate-row-colors.diff +++ /dev/null @@ -1,24 +0,0 @@ -qt-bugs@ issue : 178507 -Trolltech task ID : 179170 -applied: no -author: Matthew Woehlke - -This patch fixes incorrect setting of the palette color group in -QListView that resulted in alternate rows being drawn with the Active -AlternateBase color even for inactive widgets (while the rest of the -widget is drawn correctly). Please let me know if QListView is not -the only culprit. (QTreeView was fixed by TT already.) - -Index: src/gui/itemviews/qlistview.cpp -=================================================================== ---- src/gui/itemviews/qlistview.cpp.orig -+++ src/gui/itemviews/qlistview.cpp -@@ -997,7 +997,7 @@ void QListView::paintEvent(QPaintEvent * - option.state &= ~QStyle::State_Enabled; - cg = QPalette::Disabled; - } else { -- cg = QPalette::Normal; -+ cg = window()->isActiveWindow() ? QPalette::Active : QPalette::Inactive; - } - option.palette.setCurrentColorGroup(cg); - } diff --git a/desktop/toolkit/qt/files/opensuse/0195-compositing-properties.diff b/desktop/toolkit/qt/files/opensuse/0195-compositing-properties.diff deleted file mode 100644 index 53789264c5..0000000000 --- a/desktop/toolkit/qt/files/opensuse/0195-compositing-properties.diff +++ /dev/null @@ -1,60 +0,0 @@ -qt-bugs@ issue : none -bugs.kde.org number : none -applied: no -author: Lubos Lunak - -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. - -Index: src/gui/kernel/qwidget_x11.cpp -=================================================================== ---- src/gui/kernel/qwidget_x11.cpp.orig -+++ src/gui/kernel/qwidget_x11.cpp -@@ -773,6 +773,11 @@ void QWidgetPrivate::create_sys(WId wind - 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(); -@@ -827,13 +832,21 @@ void QWidgetPrivate::create_sys(WId wind - // 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()) { -@@ -849,10 +862,6 @@ void QWidgetPrivate::create_sys(WId wind - 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()) { diff --git a/desktop/toolkit/qt/files/opensuse/0225-invalidate-tabbar-geometry-on-refresh.patch b/desktop/toolkit/qt/files/opensuse/0225-invalidate-tabbar-geometry-on-refresh.patch deleted file mode 100644 index d79c6f0897..0000000000 --- a/desktop/toolkit/qt/files/opensuse/0225-invalidate-tabbar-geometry-on-refresh.patch +++ /dev/null @@ -1,35 +0,0 @@ -qt-bugs@ issue : None -Trolltech task ID : None -bugs.kde.org number : 159014 -applied: no -author: Robert Knight - -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. - -Index: src/gui/widgets/qtabbar.cpp -=================================================================== ---- src/gui/widgets/qtabbar.cpp.orig -+++ src/gui/widgets/qtabbar.cpp -@@ -723,8 +723,8 @@ void QTabBarPrivate::refresh() - layoutTabs(); - makeVisible(currentIndex); - q->update(); -- q->updateGeometry(); - } -+ q->updateGeometry(); - } - - /*! diff --git a/desktop/toolkit/qt/files/opensuse/QSystemTrayicon.diff b/desktop/toolkit/qt/files/opensuse/QSystemTrayicon.diff deleted file mode 100644 index 2be68adba4..0000000000 --- a/desktop/toolkit/qt/files/opensuse/QSystemTrayicon.diff +++ /dev/null @@ -1,1486 +0,0 @@ -Description: Introduce a plugin system for QSystemTrayIcon. - Designed to be used with sni-qt (https://launchpad.net/sni-qt) -Author: agateau@kde.org -Forwarded: no - -Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt -(https://launchpad.net/sni-qt) ---- - examples/desktop/systray/window.cpp | 40 ++ - examples/desktop/systray/window.h | 6 - src/gui/util/qabstractsystemtrayiconsys.cpp | 65 +++ - src/gui/util/qabstractsystemtrayiconsys_p.h | 106 ++++++ - src/gui/util/qsystemtrayicon.cpp | 6 - src/gui/util/qsystemtrayicon_p.h | 85 ++--- - src/gui/util/qsystemtrayicon_x11.cpp | 356 ++++----------------- - src/gui/util/qxembedsystemtrayicon_x11.cpp | 469 ++++++++++++++++++++++++++++ - src/gui/util/qxembedsystemtrayicon_x11_p.h | 104 ++++++ - src/gui/util/util.pri | 7 - 10 files changed, 916 insertions(+), 328 deletions(-) - -Index: qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.cpp -=================================================================== ---- qt-everywhere-opensource-src-4.8.6.orig/examples/desktop/systray/window.cpp -+++ qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.cpp -@@ -158,15 +158,23 @@ void Window::createIconGroupBox() - iconComboBox->addItem(QIcon(":/images/bad.svg"), tr("Bad")); - iconComboBox->addItem(QIcon(":/images/heart.svg"), tr("Heart")); - iconComboBox->addItem(QIcon(":/images/trash.svg"), tr("Trash")); -+ iconComboBox->addItem(QIcon::fromTheme("system-file-manager"), tr("File Manager")); - - showIconCheckBox = new QCheckBox(tr("Show icon")); - showIconCheckBox->setChecked(true); - -+#if defined(Q_WS_X11) -+ jitToolTipCheckBox = new QCheckBox(tr("Just In Time Tooltip")); -+#endif -+ - QHBoxLayout *iconLayout = new QHBoxLayout; - iconLayout->addWidget(iconLabel); - iconLayout->addWidget(iconComboBox); - iconLayout->addStretch(); - iconLayout->addWidget(showIconCheckBox); -+#if defined(Q_WS_X11) -+ iconLayout->addWidget(jitToolTipCheckBox); -+#endif - iconGroupBox->setLayout(iconLayout); - } - -@@ -254,5 +262,37 @@ void Window::createTrayIcon() - trayIconMenu->addAction(quitAction); - - trayIcon = new QSystemTrayIcon(this); -+ QByteArray category = qgetenv("SNI_CATEGORY"); -+ if (!category.isEmpty()) { -+ trayIcon->setProperty("_qt_sni_category", QString::fromLocal8Bit(category)); -+ } - trayIcon->setContextMenu(trayIconMenu); -+ -+#if defined(Q_WS_X11) -+ trayIcon->installEventFilter(this); -+#endif -+} -+ -+#if defined(Q_WS_X11) -+bool Window::eventFilter(QObject *, QEvent *event) -+{ -+ switch(event->type()) { -+ case QEvent::ToolTip: -+ if (jitToolTipCheckBox->isChecked()) { -+ QString timeString = QTime::currentTime().toString(); -+ trayIcon->setToolTip(tr("Current Time: %1").arg(timeString)); -+ } -+ break; -+ case QEvent::Wheel: { -+ QWheelEvent *wheelEvent = static_cast(event); -+ int delta = wheelEvent->delta() > 0 ? 1 : -1; -+ int index = (iconComboBox->currentIndex() + delta) % iconComboBox->count(); -+ iconComboBox->setCurrentIndex(index); -+ break; -+ } -+ default: -+ break; -+ } -+ return false; - } -+#endif -Index: qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.h -=================================================================== ---- qt-everywhere-opensource-src-4.8.6.orig/examples/desktop/systray/window.h -+++ qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.h -@@ -69,6 +69,9 @@ public: - - protected: - void closeEvent(QCloseEvent *event); -+#if defined(Q_WS_X11) -+ bool eventFilter(QObject *object, QEvent *event); -+#endif - - private slots: - void setIcon(int index); -@@ -86,6 +89,9 @@ private: - QLabel *iconLabel; - QComboBox *iconComboBox; - QCheckBox *showIconCheckBox; -+#if defined(Q_WS_X11) -+ QCheckBox *jitToolTipCheckBox; -+#endif - - QGroupBox *messageGroupBox; - QLabel *typeLabel; -Index: qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys.cpp -=================================================================== ---- /dev/null -+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys.cpp -@@ -0,0 +1,65 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** GNU Lesser General Public License Usage -+** This file may be used under the terms of the GNU Lesser General Public -+** License version 2.1 as published by the Free Software Foundation and -+** appearing in the file LICENSE.LGPL included in the packaging of this -+** file. Please review the following information to ensure the GNU Lesser -+** General Public License version 2.1 requirements will be met: -+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU General -+** Public License version 3.0 as published by the Free Software Foundation -+** and appearing in the file LICENSE.GPL included in the packaging of this -+** file. Please review the following information to ensure the GNU General -+** Public License version 3.0 requirements will be met: -+** http://www.gnu.org/copyleft/gpl.html. -+** -+** Other Usage -+** Alternatively, this file may be used in accordance with the terms and -+** conditions contained in a signed written agreement between you and Nokia. -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+#ifndef QT_NO_SYSTEMTRAYICON -+ -+#include "qabstractsystemtrayiconsys_p.h" -+ -+ -+QSystemTrayIconSysFactoryInterface::QSystemTrayIconSysFactoryInterface() -+{ -+} -+ -+///////////////////////////////////////////////// -+QAbstractSystemTrayIconSys::QAbstractSystemTrayIconSys(QSystemTrayIcon *icon) -+: trayIcon(icon) -+{ -+} -+ -+QAbstractSystemTrayIconSys::~QAbstractSystemTrayIconSys() -+{ -+} -+ -+void QAbstractSystemTrayIconSys::sendActivated(QSystemTrayIcon::ActivationReason reason) -+{ -+ qtsystray_sendActivated(trayIcon, reason); -+} -+ -+#endif -Index: qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys_p.h -=================================================================== ---- /dev/null -+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys_p.h -@@ -0,0 +1,106 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** GNU Lesser General Public License Usage -+** This file may be used under the terms of the GNU Lesser General Public -+** License version 2.1 as published by the Free Software Foundation and -+** appearing in the file LICENSE.LGPL included in the packaging of this -+** file. Please review the following information to ensure the GNU Lesser -+** General Public License version 2.1 requirements will be met: -+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU General -+** Public License version 3.0 as published by the Free Software Foundation -+** and appearing in the file LICENSE.GPL included in the packaging of this -+** file. Please review the following information to ensure the GNU General -+** Public License version 3.0 requirements will be met: -+** http://www.gnu.org/copyleft/gpl.html. -+** -+** Other Usage -+** Alternatively, this file may be used in accordance with the terms and -+** conditions contained in a signed written agreement between you and Nokia. -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QABSTRACTSYSTEMTRAYICONSYS_P_H -+#define QABSTRACTSYSTEMTRAYICONSYS_P_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is not part of the Qt API. It exists for the convenience -+// of a number of Qt sources files. This header file may change from -+// version to version without notice, or even be removed. -+// -+// We mean it. -+// -+ -+#ifndef QT_NO_SYSTEMTRAYICON -+ -+#include -+#include -+ -+class QAbstractSystemTrayIconSys; -+ -+class Q_GUI_EXPORT QSystemTrayIconSysFactoryInterface : public QObject, public QFactoryInterface -+{ -+ Q_OBJECT -+public: -+ QSystemTrayIconSysFactoryInterface(); -+ virtual QAbstractSystemTrayIconSys * create(QSystemTrayIcon *) = 0; -+ virtual bool isAvailable() const = 0; -+ -+ // \reimp -+ virtual QStringList keys() const { return QStringList() << QLatin1String("default"); } -+ -+Q_SIGNALS: -+ void availableChanged(bool); -+}; -+ -+#define QSystemTrayIconSysFactoryInterface_iid "com.nokia.qt.QSystemTrayIconSysFactoryInterface" -+Q_DECLARE_INTERFACE(QSystemTrayIconSysFactoryInterface, QSystemTrayIconSysFactoryInterface_iid) -+ -+class QRect; -+ -+class Q_GUI_EXPORT QAbstractSystemTrayIconSys -+{ -+public: -+ QAbstractSystemTrayIconSys(QSystemTrayIcon *icon); -+ virtual ~QAbstractSystemTrayIconSys(); -+ -+ virtual QRect geometry() const = 0; -+ virtual void updateVisibility() = 0; -+ virtual void updateIcon() = 0; -+ virtual void updateToolTip() = 0; -+ virtual void updateMenu() = 0; -+ virtual void showMessage(const QString &title, const QString &message, -+ QSystemTrayIcon::MessageIcon icon, int msecs) = 0; -+ -+ void sendActivated(QSystemTrayIcon::ActivationReason); -+ -+protected: -+ QSystemTrayIcon *trayIcon; -+}; -+ -+#endif // QT_NO_SYSTEMTRAYICON -+ -+#endif // QABSTRACTSYSTEMTRAYICONSYS_P_H -+ -Index: qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon.cpp -=================================================================== ---- qt-everywhere-opensource-src-4.8.6.orig/src/gui/util/qsystemtrayicon.cpp -+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon.cpp -@@ -287,12 +287,6 @@ bool QSystemTrayIcon::isVisible() const - */ - bool QSystemTrayIcon::event(QEvent *e) - { --#if defined(Q_WS_X11) -- if (e->type() == QEvent::ToolTip) { -- Q_D(QSystemTrayIcon); -- return d->sys->deliverToolTipEvent(e); -- } --#endif - return QObject::event(e); - } - -Index: qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_p.h -=================================================================== ---- qt-everywhere-opensource-src-4.8.6.orig/src/gui/util/qsystemtrayicon_p.h -+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_p.h -@@ -62,10 +62,17 @@ - #include "QtGui/qpixmap.h" - #include "QtCore/qstring.h" - #include "QtCore/qpointer.h" -+#if defined(Q_WS_X11) -+#include "QtCore/qset.h" -+#endif - - QT_BEGIN_NAMESPACE - -+#if defined(Q_WS_X11) -+class QAbstractSystemTrayIconSys; -+#else - class QSystemTrayIconSys; -+#endif - class QToolButton; - class QLabel; - -@@ -75,6 +82,9 @@ class QSystemTrayIconPrivate : public QO - - public: - QSystemTrayIconPrivate() : sys(0), visible(false) { } -+ #if defined(Q_WS_X11) -+ ~QSystemTrayIconPrivate(); -+ #endif - - void install_sys(); - void remove_sys(); -@@ -90,7 +100,11 @@ public: - QPointer menu; - QIcon icon; - QString toolTip; -+ #if defined(Q_WS_X11) -+ QAbstractSystemTrayIconSys *sys; -+ #else - QSystemTrayIconSys *sys; -+ #endif - bool visible; - }; - -@@ -123,60 +137,37 @@ private: - }; - - #if defined(Q_WS_X11) --QT_BEGIN_INCLUDE_NAMESPACE --#include --#include --#include --#include --QT_END_INCLUDE_NAMESPACE -+class QSystemTrayIconSysFactoryInterface; - --class QSystemTrayIconSys : public QWidget -+/** -+ * This class acts as a composite QSystemTrayIconSysFactory: It can create -+ * instances of QAbstractSystemTrayIconSys* using either a plugin or the -+ * builtin factory and will cause QSystemTrayIconPrivate to recreate their -+ * 'sys' instances if the plugin availability changes. -+ */ -+class QSystemTrayIconSysFactory : public QObject - { -- friend class QSystemTrayIconPrivate; -- -+ Q_OBJECT - public: -- QSystemTrayIconSys(QSystemTrayIcon *q); -- ~QSystemTrayIconSys(); -- enum { -- SYSTEM_TRAY_REQUEST_DOCK = 0, -- SYSTEM_TRAY_BEGIN_MESSAGE = 1, -- SYSTEM_TRAY_CANCEL_MESSAGE =2 -- }; -- -- void addToTray(); -- void updateIcon(); -- XVisualInfo* getSysTrayVisualInfo(); -- -- // QObject::event is public but QWidget's ::event() re-implementation -- // is protected ;( -- inline bool deliverToolTipEvent(QEvent *e) -- { return QWidget::event(e); } -- -- static Window sysTrayWindow; -- static QList trayIcons; -- static QCoreApplication::EventFilter oldEventFilter; -- static bool sysTrayTracker(void *message, long *result); -- static Window locateSystemTray(); -- static Atom sysTraySelection; -- static XVisualInfo sysTrayVisual; -+ QSystemTrayIconSysFactory(); -+ void registerSystemTrayIconPrivate(QSystemTrayIconPrivate *iconPrivate); -+ void unregisterSystemTrayIconPrivate(QSystemTrayIconPrivate *iconPrivate); - --protected: -- void paintEvent(QPaintEvent *pe); -- void resizeEvent(QResizeEvent *re); -- bool x11Event(XEvent *event); -- void mousePressEvent(QMouseEvent *event); -- void mouseDoubleClickEvent(QMouseEvent *event); --#ifndef QT_NO_WHEELEVENT -- void wheelEvent(QWheelEvent *event); --#endif -- bool event(QEvent *e); -+ QAbstractSystemTrayIconSys *create(QSystemTrayIcon *) const; -+ -+ bool isAvailable() const; -+ -+private Q_SLOTS: -+ void refreshTrayIconPrivates(); - - private: -- QPixmap background; -- QSystemTrayIcon *q; -- Colormap colormap; -+ QSystemTrayIconSysFactoryInterface *factory() const; -+ void loadPluginFactory(); -+ -+ QSystemTrayIconSysFactoryInterface *pluginFactory; -+ QSet trayIconPrivates; - }; --#endif // Q_WS_X11 -+#endif - - QT_END_NAMESPACE - -Index: qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_x11.cpp -=================================================================== ---- qt-everywhere-opensource-src-4.8.6.orig/src/gui/util/qsystemtrayicon_x11.cpp -+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_x11.cpp -@@ -38,311 +38,122 @@ - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ -+#ifndef QT_NO_SYSTEMTRAYICON -+ -+#include - --#include "private/qt_x11_p.h" --#include "qlabel.h" --#include "qx11info_x11.h" --#include "qpainter.h" --#include "qpixmap.h" --#include "qbitmap.h" --#include "qevent.h" --#include "qapplication.h" --#include "qlist.h" --#include "qmenu.h" --#include "qtimer.h" - #include "qsystemtrayicon_p.h" --#include "qpaintengine.h" -+#include "qabstractsystemtrayiconsys_p.h" -+#include "qcoreapplication.h" -+#include "qxembedsystemtrayicon_x11_p.h" - --#ifndef QT_NO_SYSTEMTRAYICON - QT_BEGIN_NAMESPACE - --Window QSystemTrayIconSys::sysTrayWindow = XNone; --QList QSystemTrayIconSys::trayIcons; --QCoreApplication::EventFilter QSystemTrayIconSys::oldEventFilter = 0; --Atom QSystemTrayIconSys::sysTraySelection = XNone; --XVisualInfo QSystemTrayIconSys::sysTrayVisual = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -- --// Locate the system tray --Window QSystemTrayIconSys::locateSystemTray() --{ -- Display *display = QX11Info::display(); -- if (sysTraySelection == XNone) { -- int screen = QX11Info::appScreen(); -- QString net_sys_tray = QString::fromLatin1("_NET_SYSTEM_TRAY_S%1").arg(screen); -- sysTraySelection = XInternAtom(display, net_sys_tray.toLatin1(), False); -- } -- -- return XGetSelectionOwner(QX11Info::display(), sysTraySelection); --} -+Q_GLOBAL_STATIC(QSystemTrayIconSysFactory, qt_guiSystemTrayIconSysFactory) - --XVisualInfo* QSystemTrayIconSys::getSysTrayVisualInfo() -+QSystemTrayIconSysFactory::QSystemTrayIconSysFactory() -+: pluginFactory(0) - { -- Display *display = QX11Info::display(); -- -- if (!sysTrayVisual.visual) { -- Window win = locateSystemTray(); -- if (win != XNone) { -- Atom actual_type; -- int actual_format; -- ulong nitems, bytes_remaining; -- uchar *data = 0; -- int result = XGetWindowProperty(display, win, ATOM(_NET_SYSTEM_TRAY_VISUAL), 0, 1, -- False, XA_VISUALID, &actual_type, -- &actual_format, &nitems, &bytes_remaining, &data); -- VisualID vid = 0; -- if (result == Success && data && actual_type == XA_VISUALID && actual_format == 32 && -- nitems == 1 && bytes_remaining == 0) -- vid = *(VisualID*)data; -- if (data) -- XFree(data); -- if (vid == 0) -- return 0; -- -- uint mask = VisualIDMask; -- XVisualInfo *vi, rvi; -- int count; -- rvi.visualid = vid; -- vi = XGetVisualInfo(display, mask, &rvi, &count); -- if (vi) { -- sysTrayVisual = vi[0]; -- XFree((char*)vi); -- } -- if (sysTrayVisual.depth != 32) -- memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); -- } -- } -- -- return sysTrayVisual.visual ? &sysTrayVisual : 0; - } - --bool QSystemTrayIconSys::sysTrayTracker(void *message, long *result) -+void QSystemTrayIconSysFactory::loadPluginFactory() - { -- bool retval = false; -- if (QSystemTrayIconSys::oldEventFilter) -- retval = QSystemTrayIconSys::oldEventFilter(message, result); -- -- if (trayIcons.isEmpty()) -- return retval; -- -- Display *display = QX11Info::display(); -- XEvent *ev = (XEvent *)message; -- if (ev->type == DestroyNotify && ev->xany.window == sysTrayWindow) { -- sysTrayWindow = locateSystemTray(); -- memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); -- for (int i = 0; i < trayIcons.count(); i++) { -- if (sysTrayWindow == XNone) { -- QBalloonTip::hideBalloon(); -- trayIcons[i]->hide(); // still no luck -- trayIcons[i]->destroy(); -- trayIcons[i]->create(); -- } else -- trayIcons[i]->addToTray(); // add it to the new tray -- } -- retval = true; -- } else if (ev->type == ClientMessage && sysTrayWindow == XNone) { -- static Atom manager_atom = XInternAtom(display, "MANAGER", False); -- XClientMessageEvent *cm = (XClientMessageEvent *)message; -- if ((cm->message_type == manager_atom) && ((Atom)cm->data.l[1] == sysTraySelection)) { -- sysTrayWindow = cm->data.l[2]; -- memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); -- XSelectInput(display, sysTrayWindow, StructureNotifyMask); -- for (int i = 0; i < trayIcons.count(); i++) { -- trayIcons[i]->addToTray(); -- } -- retval = true; -- } -- } else if (ev->type == PropertyNotify && ev->xproperty.atom == ATOM(_NET_SYSTEM_TRAY_VISUAL) && -- ev->xproperty.window == sysTrayWindow) { -- memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); -- for (int i = 0; i < trayIcons.count(); i++) { -- trayIcons[i]->addToTray(); -- } -- } -- -- return retval; --} -- --QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *q) -- : QWidget(0, Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint), -- q(q), colormap(0) --{ -- setAttribute(Qt::WA_AlwaysShowToolTips); -- setAttribute(Qt::WA_QuitOnClose, false); -- setAttribute(Qt::WA_NoSystemBackground, true); -- setAttribute(Qt::WA_PaintOnScreen); -- -- static bool eventFilterAdded = false; -- Display *display = QX11Info::display(); -- if (!eventFilterAdded) { -- oldEventFilter = qApp->setEventFilter(sysTrayTracker); -- eventFilterAdded = true; -- Window root = QX11Info::appRootWindow(); -- XWindowAttributes attr; -- XGetWindowAttributes(display, root, &attr); -- if ((attr.your_event_mask & StructureNotifyMask) != StructureNotifyMask) { -- (void) QApplication::desktop(); // lame trick to ensure our event mask is not overridden -- XSelectInput(display, root, attr.your_event_mask | StructureNotifyMask); // for MANAGER selection -- } -+ if (pluginFactory) { -+ return; - } -- if (trayIcons.isEmpty()) { -- sysTrayWindow = locateSystemTray(); -- if (sysTrayWindow != XNone) -- XSelectInput(display, sysTrayWindow, StructureNotifyMask); // track tray events -+#ifndef QT_NO_LIBRARY -+ QFactoryLoader loader(QSystemTrayIconSysFactoryInterface_iid, QLatin1String("/systemtrayicon")); -+ pluginFactory = qobject_cast(loader.instance(QLatin1String("default"))); -+ if (pluginFactory) { -+ // Set parent to ensure factory destructor is called when application -+ // is closed -+ pluginFactory->setParent(QCoreApplication::instance()); -+ connect(pluginFactory, SIGNAL(availableChanged(bool)), SLOT(refreshTrayIconPrivates())); - } -- trayIcons.append(this); -- setMouseTracking(true); --#ifndef QT_NO_TOOLTIP -- setToolTip(q->toolTip()); --#endif -- if (sysTrayWindow != XNone) -- addToTray(); -+#endif // QT_NO_LIBRARY - } - --QSystemTrayIconSys::~QSystemTrayIconSys() -+QSystemTrayIconSysFactoryInterface *QSystemTrayIconSysFactory::factory() const - { -- trayIcons.removeAt(trayIcons.indexOf(this)); -- Display *display = QX11Info::display(); -- if (trayIcons.isEmpty()) { -- if (sysTrayWindow == XNone) -- return; -- if (display) -- XSelectInput(display, sysTrayWindow, 0); // stop tracking the tray -- sysTrayWindow = XNone; -+ if (!pluginFactory) { -+ const_cast(this)->loadPluginFactory(); - } -- if (colormap) -- XFreeColormap(display, colormap); -+ if (pluginFactory && pluginFactory->isAvailable()) { -+ return pluginFactory; -+ } -+ static QXEmbedSystemTrayIconSysFactory def; -+ return def.isAvailable() ? &def : 0; - } - --void QSystemTrayIconSys::addToTray() -+void QSystemTrayIconSysFactory::refreshTrayIconPrivates() - { -- Q_ASSERT(sysTrayWindow != XNone); -- Display *display = QX11Info::display(); -- -- XVisualInfo *vi = getSysTrayVisualInfo(); -- if (vi && vi->visual) { -- Window root = RootWindow(display, vi->screen); -- Window p = root; -- if (QWidget *pw = parentWidget()) -- p = pw->effectiveWinId(); -- colormap = XCreateColormap(display, root, vi->visual, AllocNone); -- XSetWindowAttributes wsa; -- wsa.background_pixmap = 0; -- wsa.colormap = colormap; -- wsa.background_pixel = 0; -- wsa.border_pixel = 0; -- Window wid = XCreateWindow(display, p, -1, -1, 1, 1, -- 0, vi->depth, InputOutput, vi->visual, -- CWBackPixmap|CWBackPixel|CWBorderPixel|CWColormap, &wsa); -- create(wid); -- } else { -- XSetWindowBackgroundPixmap(display, winId(), ParentRelative); -- } -- -- // GNOME, NET WM Specification -- static Atom netwm_tray_atom = XInternAtom(display, "_NET_SYSTEM_TRAY_OPCODE", False); -- long l[5] = { CurrentTime, SYSTEM_TRAY_REQUEST_DOCK, static_cast(winId()), 0, 0 }; -- XEvent ev; -- memset(&ev, 0, sizeof(ev)); -- ev.xclient.type = ClientMessage; -- ev.xclient.window = sysTrayWindow; -- ev.xclient.message_type = netwm_tray_atom; -- ev.xclient.format = 32; -- memcpy((char *)&ev.xclient.data, (const char *) l, sizeof(l)); -- XSendEvent(display, sysTrayWindow, False, 0, &ev); -- setMinimumSize(22, 22); // required at least on GNOME --} -- --void QSystemTrayIconSys::updateIcon() --{ -- update(); --} -- --void QSystemTrayIconSys::resizeEvent(QResizeEvent *re) --{ -- QWidget::resizeEvent(re); -- updateIcon(); --} -- --void QSystemTrayIconSys::paintEvent(QPaintEvent*) --{ -- QPainter p(this); -- if (!getSysTrayVisualInfo()) { -- const QRegion oldSystemClip = p.paintEngine()->systemClip(); -- const QRect clearedRect = oldSystemClip.boundingRect(); -- XClearArea(QX11Info::display(), winId(), clearedRect.x(), clearedRect.y(), -- clearedRect.width(), clearedRect.height(), False); -- QPaintEngine *pe = p.paintEngine(); -- pe->setSystemClip(clearedRect); -- q->icon().paint(&p, rect()); -- pe->setSystemClip(oldSystemClip); -- } else { -- p.setCompositionMode(QPainter::CompositionMode_Source); -- p.fillRect(rect(), Qt::transparent); -- p.setCompositionMode(QPainter::CompositionMode_SourceOver); -- q->icon().paint(&p, rect()); -+ Q_FOREACH(QSystemTrayIconPrivate *trayIconPrivate, trayIconPrivates) { -+ if (trayIconPrivate->sys) { -+ delete trayIconPrivate->sys; -+ trayIconPrivate->sys = 0; -+ } -+ // When visible is true, sys is usually not 0 but it can be 0 if the -+ // call to install_sys() failed. -+ if (trayIconPrivate->visible) { -+ trayIconPrivate->install_sys(); -+ } - } - } - --void QSystemTrayIconSys::mousePressEvent(QMouseEvent *ev) -+void QSystemTrayIconSysFactory::registerSystemTrayIconPrivate(QSystemTrayIconPrivate* trayIconPrivate) - { -- QPoint globalPos = ev->globalPos(); -- if (ev->button() == Qt::RightButton && q->contextMenu()) -- q->contextMenu()->popup(globalPos); -- -- if (QBalloonTip::isBalloonVisible()) { -- emit q->messageClicked(); -- QBalloonTip::hideBalloon(); -- } -- -- if (ev->button() == Qt::LeftButton) -- emit q->activated(QSystemTrayIcon::Trigger); -- else if (ev->button() == Qt::RightButton) -- emit q->activated(QSystemTrayIcon::Context); -- else if (ev->button() == Qt::MidButton) -- emit q->activated(QSystemTrayIcon::MiddleClick); -+ trayIconPrivates.insert(trayIconPrivate); - } - --void QSystemTrayIconSys::mouseDoubleClickEvent(QMouseEvent *ev) -+void QSystemTrayIconSysFactory::unregisterSystemTrayIconPrivate(QSystemTrayIconPrivate* trayIconPrivate) - { -- if (ev->button() == Qt::LeftButton) -- emit q->activated(QSystemTrayIcon::DoubleClick); -+ trayIconPrivates.remove(trayIconPrivate); - } - --#ifndef QT_NO_WHEELEVENT --void QSystemTrayIconSys::wheelEvent(QWheelEvent *e) -+QAbstractSystemTrayIconSys *QSystemTrayIconSysFactory::create(QSystemTrayIcon *trayIcon) const - { -- QApplication::sendEvent(q, e); -+ QSystemTrayIconSysFactoryInterface *f = factory(); -+ if (!f) { -+ qWarning("No systemtrayicon available"); -+ return 0; -+ } -+ return f->create(trayIcon); - } --#endif - --bool QSystemTrayIconSys::event(QEvent *e) -+bool QSystemTrayIconSysFactory::isAvailable() const - { -- if (e->type() == QEvent::ToolTip) { -- return QApplication::sendEvent(q, e); -- } -- return QWidget::event(e); -+ return factory(); - } - --bool QSystemTrayIconSys::x11Event(XEvent *event) -+//////////////////////////////////////////////// -+QSystemTrayIconPrivate::~QSystemTrayIconPrivate() - { -- if (event->type == ReparentNotify) -- show(); -- return QWidget::x11Event(event); -+ qt_guiSystemTrayIconSysFactory()->unregisterSystemTrayIconPrivate(this); -+ delete sys; - } - --//////////////////////////////////////////////////////////////////////////// - void QSystemTrayIconPrivate::install_sys() - { - Q_Q(QSystemTrayIcon); -- if (!sys) -- sys = new QSystemTrayIconSys(q); -+ if (!sys) { -+ // Register ourself even if create() fails: our "sys" will get created -+ // later by refreshTrayIconPrivates() if a systemtray becomes -+ // available. This situation can happen for applications which are -+ // started at login time, while the desktop itself is starting up. -+ qt_guiSystemTrayIconSysFactory()->registerSystemTrayIconPrivate(this); -+ sys = qt_guiSystemTrayIconSysFactory()->create(q); -+ if (!sys) { -+ return; -+ } -+ } -+ sys->updateVisibility(); - } - - QRect QSystemTrayIconPrivate::geometry_sys() const - { -- if (!sys) -- return QRect(); -- return QRect(sys->mapToGlobal(QPoint(0, 0)), sys->size()); -+ if (!sys || !visible) -+ return QRect(); -+ return sys->geometry(); - } - - void QSystemTrayIconPrivate::remove_sys() -@@ -350,35 +161,35 @@ void QSystemTrayIconPrivate::remove_sys( - if (!sys) - return; - QBalloonTip::hideBalloon(); -- sys->hide(); // this should do the trick, but... -- delete sys; // wm may resize system tray only for DestroyEvents -- sys = 0; -+ sys->updateVisibility(); - } - - void QSystemTrayIconPrivate::updateIcon_sys() - { -- if (!sys) -+ if (!sys || !visible) - return; - sys->updateIcon(); - } - - void QSystemTrayIconPrivate::updateMenu_sys() - { -- -+ if (!sys || !visible) -+ return; -+ sys->updateMenu(); - } - - void QSystemTrayIconPrivate::updateToolTip_sys() - { -- if (!sys) -+ if (!sys || !visible) - return; - #ifndef QT_NO_TOOLTIP -- sys->setToolTip(toolTip); -+ sys->updateToolTip(); - #endif - } - - bool QSystemTrayIconPrivate::isSystemTrayAvailable_sys() - { -- return QSystemTrayIconSys::locateSystemTray() != XNone; -+ return qt_guiSystemTrayIconSysFactory()->isAvailable(); - } - - bool QSystemTrayIconPrivate::supportsMessages_sys() -@@ -389,12 +200,9 @@ bool QSystemTrayIconPrivate::supportsMes - void QSystemTrayIconPrivate::showMessage_sys(const QString &message, const QString &title, - QSystemTrayIcon::MessageIcon icon, int msecs) - { -- if (!sys) -+ if (!sys || !visible) - return; -- QPoint g = sys->mapToGlobal(QPoint(0, 0)); -- QBalloonTip::showBalloon(icon, message, title, sys->q, -- QPoint(g.x() + sys->width()/2, g.y() + sys->height()/2), -- msecs); -+ sys->showMessage(message, title, icon, msecs); - } - - QT_END_NAMESPACE -Index: qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11.cpp -=================================================================== ---- /dev/null -+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11.cpp -@@ -0,0 +1,469 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** GNU Lesser General Public License Usage -+** This file may be used under the terms of the GNU Lesser General Public -+** License version 2.1 as published by the Free Software Foundation and -+** appearing in the file LICENSE.LGPL included in the packaging of this -+** file. Please review the following information to ensure the GNU Lesser -+** General Public License version 2.1 requirements will be met: -+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU General -+** Public License version 3.0 as published by the Free Software Foundation -+** and appearing in the file LICENSE.GPL included in the packaging of this -+** file. Please review the following information to ensure the GNU General -+** Public License version 3.0 requirements will be met: -+** http://www.gnu.org/copyleft/gpl.html. -+** -+** Other Usage -+** Alternatively, this file may be used in accordance with the terms and -+** conditions contained in a signed written agreement between you and Nokia. -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+#include "qxembedsystemtrayicon_x11_p.h" -+ -+#ifndef QT_NO_SYSTEMTRAYICON -+ -+#include "private/qt_x11_p.h" -+#include "qapplication.h" -+#include "qevent.h" -+#include "qlist.h" -+#include "qmenu.h" -+#include "qpainter.h" -+#include "qpaintengine.h" -+#include "qsystemtrayicon_p.h" -+#include "qx11info_x11.h" -+ -+QT_BEGIN_INCLUDE_NAMESPACE -+#include -+#include -+#include -+#include -+QT_END_INCLUDE_NAMESPACE -+ -+QT_BEGIN_NAMESPACE -+ -+class QSystemTrayIconWidget : public QWidget -+{ -+public: -+ QSystemTrayIconWidget(QSystemTrayIcon *q, QXEmbedSystemTrayIconSys *s); -+ ~QSystemTrayIconWidget(); -+ -+ static Window locateSystemTray(); -+ -+protected: -+ void paintEvent(QPaintEvent *pe); -+ void resizeEvent(QResizeEvent *re); -+ bool x11Event(XEvent *event); -+ void mousePressEvent(QMouseEvent *event); -+ void mouseDoubleClickEvent(QMouseEvent *event); -+#ifndef QT_NO_WHEELEVENT -+ void wheelEvent(QWheelEvent *event); -+#endif -+ bool event(QEvent *e); -+ -+private: -+ enum { -+ SYSTEM_TRAY_REQUEST_DOCK = 0, -+ SYSTEM_TRAY_BEGIN_MESSAGE = 1, -+ SYSTEM_TRAY_CANCEL_MESSAGE =2 -+ }; -+ -+ void addToTray(); -+ static XVisualInfo* getSysTrayVisualInfo(); -+ -+ static Window sysTrayWindow; -+ static QList trayIcons; -+ static QCoreApplication::EventFilter oldEventFilter; -+ static bool sysTrayTracker(void *message, long *result); -+ static Atom sysTraySelection; -+ static XVisualInfo sysTrayVisual; -+ -+ QSystemTrayIcon *q; -+ QXEmbedSystemTrayIconSys *sys; -+ Colormap colormap; -+}; -+ -+Window QSystemTrayIconWidget::sysTrayWindow = XNone; -+QList QSystemTrayIconWidget::trayIcons; -+QCoreApplication::EventFilter QSystemTrayIconWidget::oldEventFilter = 0; -+Atom QSystemTrayIconWidget::sysTraySelection = XNone; -+XVisualInfo QSystemTrayIconWidget::sysTrayVisual = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -+ -+QSystemTrayIconWidget::QSystemTrayIconWidget(QSystemTrayIcon* q, QXEmbedSystemTrayIconSys* sys) -+: QWidget(0, Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint) -+, q(q) -+, sys(sys) -+, colormap(0) -+{ -+ setAttribute(Qt::WA_AlwaysShowToolTips); -+ setAttribute(Qt::WA_QuitOnClose, false); -+ setAttribute(Qt::WA_NoSystemBackground, true); -+ setAttribute(Qt::WA_PaintOnScreen); -+ setMouseTracking(true); -+#ifndef QT_NO_TOOLTIP -+ setToolTip(q->toolTip()); -+#endif -+ -+ static bool eventFilterAdded = false; -+ Display *display = QX11Info::display(); -+ if (!eventFilterAdded) { -+ oldEventFilter = qApp->setEventFilter(sysTrayTracker); -+ eventFilterAdded = true; -+ Window root = QX11Info::appRootWindow(); -+ XWindowAttributes attr; -+ XGetWindowAttributes(display, root, &attr); -+ if ((attr.your_event_mask & StructureNotifyMask) != StructureNotifyMask) { -+ (void) QApplication::desktop(); // lame trick to ensure our event mask is not overridden -+ XSelectInput(display, root, attr.your_event_mask | StructureNotifyMask); // for MANAGER selection -+ } -+ } -+ if (trayIcons.isEmpty()) { -+ sysTrayWindow = locateSystemTray(); -+ if (sysTrayWindow != XNone) -+ XSelectInput(display, sysTrayWindow, StructureNotifyMask); // track tray events -+ } -+ trayIcons.append(this); -+ if (sysTrayWindow != XNone) -+ addToTray(); -+} -+ -+QSystemTrayIconWidget::~QSystemTrayIconWidget() -+{ -+ trayIcons.removeAt(trayIcons.indexOf(this)); -+ Display *display = QX11Info::display(); -+ if (trayIcons.isEmpty()) { -+ if (sysTrayWindow == XNone) -+ return; -+ if (display) -+ XSelectInput(display, sysTrayWindow, 0); // stop tracking the tray -+ sysTrayWindow = XNone; -+ } -+ if (colormap) -+ XFreeColormap(display, colormap); -+} -+ -+void QSystemTrayIconWidget::resizeEvent(QResizeEvent *re) -+{ -+ QWidget::resizeEvent(re); -+ update(); -+} -+ -+void QSystemTrayIconWidget::paintEvent(QPaintEvent*) -+{ -+ QPainter p(this); -+ if (!getSysTrayVisualInfo()) { -+ const QRegion oldSystemClip = p.paintEngine()->systemClip(); -+ const QRect clearedRect = oldSystemClip.boundingRect(); -+ XClearArea(QX11Info::display(), winId(), clearedRect.x(), clearedRect.y(), -+ clearedRect.width(), clearedRect.height(), False); -+ QPaintEngine *pe = p.paintEngine(); -+ pe->setSystemClip(clearedRect); -+ q->icon().paint(&p, rect()); -+ pe->setSystemClip(oldSystemClip); -+ } else { -+ p.setCompositionMode(QPainter::CompositionMode_Source); -+ p.fillRect(rect(), Qt::transparent); -+ p.setCompositionMode(QPainter::CompositionMode_SourceOver); -+ q->icon().paint(&p, rect()); -+ } -+} -+ -+void QSystemTrayIconWidget::mousePressEvent(QMouseEvent *ev) -+{ -+ QPoint globalPos = ev->globalPos(); -+ if (ev->button() == Qt::RightButton && q->contextMenu()) -+ q->contextMenu()->popup(globalPos); -+ -+ if (QBalloonTip::isBalloonVisible()) { -+ QMetaObject::invokeMethod(q, "messageClicked"); -+ QBalloonTip::hideBalloon(); -+ } -+ -+ if (ev->button() == Qt::LeftButton) -+ qtsystray_sendActivated(q, QSystemTrayIcon::Trigger); -+ else if (ev->button() == Qt::RightButton) -+ qtsystray_sendActivated(q, QSystemTrayIcon::Context); -+ else if (ev->button() == Qt::MidButton) -+ qtsystray_sendActivated(q, QSystemTrayIcon::MiddleClick); -+} -+ -+void QSystemTrayIconWidget::mouseDoubleClickEvent(QMouseEvent *ev) -+{ -+ if (ev->button() == Qt::LeftButton) -+ qtsystray_sendActivated(q, QSystemTrayIcon::DoubleClick); -+} -+ -+#ifndef QT_NO_WHEELEVENT -+void QSystemTrayIconWidget::wheelEvent(QWheelEvent *e) -+{ -+ sys->sendWheelEventToTrayIcon(e->delta(), e->orientation()); -+} -+#endif -+ -+bool QSystemTrayIconWidget::event(QEvent *e) -+{ -+ if (e->type() == QEvent::ToolTip) { -+ sys->sendToolTipEventToTrayIcon(); -+ } -+ return QWidget::event(e); -+} -+ -+bool QSystemTrayIconWidget::x11Event(XEvent *event) -+{ -+ if (event->type == ReparentNotify) -+ show(); -+ return QWidget::x11Event(event); -+} -+ -+// Locate the system tray -+Window QSystemTrayIconWidget::locateSystemTray() -+{ -+ Display *display = QX11Info::display(); -+ if (sysTraySelection == XNone) { -+ int screen = QX11Info::appScreen(); -+ QString net_sys_tray = QString::fromLatin1("_NET_SYSTEM_TRAY_S%1").arg(screen); -+ sysTraySelection = XInternAtom(display, net_sys_tray.toLatin1(), False); -+ } -+ -+ return XGetSelectionOwner(QX11Info::display(), sysTraySelection); -+} -+ -+XVisualInfo* QSystemTrayIconWidget::getSysTrayVisualInfo() -+{ -+ Display *display = QX11Info::display(); -+ -+ if (!sysTrayVisual.visual) { -+ Window win = locateSystemTray(); -+ if (win != XNone) { -+ Atom actual_type; -+ int actual_format; -+ ulong nitems, bytes_remaining; -+ uchar *data = 0; -+ int result = XGetWindowProperty(display, win, ATOM(_NET_SYSTEM_TRAY_VISUAL), 0, 1, -+ False, XA_VISUALID, &actual_type, -+ &actual_format, &nitems, &bytes_remaining, &data); -+ VisualID vid = 0; -+ if (result == Success && data && actual_type == XA_VISUALID && actual_format == 32 && -+ nitems == 1 && bytes_remaining == 0) -+ vid = *(VisualID*)data; -+ if (data) -+ XFree(data); -+ if (vid == 0) -+ return 0; -+ -+ uint mask = VisualIDMask; -+ XVisualInfo *vi, rvi; -+ int count; -+ rvi.visualid = vid; -+ vi = XGetVisualInfo(display, mask, &rvi, &count); -+ if (vi) { -+ sysTrayVisual = vi[0]; -+ XFree((char*)vi); -+ } -+ if (sysTrayVisual.depth != 32) -+ memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); -+ } -+ } -+ -+ return sysTrayVisual.visual ? &sysTrayVisual : 0; -+} -+ -+bool QSystemTrayIconWidget::sysTrayTracker(void *message, long *result) -+{ -+ bool retval = false; -+ if (QSystemTrayIconWidget::oldEventFilter) -+ retval = QSystemTrayIconWidget::oldEventFilter(message, result); -+ -+ if (trayIcons.isEmpty()) -+ return retval; -+ -+ Display *display = QX11Info::display(); -+ XEvent *ev = (XEvent *)message; -+ if (ev->type == DestroyNotify && ev->xany.window == sysTrayWindow) { -+ sysTrayWindow = locateSystemTray(); -+ memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); -+ for (int i = 0; i < trayIcons.count(); i++) { -+ if (sysTrayWindow == XNone) { -+ QBalloonTip::hideBalloon(); -+ trayIcons[i]->hide(); // still no luck -+ trayIcons[i]->destroy(); -+ trayIcons[i]->create(); -+ } else -+ trayIcons[i]->addToTray(); // add it to the new tray -+ } -+ retval = true; -+ } else if (ev->type == ClientMessage && sysTrayWindow == XNone) { -+ static Atom manager_atom = XInternAtom(display, "MANAGER", False); -+ XClientMessageEvent *cm = (XClientMessageEvent *)message; -+ if ((cm->message_type == manager_atom) && ((Atom)cm->data.l[1] == sysTraySelection)) { -+ sysTrayWindow = cm->data.l[2]; -+ memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); -+ XSelectInput(display, sysTrayWindow, StructureNotifyMask); -+ for (int i = 0; i < trayIcons.count(); i++) { -+ trayIcons[i]->addToTray(); -+ } -+ retval = true; -+ } -+ } else if (ev->type == PropertyNotify && ev->xproperty.atom == ATOM(_NET_SYSTEM_TRAY_VISUAL) && -+ ev->xproperty.window == sysTrayWindow) { -+ memset(&sysTrayVisual, 0, sizeof(sysTrayVisual)); -+ for (int i = 0; i < trayIcons.count(); i++) { -+ trayIcons[i]->addToTray(); -+ } -+ } -+ -+ return retval; -+} -+ -+void QSystemTrayIconWidget::addToTray() -+{ -+ Q_ASSERT(sysTrayWindow != XNone); -+ Display *display = QX11Info::display(); -+ -+ XVisualInfo *vi = getSysTrayVisualInfo(); -+ if (vi && vi->visual) { -+ Window root = RootWindow(display, vi->screen); -+ Window p = root; -+ if (QWidget *pw = parentWidget()) -+ p = pw->effectiveWinId(); -+ colormap = XCreateColormap(display, root, vi->visual, AllocNone); -+ XSetWindowAttributes wsa; -+ wsa.background_pixmap = 0; -+ wsa.colormap = colormap; -+ wsa.background_pixel = 0; -+ wsa.border_pixel = 0; -+ Window wid = XCreateWindow(display, p, -1, -1, 1, 1, -+ 0, vi->depth, InputOutput, vi->visual, -+ CWBackPixmap|CWBackPixel|CWBorderPixel|CWColormap, &wsa); -+ create(wid); -+ } else { -+ XSetWindowBackgroundPixmap(display, winId(), ParentRelative); -+ } -+ -+ // GNOME, NET WM Specification -+ static Atom netwm_tray_atom = XInternAtom(display, "_NET_SYSTEM_TRAY_OPCODE", False); -+ long l[5] = { CurrentTime, SYSTEM_TRAY_REQUEST_DOCK, static_cast(winId()), 0, 0 }; -+ XEvent ev; -+ memset(&ev, 0, sizeof(ev)); -+ ev.xclient.type = ClientMessage; -+ ev.xclient.window = sysTrayWindow; -+ ev.xclient.message_type = netwm_tray_atom; -+ ev.xclient.format = 32; -+ memcpy((char *)&ev.xclient.data, (const char *) l, sizeof(l)); -+ XSendEvent(display, sysTrayWindow, False, 0, &ev); -+ setMinimumSize(22, 22); // required at least on GNOME -+} -+ -+//////////////////////////////////////////////////////////////////////////// -+QXEmbedSystemTrayIconSys::QXEmbedSystemTrayIconSys(QSystemTrayIcon *q) -+: QAbstractSystemTrayIconSys(q) -+, widget(0) -+{ -+} -+ -+QXEmbedSystemTrayIconSys::~QXEmbedSystemTrayIconSys() -+{ -+ delete widget; -+} -+ -+QRect QXEmbedSystemTrayIconSys::geometry() const -+{ -+ if (!widget) -+ return QRect(); -+ return QRect(widget->mapToGlobal(QPoint(0, 0)), widget->size()); -+} -+ -+void QXEmbedSystemTrayIconSys::updateIcon() -+{ -+ if (!widget) -+ return; -+ widget->update(); -+} -+ -+void QXEmbedSystemTrayIconSys::updateToolTip() -+{ -+ if (!widget) -+ return; -+ widget->setToolTip(trayIcon->toolTip()); -+} -+ -+void QXEmbedSystemTrayIconSys::showMessage(const QString &message, const QString &title, -+ QSystemTrayIcon::MessageIcon icon, int msecs) -+{ -+ if (!widget) -+ return; -+ QPoint point = geometry().center(); -+ QBalloonTip::showBalloon(icon, message, title, trayIcon, point, msecs); -+} -+ -+void QXEmbedSystemTrayIconSys::updateVisibility() -+{ -+ bool visible = trayIcon->isVisible(); -+ if (visible && !widget) -+ widget = new QSystemTrayIconWidget(trayIcon, this); -+ else if (!visible && widget) { -+ delete widget; -+ widget = 0; -+ } -+} -+ -+void QXEmbedSystemTrayIconSys::sendToolTipEventToTrayIcon() -+{ -+#ifndef QT_NO_TOOLTIP -+ // Pass the event through QSystemTrayIcon so that it gets a chance to -+ // update the tooltip, then asks widget to show the tooltip -+ Q_ASSERT(widget); -+ QPoint globalPos = QCursor::pos(); -+ QPoint pos = widget->mapFromGlobal(globalPos); -+ QHelpEvent event(QEvent::ToolTip, pos, globalPos); -+ QApplication::sendEvent(trayIcon, &event); -+#endif -+} -+ -+void QXEmbedSystemTrayIconSys::sendWheelEventToTrayIcon(int delta, Qt::Orientation orientation) -+{ -+#ifndef QT_NO_WHEELEVENT -+ Q_ASSERT(widget); -+ QPoint globalPos = QCursor::pos(); -+ QPoint pos = widget->mapFromGlobal(globalPos); -+ QWheelEvent event(pos, globalPos, delta, Qt::NoButton, Qt::NoModifier, orientation); -+ QApplication::sendEvent(trayIcon, &event); -+#endif -+} -+ -+void QXEmbedSystemTrayIconSys::updateMenu() -+{ -+} -+ -+///////////////////////////////////////////////////////////// -+QAbstractSystemTrayIconSys * QXEmbedSystemTrayIconSysFactory::create(QSystemTrayIcon *icon) -+{ -+ return new QXEmbedSystemTrayIconSys(icon); -+} -+ -+bool QXEmbedSystemTrayIconSysFactory::isAvailable() const -+{ -+ return QSystemTrayIconWidget::locateSystemTray() != XNone; -+} -+ -+QT_END_NAMESPACE -+#endif //QT_NO_SYSTEMTRAYICON -Index: qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11_p.h -=================================================================== ---- /dev/null -+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11_p.h -@@ -0,0 +1,104 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** GNU Lesser General Public License Usage -+** This file may be used under the terms of the GNU Lesser General Public -+** License version 2.1 as published by the Free Software Foundation and -+** appearing in the file LICENSE.LGPL included in the packaging of this -+** file. Please review the following information to ensure the GNU Lesser -+** General Public License version 2.1 requirements will be met: -+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU General -+** Public License version 3.0 as published by the Free Software Foundation -+** and appearing in the file LICENSE.GPL included in the packaging of this -+** file. Please review the following information to ensure the GNU General -+** Public License version 3.0 requirements will be met: -+** http://www.gnu.org/copyleft/gpl.html. -+** -+** Other Usage -+** Alternatively, this file may be used in accordance with the terms and -+** conditions contained in a signed written agreement between you and Nokia. -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXEMBEDSYSTEMTRAYICON_X11_P_H -+#define QXEMBEDSYSTEMTRAYICON_X11_P_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is not part of the Qt API. It exists for the convenience -+// of a number of Qt sources files. This header file may change from -+// version to version without notice, or even be removed. -+// -+// We mean it. -+// -+ -+#ifndef QT_NO_SYSTEMTRAYICON -+ -+#include "qabstractsystemtrayiconsys_p.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QSystemTrayIconWidget; -+ -+class QXEmbedSystemTrayIconSys : public QAbstractSystemTrayIconSys -+{ -+public: -+ QXEmbedSystemTrayIconSys(QSystemTrayIcon *); -+ ~QXEmbedSystemTrayIconSys(); -+ -+ QRect geometry() const; -+ -+ void updateVisibility(); -+ -+ void updateIcon(); -+ -+ void updateToolTip(); -+ -+ void updateMenu(); -+ -+ void showMessage(const QString &message, const QString &title, -+ QSystemTrayIcon::MessageIcon icon, int msecs); -+ -+private: -+ friend class QSystemTrayIconWidget; -+ QSystemTrayIconWidget *widget; -+ -+ void sendToolTipEventToTrayIcon(); -+ -+ void sendWheelEventToTrayIcon(int delta, Qt::Orientation orientation); -+}; -+ -+struct QXEmbedSystemTrayIconSysFactory : public QSystemTrayIconSysFactoryInterface -+{ -+ QAbstractSystemTrayIconSys * create(QSystemTrayIcon *trayIcon); -+ bool isAvailable() const; -+}; -+ -+ -+QT_END_NAMESPACE -+ -+#endif // QT_NO_SYSTEMTRAYICON -+ -+#endif // QXEMBEDSYSTEMTRAYICON_X11_P_H -+ -Index: qt-everywhere-opensource-src-4.8.6/src/gui/util/util.pri -=================================================================== ---- qt-everywhere-opensource-src-4.8.6.orig/src/gui/util/util.pri -+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/util.pri -@@ -29,8 +29,13 @@ wince* { - } - - unix:x11 { -+ HEADERS += \ -+ util/qabstractsystemtrayiconsys_p.h \ -+ util/qxembedsystemtrayicon_x11_p.h - SOURCES += \ -- util/qsystemtrayicon_x11.cpp -+ util/qabstractsystemtrayiconsys.cpp \ -+ util/qsystemtrayicon_x11.cpp \ -+ util/qxembedsystemtrayicon_x11.cpp - } - - embedded|qpa { diff --git a/desktop/toolkit/qt/files/opensuse/build-qvfb-tool.diff b/desktop/toolkit/qt/files/opensuse/build-qvfb-tool.diff deleted file mode 100644 index 085811baf8..0000000000 --- a/desktop/toolkit/qt/files/opensuse/build-qvfb-tool.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: tools/tools.pro -=================================================================== ---- tools/tools.pro.orig -+++ tools/tools.pro -@@ -37,6 +37,8 @@ mac { - - embedded:SUBDIRS += kmap2qmap - -+SUBDIRS += qvfb -+ - contains(QT_CONFIG, dbus):SUBDIRS += qdbus - # We don't need these command line utilities on embedded platforms. - !wince*:!symbian:contains(QT_CONFIG, xmlpatterns): SUBDIRS += xmlpatterns xmlpatternsvalidator diff --git a/desktop/toolkit/qt/files/opensuse/fix-moc-from-choking-on-boost-headers.patch b/desktop/toolkit/qt/files/opensuse/fix-moc-from-choking-on-boost-headers.patch deleted file mode 100644 index ed0f5e83e9..0000000000 --- a/desktop/toolkit/qt/files/opensuse/fix-moc-from-choking-on-boost-headers.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- qt-snapshot/src/tools/moc/main.cpp 2013-03-16 19:09:31.954011186 +0100 -+++ qt-snapshot/src/tools/moc/main.cpp 2013-05-28 22:38:39.781681541 +0200 -@@ -190,6 +190,8 @@ int runMoc(int _argc, char **_argv) - - // Workaround a bug while parsing the boost/type_traits/has_operator.hpp header. See QTBUG-22829 - pp.macros["BOOST_TT_HAS_OPERATOR_HPP_INCLUDED"]; -+ pp.macros["BOOST_LEXICAL_CAST_INCLUDED"]; -+ pp.macros["BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"]; - - QByteArray filename; - QByteArray output; - diff --git a/desktop/toolkit/qt/files/opensuse/fix_assistant_segfault_QTBUG-25324.patch b/desktop/toolkit/qt/files/opensuse/fix_assistant_segfault_QTBUG-25324.patch deleted file mode 100644 index 75bbdb7cf2..0000000000 --- a/desktop/toolkit/qt/files/opensuse/fix_assistant_segfault_QTBUG-25324.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: qt-everywhere-opensource-src-4.8.3/tools/assistant/tools/assistant/mainwindow.cpp -=================================================================== ---- qt-everywhere-opensource-src-4.8.3.orig/tools/assistant/tools/assistant/mainwindow.cpp -+++ qt-everywhere-opensource-src-4.8.3/tools/assistant/tools/assistant/mainwindow.cpp -@@ -945,8 +945,7 @@ void MainWindow::updateApplicationFont() - if (helpEngine.usesAppFont()) - font = helpEngine.appFont(); - -- const QWidgetList &widgets = qApp->allWidgets(); -- foreach (QWidget* widget, widgets) -+ foreach (QWidget* widget, QApplication::allWidgets()) - widget->setFont(font); - } - diff --git a/desktop/toolkit/qt/files/opensuse/handle-tga-files-properly.diff b/desktop/toolkit/qt/files/opensuse/handle-tga-files-properly.diff deleted file mode 100644 index 6fbe0cb7a1..0000000000 --- a/desktop/toolkit/qt/files/opensuse/handle-tga-files-properly.diff +++ /dev/null @@ -1,56 +0,0 @@ -Index: src/plugins/imageformats/tga/qtgafile.cpp -=================================================================== ---- src/plugins/imageformats/tga/qtgafile.cpp.orig -+++ src/plugins/imageformats/tga/qtgafile.cpp -@@ -41,6 +41,7 @@ - - #include "qtgafile.h" - -+#include - #include - #include - #include -@@ -266,3 +267,16 @@ QImage QTgaFile::readImage() - // TODO: add processing of TGA extension information - ie TGA 2.0 files - return im; - } -+/** -+ * Checks if device contains a valid tga image, *without* changing device -+ * position. -+ */ -+bool QTgaFile::canRead(QIODevice *device) -+{ -+ QByteArray header = device->peek(HeaderSize); -+ if (header.size() < HeaderSize) -+ return false; -+ QBuffer buffer(&header); -+ QTgaFile tga(&buffer); -+ return tga.isValid(); -+} -Index: src/plugins/imageformats/tga/qtgafile.h -=================================================================== ---- src/plugins/imageformats/tga/qtgafile.h.orig -+++ src/plugins/imageformats/tga/qtgafile.h -@@ -93,6 +93,8 @@ public: - inline QSize size() const; - inline Compression compression() const; - -+ static bool canRead(QIODevice *device); -+ - private: - static inline quint16 littleEndianInt(const unsigned char *d); - -Index: src/plugins/imageformats/tga/qtgahandler.cpp -=================================================================== ---- src/plugins/imageformats/tga/qtgahandler.cpp.orig -+++ src/plugins/imageformats/tga/qtgahandler.cpp -@@ -77,8 +77,7 @@ bool QTgaHandler::canRead(QIODevice *dev - qWarning("QTgaHandler::canRead() called with no device"); - return false; - } -- QTgaFile tga(device); -- return tga.isValid(); -+ return QTgaFile::canRead(device); - } - - bool QTgaHandler::read(QImage *image) diff --git a/desktop/toolkit/qt/files/opensuse/libqt4-libtool-nodate.diff b/desktop/toolkit/qt/files/opensuse/libqt4-libtool-nodate.diff deleted file mode 100644 index f2b43991a0..0000000000 --- a/desktop/toolkit/qt/files/opensuse/libqt4-libtool-nodate.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: qmake/generators/unix/unixmake2.cpp -=================================================================== ---- qmake/generators/unix/unixmake2.cpp.orig -+++ qmake/generators/unix/unixmake2.cpp -@@ -1301,7 +1301,7 @@ UnixMakefileGenerator::writeLibtoolFile( - QTextStream t(&ft); - t << "# " << lname << " - a libtool library file\n"; - t << "# Generated by qmake/libtool (" << qmake_version() << ") (Qt " -- << QT_VERSION_STR << ") on: " << QDateTime::currentDateTime().toString(); -+ << QT_VERSION_STR << ")"; - t << "\n"; - - t << "# The name that we can dlopen(3).\n" diff --git a/desktop/toolkit/qt/files/opensuse/no-moc-date.diff b/desktop/toolkit/qt/files/opensuse/no-moc-date.diff deleted file mode 100644 index fdc6b264bc..0000000000 --- a/desktop/toolkit/qt/files/opensuse/no-moc-date.diff +++ /dev/null @@ -1,26 +0,0 @@ ---- tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp.orig -+++ tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp -@@ -549,9 +549,11 @@ static void writeProxy(const QString &fi - } else { - includeGuard = QLatin1String("QDBUSXML2CPP_PROXY"); - } -+#if 0 - includeGuard = QString(QLatin1String("%1_%2")) - .arg(includeGuard) - .arg(QDateTime::currentDateTime().toTime_t()); -+#endif - hs << "#ifndef " << includeGuard << endl - << "#define " << includeGuard << endl - << endl; -@@ -855,9 +857,11 @@ static void writeAdaptor(const QString & - } else { - includeGuard = QLatin1String("QDBUSXML2CPP_ADAPTOR"); - } -+#if 0 - includeGuard = QString(QLatin1String("%1_%2")) - .arg(includeGuard) - .arg(QDateTime::currentDateTime().toTime_t()); -+#endif - hs << "#ifndef " << includeGuard << endl - << "#define " << includeGuard << endl - << endl; diff --git a/desktop/toolkit/qt/files/opensuse/qatomic-generic.patch b/desktop/toolkit/qt/files/opensuse/qatomic-generic.patch deleted file mode 100644 index 1f2347fd38..0000000000 --- a/desktop/toolkit/qt/files/opensuse/qatomic-generic.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: qt-everywhere-opensource-src-4.8.4/src/corelib/arch/qatomic_generic.h -=================================================================== ---- qt-everywhere-opensource-src-4.8.4.orig/src/corelib/arch/qatomic_generic.h -+++ qt-everywhere-opensource-src-4.8.4/src/corelib/arch/qatomic_generic.h -@@ -109,6 +109,16 @@ Q_CORE_EXPORT bool QBasicAtomicPointer_t - Q_CORE_EXPORT void *QBasicAtomicPointer_fetchAndStoreOrdered(void * volatile *, void *); - Q_CORE_EXPORT void *QBasicAtomicPointer_fetchAndAddOrdered(void * volatile *, qptrdiff); - -+inline bool QBasicAtomicPointer_testAndSetOrdered(void * volatile *_q_value, const void *expected_value, const void *newValue) -+{ -+ return QBasicAtomicPointer_testAndSetOrdered(_q_value, const_cast(expected_value), const_cast(newValue)); -+} -+ -+inline void *QBasicAtomicPointer_fetchAndStoreOrdered(void * volatile *_q_value, const void *newValue) -+{ -+ return QBasicAtomicPointer_fetchAndStoreOrdered(_q_value, const_cast(newValue)); -+} -+ - // Reference counting - - inline bool QBasicAtomicInt::ref() diff --git a/desktop/toolkit/qt/files/opensuse/qdbusconnection-no-warning-output.patch b/desktop/toolkit/qt/files/opensuse/qdbusconnection-no-warning-output.patch deleted file mode 100644 index eed366fd5b..0000000000 --- a/desktop/toolkit/qt/files/opensuse/qdbusconnection-no-warning-output.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: src/dbus/qdbusconnection.cpp -=================================================================== ---- src/dbus/qdbusconnection.cpp.orig -+++ src/dbus/qdbusconnection.cpp -@@ -1110,8 +1110,10 @@ public: - // make sure this connection is running on the main thread - QCoreApplication *instance = QCoreApplication::instance(); - if (!instance) { -+#ifndef QT_NO_DEBUG - qWarning("QDBusConnection: %s D-Bus connection created before QCoreApplication. Application may misbehave.", - type == SessionBus ? "session" : type == SystemBus ? "system" : "generic"); -+#endif - } else if (QDBusConnectionPrivate::d(*this)) { - QDBusConnectionPrivate::d(*this)->moveToThread(instance->thread()); - } diff --git a/desktop/toolkit/qt/files/opensuse/qfatal-noreturn.diff b/desktop/toolkit/qt/files/opensuse/qfatal-noreturn.diff deleted file mode 100644 index 2fafb87e42..0000000000 --- a/desktop/toolkit/qt/files/opensuse/qfatal-noreturn.diff +++ /dev/null @@ -1,12 +0,0 @@ -Index: src/corelib/global/qglobal.h -=================================================================== ---- src/corelib/global/qglobal.h.orig -+++ src/corelib/global/qglobal.h -@@ -1772,6 +1772,7 @@ Q_CORE_EXPORT void qCritical(const char - Q_CORE_EXPORT void qFatal(const char *, ...) /* print fatal message and exit */ - #if defined(Q_CC_GNU) && !defined(__INSURE__) - __attribute__ ((format (printf, 1, 2))) -+ __attribute__ ((noreturn)) - #endif - ; - diff --git a/desktop/toolkit/qt/files/opensuse/qlocale_icu-no-warning-output.patch b/desktop/toolkit/qt/files/opensuse/qlocale_icu-no-warning-output.patch deleted file mode 100644 index f54715e786..0000000000 --- a/desktop/toolkit/qt/files/opensuse/qlocale_icu-no-warning-output.patch +++ /dev/null @@ -1,61 +0,0 @@ -From b924fb26f14b38c5a92d7271b2eba73080cfb337 Mon Sep 17 00:00:00 2001 -From: Hrvoje Senjan -Date: Tue, 30 Jul 2013 01:02:38 +0200 -Subject: [PATCH 1/1] qlocale_icu-no-warning-output.patch - -Since openSUSE now has it's own icu so versioning, and -we can't predict what will happen in future, qWarnings -about icu libraries and symbols are now only emmited in -debug builds. This will be usefull regardless of icu versioning. - ---- - src/corelib/tools/qlocale_icu.cpp | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/corelib/tools/qlocale_icu.cpp b/src/corelib/tools/qlocale_icu.cpp -index c3e2907..ce09677 100644 ---- a/src/corelib/tools/qlocale_icu.cpp -+++ b/src/corelib/tools/qlocale_icu.cpp -@@ -84,7 +84,9 @@ bool qt_initIcu(const QString &localeString) - QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT)); - lib.setLoadHints(QLibrary::ImprovedSearchHeuristics); - if (!lib.load()) { -+#ifndef QT_NO_DEBUG - qWarning() << "Unable to load library icui18n" << lib.errorString(); -+#endif - status = ErrorLoading; - return false; - } -@@ -105,7 +107,9 @@ bool qt_initIcu(const QString &localeString) - ptr_ucol_close = 0; - ptr_ucol_strcoll = 0; - -+#ifndef QT_NO_DEBUG - qWarning("Unable to find symbols in icui18n"); -+#endif - status = ErrorLoading; - return false; - } -@@ -114,7 +118,9 @@ bool qt_initIcu(const QString &localeString) - QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT)); - ucLib.setLoadHints(QLibrary::ImprovedSearchHeuristics); - if (!ucLib.load()) { -+#ifndef QT_NO_DEBUG - qWarning() << "Unable to load library icuuc" << ucLib.errorString(); -+#endif - status = ErrorLoading; - return false; - } -@@ -131,7 +137,9 @@ bool qt_initIcu(const QString &localeString) - ptr_u_strToUpper = 0; - ptr_u_strToLower = 0; - -+#ifndef QT_NO_DEBUG - qWarning("Unable to find symbols in icuuc"); -+#endif - status = ErrorLoading; - return false; - } --- -1.8.3.1 - diff --git a/desktop/toolkit/qt/files/opensuse/qt-debug-timer.diff b/desktop/toolkit/qt/files/opensuse/qt-debug-timer.diff deleted file mode 100644 index 585ba294c6..0000000000 --- a/desktop/toolkit/qt/files/opensuse/qt-debug-timer.diff +++ /dev/null @@ -1,26 +0,0 @@ -Index: src/corelib/kernel/qeventdispatcher_unix.cpp -=================================================================== ---- src/corelib/kernel/qeventdispatcher_unix.cpp.orig -+++ src/corelib/kernel/qeventdispatcher_unix.cpp -@@ -592,6 +592,21 @@ int QTimerInfoList::activateTimers() - - if (!firstTimerInfo) { - firstTimerInfo = currentTimerInfo; -+ QObject* o = firstTimerInfo->obj; -+ static int debug_timer = -1; -+ if (debug_timer < 0) -+ debug_timer = getenv("QT_DEBUG_TIMER") ? 1 : 0; -+ if (debug_timer > 0) { -+ QString objPath = o->objectName(); -+ if(objPath.isEmpty()) objPath = QLatin1String("<") + o->parent()->metaObject()->className() + QLatin1String(">"); -+ for (; o->parent(); o = o->parent()) -+ if (!o->parent()->objectName().isEmpty()) -+ objPath.prepend(o->parent()->objectName() + "/"); -+ else -+ objPath.prepend(QLatin1String("<") + o->parent()->metaObject()->className() + QLatin1String(">/")); -+ qDebug("activating %d ms timer for %s", firstTimerInfo->interval.tv_sec * 1000 -+ + firstTimerInfo->interval.tv_usec / 1000, qPrintable(objPath)); -+ } - } else if (firstTimerInfo == currentTimerInfo) { - // avoid sending the same timer multiple times - break; diff --git a/desktop/toolkit/qt/files/opensuse/qt-never-strip.diff b/desktop/toolkit/qt/files/opensuse/qt-never-strip.diff deleted file mode 100644 index 81e9c67e18..0000000000 --- a/desktop/toolkit/qt/files/opensuse/qt-never-strip.diff +++ /dev/null @@ -1,30 +0,0 @@ -Index: configure -=================================================================== ---- configure.orig -+++ configure -@@ -65,7 +65,6 @@ OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s, - - # initialize global variables - QMAKE_SWITCHES= --QMAKE_VARS= - QMAKE_CONFIG= - QTCONFIG_CONFIG= - QT_CONFIG= -@@ -1625,7 +1624,7 @@ while [ "$#" -gt 0 ]; do - QMakeVar add QMAKE_CFLAGS -pg - QMakeVar add QMAKE_CXXFLAGS -pg - QMakeVar add QMAKE_LFLAGS -pg -- QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip" -+ QMakeVar add CONFIG nostrip - else - UNKNOWN_OPT=yes - fi -@@ -3359,6 +3358,8 @@ if [ "$OPT_VERBOSE" = "yes" ]; then - fi - fi - -+QMakeVar add CONFIG nostrip -+ - #------------------------------------------------------------------------------- - # tests that don't need qmake (must be run before displaying help) - #------------------------------------------------------------------------------- diff --git a/desktop/toolkit/qt/files/opensuse/use-freetype-default.diff b/desktop/toolkit/qt/files/opensuse/use-freetype-default.diff deleted file mode 100644 index e7b94a80b2..0000000000 --- a/desktop/toolkit/qt/files/opensuse/use-freetype-default.diff +++ /dev/null @@ -1,40 +0,0 @@ -Index: src/gui/text/qfontengine_x11.cpp -=================================================================== ---- src/gui/text/qfontengine_x11.cpp.orig -+++ src/gui/text/qfontengine_x11.cpp -@@ -967,6 +967,26 @@ Q_GUI_EXPORT void qt_x11ft_convert_patte - *antialias = b; - } - -+#include -+#include FT_FREETYPE_H -+#include FT_LCD_FILTER_H -+ -+static bool subpixel_rendering_available() -+{ -+ static int implemented = -1; -+ -+ if (implemented >= 0) -+ return implemented; -+ -+ extern FT_Library qt_getFreetype(); -+ FT_Library lib = qt_getFreetype(); -+ -+ if (FT_Err_Unimplemented_Feature == -+ FT_Library_SetLcdFilter(lib, FT_LCD_FILTER_DEFAULT )) -+ return (implemented = false); -+ -+ return (implemented = true); -+} - - QFontEngineX11FT::QFontEngineX11FT(FcPattern *pattern, const QFontDef &fd, int screen) - : QFontEngineFT(fd) -@@ -984,7 +1004,7 @@ QFontEngineX11FT::QFontEngineX11FT(FcPat - canUploadGlyphsToServer = QApplication::testAttribute(Qt::AA_X11InitThreads) || (qApp->thread() == QThread::currentThread()); - - subpixelType = Subpixel_None; -- if (antialias) { -+ if (subpixel_rendering_available() && antialias) { - int subpixel = X11->display ? X11->screens[screen].subpixel : FC_RGBA_UNKNOWN; - if (subpixel == FC_RGBA_UNKNOWN) - (void) FcPatternGetInteger(pattern, FC_RGBA, 0, &subpixel); diff --git a/desktop/toolkit/qt/files/turkish.patch.bz2 b/desktop/toolkit/qt/files/turkish.patch.bz2 deleted file mode 100644 index 16b3bc68b64b398323790725e122f5b069ee4db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35990 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 a*{~zFnVjMU=IDp~Mck226eKv@M - - - - qt - http://qt.nokia.com - - PisiLinux Community - admins@pisilinux.org - - LGPLv2.1 - GPLv3 - library -

Qt toolkit version 4 - Qt is a cross platform GUI toolkit. - http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz - - mariadb-lib - cups-devel - mesa-devel - gtk2-devel - tiff-devel - libSM-devel - libICE-devel - libmng-devel - libXext-devel - alsa-lib-devel - firebird-devel - unixODBC-devel - libXrandr-devel - gstreamer-devel - fontconfig-devel - libXrender-devel - postgresql-server - libjpeg-turbo-devel - firebird-superserver - gst-plugins-base-devel - qtchooser - - - - fedora/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch - fedora/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch - fedora/qt-everywhere-opensource-src-4.8.5-webcore_debuginfo.patch - fedora/qt-cupsEnumDests.patch - fedora/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch - fedora/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch - fedora/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch - fedora/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch - fedora/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch - fedora/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch - fedora/qt-everywhere-opensource-src-4.8.5-mysql_config.patch - fedora/qt-everywhere-opensource-src-4.6.2-cups.patch - fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch - fedora/qt-everywhere-opensource-src-4.8.3-no_Werror.patch - fedora/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch - fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch - fedora/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch - fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch - fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch - fedora/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch - - fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch - fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-37380.patch - fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-38585.patch - - opensuse/qt-never-strip.diff - opensuse/use-freetype-default.diff - opensuse/0191-listview-alternate-row-colors.diff - opensuse/0188-fix-moc-parser-same-name-header.diff - opensuse/0195-compositing-properties.diff - opensuse/0180-window-role.diff - opensuse/0225-invalidate-tabbar-geometry-on-refresh.patch - opensuse/qt-debug-timer.diff - opensuse/qfatal-noreturn.diff - opensuse/no-moc-date.diff - opensuse/libqt4-libtool-nodate.diff - opensuse/build-qvfb-tool.diff - opensuse/handle-tga-files-properly.diff - opensuse/qdbusconnection-no-warning-output.patch - opensuse/fix_assistant_segfault_QTBUG-25324.patch - opensuse/qatomic-generic.patch - opensuse/QSystemTrayicon.diff - opensuse/fix-moc-from-choking-on-boost-headers.patch - opensuse/qlocale_icu-no-warning-output.patch - opensuse/0001-Don-t-crash-on-broken-GIF-images.patch - - CVE-2014-0190.patch - - turkish.patch.bz2 - - mkspecs.patch - - - - - qt - - mesa - tiff - libICE - libSM - libmng - libXext - alsa-lib - gstreamer - fontconfig - libXrender - libjpeg-turbo - qtchooser - - - /etc - /usr/lib/qt4/bin - /usr/bin/qdbus* - /usr/bin/qtconfig - /usr/lib - /usr/share/applications - /usr/lib/qt4/imports - /usr/lib/qt4/templates - /usr/share/qt4/translations/*_tr.* - - - data/qdbusviewer.desktop - data/qtconfig.desktop - - - - - qt-32bit - emul32 - 32-bit shared libraries for qt - emul32 - - mesa-32bit - tiff-32bit - dbus-32bit - zlib-32bit - glib2-32bit - libSM-32bit - libpng-32bit - libmng-32bit - libICE-32bit - libX11-32bit - sqlite-32bit - openssl-32bit - libXext-32bit - freetype-32bit - alsa-lib-32bit - libXrender-32bit - fontconfig-32bit - libjpeg-turbo-32bit - - - uClibc - mesa-32bit - tiff-32bit - dbus-32bit - zlib-32bit - libSM-32bit - glib2-32bit - libX11-32bit - libpng-32bit - libmng-32bit - libICE-32bit - sqlite-32bit - openssl-32bit - libXext-32bit - freetype-32bit - alsa-lib-32bit - libXrender-32bit - fontconfig-32bit - libjpeg-turbo-32bit - qt - - - /usr/lib32 - - - - - qt-webkit - - qt - gstreamer - libXrender - gst-plugins-base - - - /usr/lib/*WebKit* - - - - - qt-webkit-32bit - emul32 - 32-bit shared libraries for qt-webkit - emul32 - - glib2-32bit - libX11-32bit - sqlite-32bit - gstreamer-32bit - libXrender-32bit - gst-plugins-base-32bit - - - qt-webkit - qt-32bit - glib2-32bit - libX11-32bit - sqlite-32bit - gstreamer-32bit - libXrender-32bit - gst-plugins-base-32bit - - - /usr/lib32/*WebKit* - - - - - qt-webkit-devel - Development files for Qt Webkit - - qt-devel - - - /usr/include/Qt/*WebKit* - /usr/include/Qt/*webkit* - /usr/include/QtWebKit - /usr/lib/pkgconfig/*WebKit* - - - - - qt-devel - Development files for Qt - - qt - - mesa-devel - - - - /usr/bin - /usr/include - /usr/share/qt4/mkspecs - /usr/lib/pkgconfig - /usr/lib32/pkgconfig - /usr/share/qt4/q3porting.xml - - - - - qt-l10n - locale - Translation files for Qt library and tools. Supported languages are: da, de, fr, ja, pl, ru, zh_CN, zh_TW - - /usr/share/qt4/translations - - - - - qt-designer - designer - - qt - qt-webkit - - - /usr/bin/designer - /usr/lib/qt4/plugins/designer - /usr/share/applications/designer.desktop - /usr/share/pixmaps/designer.png - - - data/designer.desktop - data/designer.png - - - - - qt-linguist - linguist - - qt - - - /usr/bin/linguist - /usr/share/qt4/phrasebooks - /usr/share/applications/linguist.desktop - /usr/share/pixmaps/linguist.png - - - data/linguist.desktop - data/linguist.png - - - - - qt-docs - assistant - Development documents of Qt and Qt Assistant tool - - qt - qt-webkit - - - /usr/bin/assistant - /usr/share/applications/assistant.desktop - /usr/share/pixmaps/assistant.png - /usr/share/icons - /usr/share/doc - /usr/share/doc/qt4/qch - - - data/assistant.desktop - data/assistant.png - data/hi128-app-qt4-logo.png - data/hi48-app-qt4-logo.png - - - - - qt-docs-html - Development documents of Qt in HTML format - - /usr/share/doc/qt4/html - - - - - qt-demos - qt4-logo - - qt - qt-webkit - mesa - phonon - - - /usr/bin/qtdemo - /usr/lib/qt4/demos - /usr/lib/qt4/examples - /usr/lib/qt4/plugins/designer/libarthurplugin.so - /usr/share/applications/qtdemo.desktop - /usr/tests/qt4 - - - data/qtdemo.desktop - - - - - qt-sql-mysql - - qt - mariadb-lib - - - /usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so - - - - - qt-sql-postgresql - - qt - postgresql-lib - - - /usr/lib/qt4/plugins/sqldrivers/libqsqlpsql.so - - - - - qt-sql-sqlite - - qt - sqlite - - - /usr/lib/qt4/plugins/sqldrivers/libqsqlite.so - - - - - qt-sql-odbc - - qt - unixODBC - - - /usr/lib/qt4/plugins/sqldrivers/libqsqlodbc.so - - - - - qt-sql-ibase - - qt - firebird-client - - - /usr/lib/qt4/plugins/sqldrivers/libqsqlibase.so - - - - - - 2015-04-09 - 4.8.6 - Rebuild for qt5 - Ayhan Yalçınsoy - ayhanyalcinsoy@pisilinux.org - - - 2014-05-20 - 4.8.6 - Version bump, fix CVE. - Serdar Soytetir - kaptan@pisilinux.org - - - 2014-04-10 - 4.8.5 - Rebuild. - Serdar Soytetir - kaptan@pisilinux.org - - - 2014-02-21 - 4.8.5 - Rebuild for Mariadb. - Serdar Soytetir - kaptan@pisilinux.org - - - 2014-02-01 - 4.8.5 - Rebuild for new libmng. - Serdar Soytetir - kaptan@pisilinux.org - - - 2013-12-14 - 4.8.5 - Re-cleanup qt, fix systemtray issues. - Serdar Soytetir - kaptan@pisilinux.org - - - 2013-12-11 - 4.8.5 - Cleanup some patches, rebuild. - Serdar Soytetir - kaptan@pisilinux.org - - - 2013-08-05 - 4.8.5 - Patched. - Osman Erkan - osman.erkan@pisilinux.org - - - 2013-07-03 - 4.8.5 - Version bump. - Marcin Bojara - marcin@pisilinux.org - - - 2013-03-11 - 4.8.4 - Patch cleanup, add some enhancements. - Serdar Soytetir - kaptan@pisilinux.org - - - 2013-02-15 - 4.8.4 - Add emul32 - Marcin Bojara - marcin@pisilinux.org - - - 2012-12-08 - 4.8.4 - First release - Yusuf Aydemir - yusuf.aydemir@pisilinux.org - - - diff --git a/desktop/toolkit/qt/translations.xml b/desktop/toolkit/qt/translations.xml deleted file mode 100644 index fc38bd2536..0000000000 --- a/desktop/toolkit/qt/translations.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - qt - Qt araç takımı, sürüm 4 - Qt bir çok platformda çalışabilen ve grafiksel kullanıcı arayüzü (GUI) oluşturmaya yarayan bir araç takımıdır. - Qt est une boîte à outils graphique multi-plateforme. - Qt es un toolkit para GUI multiplataforma. - - - - qt-devel - Qt için geliştirme dosyaları - - - - qt-webkit-devel - Qt Webkit için geliştirme dosyaları - - - - qt-l10n - Qt kitaplık ve araçları için dil dosyaları. Desteklenen diller: da, de, fr, ja, pl, ru, zh_CN, zh_TW - - - - qt-docs - Qt için geliştirme belgeleri ve Qt Assistant aracı - - - - qt-docs-html - Qt için HTML biçiminde geliştirme belgeleri - -