Fwd: branches/koffice/1.6/koffice/krita/ui

David Faure faure at kde.org
Mon Sep 4 18:53:06 CEST 2006


Also committed to trunk.

----------  Forwarded Message  ----------

Subject: branches/koffice/1.6/koffice/krita/ui
Date: Monday 04 September 2006 18:46
From: David Faure <faure at kde.org>
To: kde-commits at kde.org
Cc: kde-kimageshop at kde.org

SVN commit 580857 by dfaure:

Don't install event filters on everything from every view - it doesn't scale up when having multiple views,
and it's redundant anyway, when every view is already a qApp event filter (i.e. it gets -all- events).

I left the code in because ideally it would be better to only care about child widgets and remove the
qApp event filter, to leave other views alone; but I guess this approach didn't work, from the comments...


 M  +15 -11    kis_view.cc  


--- branches/koffice/1.6/koffice/krita/ui/kis_view.cc #580856:580857
@@ -3522,24 +3522,28 @@
         }
         break;
     }
-#ifdef EXTENDED_X11_TABLET_SUPPORT
+#if 0
+    // This code is unnecessary now that there's an application event filter
+    // This eventFilter is called for all widgets already, no need to install event filters multiple times
+    // Even worse: with multiple views, they would all install event filters on each other's widgets,
+    // due to the qapp event filter triggering in all views!
     case QEvent::ChildInserted:
     {
         QChildEvent *childEvent = static_cast<QChildEvent *>(e);
         QObject *child = childEvent->child();
+        if ( child->isWidgetType() ) {
 
-        child->installEventFilter(this);
+            child->installEventFilter(this);
 
-        QObjectList *objectList = child->queryList("QWidget");
-        QObjectListIt it(*objectList);
-        QObject *obj;
-
-        while ((obj = it.current()) != 0) {
-           obj->installEventFilter(this);
-           ++it;
+            QObjectList *objectList = child->queryList("QWidget");
+            QObjectListIt it(*objectList);
+            QObject *obj;
+            while ((obj = it.current()) != 0) {
+                obj->installEventFilter(this);
+                ++it;
+            }
+            delete objectList;
         }
-
-        delete objectList;
     }
 #endif
     default:



-------------------------------------------------------

-- 
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).


More information about the kimageshop mailing list