]> git.mdlowis.com Git - proto/labwc.git/commitdiff
icon-loader: rename to desktop-entry
authorJens Peters <jp7677@gmail.com>
Mon, 18 Nov 2024 17:59:49 +0000 (18:59 +0100)
committerJens Peters <jp7677@gmail.com>
Tue, 19 Nov 2024 17:36:08 +0000 (18:36 +0100)
Also rename `struct icon_loader` to `struct sfdo`.

include/desktop-entry.h [new file with mode: 0644]
include/icon-loader.h [deleted file]
include/labwc.h
src/desktop-entry.c [moved from src/icon-loader.c with 80% similarity]
src/meson.build
src/server.c
src/ssd/ssd-titlebar.c

diff --git a/include/desktop-entry.h b/include/desktop-entry.h
new file mode 100644 (file)
index 0000000..30db154
--- /dev/null
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef LABWC_DESKTOP_ENTRY_H
+#define LABWC_DESKTOP_ENTRY_H
+
+struct server;
+
+void desktop_entry_init(struct server *server);
+void desktop_entry_finish(struct server *server);
+struct lab_data_buffer *desktop_entry_icon_lookup(struct server *server,
+       const char *app_id, int size, float scale);
+
+#endif /* LABWC_DESKTOP_ENTRY_H */
diff --git a/include/icon-loader.h b/include/icon-loader.h
deleted file mode 100644 (file)
index 846d20a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-#ifndef LABWC_ICON_LOADER_H
-#define LABWC_ICON_LOADER_H
-
-struct server;
-
-void icon_loader_init(struct server *server);
-void icon_loader_finish(struct server *server);
-struct lab_data_buffer *icon_loader_lookup(struct server *server,
-       const char *app_id, int size, float scale);
-
-#endif /* LABWC_ICON_LOADER_H */
index b9095ae15f85ae5cd5c4c30d207872b064b39db2..b02868a6d11b95bc9b9d0f032c405133d87edefd 100644 (file)
@@ -379,7 +379,7 @@ struct server {
        struct menu *menu_current;
        struct wl_list menus;
 
-       struct icon_loader *icon_loader;
+       struct sfdo *sfdo;
 
        pid_t primary_client_pid;
 };
similarity index 80%
rename from src/icon-loader.c
rename to src/desktop-entry.c
index d31ae07eccd4e21e03399ca430ad9c1dc6dc7567..d51451edd1dff0bc34d1ee84621661e6f3846f2b 100644 (file)
@@ -9,7 +9,7 @@
 #include "common/mem.h"
 #include "common/string-helpers.h"
 #include "config.h"
-#include "icon-loader.h"
+#include "desktop-entry.h"
 #include "img/img-png.h"
 #include "img/img-xpm.h"
 
@@ -19,7 +19,7 @@
 
 #include "labwc.h"
 
