[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/applets/kickoff/simpleapplet
From:       Sebastian Sauer <mail () dipe ! org>
Date:       2009-01-21 22:22:29
Message-ID: 1232576549.308219.15505.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 914866 by sebsauer:

another crash-workaround. guess I should to the 'MergeModel' soon

 M  +14 -2     simpleapplet.cpp  
 M  +1 -0      simpleapplet.h  


--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/simpleapplet/simpleapplet.cpp \
#914865:914866 @@ -422,8 +422,7 @@
     if (!d->menuview) {
         d->menuview = new Kickoff::MenuView();
         connect(d->menuview, SIGNAL(triggered(QAction*)), this, \
                SLOT(actionTriggered(QAction*)));
-        connect(d->menuview, SIGNAL(aboutToHide()), d->icon, \
                SLOT(setUnpressed()));
-        connect(d->menuview, SIGNAL(aboutToHide()), d->menuview, \
SLOT(deleteLater())); +        connect(d->menuview, SIGNAL(aboutToHide()), \
this, SLOT(aboutToHideMenu()));  
         switch (d->viewtype) {
         case Combined: {
@@ -547,6 +546,19 @@
     d->icon->setPressed();
 }
 
+void MenuLauncherApplet::aboutToHideMenu()
+{
+    d->icon->setUnpressed();
+    if(d->menuview) {
+        //sebsauer, 2009-01-21; another dirty hack; delay destruction else \
it crashes in the KIconLoader +        //dtor for whatever reason (rather \
hard to reproduce). Solution for this and the other hacks +        //would \
be to finally get right of the way we build the menu by providing a model \
that does +        //handle merging of the other models und updating the \
menus if content changes. +        QTimer::singleShot(100, d->menuview, \
SLOT(delayedDestruct())); +        d->menuview = 0;
+    }
+}
+
 void MenuLauncherApplet::actionTriggered(QAction *action)
 {
     KUrl url = action->data().value<KUrl>();
--- trunk/KDE/kdebase/workspace/plasma/applets/kickoff/simpleapplet/simpleapplet.h \
#914865:914866 @@ -111,6 +111,7 @@
     void configAccepted();
     void toggleMenu(bool pressed);
     void toggleMenu();
+    void aboutToHideMenu();
     void actionTriggered(QAction *action);
 
 private:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic