Added xml loading failure safeguard
This commit is contained in:
parent
f11836cf4a
commit
abc541291e
|
@ -249,18 +249,26 @@ gm_preferences_dialog_init_logging() {
|
||||||
|
|
||||||
void
|
void
|
||||||
gm_preferences_dialog_run() {
|
gm_preferences_dialog_run() {
|
||||||
const gchar *alt_editor;
|
gchar const *alt_editor;
|
||||||
GmOptions *options = gm_app_options(gm_app_instance());
|
GmOptions *options = gm_app_options(gm_app_instance());
|
||||||
|
GladeXML *xml;
|
||||||
|
|
||||||
if (preferences != NULL) {
|
if (preferences != NULL) {
|
||||||
gtk_window_present(GTK_WINDOW(preferences->dialog));
|
gtk_window_present(GTK_WINDOW(preferences->dialog));
|
||||||
return;
|
return;
|
||||||
} else {
|
|
||||||
preferences = g_new0(GmPreferencesDialog, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
preferences->xml = glade_xml_new(GM_PREFERENCES_DIALOG_XML,
|
xml = glade_xml_new(GM_PREFERENCES_DIALOG_XML,
|
||||||
"gm_preferences_dialog", NULL);
|
"gm_preferences_dialog", NULL);
|
||||||
|
|
||||||
|
if (xml == NULL) {
|
||||||
|
gm_debug_msg(DEBUG_ALWAYS, "Couldn't find glade file %s!",
|
||||||
|
GM_PREFERENCES_DIALOG_XML);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
preferences = g_new0(GmPreferencesDialog, 1);
|
||||||
|
preferences->xml = xml;
|
||||||
preferences->dialog = gm_preferences_dialog_widget("gm_preferences_dialog");
|
preferences->dialog = gm_preferences_dialog_widget("gm_preferences_dialog");
|
||||||
|
|
||||||
gm_preferences_dialog_update_color_buttons(TRUE);
|
gm_preferences_dialog_update_color_buttons(TRUE);
|
||||||
|
|
|
@ -93,7 +93,7 @@ typedef struct _GmScriptsDialog {
|
||||||
|
|
||||||
static GmScriptsDialog *scripts_dialog = NULL;
|
static GmScriptsDialog *scripts_dialog = NULL;
|
||||||
|
|
||||||
#define G_SCRIPTS_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-scripts.glade"
|
#define GM_SCRIPTS_DIALOG_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-scripts.glade"
|
||||||
|
|
||||||
gboolean on_gm_scripts_dialog_delete(GtkWidget *widget, GdkEvent *event,
|
gboolean on_gm_scripts_dialog_delete(GtkWidget *widget, GdkEvent *event,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
@ -612,7 +612,15 @@ gm_scripts_dialog_run(GmAppView *view) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
scripts_dialog->xml = glade_xml_new(G_SCRIPTS_XML, "gm_scripts_dialog", NULL);
|
scripts_dialog->xml = glade_xml_new(GM_SCRIPTS_DIALOG_XML,
|
||||||
|
"gm_scripts_dialog", NULL);
|
||||||
|
|
||||||
|
if (scripts_dialog->xml == NULL) {
|
||||||
|
gm_debug_msg(DEBUG_ALWAYS, "Couldn't find glade file %s!",
|
||||||
|
GM_SCRIPTS_DIALOG_XML);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
scripts_dialog->dialog = glade_xml_get_widget(scripts_dialog->xml,
|
scripts_dialog->dialog = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
"gm_scripts_dialog");
|
"gm_scripts_dialog");
|
||||||
scripts_dialog->text_view_console = glade_xml_get_widget(scripts_dialog->xml,
|
scripts_dialog->text_view_console = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
|
|
@ -179,7 +179,7 @@ void on_button_remove_clicked(GtkButton *button, GmTriggersDialog *triggers);
|
||||||
void on_tree_view_event_types_changed(GtkTreeSelection *treeselection,
|
void on_tree_view_event_types_changed(GtkTreeSelection *treeselection,
|
||||||
GmTriggersDialog *triggers);
|
GmTriggersDialog *triggers);
|
||||||
|
|
||||||
#define G_TRIGGERS_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-triggers.glade"
|
#define GM_TRIGGERS_DIALOG_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-triggers.glade"
|
||||||
|
|
||||||
void
|
void
|
||||||
gm_triggers_dialog_create_models(GmTriggersDialog *triggers,
|
gm_triggers_dialog_create_models(GmTriggersDialog *triggers,
|
||||||
|
@ -449,11 +449,20 @@ gm_triggers_dialog_run_dialog(GmTriggersDialog *triggers) {
|
||||||
GmTrigger *
|
GmTrigger *
|
||||||
gm_triggers_dialog_run_priv(GmWorld *world, GmTrigger *trigger,
|
gm_triggers_dialog_run_priv(GmWorld *world, GmTrigger *trigger,
|
||||||
gboolean is_new) {
|
gboolean is_new) {
|
||||||
GmTriggersDialog *triggers = g_new0(GmTriggersDialog, 1);
|
GladeXML *xml = glade_xml_new(GM_TRIGGERS_DIALOG_XML, "gm_triggers_dialog",
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (xml == NULL) {
|
||||||
|
gm_debug_msg(DEBUG_ALWAYS, "Couldn't find glade file %s!",
|
||||||
|
GM_TRIGGERS_DIALOG_XML);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTriggersDialog *triggers = g_new0(GmTriggersDialog, 1);
|
||||||
triggers->is_new = is_new;
|
triggers->is_new = is_new;
|
||||||
triggers->world = world;
|
triggers->world = world;
|
||||||
triggers->xml = glade_xml_new(G_TRIGGERS_XML, "gm_triggers_dialog", NULL);
|
triggers->xml = xml;
|
||||||
|
|
||||||
triggers->dialog = glade_xml_get_widget(triggers->xml,
|
triggers->dialog = glade_xml_get_widget(triggers->xml,
|
||||||
"gm_triggers_dialog");
|
"gm_triggers_dialog");
|
||||||
triggers->entry_name = glade_xml_get_widget(triggers->xml, "entry_name");
|
triggers->entry_name = glade_xml_get_widget(triggers->xml, "entry_name");
|
||||||
|
|
|
@ -10,8 +10,9 @@
|
||||||
#include "gm-world.h"
|
#include "gm-world.h"
|
||||||
#include "gm-support.h"
|
#include "gm-support.h"
|
||||||
#include "gm-pixbuf.h"
|
#include "gm-pixbuf.h"
|
||||||
|
#include "gm-debug.h"
|
||||||
|
|
||||||
#define G_WORLD_INFO_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-world-info.glade"
|
#define GM_WORLD_INFO_DIALOG_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-world-info.glade"
|
||||||
|
|
||||||
gboolean on_gm_world_info_dialog_url_button_release(GtkWidget *button,
|
gboolean on_gm_world_info_dialog_url_button_release(GtkWidget *button,
|
||||||
GdkEventButton *event, gchar *link);
|
GdkEventButton *event, gchar *link);
|
||||||
|
@ -41,7 +42,14 @@ gm_world_info_dialog_new(GmWorldInfo const *world_info) {
|
||||||
GtkWidget *dlg, *widget;
|
GtkWidget *dlg, *widget;
|
||||||
gchar *tmp;
|
gchar *tmp;
|
||||||
|
|
||||||
xml = glade_xml_new(G_WORLD_INFO_XML, "gm_world_info_dialog", NULL);
|
xml = glade_xml_new(GM_WORLD_INFO_DIALOG_XML, "gm_world_info_dialog", NULL);
|
||||||
|
|
||||||
|
if (xml == NULL) {
|
||||||
|
gm_debug_msg(DEBUG_ALWAYS, "Couldn't find glade file %s!",
|
||||||
|
GM_WORLD_INFO_DIALOG_XML);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
dlg = glade_xml_get_widget(xml, "gm_world_info_dialog");
|
dlg = glade_xml_get_widget(xml, "gm_world_info_dialog");
|
||||||
|
|
||||||
if (world_info->name) {
|
if (world_info->name) {
|
||||||
|
|
|
@ -6,8 +6,9 @@
|
||||||
#include <glade/glade.h>
|
#include <glade/glade.h>
|
||||||
#include "gm-world.h"
|
#include "gm-world.h"
|
||||||
#include "gm-support.h"
|
#include "gm-support.h"
|
||||||
|
#include "gm-debug.h"
|
||||||
|
|
||||||
#define G_WORLD_LOGS_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-world-logs.glade"
|
#define GM_WORLD_LOGS_DIALOG_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-world-logs.glade"
|
||||||
|
|
||||||
void
|
void
|
||||||
on_gm_world_logs_dialog_row_activated(GtkTreeView *treeview, GtkTreePath *arg1,
|
on_gm_world_logs_dialog_row_activated(GtkTreeView *treeview, GtkTreePath *arg1,
|
||||||
|
@ -86,7 +87,7 @@ gm_world_logs_dialog_fill(GmWorld *world, GtkTreeView *view,
|
||||||
|
|
||||||
GtkDialog *
|
GtkDialog *
|
||||||
gm_world_logs_dialog_new(GmWorld *world, GtkTreeView **view) {
|
gm_world_logs_dialog_new(GmWorld *world, GtkTreeView **view) {
|
||||||
GladeXML *xml = glade_xml_new(G_WORLD_LOGS_XML, "gm_world_logs_dialog", NULL);
|
GladeXML *xml;
|
||||||
GtkDialog *dlg;
|
GtkDialog *dlg;
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
gint res;
|
gint res;
|
||||||
|
@ -94,6 +95,14 @@ gm_world_logs_dialog_new(GmWorld *world, GtkTreeView **view) {
|
||||||
GtkTreeModel *model, *smodel;
|
GtkTreeModel *model, *smodel;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
xml = glade_xml_new(GM_WORLD_LOGS_DIALOG_XML, "gm_world_logs_dialog", NULL);
|
||||||
|
|
||||||
|
if (xml == NULL) {
|
||||||
|
gm_debug_msg(DEBUG_ALWAYS, "Couldn't find glade file %s!",
|
||||||
|
GM_WORLD_LOGS_DIALOG_XML);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
dlg = GTK_DIALOG(glade_xml_get_widget(xml, "gm_world_logs_dialog"));
|
dlg = GTK_DIALOG(glade_xml_get_widget(xml, "gm_world_logs_dialog"));
|
||||||
*view = GTK_TREE_VIEW(glade_xml_get_widget(xml, "tree_view_files"));
|
*view = GTK_TREE_VIEW(glade_xml_get_widget(xml, "tree_view_files"));
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
#include <gdk/gdkkeysyms.h>
|
#include <gdk/gdkkeysyms.h>
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
#include <glade/glade.h>
|
||||||
|
|
||||||
#include "gm-world-properties-dialog.h"
|
#include "gm-world-properties-dialog.h"
|
||||||
#include "gm-triggers-dialog.h"
|
#include "gm-triggers-dialog.h"
|
||||||
|
@ -320,7 +321,7 @@ gm_world_properties_dialog_initialize(GmWorldPropertiesDialog *properties) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define G_WORLD_PROPERTIES_DIALOG_XML PACKAGE_DATA_DIR "/" PACKAGE \
|
#define GM_WORLD_PROPERTIES_DIALOG_XML PACKAGE_DATA_DIR "/" PACKAGE \
|
||||||
"/ui/gm-world-properties.glade"
|
"/ui/gm-world-properties.glade"
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -328,6 +329,7 @@ gm_world_properties_dialog_run_priv(GmWorld *world, gboolean is_new) {
|
||||||
GmWorldPropertiesDialog *properties =
|
GmWorldPropertiesDialog *properties =
|
||||||
gm_world_properties_dialog_find(world);
|
gm_world_properties_dialog_find(world);
|
||||||
gchar *title;
|
gchar *title;
|
||||||
|
GladeXML *xml;
|
||||||
|
|
||||||
if (properties) {
|
if (properties) {
|
||||||
gtk_widget_show(properties->dialog);
|
gtk_widget_show(properties->dialog);
|
||||||
|
@ -335,14 +337,22 @@ gm_world_properties_dialog_run_priv(GmWorld *world, gboolean is_new) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xml = glade_xml_new(GM_WORLD_PROPERTIES_DIALOG_XML,
|
||||||
|
"gm_world_properties_dialog", NULL);
|
||||||
|
|
||||||
|
if (xml == NULL) {
|
||||||
|
gm_debug_msg(DEBUG_ALWAYS, "Couldn't find glade file %s!",
|
||||||
|
GM_WORLD_PROPERTIES_DIALOG_XML);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
properties = g_new0(GmWorldPropertiesDialog, 1);
|
properties = g_new0(GmWorldPropertiesDialog, 1);
|
||||||
gm_world_properties_dialog_open = g_list_append(
|
gm_world_properties_dialog_open = g_list_append(
|
||||||
gm_world_properties_dialog_open, properties);
|
gm_world_properties_dialog_open, properties);
|
||||||
|
|
||||||
properties->is_new = is_new;
|
properties->is_new = is_new;
|
||||||
properties->world = world;
|
properties->world = world;
|
||||||
properties->xml = glade_xml_new(G_WORLD_PROPERTIES_DIALOG_XML,
|
properties->xml = xml;
|
||||||
"gm_world_properties_dialog", NULL);
|
|
||||||
|
|
||||||
title = g_strconcat(_("World properties - "), gm_world_name(world), NULL);
|
title = g_strconcat(_("World properties - "), gm_world_name(world), NULL);
|
||||||
properties->dialog = gm_world_properties_dialog_widget(properties,
|
properties->dialog = gm_world_properties_dialog_widget(properties,
|
||||||
|
|
Reference in New Issue