Commit 89ba158462ad023bfc671e7c9af1e03fdcc211fc
1 parent
865d80d9
Exists in
develop
Better imagem scan for about window.
Showing
1 changed file
with
44 additions
and
38 deletions
Show diff stats
src/objects/application/actions/about.c
| ... | ... | @@ -32,6 +32,43 @@ |
| 32 | 32 | #include <pw3270/actions.h> |
| 33 | 33 | #include <pw3270/application.h> |
| 34 | 34 | |
| 35 | +static char * find_logo() { | |
| 36 | + | |
| 37 | + static const char * names[] = { | |
| 38 | + G_STRINGIFY(PRODUCT_NAME) "-about.svg", | |
| 39 | + G_STRINGIFY(PRODUCT_NAME) "-logo.svg", | |
| 40 | + G_STRINGIFY(PRODUCT_NAME) ".svg", | |
| 41 | + G_STRINGIFY(PRODUCT_NAME) "-about.png", | |
| 42 | + G_STRINGIFY(PRODUCT_NAME) "-logo.png", | |
| 43 | + G_STRINGIFY(PRODUCT_NAME) ".png", | |
| 44 | + | |
| 45 | + G_STRINGIFY(PACKAGE_NAME) "-about.svg", | |
| 46 | + G_STRINGIFY(PACKAGE_NAME) "-logo.svg", | |
| 47 | + G_STRINGIFY(PACKAGE_NAME) ".svg", | |
| 48 | + G_STRINGIFY(PACKAGE_NAME) "-about.png", | |
| 49 | + G_STRINGIFY(PACKAGE_NAME) "-logo.png", | |
| 50 | + G_STRINGIFY(PACKAGE_NAME) ".png", | |
| 51 | + }; | |
| 52 | + | |
| 53 | + size_t ix; | |
| 54 | + | |
| 55 | + for(ix = 0; ix < G_N_ELEMENTS(names); ix++) { | |
| 56 | + | |
| 57 | + char * filename = lib3270_build_data_filename(names[ix],NULL); | |
| 58 | + | |
| 59 | + if(filename) { | |
| 60 | + | |
| 61 | + if(g_file_test(filename,G_FILE_TEST_IS_REGULAR)) | |
| 62 | + return filename; | |
| 63 | + free(filename); | |
| 64 | + | |
| 65 | + } | |
| 66 | + | |
| 67 | + } | |
| 68 | + | |
| 69 | + return NULL; | |
| 70 | +} | |
| 71 | + | |
| 35 | 72 | static GtkWidget * factory(PW3270Action G_GNUC_UNUSED(*action), GtkApplication *application) { |
| 36 | 73 | |
| 37 | 74 | GtkAboutDialog * dialog = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); |
| ... | ... | @@ -46,49 +83,18 @@ static GtkWidget * factory(PW3270Action G_GNUC_UNUSED(*action), GtkApplication * |
| 46 | 83 | |
| 47 | 84 | // Get application logo |
| 48 | 85 | { |
| 49 | - static const char * names[] = { | |
| 50 | - G_STRINGIFY(PRODUCT_NAME) "-about.svg", | |
| 51 | - G_STRINGIFY(PRODUCT_NAME) "-logo.svg", | |
| 52 | - G_STRINGIFY(PRODUCT_NAME) ".svg", | |
| 53 | - G_STRINGIFY(PRODUCT_NAME) "-logo.png", | |
| 54 | - G_STRINGIFY(PRODUCT_NAME) ".png", | |
| 55 | - | |
| 56 | - G_STRINGIFY(PACKAGE_NAME) "-about.svg", | |
| 57 | - G_STRINGIFY(PACKAGE_NAME) "-logo.svg", | |
| 58 | - G_STRINGIFY(PACKAGE_NAME) ".svg", | |
| 59 | - G_STRINGIFY(PACKAGE_NAME) "-logo.png", | |
| 60 | - G_STRINGIFY(PACKAGE_NAME) ".png", | |
| 61 | - }; | |
| 62 | - | |
| 63 | - size_t ix; | |
| 64 | - | |
| 65 | - for(ix = 0; ix < G_N_ELEMENTS(names); ix++) { | |
| 66 | - | |
| 67 | -#ifdef DEBUG | |
| 68 | - g_autofree gchar * filename = g_build_filename(".","branding",names[ix],NULL); | |
| 69 | - debug("Searching for '%s'",filename); | |
| 70 | -#else | |
| 71 | - lib3270_autoptr(char) filename = lib3270_build_data_filename(names[ix],NULL); | |
| 72 | -#endif // DEBUG | |
| 73 | - | |
| 74 | - if(!g_file_test(filename,G_FILE_TEST_IS_REGULAR)) | |
| 75 | - continue; | |
| 76 | - | |
| 77 | - GError * error = NULL; | |
| 78 | - g_autoptr(GdkPixbuf) pix = gdk_pixbuf_new_from_file_at_size(filename,-1,150,&error); | |
| 86 | + char * logo = find_logo(); | |
| 87 | + if(logo) { | |
| 88 | + GError * error = NULL; | |
| 89 | + g_autoptr(GdkPixbuf) pix = gdk_pixbuf_new_from_file_at_size(logo,-1,150,&error); | |
| 79 | 90 | if(error) { |
| 80 | - g_warning("Can't load \"%s\": %s",filename,error->message); | |
| 91 | + g_message("Can't load \"%s\": %s",logo,error->message); | |
| 81 | 92 | g_error_free(error); |
| 82 | - continue; | |
| 83 | - } | |
| 84 | - | |
| 85 | - if(pix) { | |
| 93 | + } else { | |
| 86 | 94 | gtk_about_dialog_set_logo(dialog,pix); |
| 87 | - break; | |
| 88 | 95 | } |
| 89 | - | |
| 96 | + free(logo); | |
| 90 | 97 | } |
| 91 | - | |
| 92 | 98 | } |
| 93 | 99 | |
| 94 | 100 | // Set version | ... | ... |