packages: qt4/qt4-git.patch, qt4/qt4.spec - rel 4; few important fixes from...

arekm arekm at pld-linux.org
Tue Dec 22 13:44:26 CET 2009


Author: arekm                        Date: Tue Dec 22 12:44:26 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 4; few important fixes from upstream

---- Files affected:
packages/qt4:
   qt4-git.patch (1.1 -> 1.2) , qt4.spec (1.234 -> 1.235) 

---- Diffs:

================================================================
Index: packages/qt4/qt4-git.patch
diff -u packages/qt4/qt4-git.patch:1.1 packages/qt4/qt4-git.patch:1.2
--- packages/qt4/qt4-git.patch:1.1	Mon Dec  7 16:37:25 2009
+++ packages/qt4/qt4-git.patch	Tue Dec 22 13:44:20 2009
@@ -37,3 +37,190 @@
          }
      }
 
+commit 8a820c790f2316052819148e344a3cd197877433
+Author: Thiago Macieira <thiago.macieira at nokia.com>
+Date:   Thu Nov 19 13:21:04 2009 +0100
+
+    Fix the detection of when this process gets names on the bus.
+    
+    Previously, we were relying on NameOwnerChanged to notify us of our
+    own names. This worked because we got all NameOwnerChanged that
+    happened on the bus.
+    
+    Now, we only get those we're interested in. Instead of watching for
+    newOwner==baseService, let's just use the NameAcquired and NameLost
+    signals, that the D-Bus server sends to us anyway.
+    
+    Task-number: QTBUG-5979
+
+diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h
+index 830dac3..b65e101 100644
+--- a/src/dbus/qdbusconnection_p.h
++++ b/src/dbus/qdbusconnection_p.h
+@@ -199,9 +199,6 @@ public:
+     QDBusMetaObject *findMetaObject(const QString &service, const QString &path,
+                                     const QString &interface, QDBusError &error);
+ 
+-    void registerService(const QString &serviceName);
+-    void unregisterService(const QString &serviceName);
+-
+     void postEventToThread(int action, QObject *target, QEvent *event);
+ 
+     inline void serverConnection(const QDBusConnection &connection)
+@@ -238,6 +235,8 @@ public slots:
+     void objectDestroyed(QObject *o);
+     void relaySignal(QObject *obj, const QMetaObject *, int signalId, const QVariantList &args);
+     void _q_serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner);
++    void registerService(const QString &serviceName);
++    void unregisterService(const QString &serviceName);
+ 
+ signals:
+     void serviceOwnerChanged(const QString &name, const QString &oldOwner, const QString &newOwner);
+diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
+index 870ddd0..40febc4 100644
+--- a/src/dbus/qdbusintegrator.cpp
++++ b/src/dbus/qdbusintegrator.cpp
+@@ -948,9 +948,6 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p)
+ 
+     rootNode.flags = 0;
+     watchedServiceNames[QLatin1String(DBUS_SERVICE_DBUS)] = 1;
+-
+-    connect(this, SIGNAL(serviceOwnerChanged(QString,QString,QString)),
+-            this, SLOT(_q_serviceOwnerChanged(QString,QString,QString)));
+ }
+ 
+ QDBusConnectionPrivate::~QDBusConnectionPrivate()
+@@ -1180,11 +1177,7 @@ void QDBusConnectionPrivate::relaySignal(QObject *obj, const QMetaObject *mo, in
+ void QDBusConnectionPrivate::_q_serviceOwnerChanged(const QString &name,
+                                                     const QString &oldOwner, const QString &newOwner)
+ {
+-    if (oldOwner == baseService)
+-        unregisterService(name);
+-    if (newOwner == baseService)
+-        registerService(name);
+-
++    Q_UNUSED(oldOwner);
+     QDBusWriteLocker locker(UpdateSignalHookOwnerAction, this);
+     QMutableHashIterator<QString, SignalHook> it(signalHooks);
+     it.toFront();
+@@ -1655,9 +1648,16 @@ void QDBusConnectionPrivate::setConnection(DBusConnection *dbc, const QDBusError
+ 
+         baseService = QString::fromUtf8(service);
+     } else {
+-        qWarning("QDBusConnectionPrivate::SetConnection: Unable to get base service");
++        qWarning("QDBusConnectionPrivate::setConnection: Unable to get base service");
+     }
+ 
++    QString busService = QLatin1String(DBUS_SERVICE_DBUS);
++    connectSignal(busService, QString(), QString(), QString(), QLatin1String("NameAcquired"), QStringList(), QString(),
++                  this, SLOT(registerService(QString)));
++    connectSignal(busService, QString(), QString(), QString(), QLatin1String("NameLost"), QStringList(), QString(),
++                  this, SLOT(unregisterService(QString)));
++
++
+     q_dbus_connection_add_filter(connection, qDBusSignalFilter, this, 0);
+ 
+     //qDebug("base service: %s", service);
+
+
+commit f708b248aec810a1dcad1f13e1c16390244c9834
+Author: Trond Kjernåsen <trond at trolltech.com>
+Date:   Fri Dec 18 17:48:10 2009 +0100
+
+    Fixed QPixmap::load() to not modify referenced copies.
+    
+    This is a bad regression from 4.5. QPixmap::load() would modify all
+    references to the same QPixmap object.
+    
+    Task-number: QTBUG-6840
+    Reviewed-by: Kim
+
+diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp
+index 617cfe5..7e4597e 100644
+--- a/src/gui/image/qpixmap.cpp
++++ b/src/gui/image/qpixmap.cpp
+@@ -831,14 +831,13 @@ bool QPixmap::load(const QString &fileName, const char *format, Qt::ImageConvers
+     if (QPixmapCache::find(key, *this))
+         return true;
+ 
+-    if (!data)
+-        data = QPixmapData::create(0, 0, QPixmapData::PixmapType);
+-
+-    if (data->fromFile(fileName, format, flags)) {
++    QPixmapData *tmp = QPixmapData::create(0, 0, QPixmapData::PixmapType);
++    if (tmp->fromFile(fileName, format, flags)) {
++        data = tmp;
+         QPixmapCache::insert(key, *this);
+         return true;
+     }
+-
++    delete tmp;
+     return false;
+ }
+ 
+commit 0fa878c4d2dfc25d4641a6654a9b482230559c3a
+Author: Kim Motoyoshi Kalland <kim.kalland at nokia.com>
+Date:   Mon Nov 30 13:13:11 2009 +0100
+
+    Fixed square root of negative number in drawTextItem().
+    
+    Fixed potential bug where you could end up taking the square root of a
+    negative number in drawTextItem() in the raster and OpenGL paint
+    engines.
+    
+    Task-number: QTBUG-6327
+    Reviewed-by: Trond
+
+diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
+index 3f33319..4a72434 100644
+--- a/src/gui/painting/qpaintengine_raster.cpp
++++ b/src/gui/painting/qpaintengine_raster.cpp
+@@ -3240,7 +3240,8 @@ void QRasterPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textIte
+         drawCached = false;
+ 
+     // don't try to cache huge fonts
+-    if (ti.fontEngine->fontDef.pixelSize * qSqrt(s->matrix.determinant()) >= 64)
++    const qreal pixelSize = ti.fontEngine->fontDef.pixelSize;
++    if (pixelSize * pixelSize * qAbs(s->matrix.determinant()) >= 64 * 64)
+         drawCached = false;
+ 
+     // ### Remove the TestFontEngine and Box engine crap, in these
+diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+index 07432c6..15702ba 100644
+--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
++++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+@@ -1452,7 +1452,8 @@ void QGL2PaintEngineEx::drawTextItem(const QPointF &p, const QTextItem &textItem
+         drawCached = false;
+ 
+     // don't try to cache huge fonts
+-    if (ti.fontEngine->fontDef.pixelSize * qSqrt(s->matrix.determinant()) >= 64)
++    const qreal pixelSize = ti.fontEngine->fontDef.pixelSize;
++    if (pixelSize * pixelSize * qAbs(s->matrix.determinant()) >= 64 * 64)
+         drawCached = false;
+ 
+     QFontEngineGlyphCache::Type glyphType = ti.fontEngine->glyphFormat >= 0
+commit dbaea6fa5a90742d89691685baa44a1a34598f21
+Author: Trond Kjernåsen <trond at trolltech.com>
+Date:   Mon Nov 16 10:42:35 2009 +0100
+
+    Fixed a crash in QPixmap::fromImage() when passing in a null image.
+    
+    Task-number: QTBUG-5840
+    Reviewed-by: Kim
+
+diff --git a/src/gui/image/qpixmap_x11.cpp b/src/gui/image/qpixmap_x11.cpp
+index 3f297df..7008fbd 100644
+--- a/src/gui/image/qpixmap_x11.cpp
++++ b/src/gui/image/qpixmap_x11.cpp
+@@ -416,6 +416,11 @@ void QX11PixmapData::fromImage(const QImage &img,
+     d = img.depth();
+     is_null = (w <= 0 || h <= 0);
+ 
++    if (is_null) {
++        w = h = 0;
++        return;
++    }
++
+     if (defaultScreen >= 0 && defaultScreen != xinfo.screen()) {
+         QX11InfoData* xd = xinfo.getX11Data(true);
+         xd->screen = defaultScreen;

================================================================
Index: packages/qt4/qt4.spec
diff -u packages/qt4/qt4.spec:1.234 packages/qt4/qt4.spec:1.235
--- packages/qt4/qt4.spec:1.234	Fri Dec 18 19:12:08 2009
+++ packages/qt4/qt4.spec	Tue Dec 22 13:44:20 2009
@@ -77,7 +77,7 @@
 Summary(pt_BR.UTF-8):	Estrutura para rodar aplicações GUI Qt
 Name:		qt4
 Version:	4.6.0
-Release:	3
+Release:	4
 License:	LGPL v2.1 or GPL v3.0
 Group:		X11/Libraries
 Source0:	http://download.qt.nokia.com/qt/source/qt-everywhere-opensource-src-%{version}.tar.gz
@@ -2257,6 +2257,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.235  2009/12/22 12:44:20  arekm
+- rel 4; few important fixes from upstream
+
 Revision 1.234  2009/12/18 18:12:08  arekm
 qtwebkit-devel R: QtXmlPatterns-devel
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/qt4/qt4-git.patch?r1=1.1&r2=1.2&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/qt4/qt4.spec?r1=1.234&r2=1.235&f=u



More information about the pld-cvs-commit mailing list