[gnome-software: 1/2] gs-folders: Drop unused code
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software: 1/2] gs-folders: Drop unused code
- Date: Thu, 12 Aug 2021 17:54:15 +0000 (UTC)
commit ea6642906c7153496f49974751a6930b41628d0b
Author: Philip Withnall <pwithnall endlessos org>
Date: Thu Aug 12 14:51:07 2021 +0100
gs-folders: Drop unused code
Since commit 67a5bff938dad992a83b636b54c93f5d5d8a8415, this has been
unused.
This introduces no functional changes.
Signed-off-by: Philip Withnall <pwithnall endlessos org>
src/gs-folders.c | 509 -------------------------------------------------------
src/gs-folders.h | 27 ---
2 files changed, 536 deletions(-)
---
diff --git a/src/gs-folders.c b/src/gs-folders.c
index a8d2b9b15..3da2260f6 100644
--- a/src/gs-folders.c
+++ b/src/gs-folders.c
@@ -17,515 +17,6 @@
#define APP_FOLDER_SCHEMA "org.gnome.desktop.app-folders"
#define APP_FOLDER_CHILD_SCHEMA "org.gnome.desktop.app-folders.folder"
-/* We are loading folders from a settings with type
- * a{sas}, which maps folder ids to list of app ids.
- *
- * For convenience, we unfold this variant into GsFolder
- * structs and two hash tables, one with folder ids
- * as keys, and one with app ids.
- */
-
-typedef struct
-{
- gchar *id;
- gchar *name;
- gchar *translated;
- gboolean translate;
- GHashTable *apps;
- GHashTable *categories;
- GHashTable *excluded_apps;
-} GsFolder;
-
-struct _GsFolders
-{
- GObject parent_instance;
-
- GSettings *settings;
- GHashTable *folders;
- GHashTable *apps;
- GHashTable *categories;
-};
-
-G_DEFINE_TYPE (GsFolders, gs_folders, G_TYPE_OBJECT)
-
-#if 0
-static void
-dump_set (GHashTable *set)
-{
- GHashTableIter iter;
- const gchar *key;
-
- g_hash_table_iter_init (&iter, set);
- while (g_hash_table_iter_next (&iter, (gpointer *)&key, NULL)) {
- g_print ("\t\t%s\n", key);
- }
-}
-
-static void
-dump_map (GHashTable *map)
-{
- GHashTableIter iter;
- const gchar *key;
- GsFolder *folder;
-
- g_hash_table_iter_init (&iter, map);
- while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *)&folder)) {
- g_print ("\t%s -> %s\n", key, folder->id);
- }
-}
-
-static void
-dump (GsFolders *folders)
-{
- GHashTableIter iter;
- GsFolder *folder;
-
- g_hash_table_iter_init (&iter, folders->folders);
- while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&folder)) {
- g_print ("folder %s\n", folder->id);
- g_print ("\tname %s\n", folder->name);
- g_print ("\ttranslate %d\n", folder->translate);
- if (g_hash_table_size (folder->apps) > 0) {
- g_print ("\tapps\n");
- dump_set (folder->apps);
- }
- if (g_hash_table_size (folder->categories) > 0) {
- g_print ("\tcategories\n");
- dump_set (folder->categories);
- }
- if (g_hash_table_size (folder->excluded_apps) > 0) {
- g_print ("\texcluded\n");
- dump_set (folder->excluded_apps);
- }
- }
-
- g_print ("app mapping\n");
- dump_map (folders->apps);
- g_print ("category mapping\n");
- dump_map (folders->categories);
-}
-#endif
-
-static gchar *
-lookup_folder_name (const gchar *id)
-{
- gchar *name = NULL;
- g_autofree gchar *file = NULL;
- g_autoptr(GKeyFile) key_file = NULL;
-
- file = g_build_filename ("desktop-directories", id, NULL);
- key_file = g_key_file_new ();
- if (g_key_file_load_from_data_dirs (key_file, file, NULL, G_KEY_FILE_NONE, NULL)) {
- name = g_key_file_get_locale_string (key_file, "Desktop Entry", "Name", NULL, NULL);
- }
- return name;
-}
-
-static GsFolder *
-gs_folder_new (const gchar *id, const gchar *name, gboolean translate)
-{
- GsFolder *folder;
-
- folder = g_new0 (GsFolder, 1);
- folder->id = g_strdup (id);
- folder->name = g_strdup (name);
- folder->translate = translate;
- if (translate) {
- folder->translated = lookup_folder_name (name);
- }
- folder->apps = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
- folder->categories = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
- folder->excluded_apps = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-
- return folder;
-}
-
-static void
-gs_folder_free (GsFolder *folder)
-{
- g_free (folder->id);
- g_free (folder->name);
- g_free (folder->translated);
- g_hash_table_destroy (folder->apps);
- g_hash_table_destroy (folder->categories);
- g_hash_table_destroy (folder->excluded_apps);
- g_free (folder);
-}
-
-static void
-load (GsFolders *folders)
-{
- GsFolder *folder;
- guint i, j;
- gboolean translate;
- GHashTableIter iter;
- gchar *app;
- gchar *category;
- g_autofree gchar *path = NULL;
- g_auto(GStrv) ids = NULL;
-
- folders->folders = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
(GDestroyNotify)gs_folder_free);
- folders->apps = g_hash_table_new (g_str_hash, g_str_equal);
- folders->categories = g_hash_table_new (g_str_hash, g_str_equal);
-
- ids = g_settings_get_strv (folders->settings, "folder-children");
- g_object_get (folders->settings, "path", &path, NULL);
- for (i = 0; ids[i]; i++) {
- g_auto(GStrv) apps = NULL;
- g_auto(GStrv) categories = NULL;
- g_autofree gchar *child_path = NULL;
- g_auto(GStrv) excluded_apps = NULL;
- g_autofree gchar *name = NULL;
- g_autoptr(GSettings) settings = NULL;
-
- child_path = g_strconcat (path, "folders/", ids[i], "/", NULL);
- settings = g_settings_new_with_path (APP_FOLDER_CHILD_SCHEMA, child_path);
- if (settings == NULL) {
- g_warning ("ignoring folder child %s as invalid", ids[i]);
- continue;
- }
- name = g_settings_get_string (settings, "name");
- translate = g_settings_get_boolean (settings, "translate");
- folder = gs_folder_new (ids[i], name, translate);
-
- excluded_apps = g_settings_get_strv (settings, "excluded-apps");
- for (j = 0; excluded_apps[j]; j++) {
- g_hash_table_add (folder->excluded_apps, g_strdup (excluded_apps[j]));
- }
-
- apps = g_settings_get_strv (settings, "apps");
- for (j = 0; apps[j]; j++) {
- if (!g_hash_table_contains (folder->excluded_apps, apps[j]))
- g_hash_table_add (folder->apps, g_strdup (apps[j]));
- }
-
- categories = g_settings_get_strv (settings, "categories");
- for (j = 0; categories[j]; j++) {
- g_hash_table_add (folder->categories, g_strdup (categories[j]));
- }
-
- g_hash_table_insert (folders->folders, (gpointer)folder->id, folder);
- g_hash_table_iter_init (&iter, folder->apps);
- while (g_hash_table_iter_next (&iter, (gpointer*)&app, NULL)) {
- g_hash_table_insert (folders->apps, app, folder);
- }
-
- g_hash_table_iter_init (&iter, folder->categories);
- while (g_hash_table_iter_next (&iter, (gpointer*)&category, NULL)) {
- g_hash_table_insert (folders->categories, category, folder);
- }
- }
-}
-
-static void
-save (GsFolders *folders)
-{
- GHashTableIter iter;
- GsFolder *folder;
- gpointer keys;
- g_autofree gchar *path = NULL;
- g_autofree gpointer apps = NULL;
-
- g_object_get (folders->settings, "path", &path, NULL);
- g_hash_table_iter_init (&iter, folders->folders);
- while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&folder)) {
- g_autofree gchar *child_path = NULL;
- g_autoptr(GSettings) settings = NULL;
-
- child_path = g_strconcat (path, "folders/", folder->id, "/", NULL);
- settings = g_settings_new_with_path (APP_FOLDER_CHILD_SCHEMA, child_path);
- g_settings_set_string (settings, "name", folder->name);
- g_settings_set_boolean (settings, "translate", folder->translate);
- keys = g_hash_table_get_keys_as_array (folder->apps, NULL);
- g_settings_set_strv (settings, "apps", (const gchar * const *)keys);
- g_free (keys);
-
- keys = g_hash_table_get_keys_as_array (folder->excluded_apps, NULL);
- g_settings_set_strv (settings, "excluded-apps", (const gchar * const *)keys);
- g_free (keys);
-
- keys = g_hash_table_get_keys_as_array (folder->categories, NULL);
- g_settings_set_strv (settings, "categories", (const gchar * const *)keys);
- g_free (keys);
- }
-
- apps = gs_folders_get_nonempty_folders (folders);
- g_settings_set_strv (folders->settings, "folder-children",
- (const gchar * const *)apps);
-}
-
-static void
-clear (GsFolders *folders)
-{
- g_hash_table_unref (folders->apps);
- g_hash_table_unref (folders->categories);
- g_hash_table_unref (folders->folders);
-
- folders->apps = NULL;
- folders->categories = NULL;
- folders->folders = NULL;
-}
-
-static void
-gs_folders_dispose (GObject *object)
-{
- GsFolders *folders = GS_FOLDERS (object);
-
- g_clear_object (&folders->settings);
-
- G_OBJECT_CLASS (gs_folders_parent_class)->dispose (object);
-}
-
-static void
-gs_folders_finalize (GObject *object)
-{
- GsFolders *folders = GS_FOLDERS (object);
-
- clear (folders);
-
- G_OBJECT_CLASS (gs_folders_parent_class)->finalize (object);
-}
-
-static void
-gs_folders_class_init (GsFoldersClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->dispose = gs_folders_dispose;
- object_class->finalize = gs_folders_finalize;
-}
-
-static void
-gs_folders_init (GsFolders *folders)
-{
- folders->settings = g_settings_new (APP_FOLDER_SCHEMA);
- load (folders);
-}
-
-static GsFolders *
-gs_folders_new (void)
-{
- return GS_FOLDERS (g_object_new (GS_TYPE_FOLDERS, NULL));
-}
-
-static GsFolders *singleton;
-
-GsFolders *
-gs_folders_get (void)
-{
- if (!singleton)
- singleton = gs_folders_new ();
-
- return g_object_ref (singleton);
-}
-
-gchar **
-gs_folders_get_folders (GsFolders *folders)
-{
- return (gchar**) g_hash_table_get_keys_as_array (folders->folders, NULL);
-}
-
-gchar **
-gs_folders_get_nonempty_folders (GsFolders *folders)
-{
- GHashTableIter iter;
- GsFolder *folder;
- g_autoptr(GHashTable) tmp = NULL;
-
- tmp = g_hash_table_new (g_str_hash, g_str_equal);
-
- g_hash_table_iter_init (&iter, folders->apps);
- while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&folder)) {
- g_hash_table_add (tmp, folder->id);
- }
-
- g_hash_table_iter_init (&iter, folders->categories);
- while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&folder)) {
- g_hash_table_add (tmp, folder->id);
- }
-
- return (gchar **) g_hash_table_get_keys_as_array (tmp, NULL);
-}
-
-static void
-canonicalize_key (gchar *key)
-{
- gchar *p;
-
- for (p = key; *p != 0; p++) {
- gchar c = *p;
-
- if (c != '-' &&
- (c < '0' || c > '9') &&
- (c < 'A' || c > 'Z') &&
- (c < 'a' || c > 'z'))
- *p = '-';
- }
-}
-
-const gchar *
-gs_folders_add_folder (GsFolders *folders, const gchar *id)
-{
- GsFolder *folder;
- g_autofree gchar *key = NULL;
-
- key = g_strdup (id);
- canonicalize_key (key);
- folder = g_hash_table_lookup (folders->folders, key);
- if (!folder) {
- folder = gs_folder_new (key, id, FALSE);
- g_hash_table_insert (folders->folders, folder->id, folder);
- }
-
- return folder->id;
-}
-
-void
-gs_folders_remove_folder (GsFolders *folders, const gchar *id)
-{
- GsFolder *folder = NULL;
- GHashTableIter iter;
-
- if (id == NULL)
- return;
-
- g_hash_table_iter_init (&iter, folders->apps);
- while (g_hash_table_iter_next (&iter, NULL, (gpointer*)&folder)) {
- if (folder && g_strcmp0 (id, folder->id) == 0) {
- g_hash_table_iter_remove (&iter);
- }
- }
-
- g_hash_table_iter_init (&iter, folders->categories);
- while (g_hash_table_iter_next (&iter, NULL, (gpointer*)&folder)) {
- if (folder && g_strcmp0 (id, folder->id) == 0) {
- g_hash_table_iter_remove (&iter);
- }
- }
-
- if (folder != NULL)
- g_hash_table_remove (folders->folders, folder->id);
-}
-
-const gchar *
-gs_folders_get_folder_name (GsFolders *folders, const gchar *id)
-{
- GsFolder *folder;
-
- folder = g_hash_table_lookup (folders->folders, id);
-
- if (folder) {
- if (folder->translated)
- return folder->translated;
-
- return folder->name;
- }
-
- return NULL;
-}
-
-void
-gs_folders_set_folder_name (GsFolders *folders, const gchar *id, const gchar *name)
-{
- GsFolder *folder;
-
- folder = g_hash_table_lookup (folders->folders, id);
- if (folder) {
- g_free (folder->name);
- g_free (folder->translated);
- folder->name = g_strdup (name);
- folder->translate = FALSE;
- }
-}
-
-static GsFolder *
-get_app_folder (GsFolders *folders, const gchar *app, GPtrArray *categories)
-{
- GsFolder *folder;
- const gchar *category;
- guint i;
-
- folder = g_hash_table_lookup (folders->apps, app);
- if (!folder && categories) {
- for (i = 0; i < categories->len; i++) {
- category = g_ptr_array_index (categories, i);
- if (category == NULL)
- continue;
-
- folder = g_hash_table_lookup (folders->categories, category);
- if (folder) {
- break;
- }
- }
- }
- if (folder) {
- if (g_hash_table_contains (folder->excluded_apps, app)) {
- folder = NULL;
- }
- }
-
- return folder;
-}
-
-const gchar *
-gs_folders_get_app_folder (GsFolders *folders, const gchar *app, GPtrArray *categories)
-{
- GsFolder *folder;
-
- if (app == NULL)
- return NULL;
-
- folder = get_app_folder (folders, app, categories);
-
- return folder ? folder->id : NULL;
-}
-
-void
-gs_folders_set_app_folder (GsFolders *folders, const gchar *app, GPtrArray *categories, const gchar *id)
-{
- GsFolder *folder;
-
- folder = get_app_folder (folders, app, categories);
-
- if (folder) {
- g_hash_table_remove (folders->apps, app);
- g_hash_table_remove (folder->apps, app);
- }
-
- if (id) {
- gchar *app_id;
-
- app_id = g_strdup (app);
- folder = g_hash_table_lookup (folders->folders, id);
- g_hash_table_add (folder->apps, app_id);
- g_hash_table_remove (folder->excluded_apps, app);
- g_hash_table_insert (folders->apps, app_id, folder);
- } else {
- guint i;
- gchar *category;
-
- for (i = 0; i < categories->len; i++) {
- category = g_ptr_array_index (categories, i);
- folder = g_hash_table_lookup (folders->categories, category);
- if (folder) {
- g_hash_table_add (folder->excluded_apps, g_strdup (app));
- }
- }
- }
-}
-
-void
-gs_folders_save (GsFolders *folders)
-{
- save (folders);
-}
-
-void
-gs_folders_revert (GsFolders *folders)
-{
- clear (folders);
- load (folders);
-}
-
/* Ensure we have the default folders for Utilities and YaST.
* We can't do this as default values, since the schemas have
* no fixed path.
diff --git a/src/gs-folders.h b/src/gs-folders.h
index d23a80026..fbf16b14b 100644
--- a/src/gs-folders.h
+++ b/src/gs-folders.h
@@ -14,33 +14,6 @@
G_BEGIN_DECLS
-#define GS_TYPE_FOLDERS (gs_folders_get_type ())
-
-G_DECLARE_FINAL_TYPE (GsFolders, gs_folders, GS, FOLDERS, GObject)
-
-GsFolders *gs_folders_get (void);
-
-gchar **gs_folders_get_folders (GsFolders *folders);
-gchar **gs_folders_get_nonempty_folders (GsFolders *folders);
-const gchar *gs_folders_add_folder (GsFolders *folders,
- const gchar *id);
-void gs_folders_remove_folder (GsFolders *folders,
- const gchar *id);
-const gchar *gs_folders_get_folder_name (GsFolders *folders,
- const gchar *id);
-void gs_folders_set_folder_name (GsFolders *folders,
- const gchar *id,
- const gchar *name);
-const gchar *gs_folders_get_app_folder (GsFolders *folders,
- const gchar *app,
- GPtrArray *categories);
-void gs_folders_set_app_folder (GsFolders *folders,
- const gchar *app,
- GPtrArray *categories,
- const gchar *id);
-void gs_folders_save (GsFolders *folders);
-void gs_folders_revert (GsFolders *folders);
-
void gs_folders_convert (void);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]