[gnome-panel] applets-manager: remove PanelAppletInfo



commit 008beca89f37c114d2d2b6133b904d45fbd48a3d
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sat Apr 18 21:20:36 2020 +0300

    applets-manager: remove PanelAppletInfo

 gnome-panel/Makefile.am             |   4 +-
 gnome-panel/gp-applet-manager.c     | 105 +++++++++---------------------------
 gnome-panel/gp-applet-manager.h     |   2 +-
 gnome-panel/panel-applet-info.c     |  87 ------------------------------
 gnome-panel/panel-applet-info.h     |  43 ---------------
 gnome-panel/panel-applets-manager.c |   2 +-
 gnome-panel/panel-applets-manager.h |   3 +-
 7 files changed, 29 insertions(+), 217 deletions(-)
---
diff --git a/gnome-panel/Makefile.am b/gnome-panel/Makefile.am
index 373e32062..cab705909 100644
--- a/gnome-panel/Makefile.am
+++ b/gnome-panel/Makefile.am
@@ -46,7 +46,7 @@ panel_sources =                       \
        panel-lockdown.c        \
        panel-layout.c          \
        panel-object-loader.c   \
-       panel-applet-info.c
+       $(NULL)
 
 panel_headers =                        \
        panel-types.h           \
@@ -72,7 +72,7 @@ panel_headers =                       \
        panel-layout.h          \
        panel-object-loader.h   \
        panel-schemas.h         \
-       panel-applet-info.h
+       $(NULL)
 
 gnome_panel_SOURCES =                  \
        $(panel_sources)                \
diff --git a/gnome-panel/gp-applet-manager.c b/gnome-panel/gp-applet-manager.c
index 8cb18c3f3..2ba3a978d 100644
--- a/gnome-panel/gp-applet-manager.c
+++ b/gnome-panel/gp-applet-manager.c
@@ -44,8 +44,6 @@ struct _GpAppletManager
   char            *backend;
 
   GpModuleManager *manager;
-
-  GHashTable      *infos;
 };
 
 G_DEFINE_TYPE (GpAppletManager, gp_applet_manager, G_TYPE_OBJECT)
@@ -97,74 +95,6 @@ remove_initial_settings (PanelAppletFrameActivating *frame_act)
   g_object_unref (settings);
 }
 
-static void
-get_applet_infos (GpAppletManager *manager,
-                  const gchar     *id,
-                  GpModule        *module)
-{
-  const gchar *const *applets;
-  guint i;
-
-  applets = gp_module_get_applets (module);
-
-  for (i = 0; applets[i] != NULL; i++)
-    {
-      GError *error;
-      GpAppletInfo *info;
-      gchar *iid;
-      PanelAppletInfo *applet_info;
-
-      error = NULL;
-      info = gp_module_get_applet_info (module, applets[i], &error);
-
-      if (info == NULL)
-        {
-          g_warning ("%s", error->message);
-          g_error_free (error);
-
-          continue;
-        }
-
-      iid = g_strdup_printf ("%s::%s", id, applets[i]);
-      applet_info = panel_applet_info_new (iid, info->name,
-                                           info->description,
-                                           info->icon_name);
-
-      g_hash_table_insert (manager->infos, g_strdup (iid), applet_info);
-      g_free (iid);
-    }
-}
-
-static void
-load_infos (GpAppletManager *self)
-{
-  GList *modules;
-  GList *l;
-
-  modules = gp_module_manager_get_modules (self->manager);
-
-  for (l = modules; l != NULL; l = l->next)
-    {
-      GpModule *module;
-
-      module = GP_MODULE (l->data);
-
-      get_applet_infos (self, gp_module_get_id (module), module);
-    }
-
-  g_list_free (modules);
-}
-
-static void
-applet_info_free (gpointer data)
-{
-  PanelAppletInfo *info;
-
-  info = (PanelAppletInfo *) data;
-
-  panel_applet_info_free (info);
-}
-
 static void
 gp_applet_manager_finalize (GObject *object)
 {
@@ -174,7 +104,6 @@ gp_applet_manager_finalize (GObject *object)
 
   g_clear_pointer (&self->backend, g_free);
   g_clear_object (&self->manager);
-  g_clear_pointer (&self->infos, g_hash_table_destroy);
 
   G_OBJECT_CLASS (gp_applet_manager_parent_class)->finalize (object);
 }
