mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-19 00:21:40 +00:00
extra/qt to 4.8.1-1
This commit is contained in:
parent
1721aea9aa
commit
1ededdfc0f
6 changed files with 34 additions and 268 deletions
|
@ -8,13 +8,14 @@
|
|||
# - don't use -no-neon on armv7
|
||||
# - make -j1 for v5, -j2 for v7 (pandaboard builder)
|
||||
# - added -fno-strict-volatile-bitfields to CXXFLAGS to fix ARM bug
|
||||
# - disabled gcc47.patch since we're not on that yet
|
||||
|
||||
plugrel=1
|
||||
|
||||
pkgbase=qt
|
||||
pkgname=('qt' 'qt-private-headers')
|
||||
pkgver=4.8.0
|
||||
pkgrel=6
|
||||
pkgver=4.8.1
|
||||
pkgrel=1
|
||||
arch=('i686' 'x86_64')
|
||||
url='http://qt-project.org/'
|
||||
license=('GPL3' 'LGPL')
|
||||
|
@ -27,31 +28,18 @@ _pkgfqn="${pkgbase}-everywhere-opensource-src-${pkgver}"
|
|||
source=("http://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
|
||||
'assistant.desktop' 'designer.desktop' 'linguist.desktop'
|
||||
'qtconfig.desktop'
|
||||
'fix-qgraphicsscene-regression.patch'
|
||||
'improved-filter-event.patch'
|
||||
'qurl-backward-compatibility.patch'
|
||||
'improve-cups-support.patch')
|
||||
md5sums=('e8a5fdbeba2927c948d9f477a6abe904'
|
||||
'gcc47.patch')
|
||||
md5sums=('7960ba8e18ca31f0c6e4895a312f92ff'
|
||||
'fc211414130ab2764132e7370f8e5caa'
|
||||
'85179f5e0437514f8639957e1d8baf62'
|
||||
'f11852b97583610f3dbb669ebc3e21bc'
|
||||
'6b771c8a81dd90b45e8a79afa0e5bbfd'
|
||||
'c2e91fc028250a590e76effe234468e2'
|
||||
'444ebeb716d7c7379835efb8aa88e6c8'
|
||||
'7bc255a36733d0fbc80c1902ade4beca'
|
||||
'c439c7731c25387352d8453ca7574971')
|
||||
'd8a0e81075b290ddc18ecd33b9b7ee22')
|
||||
|
||||
build() {
|
||||
cd "${srcdir}"/${_pkgfqn}
|
||||
|
||||
# (FS#28707)
|
||||
patch -p1 -i "${srcdir}"/fix-qgraphicsscene-regression.patch
|
||||
# (FS#27757) (KDEBUG#275469)
|
||||
patch -p1 -i "${srcdir}"/improved-filter-event.patch
|
||||
patch -p1 -i "${srcdir}"/qurl-backward-compatibility.patch
|
||||
|
||||
# (FS#28381) (KDEBUG#180051)
|
||||
patch -p1 -i "${srcdir}"/improve-cups-support.patch
|
||||
#patch -p1 -i "${srcdir}"/gcc47.patch
|
||||
|
||||
export QT4DIR="${srcdir}"/${_pkgfqn}
|
||||
export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
From 15c14584199dc43e4a309fc331f3144009008128 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Liu <net147@gmail.com>
|
||||
Date: Fri, 24 Feb 2012 00:42:34 +1100
|
||||
Subject: [PATCH] Revert "Don't rely on mapFromGlobal in
|
||||
QGraphicsScenePrivate::itemsAtPosition."
|
||||
|
||||
This reverts commit 7c0d15a22266a425c9e9ac0120d6774e120fe01e.
|
||||
The commit caused a regression whereby tooltips may be shown even if the
|
||||
mouse is not over the item if it has the Qt::ItemIgnoresTransformations
|
||||
flag and the QGraphicsView had been scaled.
|
||||
|
||||
Task-number: QTBUG-17517
|
||||
Task-number: QTBUG-22663
|
||||
Change-Id: Ib7fd788d9712c5e659fe07182f9505a4eb135ab2
|
||||
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
|
||||
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
|
||||
---
|
||||
src/gui/graphicsview/qgraphicsscene.cpp | 10 +++++++---
|
||||
1 files changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
|
||||
index 14c0f3c..d1cdd4f 100644
|
||||
--- a/src/gui/graphicsview/qgraphicsscene.cpp
|
||||
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
|
||||
@@ -1084,7 +1084,7 @@ void QGraphicsScenePrivate::enableMouseTrackingOnViews()
|
||||
/*!
|
||||
Returns all items for the screen position in \a event.
|
||||
*/
|
||||
-QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &/*screenPos*/,
|
||||
+QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &screenPos,
|
||||
const QPointF &scenePos,
|
||||
QWidget *widget) const
|
||||
{
|
||||
@@ -1093,12 +1093,16 @@ QList<QGraphicsItem *> QGraphicsScenePrivate::itemsAtPosition(const QPoint &/*sc
|
||||
if (!view)
|
||||
return q->items(scenePos, Qt::IntersectsItemShape, Qt::DescendingOrder, QTransform());
|
||||
|
||||
- const QRectF pointRect(scenePos, QSizeF(1, 1));
|
||||
+ const QRectF pointRect(QPointF(widget->mapFromGlobal(screenPos)), QSizeF(1, 1));
|
||||
if (!view->isTransformed())
|
||||
return q->items(pointRect, Qt::IntersectsItemShape, Qt::DescendingOrder);
|
||||
|
||||
const QTransform viewTransform = view->viewportTransform();
|
||||
- return q->items(pointRect, Qt::IntersectsItemShape,
|
||||
+ if (viewTransform.type() <= QTransform::TxScale) {
|
||||
+ return q->items(viewTransform.inverted().mapRect(pointRect), Qt::IntersectsItemShape,
|
||||
+ Qt::DescendingOrder, viewTransform);
|
||||
+ }
|
||||
+ return q->items(viewTransform.inverted().map(pointRect), Qt::IntersectsItemShape,
|
||||
Qt::DescendingOrder, viewTransform);
|
||||
}
|
||||
|
||||
--
|
||||
1.7.6
|
27
extra/qt/gcc47.patch
Normal file
27
extra/qt/gcc47.patch
Normal file
|
@ -0,0 +1,27 @@
|
|||
diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h
|
||||
--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h.me 2012-01-24 11:24:14.729942043 +0100
|
||||
+++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalObject.h 2012-01-24 14:28:39.848109534 +0100
|
||||
@@ -57,9 +57,7 @@ namespace JSC {
|
||||
|
||||
class JSGlobalObject : public JSVariableObject {
|
||||
protected:
|
||||
- using JSVariableObject::JSVariableObjectData;
|
||||
-
|
||||
- struct JSGlobalObjectData : public JSVariableObjectData {
|
||||
+ struct JSGlobalObjectData : public JSVariableObject::JSVariableObjectData {
|
||||
// We use an explicit destructor function pointer instead of a
|
||||
// virtual destructor because we want to avoid adding a vtable
|
||||
// pointer to this struct. Adding a vtable pointer would force the
|
||||
diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h
|
||||
--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h.me 2012-01-24 11:40:07.167856677 +0100
|
||||
+++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSStaticScopeObject.h 2012-01-24 14:28:34.640306629 +0100
|
||||
@@ -32,8 +32,7 @@ namespace JSC{
|
||||
|
||||
class JSStaticScopeObject : public JSVariableObject {
|
||||
protected:
|
||||
- using JSVariableObject::JSVariableObjectData;
|
||||
- struct JSStaticScopeObjectData : public JSVariableObjectData {
|
||||
+ struct JSStaticScopeObjectData : public JSVariableObject::JSVariableObjectData {
|
||||
JSStaticScopeObjectData()
|
||||
: JSVariableObjectData(&symbolTable, ®isterStore + 1)
|
||||
{
|
|
@ -1,84 +0,0 @@
|
|||
diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.6.2/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-11 16:55:22.000000000 +0100
|
||||
+++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/dialogs/qprintdialog_unix.cpp 2010-02-28 04:34:16.000000000 +0100
|
||||
@@ -569,6 +569,32 @@
|
||||
void QPrintDialogPrivate::selectPrinter(QCUPSSupport *cups)
|
||||
{
|
||||
options.duplex->setEnabled(cups && cups->ppdOption("Duplex"));
|
||||
+
|
||||
+ if (cups) {
|
||||
+ const ppd_option_t* duplex = cups->ppdOption("Duplex");
|
||||
+ if (duplex) {
|
||||
+ // copy default ppd duplex to qt dialog
|
||||
+ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
|
||||
+ options.duplexShort->setChecked(true);
|
||||
+ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
|
||||
+ options.duplexLong->setChecked(true);
|
||||
+ else
|
||||
+ options.noDuplex->setChecked(true);
|
||||
+ }
|
||||
+
|
||||
+ if (cups->currentPPD()) {
|
||||
+ // set default color
|
||||
+ if (cups->currentPPD()->color_device)
|
||||
+ options.color->setChecked(true);
|
||||
+ else
|
||||
+ options.grayscale->setChecked(true);
|
||||
+ }
|
||||
+
|
||||
+ // set collation
|
||||
+ const ppd_option_t *collate = cups->ppdOption("Collate");
|
||||
+ if (collate)
|
||||
+ options.collate->setChecked(qstrcmp(collate->defchoice, "True")==0);
|
||||
+ }
|
||||
}
|
||||
#endif
|
||||
|
||||
diff -ur qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp
|
||||
--- qt-everywhere-opensource-src-4.6.2/src/gui/painting/qprinter.cpp 2010-02-11 16:55:22.000000000 +0100
|
||||
+++ qt-everywhere-opensource-src-4.6.2-cups/src/gui/painting/qprinter.cpp 2010-02-28 04:55:15.000000000 +0100
|
||||
@@ -627,6 +627,44 @@
|
||||
&& d_ptr->paintEngine->type() != QPaintEngine::MacPrinter) {
|
||||
setOutputFormat(QPrinter::PdfFormat);
|
||||
}
|
||||
+
|
||||
+#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
|
||||
+ // fill in defaults from ppd file
|
||||
+ QCUPSSupport cups;
|
||||
+
|
||||
+ int printernum = -1;
|
||||
+ for (int i = 0; i < cups.availablePrintersCount(); i++) {
|
||||
+ if (printerName().toLocal8Bit() == cups.availablePrinters()[i].name)
|
||||
+ printernum = i;
|
||||
+ }
|
||||
+ if (printernum >= 0) {
|
||||
+ cups.setCurrentPrinter(printernum);
|
||||
+
|
||||
+ const ppd_option_t* duplex = cups.ppdOption("Duplex");
|
||||
+ if (duplex) {
|
||||
+ // copy default ppd duplex to qt dialog
|
||||
+ if (qstrcmp(duplex->defchoice, "DuplexTumble") == 0)
|
||||
+ setDuplex(DuplexShortSide);
|
||||
+ else if (qstrcmp(duplex->defchoice, "DuplexNoTumble") == 0)
|
||||
+ setDuplex(DuplexLongSide);
|
||||
+ else
|
||||
+ setDuplex(DuplexNone);
|
||||
+ }
|
||||
+
|
||||
+ if (cups.currentPPD()) {
|
||||
+ // set default color
|
||||
+ if (cups.currentPPD()->color_device)
|
||||
+ setColorMode(Color);
|
||||
+ else
|
||||
+ setColorMode(GrayScale);
|
||||
+ }
|
||||
+
|
||||
+ // set collation
|
||||
+ const ppd_option_t *collate = cups.ppdOption("Collate");
|
||||
+ if (collate)
|
||||
+ setCollateCopies(qstrcmp(collate->defchoice, "True")==0);
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
/*!
|
|
@ -1,98 +0,0 @@
|
|||
--- qt-opensource-4.8.0.old/src/gui/kernel/qapplication_x11.cpp 2011-12-16 03:22:33.918428374 -0500
|
||||
+++ qt-opensource-4.8.0.new/src/gui/kernel/qapplication_x11.cpp 2012-01-07 18:18:40.258246384 -0500
|
||||
@@ -4244,7 +4205,12 @@ bool QETWidget::translateMouseEvent(cons
|
||||
&& (nextEvent.xclient.message_type == ATOM(_QT_SCROLL_DONE) ||
|
||||
(nextEvent.xclient.message_type == ATOM(WM_PROTOCOLS) &&
|
||||
(Atom)nextEvent.xclient.data.l[0] == ATOM(_NET_WM_SYNC_REQUEST))))) {
|
||||
- qApp->x11ProcessEvent(&nextEvent);
|
||||
+ // As we may run through a significant number of a large class of non-MotionNotify
|
||||
+ // events here, without returning to the event loop, first pass nextEvent to
|
||||
+ // QAbstractEventDispatcher::filterEvent() to allow applications which override
|
||||
+ // QAbstractEventDispatcher::filterEvent() to handle the event first.
|
||||
+ if (!QAbstractEventDispatcher::instance()->filterEvent(&nextEvent))
|
||||
+ qApp->x11ProcessEvent(&nextEvent);
|
||||
continue;
|
||||
} else if (nextEvent.type != MotionNotify ||
|
||||
nextEvent.xmotion.window != event->xmotion.window ||
|
||||
--- qt-opensource-4.8.0.old/src/gui/kernel/qclipboard_x11.cpp 2011-12-08 00:06:02.000000000 -0500
|
||||
+++ qt-opensource-4.8.0.new/src/gui/kernel/qclipboard_x11.cpp 2012-01-07 18:30:35.298287639 -0500
|
||||
@@ -573,7 +573,11 @@ bool QX11Data::clipboardWaitForEvent(Win
|
||||
|
||||
// process other clipboard events, since someone is probably requesting data from us
|
||||
XEvent e;
|
||||
- if (XCheckIfEvent(X11->display, &e, checkForClipboardEvents, 0))
|
||||
+ // Some applications may override QAbstractEventDispatcher::filterEvent(), so
|
||||
+ // pass event to QAbstractEventDispatcher::filterEvent() before processing in
|
||||
+ // x11ProcessEvent().
|
||||
+ if (XCheckIfEvent(X11->display, &e, checkForClipboardEvents, 0) &&
|
||||
+ !QAbstractEventDispatcher::instance()->filterEvent(&e))
|
||||
qApp->x11ProcessEvent(&e);
|
||||
|
||||
now.start();
|
||||
--- qt-opensource-4.8.0.old/src/gui/kernel/qdnd_x11.cpp 2011-12-08 00:06:02.000000000 -0500
|
||||
+++ qt-opensource-4.8.0.new/src/gui/kernel/qdnd_x11.cpp 2012-01-07 18:28:13.841279478 -0500
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "qplatformdefs.h"
|
||||
|
||||
#include "qapplication.h"
|
||||
+#include "qabstracteventdispatcher.h"
|
||||
|
||||
#ifndef QT_NO_DRAGANDDROP
|
||||
|
||||
@@ -1941,7 +1942,11 @@ Qt::DropAction QDragManager::drag(QDrag
|
||||
timer.start();
|
||||
do {
|
||||
XEvent event;
|
||||
- if (XCheckTypedEvent(X11->display, ClientMessage, &event))
|
||||
+ // Some applications may override QAbstractEventDispatcher::filterEvent(), so
|
||||
+ // pass event to QAbstractEventDispatcher::filterEvent() before processing in
|
||||
+ // x11ProcessEvent().
|
||||
+ if (XCheckTypedEvent(X11->display, ClientMessage, &event) &&
|
||||
+ !QAbstractEventDispatcher::instance()->filterEvent(&event))
|
||||
qApp->x11ProcessEvent(&event);
|
||||
|
||||
// sleep 50 ms, so we don't use up CPU cycles all the time.
|
||||
--- qt-opensource-4.8.0.old/src/gui/kernel/qwidget_x11.cpp 2011-12-08 00:06:02.000000000 -0500
|
||||
+++ qt-opensource-4.8.0.new/src/gui/kernel/qwidget_x11.cpp 2012-01-07 18:29:26.286283657 -0500
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "qdesktopwidget.h"
|
||||
#include "qapplication.h"
|
||||
#include "qapplication_p.h"
|
||||
+#include "qabstracteventdispatcher.h"
|
||||
#include "qnamespace.h"
|
||||
#include "qpainter.h"
|
||||
#include "qbitmap.h"
|
||||
@@ -376,17 +377,22 @@ void qt_x11_wait_for_window_manager(QWid
|
||||
do {
|
||||
if (XEventsQueued(X11->display, QueuedAlready)) {
|
||||
XNextEvent(X11->display, &ev);
|
||||
- qApp->x11ProcessEvent(&ev);
|
||||
-
|
||||
- switch (state) {
|
||||
- case Initial:
|
||||
- if (ev.type == MapNotify && ev.xany.window == winid)
|
||||
- state = Mapped;
|
||||
- break;
|
||||
- case Mapped:
|
||||
- if (ev.type == Expose && ev.xany.window == winid)
|
||||
- return;
|
||||
- break;
|
||||
+ // Some applications may override QAbstractEventDispatcher::filterEvent(), so
|
||||
+ // pass event to QAbstractEventDispatcher::filterEvent() before processing in
|
||||
+ // x11ProcessEvent().
|
||||
+ if (!QAbstractEventDispatcher::instance()->filterEvent(&ev)) {
|
||||
+ qApp->x11ProcessEvent(&ev);
|
||||
+
|
||||
+ switch (state) {
|
||||
+ case Initial:
|
||||
+ if (ev.type == MapNotify && ev.xany.window == winid)
|
||||
+ state = Mapped;
|
||||
+ break;
|
||||
+ case Mapped:
|
||||
+ if (ev.type == Expose && ev.xany.window == winid)
|
||||
+ return;
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
} else {
|
||||
if (!XEventsQueued(X11->display, QueuedAfterFlush))
|
|
@ -1,13 +0,0 @@
|
|||
diff -up qt-everywhere-opensource-src-4.8.0/src/corelib/io/qurl.cpp.toLocalFile qt-everywhere-opensource-src-4.8.0/src/corelib/io/qurl.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.0/src/corelib/io/qurl.cpp.toLocalFile 2011-10-03 22:44:32.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.0/src/corelib/io/qurl.cpp 2011-10-27 12:58:35.706815049 -0500
|
||||
@@ -6158,7 +6158,8 @@ QUrl QUrl::fromLocalFile(const QString &
|
||||
QString QUrl::toLocalFile() const
|
||||
{
|
||||
// the call to isLocalFile() also ensures that we're parsed
|
||||
- if (!isLocalFile())
|
||||
+ // Treat URLs with no scheme as local for backward compatibility
|
||||
+ if (!isLocalFile() && (!d || !d->scheme.isEmpty()))
|
||||
return QString();
|
||||
|
||||
QString tmp;
|
Loading…
Reference in a new issue