[gnome-panel] applets-manager: remove PanelAppletInfo
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] applets-manager: remove PanelAppletInfo
- Date: Sat, 18 Apr 2020 18:21:26 +0000 (UTC)
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]