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

List:       kde-commits
Subject:    branches/KDE/4.4/kdebase/workspace/plasma/generic/applets/systemtray/ui
From:       Will Stephenson <wstephenson () kde ! org>
Date:       2010-06-17 13:31:16
Message-ID: 20100617133116.822BBAC8D6 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1139154 by wstephens:

Backport r1113069

"Approach adding the default [widgets to the system tray] in a different
way."

This way actually works.


 M  +13 -5     applet.cpp  
 M  +1 -1      applet.h  


--- branches/KDE/4.4/kdebase/workspace/plasma/generic/applets/systemtray/ui/applet.cpp #1139153:1139154
@@ -22,6 +22,8 @@
 
 #include "applet.h"
 
+#include <QtCore/QProcess>
+#include <QtCore/QTimer>
 #include <QtGui/QApplication>
 #include <QtGui/QGraphicsLayout>
 #include <QtGui/QGraphicsLinearLayout>
@@ -33,7 +35,6 @@
 #include <QtGui/QCheckBox>
 #include <QtGui/QPainter>
 #include <QtGui/QX11Info>
-#include <QtCore/QProcess>
 
 
 #include <KConfigDialog>
@@ -106,9 +107,6 @@
     setAspectRatioMode(Plasma::IgnoreAspectRatio);
     setBackgroundHints(NoBackground);
     setHasConfigurationInterface(true);
-    QAction *addDefaultApplets = new QAction(i18n("add default applets"), this);
-    connect(addDefaultApplets, SIGNAL(triggered()), this, SLOT(addDefaultApplets()));
-    addAction("add default applets", addDefaultApplets);
 }
 
 Applet::~Applet()
@@ -172,6 +170,7 @@
         }
     }
 
+    QTimer::singleShot(0, this, SLOT(checkDefaultApplets()));
     configChanged();
 }
 
@@ -706,12 +705,18 @@
     emit configNeedsSaving();
 }
 
-void Applet::addDefaultApplets()
+void Applet::checkDefaultApplets()
 {
+    if (config().readEntry("DefaultAppletsAdded", false)) {
+        return;
+    }
+
+
     QStringList applets = s_manager->applets(this);
     if (!applets.contains("notifier")) {
         s_manager->addApplet("notifier", this);
     }
+
     if (!applets.contains("battery")) {
         Plasma::DataEngineManager *engines = Plasma::DataEngineManager::self();
         Plasma::DataEngine *power = engines->loadEngine("powermanagement");
@@ -723,6 +728,9 @@
         }
         engines->unloadEngine("powermanagement");
     }
+
+    config().writeEntry("DefaultAppletsAdded", true);
+    configChanged();
 }
 
 NotificationWidget *Applet::addNotification(Notification *notification)
--- branches/KDE/4.4/kdebase/workspace/plasma/generic/applets/systemtray/ui/applet.h #1139153:1139154
@@ -85,7 +85,7 @@
     void clearOldNotifications();
     void finishJob(SystemTray::Job *job);
     void open(const QString &url);
-    void addDefaultApplets();
+    void checkDefaultApplets();
     void showTaskNotifications(int barIndex);
     void syncNotificationBarNeeded();
     void notificationDestroyed(SystemTray::Notification *notification);
[prev in list] [next in list] [prev in thread] [next in thread] 

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