Added xml loading failure safeguard

This commit is contained in:
Jesse van den Kieboom 2006-03-29 12:09:47 +00:00
parent f11836cf4a
commit abc541291e
6 changed files with 69 additions and 17 deletions

View File

@ -249,20 +249,28 @@ gm_preferences_dialog_init_logging() {
void
gm_preferences_dialog_run() {
const gchar *alt_editor;
gchar const *alt_editor;
GmOptions *options = gm_app_options(gm_app_instance());
GladeXML *xml;
if (preferences != NULL) {
gtk_window_present(GTK_WINDOW(preferences->dialog));
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);
preferences->dialog = gm_preferences_dialog_widget("gm_preferences_dialog");
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");
gm_preferences_dialog_update_color_buttons(TRUE);
gm_preferences_dialog_init_combo_box_scheme();
gm_preferences_dialog_init_logging();

View File

@ -93,7 +93,7 @@ typedef struct _GmScriptsDialog {
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,
gpointer user_data);
@ -612,7 +612,15 @@ gm_scripts_dialog_run(GmAppView *view) {
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,
"gm_scripts_dialog");
scripts_dialog->text_view_console = glade_xml_get_widget(scripts_dialog->xml,

View File

@ -179,7 +179,7 @@ void on_button_remove_clicked(GtkButton *button, GmTriggersDialog *triggers);
void on_tree_view_event_types_changed(GtkTreeSelection *treeselection,
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
gm_triggers_dialog_create_models(GmTriggersDialog *triggers,
@ -449,11 +449,20 @@ gm_triggers_dialog_run_dialog(GmTriggersDialog *triggers) {
GmTrigger *
gm_triggers_dialog_run_priv(GmWorld *world, GmTrigger *trigger,
gboolean is_new) {
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->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,
"gm_triggers_dialog");
triggers->entry_name = glade_xml_get_widget(triggers->xml, "entry_name");

View File

@ -10,8 +10,9 @@
#include "gm-world.h"
#include "gm-support.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,
GdkEventButton *event, gchar *link);
@ -41,7 +42,14 @@ gm_world_info_dialog_new(GmWorldInfo const *world_info) {
GtkWidget *dlg, *widget;
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");
if (world_info->name) {

View File

@ -6,8 +6,9 @@
#include <glade/glade.h>
#include "gm-world.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
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 *
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;
GError *err = NULL;
gint res;
@ -94,6 +95,14 @@ gm_world_logs_dialog_new(GmWorld *world, GtkTreeView **view) {
GtkTreeModel *model, *smodel;
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"));
*view = GTK_TREE_VIEW(glade_xml_get_widget(xml, "tree_view_files"));

View File

@ -11,6 +11,7 @@
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <glade/glade.h>
#include "gm-world-properties-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"
void
@ -328,6 +329,7 @@ gm_world_properties_dialog_run_priv(GmWorld *world, gboolean is_new) {
GmWorldPropertiesDialog *properties =
gm_world_properties_dialog_find(world);
gchar *title;
GladeXML *xml;
if (properties) {
gtk_widget_show(properties->dialog);
@ -335,14 +337,22 @@ gm_world_properties_dialog_run_priv(GmWorld *world, gboolean is_new) {
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);
gm_world_properties_dialog_open = g_list_append(
gm_world_properties_dialog_open, properties);
properties->is_new = is_new;
properties->world = world;
properties->xml = glade_xml_new(G_WORLD_PROPERTIES_DIALOG_XML,
"gm_world_properties_dialog", NULL);
properties->xml = xml;
title = g_strconcat(_("World properties - "), gm_world_name(world), NULL);
properties->dialog = gm_world_properties_dialog_widget(properties,