diff options
author | Fabiano Fidêncio <fidencio@redhat.com> | 2016-02-26 18:08:40 +0100 |
---|---|---|
committer | Fabiano Fidêncio <fidencio@redhat.com> | 2016-03-03 23:08:37 +0100 |
commit | 82e13442b9218215e6e13482a0e8cbe927b1cd8d (patch) | |
tree | e36018e85dd16ceb0a9159d16a016bc20549e4e7 /src/virt-viewer-util.c | |
parent | ad6924aff15f590e6c08961eff20d8e8cac1eac2 (diff) | |
download | virt-viewer-82e13442b9218215e6e13482a0e8cbe927b1cd8d.tar.gz virt-viewer-82e13442b9218215e6e13482a0e8cbe927b1cd8d.tar.xz virt-viewer-82e13442b9218215e6e13482a0e8cbe927b1cd8d.zip |
Use GResource for loading ui files
Let's take advantage of GResource for loading ui files in a better and
cleaner way than virt_viewer_util_load_ui() was doing.
It also brings the benefit, at least for developers, of being able to
test ui changes without having to "make install" virt-viewer.
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
Diffstat (limited to 'src/virt-viewer-util.c')
-rw-r--r-- | src/virt-viewer-util.c | 48 |
1 files changed, 5 insertions, 43 deletions
diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c index 76b61a1..9a4b7c9 100644 --- a/src/virt-viewer-util.c +++ b/src/virt-viewer-util.c @@ -49,53 +49,15 @@ virt_viewer_error_quark(void) GtkBuilder *virt_viewer_util_load_ui(const char *name) { - struct stat sb; GtkBuilder *builder; - GError *error = NULL; - - builder = gtk_builder_new(); - if (stat(name, &sb) >= 0) { - gtk_builder_add_from_file(builder, name, &error); - } else { - gchar *path = g_build_filename(PACKAGE_DATADIR, "ui", name, NULL); - gboolean success = (gtk_builder_add_from_file(builder, path, &error) != 0); - if (error) { - if (!(error->domain == G_FILE_ERROR && error->code == G_FILE_ERROR_NOENT)) - g_warning("Failed to add ui file '%s': %s", path, error->message); - g_clear_error(&error); - } - g_free(path); - - if (!success) { - const gchar * const * dirs = g_get_system_data_dirs(); - g_return_val_if_fail(dirs != NULL, NULL); - - while (dirs[0] != NULL) { - path = g_build_filename(dirs[0], PACKAGE, "ui", name, NULL); - if (gtk_builder_add_from_file(builder, path, NULL) != 0) { - g_free(path); - break; - } - g_free(path); - dirs++; - } - if (dirs[0] == NULL) - goto failed; - } - } + gchar *resource = g_strdup_printf("%s/%s", + VIRT_VIEWER_RESOURCE_PREFIX, + name); - if (error) { - g_error("Cannot load UI description %s: %s", name, - error->message); - g_clear_error(&error); - goto failed; - } + builder = gtk_builder_new_from_resource(resource); + g_free(resource); return builder; - failed: - g_error("failed to find UI description file"); - g_object_unref(builder); - return NULL; } int |