ApplicationItemFactory:
[simple-launcher] / settings-page-items.cc
index b7adca2..28e0074 100644 (file)
@@ -105,19 +105,27 @@ SettingsPageWithItems::SettingsPageWithItems(int icon_size, LauncherItems& items
 
   for (LauncherItems::Names::const_iterator it = myItems.myNames.begin(); it != myItems.myNames.end(); ++it) {
     LauncherItem *item = myItems.myItems[*it];
-    GtkTreeIter iter;
 
-    gtk_list_store_append(myStore, &iter);
-    {
-      GdkPixbuf *icon = item->getIcon(icon_size);
-      gtk_list_store_set(myStore, &iter, SLA_STORE_COLUMN_ICON, icon, SLA_STORE_COLUMN_INDEX, it-myItems.myNames.begin(), -1);
-      g_object_unref(G_OBJECT(icon));
+    if (item->checkSanity()) {
+      GtkTreeIter iter;
+
+      gtk_list_store_append(myStore, &iter);
+      {
+        GdkPixbuf *icon = item->getIcon(icon_size);
+        gtk_list_store_set(myStore, &iter, SLA_STORE_COLUMN_ICON, icon, SLA_STORE_COLUMN_INDEX, it-myItems.myNames.begin(), -1);
+        g_object_unref(G_OBJECT(icon));
+      }
     }
   }
 }
 
 SettingsPageWithItems::~SettingsPageWithItems() {
-  // FIXME: do something! :)
+  if (myLastSelection != NULL) {
+    gtk_tree_iter_free(myLastSelection);
+    myLastSelection = NULL;
+  }
+
+  g_object_unref(G_OBJECT(myStore));
 }
 
 void SettingsPageWithItems::_selectionChanged(GtkTreeSelection *selection, void *self) {