@@ -195,13 +124,6 @@ gp_applet_manager_init (GpAppletManager *self)
   self->backend = get_current_backend ();
 
   self->manager = gp_module_manager_new ();
-
-  self->infos = g_hash_table_new_full (g_str_hash,
-                                       g_str_equal,
-                                       g_free,
-                                       applet_info_free);
-
-  load_infos (self);
 }
 
 GpAppletManager *
@@ -220,7 +142,11 @@ gboolean
 gp_applet_manager_factory_activate (GpAppletManager *self,
                                     const char      *iid)
 {
-  if (!g_hash_table_lookup (self->infos, iid))
+  GpAppletInfo *info;
+
+  info = gp_applet_manager_get_applet_info (self, iid);
+
+  if (info == NULL)
     return FALSE;
 
   return TRUE;
@@ -232,11 +158,28 @@ gp_applet_manager_factory_deactivate (GpAppletManager *self,
 {
 }
 
-PanelAppletInfo *
+GpAppletInfo *
 gp_applet_manager_get_applet_info (GpAppletManager *self,
                                    const char      *iid)
 {
-  return g_hash_table_lookup (self->infos, iid);
+  const char *applet_id;
+  char *module_id;
+  GpModule *module;
+
+  applet_id = g_strrstr (iid, "::");
+  if (!applet_id)
+    return NULL;
+
+  module_id = g_strndup (iid, strlen (iid) - strlen (applet_id));
+  module = gp_module_manager_get_module (self->manager, module_id);
+  g_free (module_id);
+
+  if (module == NULL)
+    return NULL;
+
+  applet_id += 2;
+
+  return gp_module_get_applet_info (module, applet_id, NULL);
 }
 
 gboolean
diff --git a/gnome-panel/gp-applet-manager.h b/gnome-panel/gp-applet-manager.h
index a42740eb7..d214af413 100644
--- a/gnome-panel/gp-applet-manager.h
+++ b/gnome-panel/gp-applet-manager.h
@@ -36,7 +36,7 @@ gboolean         gp_applet_manager_factory_activate          (GpAppletManager
 void             gp_applet_manager_factory_deactivate        (GpAppletManager             *self,
                                                               const char                  *iid);
 
-PanelAppletInfo *gp_applet_manager_get_applet_info           (GpAppletManager             *self,
+GpAppletInfo    *gp_applet_manager_get_applet_info           (GpAppletManager             *self,
                                                               const char                  *iid);
 
 gboolean         gp_applet_manager_load_applet               (GpAppletManager             *self,
diff --git a/gnome-panel/panel-applets-manager.c b/gnome-panel/panel-applets-manager.c
index 73fbc7e1e..dc454e5e0 100644
--- a/gnome-panel/panel-applets-manager.c
+++ b/gnome-panel/panel-applets-manager.c
@@ -70,7 +70,7 @@ panel_applets_manager_factory_deactivate (const gchar *iid)
        gp_applet_manager_factory_deactivate (manager, iid);
 }
 
-PanelAppletInfo *
+GpAppletInfo *
 panel_applets_manager_get_applet_info (const gchar *iid)
 {
        _panel_applets_managers_ensure_loaded ();
diff --git a/gnome-panel/panel-applets-manager.h b/gnome-panel/panel-applets-manager.h
index d5adb3249..2f091adac 100644
--- a/gnome-panel/panel-applets-manager.h
+++ b/gnome-panel/panel-applets-manager.h
@@ -26,7 +26,6 @@
 #include "gp-module-manager.h"
 #include "libgnome-panel/gp-initial-setup-dialog-private.h"
 #include "panel-applet-frame.h"
-#include "panel-applet-info.h"
 
 G_BEGIN_DECLS
 
@@ -35,7 +34,7 @@ GpModuleManager *panel_applets_maanger_get_module_manager        (void);
 gboolean         panel_applets_manager_factory_activate          (const gchar                 *iid);
 void             panel_applets_manager_factory_deactivate        (const gchar                 *iid);
 
-PanelAppletInfo *panel_applets_manager_get_applet_info           (const gchar                 *iid);
+GpAppletInfo    *panel_applets_manager_get_applet_info           (const gchar                 *iid);
 
 gboolean         panel_applets_manager_load_applet               (const gchar                 *iid,
                                                                   PanelAppletFrameActivating  *frame_act);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]