SOURCES: 0258-windowsxpstyle-qbrush.diff, 0261-sync-before-reset-errorhandl...

arekm arekm at pld-linux.org
Sat Feb 28 16:29:44 CET 2009


Author: arekm                        Date: Sat Feb 28 15:29:44 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- from kde svn

---- Files affected:
SOURCES:
   0258-windowsxpstyle-qbrush.diff (1.1 -> 1.2) , 0261-sync-before-reset-errorhandler.patch (NONE -> 1.1)  (NEW), 0259-restart-select-on-EINTR.diff (NONE -> 1.1)  (NEW), 0260-fix-qgraphicswidget-deletionclearFocus.diff (NONE -> 1.1)  (NEW), 0262-fix-treeview-animation-crash.diff (NONE -> 1.1)  (NEW), 0263-fix-fontconfig-handling.diff (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/0258-windowsxpstyle-qbrush.diff
diff -u SOURCES/0258-windowsxpstyle-qbrush.diff:1.1 SOURCES/0258-windowsxpstyle-qbrush.diff:1.2
--- SOURCES/0258-windowsxpstyle-qbrush.diff:1.1	Sat Nov  8 22:23:59 2008
+++ SOURCES/0258-windowsxpstyle-qbrush.diff	Sat Feb 28 16:29:37 2009
@@ -1,6 +1,6 @@
-qt-bugs@ issue : none
-Trolltech task ID : none
-applied: yes
+qt-bugs@ issue : N234506
+Trolltech task ID : 234932
+applied: no
 author: Patrick Spendrin <ps_ml at gmx.de>
 
 This makes windows style paint a frame and not a rect for QStyle::PE_Frame

================================================================
Index: SOURCES/0261-sync-before-reset-errorhandler.patch
diff -u /dev/null SOURCES/0261-sync-before-reset-errorhandler.patch:1.1
--- /dev/null	Sat Feb 28 16:29:46 2009
+++ SOURCES/0261-sync-before-reset-errorhandler.patch	Sat Feb 28 16:29:35 2009
@@ -0,0 +1,22 @@
+qt-bugs@ issue : 236401
+Trolltech task ID : none
+bugs.kde.org number : none
+applied: no
+author: Lubos Lunak <l.lunak at kde.org>
+
+Sync X connection before resetting X error handler to the one provided
+by Xlib (which just aborts), in case there are still queued requests
+that may result in an error.
+
+
+--- src/gui/kernel/qapplication_x11.cpp.sav	2008-10-20 21:07:11.000000000 +0200
++++ src/gui/kernel/qapplication_x11.cpp	2008-11-25 15:02:31.000000000 +0100
+@@ -2312,6 +2312,8 @@ void qt_cleanup()
+ #endif
+ 
+     // Reset the error handlers
++    if (qt_is_gui_used)
++        XSync(X11->display, False); // sync first to process all possible errors
+     XSetErrorHandler(original_x_errhandler);
+     XSetIOErrorHandler(original_xio_errhandler);
+ 

================================================================
Index: SOURCES/0259-restart-select-on-EINTR.diff
diff -u /dev/null SOURCES/0259-restart-select-on-EINTR.diff:1.1
--- /dev/null	Sat Feb 28 16:29:46 2009
+++ SOURCES/0259-restart-select-on-EINTR.diff	Sat Feb 28 16:29:38 2009
@@ -0,0 +1,68 @@
+qt-bugs@ issue : none
+Trolltech task ID : 226687
+bugs.kde.org number : none (but they could, issues caused by this are sometimes hard to find)
+applied: no
+author: Marcos Dione <mdione at grulic.org.ar>
+
+This patch handles a interupted select by a unix signal. So that the socket
+doesn't get closed in such cases. 
+
+See http://lists.kde.org/?l=kde-core-devel&m=122628518123927&w=2
+
+The issue is already marked as fixed by Qt Software and sheduled for QT 4.4.4
+The official patch posted by Thiago on kcd is linux specific,
+so I will take this more general one.
+
+
+Index: src/network/socket/qnativesocketengine_unix.cpp
+===================================================================
+--- src/network/socket/qnativesocketengine_unix.cpp	(revision 882581)
++++ src/network/socket/qnativesocketengine_unix.cpp	(working copy)
+@@ -856,18 +856,10 @@
+ 
+ int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool selectForRead) const
+ {
+-    fd_set fds;
+-    FD_ZERO(&fds);
+-    FD_SET(socketDescriptor, &fds);
++    bool selectForWrite = not selectForRead;
+ 
+-    struct timeval tv;
+-    tv.tv_sec = timeout / 1000;
+-    tv.tv_usec = (timeout % 1000) * 1000;
+-
+-    if (selectForRead)
+-        return select(socketDescriptor + 1, &fds, 0, 0, timeout < 0 ? 0 : &tv);
+-    else
+-        return select(socketDescriptor + 1, 0, &fds, 0, timeout < 0 ? 0 : &tv);
++    return nativeSelect (timeout, selectForRead, selectForWrite,
++                            &selectForRead, &selectForWrite);
+ }
+ 
+ int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool checkRead, bool checkWrite,
+@@ -884,10 +876,22 @@
+         FD_SET(socketDescriptor, &fdwrite);
+ 
+     struct timeval tv;
+-    tv.tv_sec = timeout / 1000;
+-    tv.tv_usec = (timeout % 1000) * 1000;
++    int left= timeout;
++    clock_t start, stop;
+ 
+-    int ret = select(socketDescriptor + 1, &fdread, &fdwrite, 0, timeout < 0 ? 0 : &tv);
++    int ret;
++    do {
++        tv.tv_sec = left / 1000;
++        tv.tv_usec = (left % 1000) * 1000;
++
++        start = clock();
++        ret = select(socketDescriptor + 1, &fdread, &fdwrite, 0, timeout < 0 ? 0 : &tv);
++        stop = clock();
++        // calcule how much we should wait
++        // instead of using the same value again
++        left= left - (stop-start)/CLOCKS_PER_SEC*1000;
++    } while (ret == -1 && errno == EINTR);
++
+     if (ret <= 0)
+         return ret;
+ 

