From 89ba158462ad023bfc671e7c9af1e03fdcc211fc Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 28 Mar 2023 15:44:10 -0300 Subject: [PATCH] Better imagem scan for about window. --- src/objects/application/actions/about.c | 82 ++++++++++++++++++++++++++++++++++++++++++++-------------------------------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/src/objects/application/actions/about.c b/src/objects/application/actions/about.c index d1af9a1..3ce68c6 100644 --- a/src/objects/application/actions/about.c +++ b/src/objects/application/actions/about.c @@ -32,6 +32,43 @@ #include #include +static char * find_logo() { + + static const char * names[] = { + G_STRINGIFY(PRODUCT_NAME) "-about.svg", + G_STRINGIFY(PRODUCT_NAME) "-logo.svg", + G_STRINGIFY(PRODUCT_NAME) ".svg", + G_STRINGIFY(PRODUCT_NAME) "-about.png", + G_STRINGIFY(PRODUCT_NAME) "-logo.png", + G_STRINGIFY(PRODUCT_NAME) ".png", + + G_STRINGIFY(PACKAGE_NAME) "-about.svg", + G_STRINGIFY(PACKAGE_NAME) "-logo.svg", + G_STRINGIFY(PACKAGE_NAME) ".svg", + G_STRINGIFY(PACKAGE_NAME) "-about.png", + G_STRINGIFY(PACKAGE_NAME) "-logo.png", + G_STRINGIFY(PACKAGE_NAME) ".png", + }; + + size_t ix; + + for(ix = 0; ix < G_N_ELEMENTS(names); ix++) { + + char * filename = lib3270_build_data_filename(names[ix],NULL); + + if(filename) { + + if(g_file_test(filename,G_FILE_TEST_IS_REGULAR)) + return filename; + free(filename); + + } + + } + + return NULL; +} + static GtkWidget * factory(PW3270Action G_GNUC_UNUSED(*action), GtkApplication *application) { GtkAboutDialog * dialog = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); @@ -46,49 +83,18 @@ static GtkWidget * factory(PW3270Action G_GNUC_UNUSED(*action), GtkApplication * // Get application logo { - static const char * names[] = { - G_STRINGIFY(PRODUCT_NAME) "-about.svg", - G_STRINGIFY(PRODUCT_NAME) "-logo.svg", - G_STRINGIFY(PRODUCT_NAME) ".svg", - G_STRINGIFY(PRODUCT_NAME) "-logo.png", - G_STRINGIFY(PRODUCT_NAME) ".png", - - G_STRINGIFY(PACKAGE_NAME) "-about.svg", - G_STRINGIFY(PACKAGE_NAME) "-logo.svg", - G_STRINGIFY(PACKAGE_NAME) ".svg", - G_STRINGIFY(PACKAGE_NAME) "-logo.png", - G_STRINGIFY(PACKAGE_NAME) ".png", - }; - - size_t ix; - - for(ix = 0; ix < G_N_ELEMENTS(names); ix++) { - -#ifdef DEBUG - g_autofree gchar * filename = g_build_filename(".","branding",names[ix],NULL); - debug("Searching for '%s'",filename); -#else - lib3270_autoptr(char) filename = lib3270_build_data_filename(names[ix],NULL); -#endif // DEBUG - - if(!g_file_test(filename,G_FILE_TEST_IS_REGULAR)) - continue; - - GError * error = NULL; - g_autoptr(GdkPixbuf) pix = gdk_pixbuf_new_from_file_at_size(filename,-1,150,&error); + char * logo = find_logo(); + if(logo) { + GError * error = NULL; + g_autoptr(GdkPixbuf) pix = gdk_pixbuf_new_from_file_at_size(logo,-1,150,&error); if(error) { - g_warning("Can't load \"%s\": %s",filename,error->message); + g_message("Can't load \"%s\": %s",logo,error->message); g_error_free(error); - continue; - } - - if(pix) { + } else { gtk_about_dialog_set_logo(dialog,pix); - break; } - + free(logo); } - } // Set version -- libgit2 0.21.2