From 6ba51a4e18ca079539ad5f845b7af36e48185f4a Mon Sep 17 00:00:00 2001 From: LI Daobing Date: Thu, 9 May 2024 22:24:20 -0700 Subject: [PATCH 1/3] v1: loadcss works --- share/iptux/css/iptux.css | 3 +++ src/config.h.in | 3 +-- src/iptux/Application.cpp | 17 ++++++++++++++++- src/iptux/Application.h | 1 + 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 share/iptux/css/iptux.css diff --git a/share/iptux/css/iptux.css b/share/iptux/css/iptux.css new file mode 100644 index 000000000..f478093b5 --- /dev/null +++ b/share/iptux/css/iptux.css @@ -0,0 +1,3 @@ +.iptux-main { + color: green; +} diff --git a/src/config.h.in b/src/config.h.in index 12155525f..d21164606 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -8,9 +8,8 @@ #define IPTUX_RESOURCE "/io/github/iptux_src/iptux/" #define __PIXMAPS_PATH "@SHARE_IPTUX_DIR@/pixmaps" +#define __CSS_PATH "@SHARE_IPTUX_DIR@/css" #define __LOCALE_PATH "@SHARE_DIR@/locale" -#define __SOUND_PATH "@SHARE_IPTUX_DIR@/sound" -#define __UI_PATH "@SHARE_IPTUX_DIR@/ui" #define IPTUX_PATH "/iptux" #define LOG_PATH "/iptux/log" diff --git a/src/iptux/Application.cpp b/src/iptux/Application.cpp index badaec7c8..8392c60c3 100644 --- a/src/iptux/Application.cpp +++ b/src/iptux/Application.cpp @@ -154,7 +154,7 @@ void Application::onStartup(Application& self) { gtk_application_set_menubar(GTK_APPLICATION(self.app), self.menu()); } } - + self.LoadCss(); self.window = new MainWindow(&self, *self.cthrd); self.eventAdaptor = new EventAdaptor( self.cthrd->signalEvent, @@ -199,6 +199,21 @@ void Application::onStartup(Application& self) { #endif } +void Application::LoadCss() { + auto cssProvider = gtk_css_provider_new(); + GError* error = nullptr; + gtk_css_provider_load_from_path(cssProvider, __CSS_PATH "/iptux.css", &error); + if (error) { + LOG_WARN("load css failed: %s", error->message); + g_error_free(error); + return; + } + gtk_style_context_add_provider_for_screen( + gdk_screen_get_default(), GTK_STYLE_PROVIDER(cssProvider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + g_object_unref(cssProvider); +} + void Application::onActivate(Application& self) { if (self.started) { return; diff --git a/src/iptux/Application.h b/src/iptux/Application.h index 5ec0a26a1..69ca11614 100644 --- a/src/iptux/Application.h +++ b/src/iptux/Application.h @@ -69,6 +69,7 @@ class Application { void set_enable_app_indicator(bool enable) { enable_app_indicator_ = enable; } private: + void LoadCss(); void onEvent(std::shared_ptr event); void onConfigChanged(); void updateItemToTransTree(const TransFileModel& para); From ce5595e5e952d14b07896231b45f954de009afea Mon Sep 17 00:00:00 2001 From: LI Daobing Date: Thu, 9 May 2024 22:59:41 -0700 Subject: [PATCH 2/3] fix some warnings --- meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meson.build b/meson.build index 1a2b638ac..c825def6d 100644 --- a/meson.build +++ b/meson.build @@ -3,6 +3,9 @@ project('iptux', 'cpp', version: '0.9.0', default_options: ['warning_level=3', 'cpp_std=c++14']) add_global_arguments('-Werror=format', language : 'cpp') +add_project_arguments( + '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36', + language: 'cpp') so_version = '0.9.0' subdir('src') subdir('share') From 2a69bf975d9f93fa9e708f5a27ada2ced8d92f7d Mon Sep 17 00:00:00 2001 From: LI Daobing Date: Sat, 4 Jan 2025 22:28:13 -0800 Subject: [PATCH 3/3] 1 --- src/config.h.in | 6 +++--- src/iptux-core/internal/UdpData.cpp | 2 +- src/iptux/Application.cpp | 9 +++++---- src/iptux/DataSettings.cpp | 6 +++--- src/iptux/RevisePal.cpp | 4 ++-- src/iptux/UiCoreThread.cpp | 4 ++-- src/main/iptux.cpp | 2 +- 7 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/config.h.in b/src/config.h.in index 6ceb8a24a..76f862443 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -7,9 +7,9 @@ #mesondefine GETTEXT_PACKAGE #define IPTUX_RESOURCE "/io/github/iptux_src/iptux/" -#define __PIXMAPS_PATH "@SHARE_IPTUX_DIR@/pixmaps" -#define __CSS_PATH "@SHARE_IPTUX_DIR@/css" -#define __LOCALE_PATH "@SHARE_DIR@/locale" +#define IPTUX_PIXMAPS_PATH "@SHARE_IPTUX_DIR@/pixmaps" +#define IPTUX_CSS_PATH "@SHARE_IPTUX_DIR@/css" +#define IPTUX_LOCALE_PATH "@SHARE_DIR@/locale" #define IPTUX_PATH "/iptux" #define LOG_PATH "/iptux/log" diff --git a/src/iptux-core/internal/UdpData.cpp b/src/iptux-core/internal/UdpData.cpp index 20942a329..cb903fa75 100644 --- a/src/iptux-core/internal/UdpData.cpp +++ b/src/iptux-core/internal/UdpData.cpp @@ -591,7 +591,7 @@ string UdpData::GetPalIcon() { const char* ptr; if ((ptr = iptux_skip_string(buf, size, 2)) && *ptr != '\0') { - string res = stringFormat(__PIXMAPS_PATH "/icon/%s", ptr); + string res = stringFormat(IPTUX_PIXMAPS_PATH "/icon/%s", ptr); if (access(res.c_str(), F_OK) == 0) return ptr; } diff --git a/src/iptux/Application.cpp b/src/iptux/Application.cpp index 1effbdb32..87d2367c9 100644 --- a/src/iptux/Application.cpp +++ b/src/iptux/Application.cpp @@ -56,9 +56,9 @@ void iptux_init(LogSystem* logSystem) { void init_theme(Application* app) { auto theme = gtk_icon_theme_get_default(); - gtk_icon_theme_prepend_search_path(theme, __PIXMAPS_PATH "/icon"); - gtk_icon_theme_prepend_search_path(theme, __PIXMAPS_PATH "/menu"); - gtk_icon_theme_prepend_search_path(theme, __PIXMAPS_PATH "/tip"); + gtk_icon_theme_prepend_search_path(theme, IPTUX_PIXMAPS_PATH "/icon"); + gtk_icon_theme_prepend_search_path(theme, IPTUX_PIXMAPS_PATH "/menu"); + gtk_icon_theme_prepend_search_path(theme, IPTUX_PIXMAPS_PATH "/tip"); gtk_icon_theme_prepend_search_path( theme, app->getCoreThread()->getUserIconPath().c_str()); } @@ -195,7 +195,8 @@ void Application::onStartup(Application& self) { void Application::LoadCss() { auto cssProvider = gtk_css_provider_new(); GError* error = nullptr; - gtk_css_provider_load_from_path(cssProvider, __CSS_PATH "/iptux.css", &error); + gtk_css_provider_load_from_path(cssProvider, IPTUX_CSS_PATH "/iptux.css", + &error); if (error) { LOG_WARN("load css failed: %s", error->message); g_error_free(error); diff --git a/src/iptux/DataSettings.cpp b/src/iptux/DataSettings.cpp index d62272869..158754751 100644 --- a/src/iptux/DataSettings.cpp +++ b/src/iptux/DataSettings.cpp @@ -632,7 +632,7 @@ void DataSettings::FillIconModel(GtkTreeModel* model) { char* file; theme = gtk_icon_theme_get_default(); - if ((dir = opendir(__PIXMAPS_PATH "/icon"))) { + if ((dir = opendir(IPTUX_PIXMAPS_PATH "/icon"))) { while ((dirt = readdir(dir))) { if (strcmp(dirt->d_name, ".") == 0 || strcmp(dirt->d_name, "..") == 0) continue; @@ -817,7 +817,7 @@ void DataSettings::ObtainPersonalValue() { gtk_tree_model_get(model, &iter, 1, &file, -1); if (file) { if (strcmp(g_progdt->myicon.c_str(), file) != 0) { - snprintf(path, MAX_PATHLEN, __PIXMAPS_PATH "/icon/%s", file); + snprintf(path, MAX_PATHLEN, IPTUX_PIXMAPS_PATH "/icon/%s", file); if (access(path, F_OK) != 0) { g_progdt->myicon = "my-icon"; snprintf(path, MAX_PATHLEN, "%s" ICON_PATH "/my-icon", @@ -914,7 +914,7 @@ string DataSettings::ObtainSystemValue(bool dryrun) { gtk_tree_model_get_iter_from_string(model, &iter, path); gtk_tree_model_get(model, &iter, 1, &file, -1); if (strcmp(progdt->palicon, file) != 0) { - snprintf(path, MAX_PATHLEN, __PIXMAPS_PATH "/icon/%s", file); + snprintf(path, MAX_PATHLEN, IPTUX_PIXMAPS_PATH "/icon/%s", file); if (access(path, F_OK) != 0) { g_free(file); g_free(progdt->palicon); diff --git a/src/iptux/RevisePal.cpp b/src/iptux/RevisePal.cpp index c3d30cd4b..513ec2fce 100644 --- a/src/iptux/RevisePal.cpp +++ b/src/iptux/RevisePal.cpp @@ -260,7 +260,7 @@ void RevisePal::ApplyReviseData() { gtk_tree_model_get_iter_from_string(model, &iter, path); gtk_tree_model_get(model, &iter, 1, &file, -1); if (pal->icon_file() != file) { - snprintf(path, MAX_PATHLEN, __PIXMAPS_PATH "/icon/%s", file); + snprintf(path, MAX_PATHLEN, IPTUX_PIXMAPS_PATH "/icon/%s", file); if (access(path, F_OK) != 0) { g_free(file); snprintf(path, MAX_PATHLEN, "%s" ICON_PATH "/%" PRIx32, @@ -318,7 +318,7 @@ void RevisePal::FillIconModel(GtkTreeModel* model) { char* file; theme = gtk_icon_theme_get_default(); - if ((dir = opendir(__PIXMAPS_PATH "/icon"))) { + if ((dir = opendir(IPTUX_PIXMAPS_PATH "/icon"))) { while ((dirt = readdir(dir))) { if (strcmp(dirt->d_name, ".") == 0 || strcmp(dirt->d_name, "..") == 0) continue; diff --git a/src/iptux/UiCoreThread.cpp b/src/iptux/UiCoreThread.cpp index 0c5d0e16a..7d342fbdc 100644 --- a/src/iptux/UiCoreThread.cpp +++ b/src/iptux/UiCoreThread.cpp @@ -549,7 +549,7 @@ void UiCoreThread::CheckIconTheme() { char pathbuf[MAX_PATHLEN]; GdkPixbuf* pixbuf; - snprintf(pathbuf, MAX_PATHLEN, __PIXMAPS_PATH "/icon/%s", + snprintf(pathbuf, MAX_PATHLEN, IPTUX_PIXMAPS_PATH "/icon/%s", programData->myicon.c_str()); if (access(pathbuf, F_OK) != 0) { snprintf(pathbuf, MAX_PATHLEN, "%s" ICON_PATH "/%s", @@ -561,7 +561,7 @@ void UiCoreThread::CheckIconTheme() { } } - snprintf(pathbuf, MAX_PATHLEN, __PIXMAPS_PATH "/icon/%s", + snprintf(pathbuf, MAX_PATHLEN, IPTUX_PIXMAPS_PATH "/icon/%s", programData->palicon); if (access(pathbuf, F_OK) != 0) { snprintf(pathbuf, MAX_PATHLEN, "%s" ICON_PATH "/%s", diff --git a/src/main/iptux.cpp b/src/main/iptux.cpp index 07138209e..5ac5bf098 100644 --- a/src/main/iptux.cpp +++ b/src/main/iptux.cpp @@ -139,7 +139,7 @@ static void dealLog(const IptuxConfig& config) { int main(int argc, char** argv) { installCrashHandler(); setlocale(LC_ALL, ""); - bindtextdomain(GETTEXT_PACKAGE, __LOCALE_PATH); + bindtextdomain(GETTEXT_PACKAGE, IPTUX_LOCALE_PATH); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE);