Skip to content

Commit

Permalink
Add gtkcompat wrapper for gtk_builder_add_from_resource
Browse files Browse the repository at this point in the history
  • Loading branch information
codebrainz committed Dec 3, 2017
1 parent e64ef78 commit 6e2a51f
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 19 deletions.
20 changes: 20 additions & 0 deletions src/gtkcompat.h
Expand Up @@ -98,6 +98,26 @@ G_BEGIN_DECLS
#endif


#if !GTK_CHECK_VERSION(3, 4, 0)
static inline guint gtkcompat_builder_add_from_resource(GtkBuilder *builder,
const gchar *resource_path, GError **error)
{
GBytes *bytes = g_resources_lookup_data(resource_path,
G_RESOURCE_LOOKUP_FLAGS_NONE, error);
if (bytes == NULL)
return 0;
gsize data_len = 0;
gconstpointer data = g_bytes_get_data(bytes, &data_len);
g_assert(data_len > 0);
g_assert(data != NULL);
guint id = gtk_builder_add_from_string(builder, data, data_len, error);
g_bytes_unref(bytes);
return id;
}
#define gtk_builder_add_from_resource gtkcompat_builder_add_from_resource
#endif


G_END_DECLS

#endif /* GTK_COMPAT_H */
21 changes: 2 additions & 19 deletions src/ui_utils.c
Expand Up @@ -2441,33 +2441,16 @@ void ui_init_builder(void)
gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE);

error = NULL;
ui_data = g_resource_lookup_data(geany_get_resource(),
"/org/geany/Geany/geany.glade", G_RESOURCE_LOOKUP_FLAGS_NONE, &error);
if (ui_data == NULL)
if (gtk_builder_add_from_resource(builder, "/org/geany/Geany/geany.glade", &error) == 0)
{
dialogs_show_msgbox_with_secondary(GTK_MESSAGE_ERROR,
_("Geany cannot start!"), error->message);
g_error("Cannot load user-interface: %s", error->message);
g_error(_("Cannot load user-interface: %s"), error->message);
g_error_free(error);
g_object_unref(builder);
return;
}

error = NULL;
if (gtk_builder_add_from_string(builder, g_bytes_get_data(ui_data, NULL),
g_bytes_get_size(ui_data), &error) == 0)
{
dialogs_show_msgbox_with_secondary(GTK_MESSAGE_ERROR,
_("Geany cannot start!"), error->message);
g_error("Cannot create user-interface: %s", error->message);
g_error_free(error);
g_bytes_unref(ui_data);
g_object_unref(builder);
return;
}

g_bytes_unref(ui_data);

callbacks_connect(builder);

edit_menu1 = GTK_WIDGET(gtk_builder_get_object(builder, "edit_menu1"));
Expand Down

0 comments on commit 6e2a51f

Please sign in to comment.