Commit 89ba158462ad023bfc671e7c9af1e03fdcc211fc

Authored by Perry Werneck
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
... ...