[nautilus-sound-converter] Set pointers to NULL if gtkbuilder file is not found, and use better variable names.
- From: Brian Pepple <bpepple src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-sound-converter] Set pointers to NULL if gtkbuilder file is not found, and use better variable names.
- Date: Sat, 20 Nov 2010 21:49:13 +0000 (UTC)
commit e4773e600696236c58bc2226574841aa2e7b4209
Author: Brian Pepple <bpepple fedoraproject org>
Date: Sat Nov 20 16:51:03 2010 -0500
Set pointers to NULL if gtkbuilder file is not found, and use better variable names.
src/nsc-converter.c | 37 ++++++++++++++++---------------
src/nsc-xml.c | 58 +++++++++++++++++++++++++-------------------------
src/nsc-xml.h | 7 +++--
3 files changed, 52 insertions(+), 50 deletions(-)
---
diff --git a/src/nsc-converter.c b/src/nsc-converter.c
index be1b08d..d5bfdf9 100644
--- a/src/nsc-converter.c
+++ b/src/nsc-converter.c
@@ -225,19 +225,22 @@ static void
create_progress_dialog (NscConverter *converter)
{
NscConverterPrivate *priv;
+ GtkBuilder *gui;
GtkWidget *button;
priv = NSC_CONVERTER_GET_PRIVATE (converter);
/* Create the gtkbuilder, and grab the widgets */
- nsc_xml_get_file ("progress.ui",
- "progress_dialog", &priv->progress_dlg,
- "file_progressbar", &priv->progressbar,
- "speed_progressbar", &priv->speedbar,
- "cancel_button", &button,
- NULL);
-
- /* Connect the signal for the cancel button */
+ gui = nsc_builder_get_file ("progress.ui",
+ "progress_dialog", &priv->progress_dlg,
+ "file_progressbar", &priv->progressbar,
+ "speed_progressbar", &priv->speedbar,
+ "cancel_button", &button,
+ NULL);
+
+ g_object_unref (gui);
+
+ /* Connect the signal for the cancel button */
g_signal_connect (G_OBJECT (button), "clicked",
(GCallback) progress_cancel_cb,
converter);
@@ -647,22 +650,20 @@ static void
create_main_dialog (NscConverter *converter)
{
NscConverterPrivate *priv;
+ GtkBuilder *gui;
GtkWidget *hbox, *edit, *image;
const gchar *profile_id;
- gboolean result;
priv = NSC_CONVERTER_GET_PRIVATE (converter);
/* Create the gtkbuilder and grab some widgets */
- result = nsc_xml_get_file ("main.ui",
- "main_dialog", &priv->dialog,
- "path_chooser", &priv->path_chooser,
- "format_hbox", &hbox,
- NULL);
-
- if (!result) {
- return;
- }
+ gui = nsc_builder_get_file ("main.ui",
+ "main_dialog", &priv->dialog,
+ "path_chooser", &priv->path_chooser,
+ "format_hbox", &hbox,
+ NULL);
+
+ g_object_unref (gui);
/*
* Set the source directory if the user wants
diff --git a/src/nsc-xml.c b/src/nsc-xml.c
index eda264a..ac20d1f 100644
--- a/src/nsc-xml.c
+++ b/src/nsc-xml.c
@@ -28,63 +28,63 @@
static GtkBuilder *
xml_get_file (const gchar *filename,
- const gchar *first_widget,
+ const gchar *first_object,
va_list args)
{
- GObject **pointer;
- GtkBuilder *ui = NULL;
+ GtkBuilder *gui = NULL;
const char *name;
gchar *path;
+ GObject **object_ptr;
GError *err = NULL;
/* Create the gtkbuilder */
- ui = gtk_builder_new ();
- gtk_builder_set_translation_domain (ui, GETTEXT_PACKAGE);
+ gui = gtk_builder_new ();
+ gtk_builder_set_translation_domain (gui, GETTEXT_PACKAGE);
path = g_build_filename (DATADIR, PACKAGE, filename, NULL);
/* Load the xml file */
- if (gtk_builder_add_from_file (ui, path, &err) == 0) {
- g_warning ("XML file error: %s", err->message);
- g_error_free (err);
+ if (!gtk_builder_add_from_file (gui, path, &err)) {
+ g_critical ("XML file error: %s", err->message);
+ g_clear_error (&err);
g_free (path);
+ g_object_unref (gui);
+
+ /* we need to iterate and set all of the pointers to NULL */
+ for (name = first_object; name; name = va_arg (args, const gchar *)) {
+ object_ptr = va_arg (args, GObject**);
+
+ *object_ptr = NULL;
+ }
return NULL;
}
g_free (path);
/* Grab the widgets */
- for (name = first_widget; name; name = va_arg (args, char *)) {
- pointer = va_arg (args, void *);
+ for (name = first_object; name; name = va_arg (args, const gchar *)) {
+ object_ptr = va_arg (args, GObject**);
- *pointer = gtk_builder_get_object (ui, name);
+ *object_ptr = gtk_builder_get_object (gui, name);
- if (!*pointer) {
+ if (!*object_ptr) {
g_warning ("Widget '%s' at '%s' is missing.",
name, filename);
continue;
}
}
- return ui;
+ return gui;
}
-gboolean
-nsc_xml_get_file (const gchar *filename,
- const gchar *first_widget,
- ...)
+GtkBuilder *
+nsc_builder_get_file (const gchar *filename,
+ const gchar *first_object,
+ ...)
{
- GtkBuilder *ui;
+ GtkBuilder *gui;
va_list args;
- va_start (args, first_widget);
-
- ui = xml_get_file (filename, first_widget, args);
-
+ va_start (args, first_object);
+ gui = xml_get_file (filename, first_object, args);
va_end (args);
- if (!ui) {
- return FALSE;
- }
-
- g_object_unref (ui);
-
- return TRUE;
+ return gui;
}
diff --git a/src/nsc-xml.h b/src/nsc-xml.h
index c3bc24e..a43b1a0 100644
--- a/src/nsc-xml.h
+++ b/src/nsc-xml.h
@@ -23,10 +23,11 @@
#define __NSC_XML_H__
#include <glib/gtypes.h>
+#include <gtk/gtk.h>
-gboolean nsc_xml_get_file (const gchar *filename,
- const gchar *first_widget,
- ...);
+GtkBuilder *nsc_builder_get_file (const gchar *filename,
+ const gchar *first_widget,
+ ...);
#endif /* __NSC_XML_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]