[nautilus] module: Keep a list of currently installed modules
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] module: Keep a list of currently installed modules
- Date: Wed, 20 Jul 2022 15:46:31 +0000 (UTC)
commit 5d5b67319a1a36acfcd2a0558303bba6a2bfc662
Author: Corey Berla <corey berla me>
Date: Mon Jul 18 14:54:00 2022 -0700
module: Keep a list of currently installed modules
src/nautilus-module.c | 17 +++++++++++++++--
src/nautilus-module.h | 1 +
2 files changed, 16 insertions(+), 2 deletions(-)
---
diff --git a/src/nautilus-module.c b/src/nautilus-module.c
index 4bb46ee64..cd889ff18 100644
--- a/src/nautilus-module.c
+++ b/src/nautilus-module.c
@@ -56,6 +56,7 @@ struct _NautilusModuleClass
};
static GList *module_objects = NULL;
+static GStrv installed_module_names = NULL;
static GType nautilus_module_get_type (void);
@@ -187,7 +188,8 @@ add_module_objects (NautilusModule *module)
}
static NautilusModule *
-nautilus_module_load_file (const char *filename)
+nautilus_module_load_file (const char *filename,
+ GStrvBuilder *installed_module_name_builder)
{
NautilusModule *module;
@@ -198,6 +200,7 @@ nautilus_module_load_file (const char *filename)
{
add_module_objects (module);
g_type_module_unuse (G_TYPE_MODULE (module));
+ g_strv_builder_add (installed_module_name_builder, filename);
return module;
}
else
@@ -207,11 +210,18 @@ nautilus_module_load_file (const char *filename)
}
}
+char *
+nautilus_module_get_installed_module_names ()
+{
+ return g_strjoinv ("\n", installed_module_names);
+}
+
static void
load_module_dir (const char *dirname)
{
GDir *dir;
+ g_autoptr (GStrvBuilder) installed_module_name_builder = g_strv_builder_new ();
dir = g_dir_open (dirname, 0, NULL);
if (dir)
@@ -227,13 +237,15 @@ load_module_dir (const char *dirname)
filename = g_build_filename (dirname,
name,
NULL);
- nautilus_module_load_file (filename);
+ nautilus_module_load_file (filename, installed_module_name_builder);
g_free (filename);
}
}
g_dir_close (dir);
}
+
+ installed_module_names = g_strv_builder_end (installed_module_name_builder);
}
static void
@@ -248,6 +260,7 @@ free_module_objects (void)
}
g_list_free (module_objects);
+ g_strfreev (installed_module_names);
}
void
diff --git a/src/nautilus-module.h b/src/nautilus-module.h
index 1f70a9195..dc9191872 100644
--- a/src/nautilus-module.h
+++ b/src/nautilus-module.h
@@ -29,6 +29,7 @@ G_BEGIN_DECLS
void nautilus_module_setup (void);
GList *nautilus_module_get_extensions_for_type (GType type);
void nautilus_module_extension_list_free (GList *list);
+gchar *nautilus_module_get_installed_module_names (void);
/* Add a type to the module interface - allows nautilus to add its own modules
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]