================================================================
Index: SOURCES/0260-fix-qgraphicswidget-deletionclearFocus.diff
diff -u /dev/null SOURCES/0260-fix-qgraphicswidget-deletionclearFocus.diff:1.1
--- /dev/null	Sat Feb 28 16:29:47 2009
+++ SOURCES/0260-fix-qgraphicswidget-deletionclearFocus.diff	Sat Feb 28 16:29:38 2009
@@ -0,0 +1,23 @@
+qt-bugs@ issue : none
+Trolltech task ID : None
+applied: no
+author: Alexis Menard <alexis.menard at trolltech.com>
+
+Fix deletion of a qgraphicswidget on clear focus even if it doesn't have the focus.
+
+Will be included in 4.4.4
+
+Index: ../src/gui/graphicsview/qgraphicsitem.cpp
+===================================================================
+--- src/gui/graphicsview/qgraphicsitem.cpp   (revision 883124)
++++ src/gui/graphicsview/qgraphicsitem.cpp   (working copy)
+@@ -1951,7 +1951,7 @@
+ */
+ void QGraphicsItem::clearFocus()
+ {
+-    if (!d_ptr->scene || !hasFocus())
++    if (!d_ptr->scene)
+         return;
+     if (d_ptr->isWidget) {
+         // Invisible widget items with focus must explicitly clear subfocus.
+

================================================================
Index: SOURCES/0262-fix-treeview-animation-crash.diff
diff -u /dev/null SOURCES/0262-fix-treeview-animation-crash.diff:1.1
--- /dev/null	Sat Feb 28 16:29:47 2009
+++ SOURCES/0262-fix-treeview-animation-crash.diff	Sat Feb 28 16:29:39 2009
@@ -0,0 +1,46 @@
+Trolltech task ID : 236454
+bugs.kde.org number : 176045
+applied: no
+author: Olivier Goffart
+
+This patch makes sure no deleted items are being accessed during an animation of the treeview
+It will also be contained in the upcoming Qt snapshots
+Index: src/gui/itemviews/qtreeview.cpp
+===================================================================
+--- src/gui/itemviews/qtreeview.cpp	(revision 889029)
++++ src/gui/itemviews/qtreeview.cpp	(working copy)
+@@ -2802,10 +2802,9 @@
+     q->setState(oldState);
+ 
+     if (emitSignal) {
++        emit q->expanded(index);
+         if (animationsEnabled)
+             beginAnimatedOperation();
+-        else
+-            emit q->expanded(index);
+     }
+     if (model->canFetchMore(index))
+         model->fetchMore(index);
+@@ -2843,10 +2842,9 @@
+     q->setState(oldState);
+ 
+     if (emitSignal) {
++        emit q->collapsed(modelIndex);
+         if (animationsEnabled)
+             beginAnimatedOperation();
+-        else
+-            emit q->collapsed(modelIndex);
+     }
+ }
+ 
+@@ -2901,10 +2899,6 @@
+     animatedOperation.before = QPixmap();
+     animatedOperation.after = QPixmap();
+     q->setState(QAbstractItemView::NoState);
+-    if (animatedOperation.type == AnimatedOperation::Expand)
+-        emit q->expanded(viewItems.at(animatedOperation.item).index);
+-    else // operation == AnimatedOperation::Collapse
+-        emit q->collapsed(viewItems.at(animatedOperation.item).index);
+     q->updateGeometries();
+     viewport->update();
+ }

================================================================
Index: SOURCES/0263-fix-fontconfig-handling.diff
diff -u /dev/null SOURCES/0263-fix-fontconfig-handling.diff:1.1
--- /dev/null	Sat Feb 28 16:29:48 2009
+++ SOURCES/0263-fix-fontconfig-handling.diff	Sat Feb 28 16:29:39 2009
@@ -0,0 +1,32 @@
+Trolltech task ID : none
+bugs.kde.org number : none
+applied: no
+author: from Trolltech (fixed in Qt 4.5)
+
+Legacy font-name mappings are also applied when fontconfig is used,
+which breaks fontconfig configuration in subtle ways (sans serif
+is mapped to helvetica for example). Avoid this legacy substitution
+when font config is used.
+
+--- src/gui/text/qfont.cpp
++++ src/gui/text/qfont.cpp
+@@ -59,6 +59,7 @@
+ 
+ #ifdef Q_WS_X11
+ #include "qx11info_x11.h"
++#include <private/qt_x11_p.h>
+ #endif
+ #ifdef Q_WS_QWS
+ #include "qscreen_qws.h"
+@@ -1781,6 +1782,11 @@ static void initFontSubst()
+     if (!fontSubst->isEmpty())
+         return;
+ 
++#if defined(Q_WS_X11) && !defined(QT_NO_FONTCONFIG)
++    if (X11->has_fontconfig)
++        return;
++#endif
++
+     for (int i=0; initTbl[i] != 0; i += 2) {
+         QStringList &list = (*fontSubst)[QString::fromLatin1(initTbl[i])];
+         list.append(QString::fromLatin1(initTbl[i+1]));
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/0258-windowsxpstyle-qbrush.diff?r1=1.1&r2=1.2&f=u



More information about the pld-cvs-commit mailing list