From f69576f8a60c1c915462ded055d5a5ce0ff1aec9 Mon Sep 17 00:00:00 2001 From: Jens Peters Date: Mon, 18 Nov 2024 18:59:49 +0100 Subject: [PATCH] icon-loader: rename to desktop-entry Also rename `struct icon_loader` to `struct sfdo`. --- include/desktop-entry.h | 12 ++++ include/icon-loader.h | 12 ---- include/labwc.h | 2 +- src/{icon-loader.c => desktop-entry.c} | 77 +++++++++++++------------- src/meson.build | 2 +- src/server.c | 10 ++-- src/ssd/ssd-titlebar.c | 4 +- 7 files changed, 60 insertions(+), 59 deletions(-) create mode 100644 include/desktop-entry.h delete mode 100644 include/icon-loader.h rename src/{icon-loader.c => desktop-entry.c} (80%) diff --git a/include/desktop-entry.h b/include/desktop-entry.h new file mode 100644 index 00000000..30db1546 --- /dev/null +++ b/include/desktop-entry.h @@ -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 index 846d20a2..00000000 --- a/include/icon-loader.h +++ /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 */ diff --git a/include/labwc.h b/include/labwc.h index b9095ae1..b02868a6 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -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; }; diff --git a/src/icon-loader.c b/src/desktop-entry.c similarity index 80% rename from src/icon-loader.c rename to src/desktop-entry.c index d31ae07e..d51451ed 100644 --- a/src/icon-loader.c +++ b/src/desktop-entry.c @@ -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) { diff --git a/src/meson.build b/src/meson.build index 497bc33f..40cf0f69 100644 --- a/src/meson.build +++ b/src/meson.build @@ -45,7 +45,7 @@ endif if have_libsfdo labwc_sources += files( - 'icon-loader.c', + 'desktop-entry.c', ) endif diff --git a/src/server.c b/src/server.c index 697caa5b..b2077330 100644 --- a/src/server.c +++ b/src/server.c @@ -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); diff --git a/src/ssd/ssd-titlebar.c b/src/ssd/ssd-titlebar.c index 373dd1c4..3f194603 100644 --- a/src/ssd/ssd-titlebar.c +++ b/src/ssd/ssd-titlebar.c @@ -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); -- 2.52.0