separated the code that checks/creates/adds a new item in the list
authormishas <mikhail.sobolev@gmail.com>
Wed, 14 Mar 2007 17:06:02 +0000 (17:06 +0000)
committermishas <mikhail.sobolev@gmail.com>
Wed, 14 Mar 2007 17:06:02 +0000 (17:06 +0000)
git-svn-id: file:///svnroot/simple-launcher/trunk@80 3ba93dab-e023-0410-b42a-de7732cf370a

simple-launcher.cc

index 52ace44..cd05b6d 100644 (file)
@@ -49,6 +49,8 @@ public:
   GtkWidget *getWidget() { return myWidget; }
 
 private:
+  void addItem(const std::string&, bool);
+
   void loadConfig();
   void saveConfig();
 
@@ -151,6 +153,22 @@ SimpleLauncherApplet::~SimpleLauncherApplet() {
   }
 }
 
+void SimpleLauncherApplet::addItem(const std::string& name, bool enabled) {
+  if (!myItems.exists(name)) {
+    LaunchableItem *item = new LaunchableItem();
+
+    item->load(name);
+
+    if (enabled) {
+      item->enable();
+    } else {
+      item->disable();
+    }
+
+    myItems.add(name, item);
+  }
+}
+
 static char *configFileName="/home/user/.slarc";
 
 void SimpleLauncherApplet::loadConfig() {
@@ -166,22 +184,12 @@ void SimpleLauncherApplet::loadConfig() {
         *p++ = '\0';
       }
 
-      LaunchableItem *item = new LaunchableItem();
-
-      item->load(buffer);
+      addItem(buffer, (p != NULL && (*p == '1' || *p == 'y' || *p == 'Y')));
 
-      if (p != NULL && (*p == '1' || *p == 'y' || *p == 'Y')) {
-        item->enable();
-      } else {
-        item->disable();
-      }
-
-      myItems.add(buffer, item);
     }
 
     delete buffer;
   }
-
 #if 0
   for (int i = 0 ; ourFiles[i] != NULL ; ++i) {
     LaunchableItem *item = new LaunchableItem();