-struct icon_loader {
+struct sfdo {
        struct sfdo_desktop_ctx *desktop_ctx;
        struct sfdo_icon_ctx *icon_ctx;
        struct sfdo_desktop_db *desktop_db;
@@ -40,20 +40,20 @@ log_handler(enum sfdo_log_level level, const char *fmt, va_list args, void *tag)
 }
 
 void
-icon_loader_init(struct server *server)
+desktop_entry_init(struct server *server)
 {
-       struct icon_loader *loader = znew(*loader);
+       struct sfdo *sfdo = znew(*sfdo);
 
        struct sfdo_basedir_ctx *basedir_ctx = sfdo_basedir_ctx_create();
        if (!basedir_ctx) {
                goto err_basedir_ctx;
        }
-       loader->desktop_ctx = sfdo_desktop_ctx_create(basedir_ctx);
-       if (!loader->desktop_ctx) {
+       sfdo->desktop_ctx = sfdo_desktop_ctx_create(basedir_ctx);
+       if (!sfdo->desktop_ctx) {
                goto err_desktop_ctx;
        }
-       loader->icon_ctx = sfdo_icon_ctx_create(basedir_ctx);
-       if (!loader->icon_ctx) {
+       sfdo->icon_ctx = sfdo_icon_ctx_create(basedir_ctx);
+       if (!sfdo->icon_ctx) {
                goto err_icon_ctx;
        }
 
@@ -61,12 +61,12 @@ icon_loader_init(struct server *server)
        enum sfdo_log_level level =
                (enum sfdo_log_level)wlr_log_get_verbosity();
        sfdo_desktop_ctx_set_log_handler(
-               loader->desktop_ctx, level, log_handler, "sfdo-desktop");
+               sfdo->desktop_ctx, level, log_handler, "sfdo-desktop");
        sfdo_icon_ctx_set_log_handler(
-               loader->icon_ctx, level, log_handler, "sfdo-icon");
+               sfdo->icon_ctx, level, log_handler, "sfdo-icon");
 
-       loader->desktop_db = sfdo_desktop_db_load(loader->desktop_ctx, NULL);
-       if (!loader->desktop_db) {
+       sfdo->desktop_db = sfdo_desktop_db_load(sfdo->desktop_ctx, NULL);
+       if (!sfdo->desktop_db) {
                goto err_desktop_db;
        }
 
@@ -84,45 +84,46 @@ icon_loader_init(struct server *server)
                | SFDO_ICON_THEME_LOAD_OPTION_ALLOW_MISSING
                | SFDO_ICON_THEME_LOAD_OPTION_RELAXED;
 
-       loader->icon_theme = sfdo_icon_theme_load(loader->icon_ctx,
+       sfdo->icon_theme = sfdo_icon_theme_load(
+               sfdo->icon_ctx,
                rc.icon_theme_name, load_options);
-       if (!loader->icon_theme) {
+       if (!sfdo->icon_theme) {
                goto err_icon_theme;
        }
 
        /* basedir_ctx is not referenced by other objects */
        sfdo_basedir_ctx_destroy(basedir_ctx);
 
-       server->icon_loader = loader;
+       server->sfdo = sfdo;
        return;
 
 err_icon_theme:
-       sfdo_desktop_db_destroy(loader->desktop_db);
+       sfdo_desktop_db_destroy(sfdo->desktop_db);
 err_desktop_db:
-       sfdo_icon_ctx_destroy(loader->icon_ctx);
+       sfdo_icon_ctx_destroy(sfdo->icon_ctx);
 err_icon_ctx:
-       sfdo_desktop_ctx_destroy(loader->desktop_ctx);
+       sfdo_desktop_ctx_destroy(sfdo->desktop_ctx);
 err_desktop_ctx:
        sfdo_basedir_ctx_destroy(basedir_ctx);
 err_basedir_ctx:
-       free(loader);
+       free(sfdo);
        wlr_log(WLR_ERROR, "Failed to initialize icon loader");
 }
 
 void
-icon_loader_finish(struct server *server)
+desktop_entry_finish(struct server *server)
 {
-       struct icon_loader *loader = server->icon_loader;
-       if (!loader) {
+       struct sfdo *sfdo = server->sfdo;
+       if (!sfdo) {
                return;
        }
 
-       sfdo_icon_theme_destroy(loader->icon_theme);
-       sfdo_desktop_db_destroy(loader->desktop_db);
-       sfdo_icon_ctx_destroy(loader->icon_ctx);
-       sfdo_desktop_ctx_destroy(loader->desktop_ctx);
-       free(loader);
-       server->icon_loader = NULL;
+       sfdo_icon_theme_destroy(sfdo->icon_theme);
+       sfdo_desktop_db_destroy(sfdo->desktop_db);
+       sfdo_icon_ctx_destroy(sfdo->icon_ctx);
+       sfdo_desktop_ctx_destroy(sfdo->desktop_ctx);
+       free(sfdo);
+       server->sfdo = NULL;
 }
 
 struct icon_ctx {
@@ -153,7 +154,7 @@ length_without_extension(const char *name)
  */
 static int
 process_rel_name(struct icon_ctx *ctx, const char *icon_name,
-               struct icon_loader *loader, int size, int scale)
+               struct sfdo *sfdo, int size, int scale)
 {
        int ret = 0;
        int lookup_options = SFDO_ICON_THEME_LOOKUP_OPTIONS_DEFAULT;
@@ -168,7 +169,7 @@ process_rel_name(struct icon_ctx *ctx, const char *icon_name,
         */
        size_t name_len = length_without_extension(icon_name);
        struct sfdo_icon_file *icon_file = sfdo_icon_theme_lookup(
-               loader->icon_theme, icon_name, name_len, size, scale,
+               sfdo->icon_theme, icon_name, name_len, size, scale,
                lookup_options);
        if (!icon_file || icon_file == SFDO_ICON_FILE_INVALID) {
                ret = -1;
@@ -255,19 +256,19 @@ get_db_entry_by_id_fuzzy(struct sfdo_desktop_db *db, const char *app_id)
 }
 
 struct lab_data_buffer *
-icon_loader_lookup(struct server *server, const char *app_id, int size,
+desktop_entry_icon_lookup(struct server *server, const char *app_id, int size,
                float scale)
 {
-       struct icon_loader *loader = server->icon_loader;
-       if (!loader) {
+       struct sfdo *sfdo = server->sfdo;
+       if (!sfdo) {
                return NULL;
        }
 
        const char *icon_name = NULL;
        struct sfdo_desktop_entry *entry = sfdo_desktop_db_get_entry_by_id(
-               loader->desktop_db, app_id, SFDO_NT);
+               sfdo->desktop_db, app_id, SFDO_NT);
        if (!entry) {
-               entry = get_db_entry_by_id_fuzzy(loader->desktop_db, app_id);
+               entry = get_db_entry_by_id_fuzzy(sfdo->desktop_db, app_id);
        }
        if (entry) {
                icon_name = sfdo_desktop_entry_get_icon(entry, NULL);
@@ -284,15 +285,15 @@ icon_loader_lookup(struct server *server, const char *app_id, int size,
        int ret;
        if (!icon_name) {
                /* fall back to app id */
-               ret = process_rel_name(&ctx, app_id, loader, lookup_size, lookup_scale);
+               ret = process_rel_name(&ctx, app_id, sfdo, lookup_size, lookup_scale);
        } else if (icon_name[0] == '/') {
                ret = process_abs_name(&ctx, icon_name);
        } else {
                /* this should be the case for most icons */
-               ret = process_rel_name(&ctx, icon_name, loader, lookup_size, lookup_scale);
+               ret = process_rel_name(&ctx, icon_name, sfdo, lookup_size, lookup_scale);
                /* Icon defined in .desktop file could not be loaded, retry with app_id */
                if (ret < 0) {
-                       ret = process_rel_name(&ctx, app_id, loader, lookup_size, lookup_scale);
+                       ret = process_rel_name(&ctx, app_id, sfdo, lookup_size, lookup_scale);
                }
        }
        if (ret < 0) {
index 497bc33f77548328f141d6c711c229475d95ceb4..40cf0f69cd74e5d6963be52c7c63443571980e96 100644 (file)
@@ -45,7 +45,7 @@ endif
 
 if have_libsfdo
   labwc_sources += files(
-    'icon-loader.c',
+    'desktop-entry.c',
   )
 endif
 
index 697caa5bd1f5a35141cba8d0a420ef5b5902b5a8..b2077330c157ecb9dd9e75f42b6f1e9ffa01f99b 100644 (file)
@@ -30,7 +30,7 @@
 #include "config/session.h"
 #include "decorations.h"
 #if HAVE_LIBSFDO
-#include "icon-loader.h"
+#include "desktop-entry.h"
 #endif
 #include "idle.h"
 #include "labwc.h"
@@ -66,8 +66,8 @@ reload_config_and_theme(struct server *server)
        theme_init(server->theme, server, rc.theme_name);
 
 #if HAVE_LIBSFDO
-       icon_loader_finish(server);
-       icon_loader_init(server);
+       desktop_entry_finish(server);
+       desktop_entry_init(server);
 #endif
 
        struct view *view;
@@ -585,7 +585,7 @@ server_init(struct server *server)
        layers_init(server);
 
 #if HAVE_LIBSFDO
-       icon_loader_init(server);
+       desktop_entry_init(server);
 #endif
 
 #if HAVE_XWAYLAND
@@ -629,7 +629,7 @@ server_finish(struct server *server)
        xwayland_server_finish(server);
 #endif
 #if HAVE_LIBSFDO
-       icon_loader_finish(server);
+       desktop_entry_finish(server);
 #endif
        if (sighup_source) {
                wl_event_source_remove(sighup_source);
index 373dd1c45c53959d7a09c64669d9ebf5442929f0..3f194603d27126473f8581326799502307b48db5 100644 (file)
@@ -10,7 +10,7 @@
 #include "common/scene-helpers.h"
 #include "common/string-helpers.h"
 #if HAVE_LIBSFDO
-#include "icon-loader.h"
+#include "desktop-entry.h"
 #endif
 #include "labwc.h"
 #include "node.h"
@@ -610,7 +610,7 @@ ssd_update_window_icon(struct ssd *ssd)
         */
        float icon_scale = output_max_scale(ssd->view->server);
 
-       struct lab_data_buffer *icon_buffer = icon_loader_lookup(
+       struct lab_data_buffer *icon_buffer = desktop_entry_icon_lookup(
                ssd->view->server, app_id, icon_size, icon_scale);
        if (!icon_buffer) {
                wlr_log(WLR_DEBUG, "icon could not be loaded for %s", app_id);