This commit is contained in:
alihanozturk
2015-09-01 21:11:28 +03:00
parent 45514f493c
commit f5e4c7f648
61 changed files with 4401 additions and 0 deletions
+180
View File
@@ -0,0 +1,180 @@
#!/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 \
-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")
@@ -0,0 +1,32 @@
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;
@@ -0,0 +1,136 @@
[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;
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,132 @@
[Desktop Entry]
Encoding=UTF-8
Exec=/usr/lib/qt4/bin/designer
Name=Qt4 Designer
Name[af]=Qt4 Ontwerper
Name[ar]=مصمم Qt4
Name[bn]=কিউ-টি ডিসাইনার
Name[br]=Ergrafer Qt4
Name[ca]=Dissenyador Qt4
Name[cs]=Qt4 designer
Name[cy]=Dylunydd Qt4
Name[de]=Qt4-Designer
Name[eo]=Qt4-Desegnilo
Name[es]=Diseñador Qt4
Name[eu]=Qt4 diseinatzailea
Name[fa]=Qt4 طراح
Name[gl]=Deseñador de Qt4
Name[hi]=क्यूटी डिज़ाइनर
Name[hr]=Qt4 Dizajner
Name[hsb]=Qt4 designer
Name[is]=Qt4 hönnuðurinn
Name[it]=Designer Qt4
Name[ja]=Qt4 デザイナー
Name[km]=កម្មវិធី​រចនា Qt4
Name[ko]=Qt4 디자이너
Name[lo]=ອອກແບບສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ສຳຫັລບ Qt4
Name[lv]=Qt4 Dizainers
Name[mk]=Qt4-Дизајнер
Name[mn]=Qt4-Дизайнер
Name[ms]=Pembantu Qt4
Name[mt]=Diżinjatur Qt4
Name[nds]=Qt4-Designer
Name[nso]=Mohlami wa Qt4
Name[oc]=Dessinador Qt4
Name[pa]=Qt4 ਡਿਜ਼ਾਈਨਰ
Name[rw]=Umuhanzi Qt4
Name[sl]=Snovalnik Qt4
Name[ss]=Umhleli weQt4
Name[sv]=Qt4 designer
Name[ta]=Qt4 வடிவமைப்பாளர்
Name[tg]=Тароҳи Qt4
Name[th]=ออกแบบส่วนติดต่อผู้ใช้สำหรับ Qt4
Name[tr]=Qt4 Tasarımcı
Name[tt]=Qt4 Tözüçe
Name[uk]=Дизайнер Qt4
Name[uz]=Qt43 дизайнер
Name[ven]=Qt4 Mufhati
Name[vi]=Trình thiết kế Qt4
Name[xh]=Umyili we Qt4
Name[zh_CN]=Qt4 设计器
Name[zh_TW]=Qt4 設計師
Name[zu]=Umakhi we-Qt4
GenericName=Interface Designer
GenericName[af]=Koppelvlak Ontwerper
GenericName[ar]=مصمم واجهات إستخدام
GenericName[az]=Ara Üz Tərtibçisi
GenericName[bn]=ইন্টারফেস পরিকল্পনা
GenericName[br]=Ergrafer etrefas
GenericName[bs]=Qt4 alat za dizajniranje interfejsa
GenericName[ca]=Dissenyador d'interfícies
GenericName[cs]=Návrhář rozhraní
GenericName[cy]=Dylunydd Rhyngwyneb
GenericName[da]=Grænsefladedesigner
GenericName[de]=Schnittstellendesigner
GenericName[el]=Σχεδιαστής διασυνδέσεων
GenericName[eo]=Interfacdesegnilo
GenericName[es]=Diseñador de interfaces
GenericName[et]=Kasutajaliidese disainer
GenericName[eu]=Interfaze diseinatzailea
GenericName[fa]=طراح واسط
GenericName[fi]=Käyttöliittymäsuunnittelija
GenericName[fo]=Nýtaramótssniðari
GenericName[fr]=Concepteur d'interface
GenericName[fy]=Ynterface-ûntwerper
GenericName[ga]=Dearthóir Comhéadain
GenericName[gl]=Deseñador de Interfaces
GenericName[he]=מעצב ממשקים
GenericName[hi]=इंटरफेस डिज़ाइनर
GenericName[hr]=Dizajner sučelja
GenericName[hu]=Felülettervező
GenericName[id]=Perancang Antarmuka
GenericName[is]=Viðmótshönnun
GenericName[it]=Disegnatore di interfacce
GenericName[ja]=インターフェースデザイナー
GenericName[km]=កម្មវិធី​រចនា​ចំណុច​ប្រទាក់
GenericName[ko]=인터페이스 디자이너
GenericName[lo]=ເຄື່ອງມືອອກແບບສ່ວນຕິດຕໍ່ຜູ້ໃຊ້
GenericName[lt]=Sąsajos kūrimo programa
GenericName[lv]=Saskarnes Dizainers
GenericName[mk]=Дизајнер на интерфејси
GenericName[mn]=Гадаргуун дизайнер
GenericName[ms]=Pereka Antaramuka
GenericName[mt]=Diżinjatur tal-interfaċċji
GenericName[nb]=Utforming av grensesnitt
GenericName[nds]=Koppelsteed-Maker
GenericName[nl]=Interface-ontwerper
GenericName[nn]=Utforming av grensesnitt
GenericName[nso]=Mohlami wa Interface
GenericName[pa]=ਇੰਟਰਫੇਸ਼ ਡਿਜ਼ਾਈਨਰ
GenericName[pl]=Projektant interfejsu
GenericName[pt]=Editor de Interfaces
GenericName[pt_BR]=Interface do Designer
GenericName[ro]=Dezvoltator de interfeţe
GenericName[ru]=Редактор интерфейса приложений Qt4
GenericName[rw]=Umuhanzi w'Imigaragarire
GenericName[se]=Laktahábmejeaddji
GenericName[sk]=Návrh rozhrania
GenericName[sl]=Snovalnik vmesnikov
GenericName[sr]=Дизајнер интерфејса
GenericName[sr@Latn]=Dizajner interfejsa
GenericName[ss]=Umhleli wesichumanisi
GenericName[sv]=Gränssnittseditor
GenericName[ta]=முகப்புப் வடிவமைப்பாளர்
GenericName[tg]=Тароҳи робита
GenericName[th]=เครื่องมือออกแบบส่วนติดต่อผู้ใช้
GenericName[tr]=Arayüz tasarım programı
GenericName[tt]=Yözara Tözegeç
GenericName[uk]=Дизайн інтерфейсу
GenericName[uz]=Интерфейс дизайнери
GenericName[ven]=Muvhati wa nga Phanda
GenericName[vi]=Trình thiết kế giao diện
GenericName[wa]=Dessineu d' eterfaces
GenericName[xh]=Umyili Wezojongongano
GenericName[zh_CN]=界面设计器
GenericName[zh_TW]=界面設計師
GenericName[zu]=Umakhi Womxhumanisi
X-KDE-StartupNotify=true
MimeType=application/x-designer;
Icon=designer
Terminal=false
Type=Application
Categories=Qt;Development;
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -0,0 +1,128 @@
[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;
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="280.22" height="69.387"
viewBox="0 0 280.22 69.387" overflow="visible" enable-background="new 0 0 280.22 69.387" xml:space="preserve">
<path fill="#8C8C8C" d="M199.551,58.684c-0.334-6.834,2.636-22.747,9.47-21.247c2.913,0.64,2.118,4.655,1.166,9
c-1.282,5.85-3.5,12.237-3.5,12.237s8.334,0.333,8.167,0c0.833-10.5,3.039-21.928,9.167-21.071
c5.081,0.71-1.441,21.071-1.441,21.071s6.27,0,7.587,0c-0.272-3.453,1.59-11.495,2.635-17.311s-1.181-8.36-5.86-8.405
s-9.314,4.044-9.314,4.044c0.182-3.498-4.429-4.05-4.429-4.05c-4.93-0.313-9.655,3.005-9.655,3.005l0.438-2.57h-7.425
c0,0-0.365,4.088-1.867,11.549s-3.51,13.738-3.51,13.738L199.551,58.684z"/>
<path fill="#8C8C8C" d="M250.388,32.759c-10.167,0-14.7,7.178-14.7,14.511s4.332,12.167,13.166,12.167c4.15,0,6.5-3.834,6.5-3.834
s0.134-1.049-0.65-0.612s-2.92,1.352-5.71,1.352s-5.806-2.654-5.806-9.239c0,0,16.166,0,16,0
C260.021,44.437,260.555,32.759,250.388,32.759z M251.871,44.136h-7.76c0-5.362,4.29-9.412,7.211-7.974
C253.982,37.397,251.871,44.136,251.871,44.136z"/>
<path fill="#8C8C8C" d="M154.888,32.759c-10.167,0-14.7,7.178-14.7,14.511s4.332,12.167,13.166,12.167c4.15,0,6.5-3.834,6.5-3.834
s0.134-1.049-0.65-0.612s-2.92,1.352-5.71,1.352s-5.806-2.654-5.806-9.239c0,0,16.166,0,16,0
C164.521,44.437,165.055,32.759,154.888,32.759z M156.371,44.136h-7.76c0-5.362,3.621-8.836,6.542-7.397
C157.813,37.973,156.371,44.136,156.371,44.136z"/>
<path fill="#8C8C8C" d="M268.725,59.088h-8.198c0,0,4.786-17.192,5.203-25.621c-0.072,0.072,7.11,0,7.11,0s-0.617,1.9-0.885,3.559
c2.031-2.249,2.719-4.272,8.232-4.272c0.072,0,0,7.109,0,7.109s-5.15-1.275-7,0.574S269.354,43.77,268.725,59.088z"/>
<path fill="#8C8C8C" d="M127.225,59.088h-8.198c0,0,4.786-17.192,5.203-25.621c-0.072,0.072,7.11,0,7.11,0s-0.617,1.9-0.885,3.559
c2.031-2.249,2.719-4.272,8.232-4.272c0.072,0,0,7.109,0,7.109s-5.15-1.275-7,0.574S127.854,43.77,127.225,59.088z"/>
<path fill="#8C8C8C" d="M117.227,24.633l-6.705,2.325l-1.541,6.244h-4.273v4.105h3.374c0,0-3.598,12.875-2.924,16.812
c0.675,4.273,4.836,5.172,7.31,5.06s3.149-1.911,3.036-2.586s-3.487,0.644-3.824-2.393c-0.225-1.799,2.812-16.893,2.812-16.893
h5.285v-4.105h-4.161L117.227,24.633z"/>
<path fill="#8C8C8C" d="M187.104,58.691c0.994-0.821,0.33-2.463-0.53-2.661c-0.97-2.011,2.023-13.763,2.023-16.98
s-5.397-9.671-16.53-3.599c-1.079,0.686-0.682,1.808-0.416,2.183s0.766,0.625,1,0.375c1.047-1.141,5.602-2.333,7.737-0.084
c1.462,1.35,1.396,3.958,0.383,4.97c-1.236,0.112-13.427-0.246-14.889,7.513c-2.522,13.777,12.92,6.522,13.719,5.96
s0.706,1.626,2.003,2.548C185.125,59.223,186.41,59.264,187.104,58.691z M179.396,52.935c-1.25,3.292-5.891,2.789-6.166,0.459
c-1-7.792,7.041-7.209,7.041-7.209S180.646,49.643,179.396,52.935z"/>
<path fill="#8C8C8C" d="M98.272,40.792l2.332-3.939c0,0-1.9-4.045-7.511-4.045s-8.848,4.046-8.848,8.848s10.682,8.417,8.093,13.164
c-4.316,4.424-8.872-2.792-8.782-3.266c-0.326,0.47-2.56,3.549-2.452,3.549c0.54,1.079,2.5,4.5,8.752,4.572
c5.179,0.06,8.309-3.776,8.417-8.523c0.108-6.366-9.172-9.604-9.28-12.517S95.144,32.375,98.272,40.792z"/>
<path d="M86.042,31.416c-1-0.938-1.75,0.313-4,1.25s-3,0.813-5.25,0.5c-3.688-0.813-10.17-0.57-11.875,0.25
c-11.386,4.572-5.281,13.031-3.422,14.719c-0.016,0-2.773,1.453-3.176,3.735c-0.518,2.933,0.831,4.52,0.873,4.561
c-3.72,0.193-6.112,3.934-5.536,6.997c0.62,3.299,4.553,5.931,10.184,5.953c11.904,0.259,12.521-7.353,12.521-7.353
c1.629-9.258-6.222-9.685-11.817-9.25c-2.025-1.809-0.445-3.496-0.531-3.496C82.917,49.728,78.158,37.12,78.158,37.12
C81.35,36.343,87.604,32.916,86.042,31.416z M60.722,57.939c7.405,1.336,10.385-0.362,10.892,3.413
c0.219,3.684-2.908,4.737-6.545,4.963s-6.287-1.612-6.433-3.975C58.491,59.977,60.555,60.221,60.722,57.939z M72.161,41.835
c-0.684,3.028-2.782,5.136-4.687,4.706c-1.905-0.431-2.894-3.234-2.211-6.263c0.684-3.029,2.782-5.137,4.687-4.707
C71.855,36.002,72.845,38.806,72.161,41.835z"/>
<path fill="#FF3131" d="M47.141,5.199c-5.409,0-13.323-4.407-21.036-4.407S13.785,5.199,12.983,5.8
c-0.801,0.601-1.303,2.904,1.102,2.203s4.407-0.701,8.214-0.701s12.922,5.209,22.138,5.209S61.365,5.4,63.068,2.895
s0.1-3.306-1.202-2.704C60.563,0.792,52.15,5.199,47.141,5.199z"/>
<path fill="#319831" d="M70.639,18.921c-5.683,0-13.997-4.406-22.1-4.406s-12.944,4.406-13.786,5.008s-1.369,2.904,1.157,2.203
s4.63-0.701,8.629-0.701c3.999,0,13.576,5.209,23.257,5.209s17.785-7.111,19.574-9.615c1.789-2.505,0.105-3.307-1.263-2.705
S75.901,18.921,70.639,18.921z"/>
<path fill="#3232CC" d="M37.936,34.063c-5.893,0-14.515-4.761-22.918-4.761c-8.403,0-13.424,4.761-14.297,5.41
s-1.419,3.137,1.2,2.379c2.62-0.757,4.802-0.757,8.949-0.757S24.949,41.96,34.99,41.96c10.04,0,18.443-7.681,20.299-10.386
s0.109-3.57-1.31-2.921C52.56,29.302,43.393,34.063,37.936,34.063z"/>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

+11
View File
@@ -0,0 +1,11 @@
#!/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;
+9
View File
@@ -0,0 +1,9 @@
#!/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;
@@ -0,0 +1,10 @@
[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;
@@ -0,0 +1,238 @@
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<int, QString> 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);
@@ -0,0 +1,84 @@
diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp
--- qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-11 16:55:22.000000000 +0100
+++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-28 04:34:16.000000000 +0100
@@ -569,6 +569,32 @@
void QPrintDialogPrivate::selectPrinter(QCUPSSupport *cups)
{
options.duplex->setEnabled(cups && cups->ppdOption("Duplex"));
+
+ if (cups) {
+ const ppd_option_t* duplex = cups->ppdOption("Duplex");
+ if (duplex) {
+ // copy default ppd duplex to qt dialog
+ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
+ options.duplexShort->setChecked(true);
+ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
+ options.duplexLong->setChecked(true);
+ else
+ options.noDuplex->setChecked(true);
+ }
+
+ if (cups->currentPPD()) {
+ // set default color
+ if (cups->currentPPD()->color_device)
+ options.color->setChecked(true);
+ else
+ options.grayscale->setChecked(true);
+ }
+
+ // set collation
+ const ppd_option_t *collate = cups->ppdOption("Collate");
+ if (collate)
+ options.collate->setChecked(qstrcmp(collate->defchoice, "True")==0);
+ }
}
#endif
diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp
--- qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp 2010-02-11 16:55:22.000000000 +0100
+++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp 2010-02-28 04:55:15.000000000 +0100
@@ -627,6 +627,44 @@
&& d_ptr->paintEngine->type() != QPaintEngine::MacPrinter) {
setOutputFormat(QPrinter::PdfFormat);
}
+
+#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
+ // fill in defaults from ppd file
+ QCUPSSupport cups;
+
+ int printernum = -1;
+ for (int i = 0; i < cups.availablePrintersCount(); i++) {
+ if (printerName().toLocal8Bit() == cups.availablePrinters()[i].name)
+ printernum = i;
+ }
+ if (printernum >= 0) {
+ cups.setCurrentPrinter(printernum);
+
+ const ppd_option_t* duplex = cups.ppdOption("Duplex");
+ if (duplex) {
+ // copy default ppd duplex to qt dialog
+ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
+ setDuplex(DuplexShortSide);
+ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
+ setDuplex(DuplexLongSide);
+ else
+ setDuplex(DuplexNone);
+ }
+
+ if (cups.currentPPD()) {
+ // set default color
+ if (cups.currentPPD()->color_device)
+ setColorMode(Color);
+ else
+ setColorMode(GrayScale);
+ }
+
+ // set collation
+ const ppd_option_t *collate = cups.ppdOption("Collate");
+ if (collate)
+ setCollateCopies(qstrcmp(collate->defchoice, "True")==0);
+ }
+#endif
}
/*!
@@ -0,0 +1,69 @@
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<GX11EventSource *>(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<GX11EventSource *>(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);
@@ -0,0 +1,41 @@
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<T>::clea
template <typename T>
Q_OUTOFLINE_TEMPLATE int QList<T>::removeAll(const T &_t)
{
- int index = indexOf(_t);
- if (index == -1)
- return 0;
-
+ detachShared();
const T t = _t;
- detach();
-
- Node *i = reinterpret_cast<Node *>(p.at(index));
- Node *e = reinterpret_cast<Node *>(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<Node *>(p.at(i)))->t() == t) {
+ node_destruct(n);
+ p.remove(i);
+ ++removedCount;
+ } else {
+ ++i;
+ }
return removedCount;
}
@@ -0,0 +1,36 @@
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)
@@ -0,0 +1,10 @@
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
-
@@ -0,0 +1,12 @@
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)) {
@@ -0,0 +1,16 @@
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;
}
@@ -0,0 +1,24 @@
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}
@@ -0,0 +1,84 @@
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<qt_configure_event_data*>(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 windows position on the root may have changed, even
+ // though the event reports that the windows position in its
+ // parent is unchanged because the window may have been reparented.
+
int x, y;
Window child;
XTranslateCoordinates(X11->display, internalWinId(),
@@ -0,0 +1,12 @@
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();
@@ -0,0 +1,29 @@
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<char, 1024> 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);
}
@@ -0,0 +1,19 @@
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
@@ -0,0 +1,22 @@
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);
@@ -0,0 +1,19 @@
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,
@@ -0,0 +1,12 @@
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
@@ -0,0 +1,28 @@
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
@@ -0,0 +1,16 @@
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
@@ -0,0 +1,95 @@
--- 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<GPostEventSource *>(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<GPostEventSource *>(s);
return (!canWait
|| (source->serialNumber != source->lastSerialNumber));
}
@@ -284,8 +292,14 @@ static gboolean postEventSourceDispatch(
{
GPostEventSource *source = reinterpret_cast<GPostEventSource *>(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<GPostEventSource *>(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()
@@ -0,0 +1,64 @@
Author: Jan-Marek Glogowski <glogow@fbihome.de>
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<GPollFDWithQSocketNotifier *> pollfds;
};
@@ -80,6 +81,9 @@ static gboolean socketNotifierSourceChec
GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(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<GSocketNotifierSource *>(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<GSocketNotifierSource *>(g_source_new(&socketNotifierSourceFuncs,
sizeof(GSocketNotifierSource)));
(void) new (&socketNotifierSource->pollfds) QList<GPollFDWithQSocketNotifier *>();
+ 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();
@@ -0,0 +1,13 @@
--- 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();
@@ -0,0 +1,50 @@
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;
}
@@ -0,0 +1,12 @@
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
+54
View File
@@ -0,0 +1,54 @@
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
@@ -0,0 +1,42 @@
From 19d31c5b036a46365584d7d97e87f7fe16150623 Mon Sep 17 00:00:00 2001
From: Lars Knoll <lars.knoll@digia.com>
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
@@ -0,0 +1,96 @@
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)
@@ -0,0 +1,37 @@
qt-bugs@ issue : none
Trolltech task ID : none
applied: yes
author: Helio Chissini de Castro <helio@kde.org>
os: unix
In situations where included header have same name as their parent dir, i.e.
include/QtMyModule/QtMyModule and #include <QtMyModule> 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();
@@ -0,0 +1,24 @@
qt-bugs@ issue : 178507
Trolltech task ID : 179170
applied: no
author: Matthew Woehlke <mw_triad@users.sourceforge.net>
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);
}
@@ -0,0 +1,60 @@
qt-bugs@ issue : none
bugs.kde.org number : none
applied: no
author: Lubos Lunak <l.lunak@kde.org>
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<char *>(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()) {
@@ -0,0 +1,35 @@
qt-bugs@ issue : None
Trolltech task ID : None
bugs.kde.org number : 159014
applied: no
author: Robert Knight <robertknight@gmail.com>
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();
}
/*!
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,13 @@
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
@@ -0,0 +1,12 @@
--- 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;
@@ -0,0 +1,14 @@
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);
}
@@ -0,0 +1,56 @@
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 <QtCore/QBuffer>
#include <QtCore/QIODevice>
#include <QtCore/QDebug>
#include <QtCore/QDateTime>
@@ -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)
@@ -0,0 +1,13 @@
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"
@@ -0,0 +1,26 @@
--- 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;
@@ -0,0 +1,21 @@
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<void *>(expected_value), const_cast<void *>(newValue));
+}
+
+inline void *QBasicAtomicPointer_fetchAndStoreOrdered(void * volatile *_q_value, const void *newValue)
+{
+ return QBasicAtomicPointer_fetchAndStoreOrdered(_q_value, const_cast<void *>(newValue));
+}
+
// Reference counting
inline bool QBasicAtomicInt::ref()
@@ -0,0 +1,15 @@
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());
}
@@ -0,0 +1,12 @@
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
;
@@ -0,0 +1,61 @@
From b924fb26f14b38c5a92d7271b2eba73080cfb337 Mon Sep 17 00:00:00 2001
From: Hrvoje Senjan <hrvoje.senjan@gmail.com>
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
@@ -0,0 +1,26 @@
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;
@@ -0,0 +1,30 @@
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)
#-------------------------------------------------------------------------------
@@ -0,0 +1,40 @@
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 <ft2build.h>
+#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);
Binary file not shown.
+496
View File
@@ -0,0 +1,496 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>qt</Name>
<Homepage>http://qt.nokia.com</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>LGPLv2.1</License>
<License>GPLv3</License>
<IsA>library</IsA>
<Summary>Qt toolkit version 4</Summary>
<Description>Qt is a cross platform GUI toolkit.</Description>
<Archive sha1sum="ddf9c20ca8309a116e0466c42984238009525da6" type="targz">http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz</Archive>
<BuildDependencies>
<Dependency>mariadb-lib</Dependency>
<Dependency>cups-devel</Dependency>
<Dependency>mesa-devel</Dependency>
<Dependency>gtk2-devel</Dependency>
<Dependency>tiff-devel</Dependency>
<Dependency>libSM-devel</Dependency>
<Dependency>libICE-devel</Dependency>
<Dependency>libmng-devel</Dependency>
<Dependency>libXext-devel</Dependency>
<Dependency>alsa-lib-devel</Dependency>
<Dependency>firebird-devel</Dependency>
<Dependency>unixODBC-devel</Dependency>
<Dependency>libXrandr-devel</Dependency>
<Dependency>gstreamer-devel</Dependency>
<Dependency>fontconfig-devel</Dependency>
<Dependency>libXrender-devel</Dependency>
<Dependency>postgresql-server</Dependency>
<Dependency>libjpeg-turbo-devel</Dependency>
<Dependency>firebird-superserver</Dependency>
<Dependency>gst-plugins-base-devel</Dependency>
<Dependency>qtchooser</Dependency>
</BuildDependencies>
<Patches>
<!-- Fedora Patches -->
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.0-tp-multilib-optflags.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-uic_multilib.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-webcore_debuginfo.patch</Patch>
<Patch level="1">fedora/qt-cupsEnumDests.patch</Patch>
<Patch level="1">fedora/qt-x11-opensource-src-4.5.1-enable_ft_lcdfilter.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.6.3-glib_eventloop_nullcheck.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.1-qt3support_debuginfo.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-qt_plugin_path.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.4-qmake_pkgconfig_requires_private.patch</Patch>
<Patch level="1">fedora/qt-x11-opensource-src-4.5.0-fix-qatomic-inline-asm.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-mysql_config.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.6.2-cups.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.3-no_Werror.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.0-QTBUG-22037.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-21900.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-tds_no_strict_aliasing.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-4862.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch</Patch>
<!--For LibreOffice -->
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-37380.patch</Patch>
<Patch level="1">fedora/qt-everywhere-opensource-src-4.8.6-QTBUG-38585.patch</Patch>
<!-- OpenSuse Patches -->
<Patch level="0">opensuse/qt-never-strip.diff</Patch>
<Patch level="0">opensuse/use-freetype-default.diff</Patch>
<Patch level="0">opensuse/0191-listview-alternate-row-colors.diff</Patch>
<Patch level="0">opensuse/0188-fix-moc-parser-same-name-header.diff</Patch>
<Patch level="0">opensuse/0195-compositing-properties.diff</Patch>
<Patch level="0">opensuse/0180-window-role.diff</Patch>
<Patch level="0">opensuse/0225-invalidate-tabbar-geometry-on-refresh.patch</Patch>
<Patch level="0">opensuse/qt-debug-timer.diff</Patch>
<Patch level="0">opensuse/qfatal-noreturn.diff</Patch>
<Patch level="0">opensuse/no-moc-date.diff</Patch>
<Patch level="0">opensuse/libqt4-libtool-nodate.diff</Patch>
<Patch level="0">opensuse/build-qvfb-tool.diff</Patch>
<Patch level="0">opensuse/handle-tga-files-properly.diff</Patch>
<Patch level="0">opensuse/qdbusconnection-no-warning-output.patch</Patch>
<Patch level="1">opensuse/fix_assistant_segfault_QTBUG-25324.patch</Patch>
<Patch level="1">opensuse/qatomic-generic.patch</Patch>
<Patch level="1">opensuse/QSystemTrayicon.diff</Patch>
<Patch level="1">opensuse/fix-moc-from-choking-on-boost-headers.patch</Patch>
<Patch level="1">opensuse/qlocale_icu-no-warning-output.patch</Patch>
<Patch level="1">opensuse/0001-Don-t-crash-on-broken-GIF-images.patch</Patch>
<!-- CVE Patches -->
<Patch level="1">CVE-2014-0190.patch</Patch>
<!-- Turkish Translations -->
<Patch compressionType="bz2">turkish.patch.bz2</Patch>
<!-- Pisilinux Patches -->
<Patch level="0">mkspecs.patch</Patch>
</Patches>
</Source>
<Package>
<Name>qt</Name>
<RuntimeDependencies>
<Dependency>mesa</Dependency>
<Dependency>tiff</Dependency>
<Dependency>libICE</Dependency>
<Dependency>libSM</Dependency>
<Dependency>libmng</Dependency>
<Dependency>libXext</Dependency>
<Dependency>alsa-lib</Dependency>
<Dependency>gstreamer</Dependency>
<Dependency>fontconfig</Dependency>
<Dependency>libXrender</Dependency>
<Dependency>libjpeg-turbo</Dependency>
<Dependency>qtchooser</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/usr/lib/qt4/bin</Path>
<Path fileType="executable">/usr/bin/qdbus*</Path>
<Path fileType="executable">/usr/bin/qtconfig</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="data">/usr/share/applications</Path>
<Path fileType="data">/usr/lib/qt4/imports</Path>
<Path fileType="data">/usr/lib/qt4/templates</Path>
<Path fileType="localedata">/usr/share/qt4/translations/*_tr.*</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/applications/qdbusviewer4.desktop">data/qdbusviewer.desktop</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/applications/qtconfig4.desktop">data/qtconfig.desktop</AdditionalFile>
</AdditionalFiles>
</Package>
<Package>
<Name>qt-32bit</Name>
<PartOf>emul32</PartOf>
<Summary>32-bit shared libraries for qt</Summary>
<BuildType>emul32</BuildType>
<BuildDependencies>
<Dependency>mesa-32bit</Dependency>
<Dependency>tiff-32bit</Dependency>
<Dependency>dbus-32bit</Dependency>
<Dependency>zlib-32bit</Dependency>
<Dependency>glib2-32bit</Dependency>
<Dependency>libSM-32bit</Dependency>
<Dependency>libpng-32bit</Dependency>
<Dependency>libmng-32bit</Dependency>
<Dependency>libICE-32bit</Dependency>
<Dependency>libX11-32bit</Dependency>
<Dependency>sqlite-32bit</Dependency>
<Dependency>openssl-32bit</Dependency>
<Dependency>libXext-32bit</Dependency>
<Dependency>freetype-32bit</Dependency>
<Dependency>alsa-lib-32bit</Dependency>
<Dependency>libXrender-32bit</Dependency>
<Dependency>fontconfig-32bit</Dependency>
<Dependency>libjpeg-turbo-32bit</Dependency>
</BuildDependencies>
<RuntimeDependencies>
<Dependency>uClibc</Dependency>
<Dependency>mesa-32bit</Dependency>
<Dependency>tiff-32bit</Dependency>
<Dependency>dbus-32bit</Dependency>
<Dependency>zlib-32bit</Dependency>
<Dependency>libSM-32bit</Dependency>
<Dependency>glib2-32bit</Dependency>
<Dependency>libX11-32bit</Dependency>
<Dependency>libpng-32bit</Dependency>
<Dependency>libmng-32bit</Dependency>
<Dependency>libICE-32bit</Dependency>
<Dependency>sqlite-32bit</Dependency>
<Dependency>openssl-32bit</Dependency>
<Dependency>libXext-32bit</Dependency>
<Dependency>freetype-32bit</Dependency>
<Dependency>alsa-lib-32bit</Dependency>
<Dependency>libXrender-32bit</Dependency>
<Dependency>fontconfig-32bit</Dependency>
<Dependency>libjpeg-turbo-32bit</Dependency>
<Dependency release="current">qt</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib32</Path>
</Files>
</Package>
<Package>
<Name>qt-webkit</Name>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency>gstreamer</Dependency>
<Dependency>libXrender</Dependency>
<Dependency>gst-plugins-base</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/*WebKit*</Path>
</Files>
</Package>
<Package>
<Name>qt-webkit-32bit</Name>
<PartOf>emul32</PartOf>
<Summary>32-bit shared libraries for qt-webkit</Summary>
<BuildType>emul32</BuildType>
<BuildDependencies>
<Dependency>glib2-32bit</Dependency>
<Dependency>libX11-32bit</Dependency>
<Dependency>sqlite-32bit</Dependency>
<Dependency>gstreamer-32bit</Dependency>
<Dependency>libXrender-32bit</Dependency>
<Dependency>gst-plugins-base-32bit</Dependency>
</BuildDependencies>
<RuntimeDependencies>
<Dependency release="current">qt-webkit</Dependency>
<Dependency>qt-32bit</Dependency>
<Dependency>glib2-32bit</Dependency>
<Dependency>libX11-32bit</Dependency>
<Dependency>sqlite-32bit</Dependency>
<Dependency>gstreamer-32bit</Dependency>
<Dependency>libXrender-32bit</Dependency>
<Dependency>gst-plugins-base-32bit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib32/*WebKit*</Path>
</Files>
</Package>
<Package>
<Name>qt-webkit-devel</Name>
<Summary>Development files for Qt Webkit</Summary>
<RuntimeDependencies>
<Dependency version="current">qt-devel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/Qt/*WebKit*</Path>
<Path fileType="header">/usr/include/Qt/*webkit*</Path>
<Path fileType="header">/usr/include/QtWebKit</Path>
<Path fileType="data">/usr/lib/pkgconfig/*WebKit*</Path>
</Files>
</Package>
<Package>
<Name>qt-devel</Name>
<Summary>Development files for Qt</Summary>
<RuntimeDependencies>
<Dependency release="current">qt</Dependency>
<!-- qgl.h requires gl.h from mesa -->
<Dependency>mesa-devel</Dependency>
</RuntimeDependencies>
<Files>
<!-- binaries are for development -->
<Path fileType="executable">/usr/bin</Path>
<Path fileType="header">/usr/include</Path>
<Path fileType="data">/usr/share/qt4/mkspecs</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
<Path fileType="data">/usr/lib32/pkgconfig</Path>
<Path fileType="data">/usr/share/qt4/q3porting.xml</Path>
</Files>
</Package>
<Package>
<Name>qt-l10n</Name>
<IsA>locale</IsA>
<Summary>Translation files for Qt library and tools. Supported languages are: da, de, fr, ja, pl, ru, zh_CN, zh_TW</Summary>
<Files>
<Path fileType="localedata">/usr/share/qt4/translations</Path>
</Files>
</Package>
<Package>
<Name>qt-designer</Name>
<Icon>designer</Icon>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency version="current">qt-webkit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/designer</Path>
<Path fileType="library">/usr/lib/qt4/plugins/designer</Path>
<Path fileType="data">/usr/share/applications/designer.desktop</Path>
<Path fileType="data">/usr/share/pixmaps/designer.png</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/applications/designer4.desktop">data/designer.desktop</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/pixmaps/designer.png">data/designer.png</AdditionalFile>
</AdditionalFiles>
</Package>
<Package>
<Name>qt-linguist</Name>
<Icon>linguist</Icon>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/linguist</Path>
<Path fileType="data">/usr/share/qt4/phrasebooks</Path>
<Path fileType="data">/usr/share/applications/linguist.desktop</Path>
<Path fileType="data">/usr/share/pixmaps/linguist.png</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/applications/linguist4.desktop">data/linguist.desktop</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/pixmaps/linguist.png">data/linguist.png</AdditionalFile>
</AdditionalFiles>
</Package>
<Package>
<Name>qt-docs</Name>
<Icon>assistant</Icon>
<Summary>Development documents of Qt and Qt Assistant tool</Summary>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency version="current">qt-webkit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/assistant</Path>
<Path fileType="data">/usr/share/applications/assistant.desktop</Path>
<Path fileType="data">/usr/share/pixmaps/assistant.png</Path>
<Path fileType="data">/usr/share/icons</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="doc">/usr/share/doc/qt4/qch</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/applications/assistant4.desktop">data/assistant.desktop</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/pixmaps/assistant.png">data/assistant.png</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/icons/hicolor/128x128/apps/qt4-logo.png">data/hi128-app-qt4-logo.png</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/usr/share/icons/hicolor/48x48/apps/qt4-logo.png">data/hi48-app-qt4-logo.png</AdditionalFile>
</AdditionalFiles>
</Package>
<Package>
<Name>qt-docs-html</Name>
<Summary>Development documents of Qt in HTML format</Summary>
<Files>
<Path fileType="doc">/usr/share/doc/qt4/html</Path>
</Files>
</Package>
<Package>
<Name>qt-demos</Name>
<Icon>qt4-logo</Icon>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency version="current">qt-webkit</Dependency>
<Dependency>mesa</Dependency>
<Dependency>phonon</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/qtdemo</Path>
<Path fileType="library">/usr/lib/qt4/demos</Path>
<Path fileType="library">/usr/lib/qt4/examples</Path>
<Path fileType="library">/usr/lib/qt4/plugins/designer/libarthurplugin.so</Path>
<Path fileType="data">/usr/share/applications/qtdemo.desktop</Path>
<Path fileType="data">/usr/tests/qt4</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/applications/qtdemo4.desktop">data/qtdemo.desktop</AdditionalFile>
</AdditionalFiles>
</Package>
<Package>
<Name>qt-sql-mysql</Name>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency>mariadb-lib</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so</Path>
</Files>
</Package>
<Package>
<Name>qt-sql-postgresql</Name>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency>postgresql-lib</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/qt4/plugins/sqldrivers/libqsqlpsql.so</Path>
</Files>
</Package>
<Package>
<Name>qt-sql-sqlite</Name>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency>sqlite</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/qt4/plugins/sqldrivers/libqsqlite.so</Path>
</Files>
</Package>
<Package>
<Name>qt-sql-odbc</Name>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency>unixODBC</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/qt4/plugins/sqldrivers/libqsqlodbc.so</Path>
</Files>
</Package>
<Package>
<Name>qt-sql-ibase</Name>
<RuntimeDependencies>
<Dependency version="current">qt</Dependency>
<Dependency>firebird-client</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/qt4/plugins/sqldrivers/libqsqlibase.so</Path>
</Files>
</Package>
<History>
<Update release="12">
<Date>2015-04-09</Date>
<Version>4.8.6</Version>
<Comment>Rebuild for qt5</Comment>
<Name>Ayhan Yalçınsoy</Name>
<Email>ayhanyalcinsoy@pisilinux.org</Email>
</Update>
<Update release="11">
<Date>2014-05-20</Date>
<Version>4.8.6</Version>
<Comment>Version bump, fix CVE.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="10">
<Date>2014-04-10</Date>
<Version>4.8.5</Version>
<Comment>Rebuild.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2014-02-21</Date>
<Version>4.8.5</Version>
<Comment>Rebuild for Mariadb.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2014-02-01</Date>
<Version>4.8.5</Version>
<Comment>Rebuild for new libmng.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2013-12-14</Date>
<Version>4.8.5</Version>
<Comment>Re-cleanup qt, fix systemtray issues.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2013-12-11</Date>
<Version>4.8.5</Version>
<Comment>Cleanup some patches, rebuild.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2013-08-05</Date>
<Version>4.8.5</Version>
<Comment>Patched.</Comment>
<Name>Osman Erkan</Name>
<Email>osman.erkan@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-07-03</Date>
<Version>4.8.5</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-03-11</Date>
<Version>4.8.4</Version>
<Comment>Patch cleanup, add some enhancements.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-02-15</Date>
<Version>4.8.4</Version>
<Comment>Add emul32</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-12-08</Date>
<Version>4.8.4</Version>
<Comment>First release</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
</History>
</PISI>
+35
View File
@@ -0,0 +1,35 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>qt</Name>
<Summary xml:lang="tr">Qt araç takımı, sürüm 4</Summary>
<Description xml:lang="tr">Qt bir çok platformda çalışabilen ve grafiksel kullanıcı arayüzü (GUI) oluşturmaya yarayan bir araç takımıdır.</Description>
<Description xml:lang="fr">Qt est une boîte à outils graphique multi-plateforme.</Description>
<Description xml:lang="es">Qt es un toolkit para GUI multiplataforma.</Description>
</Source>
<Package>
<Name>qt-devel</Name>
<Summary xml:lang="tr">Qt için geliştirme dosyaları</Summary>
</Package>
<Package>
<Name>qt-webkit-devel</Name>
<Summary xml:lang="tr">Qt Webkit için geliştirme dosyaları</Summary>
</Package>
<Package>
<Name>qt-l10n</Name>
<Summary xml:lang="tr">Qt kitaplık ve araçları için dil dosyaları. Desteklenen diller: da, de, fr, ja, pl, ru, zh_CN, zh_TW</Summary>
</Package>
<Package>
<Name>qt-docs</Name>
<Summary xml:lang="tr">Qt için geliştirme belgeleri ve Qt Assistant aracı</Summary>
</Package>
<Package>
<Name>qt-docs-html</Name>
<Summary xml:lang="tr">Qt için HTML biçiminde geliştirme belgeleri</Summary>
</Package>
</PISI>