[gnac/devel] Code refactoring
- From: BenoÃt Dupasquier <bdupasqu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnac/devel] Code refactoring
- Date: Sun, 23 Oct 2011 10:58:41 +0000 (UTC)
commit 2343787e7c03ea52920244395f3391a63c7ab71f
Author: BenoÃt Dupasquier <bdupasqu src gnome org>
Date: Sun Oct 23 11:37:59 2011 +0100
Code refactoring
src/gnac-main.c | 3 +-
src/gnac-prefs.c | 342 ++++++++++++++-----------------
src/gnac-properties.c | 37 +---
src/gnac-ui.c | 29 +--
src/gnac-utils.c | 24 ++-
src/gnac-utils.h | 9 +
src/profiles/gnac-profiles-manager.c | 145 +++++--------
src/profiles/gnac-profiles-properties.c | 105 ++++------
8 files changed, 299 insertions(+), 395 deletions(-)
---
diff --git a/src/gnac-main.c b/src/gnac-main.c
index da2ea1a..29ef7a8 100644
--- a/src/gnac-main.c
+++ b/src/gnac-main.c
@@ -56,7 +56,6 @@
static gboolean conversion_errors = FALSE;
static gboolean continue_files_action;
static gboolean quit_app = FALSE;
-static gboolean overwrite = FALSE;
static gboolean remember_overwrite = FALSE;
static GThread *file_action_thread = NULL;
static guint64 prev_time_left = -1;
@@ -435,6 +434,8 @@ gnac_on_converter_overwrite_cb(LibgnacConverter *converter,
GFileInfo *info;
GError *error = NULL;
+ static gboolean overwrite = FALSE;
+
uri = (GFile*) file;
info = g_file_query_info(uri,
G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME,
diff --git a/src/gnac-prefs.c b/src/gnac-prefs.c
index bec96de..afc9003 100644
--- a/src/gnac-prefs.c
+++ b/src/gnac-prefs.c
@@ -101,169 +101,163 @@ gnac_prefs_free_tooltip_patterns(void)
}
+static GtkWidget *
+gnac_prefs_get_widget(const gchar *widget_name)
+{
+ return GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder, widget_name));
+}
+
+
static const gchar *
-gnac_prefs_entry_get_text(const gchar *name)
+gnac_prefs_entry_get_text(const gchar *entry_name)
+{
+ GtkEntry *entry;
+ entry = GTK_ENTRY(gnac_prefs_get_widget(entry_name));
+ return gtk_entry_get_text(entry);
+}
+
+
+static void
+gnac_prefs_entry_set_text(const gchar *entry_name,
+ const gchar *text)
+{
+ GtkEntry *entry;
+ entry = GTK_ENTRY(gnac_prefs_get_widget(entry_name));
+ gtk_entry_set_text(entry, text);
+}
+
+
+static void
+gnac_prefs_set_widget_sensitive(const gchar *widget_name,
+ gboolean sensitive)
{
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder, name));
- return gtk_entry_get_text(GTK_ENTRY(widget));
+ widget = gnac_prefs_get_widget(widget_name);
+ gtk_widget_set_sensitive(widget, sensitive);
+}
+
+
+static void
+gnac_prefs_set_event_box_above_child(const gchar *box_name,
+ gboolean above_child)
+{
+ GtkEventBox *event_box;
+ event_box = GTK_EVENT_BOX(gnac_prefs_get_widget(box_name));
+ gtk_event_box_set_above_child(event_box, above_child);
+}
+
+
+static gint
+gnac_prefs_get_combo_box_active(const gchar *box_name)
+{
+ GtkComboBox *combo_box;
+ combo_box = GTK_COMBO_BOX(gnac_prefs_get_widget(box_name));
+ return gtk_combo_box_get_active(combo_box);
+}
+
+
+static void
+gnac_prefs_set_combo_box_active(const gchar *box_name,
+ gint index)
+{
+ GtkComboBox *combo_box;
+ combo_box = GTK_COMBO_BOX(gnac_prefs_get_widget(box_name));
+ return gtk_combo_box_set_active(combo_box, index);
}
+static void
+gnac_prefs_set_toggle_button_active(const gchar *button_name,
+ gboolean is_active)
+{
+ GtkToggleButton *button;
+ button = GTK_TOGGLE_BUTTON(gnac_prefs_get_widget(button_name));
+ gtk_toggle_button_set_active(button, is_active);
+}
+
static void
gnac_prefs_set_same_mode(void)
{
- GtkWidget *filechooserbutton;
- GtkWidget *subfolder_entry;
- GtkWidget *subfolder_eventbox;
- GtkWidget *subfolder_label;
- GtkWidget *selected_eventbox;
- GtkWidget *selected_label;
-
- filechooserbutton = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "filechooserbutton"));
- subfolder_entry = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_entry"));
- subfolder_eventbox = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_eventbox"));
- subfolder_label = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_label"));
- selected_eventbox = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "selected_eventbox"));
- selected_label = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "selected_label"));
-
- gtk_event_box_set_above_child(GTK_EVENT_BOX(subfolder_eventbox), TRUE);
- gtk_event_box_set_above_child(GTK_EVENT_BOX(selected_eventbox), TRUE);
- gtk_widget_set_sensitive(subfolder_entry, FALSE);
- gtk_widget_set_sensitive(filechooserbutton, FALSE);
- gtk_widget_set_sensitive(selected_label, FALSE);
- gtk_widget_set_sensitive(subfolder_label, FALSE);
+ gnac_prefs_set_event_box_above_child("selected_eventbox", TRUE);
+ gnac_prefs_set_event_box_above_child("subfolder_eventbox", TRUE);
+
+ gnac_prefs_set_widget_sensitive("filechooserbutton", FALSE);
+ gnac_prefs_set_widget_sensitive("subfolder_entry", FALSE);
+ gnac_prefs_set_widget_sensitive("subfolder_label", FALSE);
+ gnac_prefs_set_widget_sensitive("selected_label", FALSE);
}
static void
gnac_prefs_set_subfolder_mode(void)
{
- GtkWidget *filechooserbutton;
- GtkWidget *subfolder_entry;
- GtkWidget *subfolder_label;
- GtkWidget *selected_eventbox;
- GtkWidget *selected_label;
-
- filechooserbutton = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "filechooserbutton"));
- subfolder_entry = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_entry"));
- subfolder_label = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_label"));
- selected_eventbox = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "selected_eventbox"));
- selected_label = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "selected_label"));
-
- gtk_event_box_set_above_child(GTK_EVENT_BOX(selected_eventbox), TRUE);
- gtk_widget_set_sensitive(subfolder_entry, TRUE);
- gtk_widget_set_sensitive(filechooserbutton, FALSE);
- gtk_widget_set_sensitive(subfolder_label, TRUE);
- gtk_widget_set_sensitive(selected_label, FALSE);
+ gnac_prefs_set_event_box_above_child("selected_eventbox", TRUE);
+
+ gnac_prefs_set_widget_sensitive("filechooserbutton", FALSE);
+ gnac_prefs_set_widget_sensitive("subfolder_entry", TRUE);
+ gnac_prefs_set_widget_sensitive("subfolder_label", TRUE);
+ gnac_prefs_set_widget_sensitive("selected_label", FALSE);
}
static void
gnac_prefs_set_selected_mode(void)
{
- GtkWidget *filechooserbutton;
- GtkWidget *subfolder_entry;
- GtkWidget *subfolder_eventbox;
- GtkWidget *subfolder_label;
- GtkWidget *selected_label;
-
- filechooserbutton = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "filechooserbutton"));
- subfolder_entry = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_entry"));
- subfolder_eventbox = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_eventbox"));
- subfolder_label = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_label"));
- selected_label = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "selected_label"));
-
- gtk_event_box_set_above_child(GTK_EVENT_BOX(subfolder_eventbox), TRUE);
- gtk_widget_set_sensitive(subfolder_entry, FALSE);
- gtk_widget_set_sensitive(filechooserbutton, TRUE);
- gtk_widget_set_sensitive(subfolder_label, FALSE);
- gtk_widget_set_sensitive(selected_label, TRUE);
+ gnac_prefs_set_event_box_above_child("subfolder_eventbox", TRUE);
+
+ gnac_prefs_set_widget_sensitive("filechooserbutton", TRUE);
+ gnac_prefs_set_widget_sensitive("subfolder_entry", FALSE);
+ gnac_prefs_set_widget_sensitive("subfolder_label", FALSE);
+ gnac_prefs_set_widget_sensitive("selected_label", TRUE);
}
static void
gnac_prefs_retrieve_settings(void)
{
- gchar *str;
- GtkComboBox *combo;
- GtkEntry *entry;
- GtkToggleButton *check_button;
- GtkWidget *temp;
- gint folder_type;
+ gchar *str;
+ gint folder_type;
+ GtkWidget *temp;
/* output folder */
folder_type = g_settings_get_int(settings, GNAC_KEY_FOLDER_TYPE);
/* output filename combo */
- combo = GTK_COMBO_BOX(gtk_builder_get_object(gnac_prefs_builder,
- "output_filename_combo"));
- gtk_combo_box_set_active(combo,
- g_settings_get_int(settings, GNAC_KEY_RENAME_PATTERN));
+ gnac_prefs_set_combo_box_active("output_filename_combo",
+ g_settings_get_int(settings, GNAC_KEY_RENAME_PATTERN));
/* output filename entry */
str = gnac_prefs_get_rename_pattern_as_str();
- entry = GTK_ENTRY(gtk_builder_get_object(gnac_prefs_builder,
- "output_filename_entry"));
- gtk_entry_set_text(entry, str);
+ gnac_prefs_entry_set_text("output_filename_entry", str);
g_free(str);
/* folder hierarchy combo */
- combo = GTK_COMBO_BOX(gtk_builder_get_object(gnac_prefs_builder,
- "folder_hierarchy_combo"));
- gtk_combo_box_set_active(combo,
- g_settings_get_int(settings, GNAC_KEY_FOLDER_HIERARCHY));
+ gnac_prefs_set_combo_box_active("folder_hierarchy_combo",
+ g_settings_get_int(settings, GNAC_KEY_FOLDER_HIERARCHY));
/* folder hierarchy entry */
str = gnac_prefs_get_folder_hierarchy_as_str();
- entry = GTK_ENTRY(gtk_builder_get_object(gnac_prefs_builder,
- "folder_hierarchy_entry"));
- gtk_entry_set_text(entry, str);
+ gnac_prefs_entry_set_text("folder_hierarchy_entry", str);
g_free(str);
switch (folder_type)
{
case FOLDER_SUBDIRECTORY:
- check_button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(
- gnac_prefs_builder, "subfolder_radiobutton"));
- temp = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "subfolder_entry"));
str = g_settings_get_string(settings, GNAC_KEY_DESTINATION_DIRECTORY);
- gtk_entry_set_text(GTK_ENTRY(temp), str);
+ gnac_prefs_entry_set_text("subfolder_entry", str);
g_free(str);
- gtk_toggle_button_set_active(check_button, TRUE);
+ gnac_prefs_set_toggle_button_active("subfolder_radiobutton", TRUE);
gnac_prefs_set_subfolder_mode();
break;
case FOLDER_SELECTED:
- check_button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(
- gnac_prefs_builder, "selected_radiobutton"));
- temp = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "filechooserbutton"));
+ temp = gnac_prefs_get_widget("filechooserbutton");
str = g_settings_get_string(settings, GNAC_KEY_DESTINATION_DIRECTORY);
gtk_file_chooser_select_uri(GTK_FILE_CHOOSER(temp), str);
g_free(str);
- gtk_toggle_button_set_active(check_button, TRUE);
+ gnac_prefs_set_toggle_button_active("selected_radiobutton", TRUE);
gnac_prefs_set_selected_mode();
break;
/* Same as source */
case FOLDER_CURRENT:
default:
- check_button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(
- gnac_prefs_builder, "same_radiobutton"));
- gtk_toggle_button_set_active(check_button, TRUE);
+ gnac_prefs_set_toggle_button_active("same_radiobutton", TRUE);
gnac_prefs_set_same_mode();
break;
}
@@ -273,39 +267,24 @@ gnac_prefs_retrieve_settings(void)
GtkWidget *
gnac_prefs_window_new(void)
{
- GError *err = NULL;
GtkWidget *check_button;
GtkWidget *prefs_window;
- gnac_prefs_builder = gtk_builder_new();
+ gnac_prefs_builder = gnac_utils_create_gtk_builder(PKGDATADIR "/gnac-pref-window.xml");
- gtk_builder_add_from_file(gnac_prefs_builder,
- PKGDATADIR "/gnac-pref-window.xml", &err);
- if (err != NULL)
- {
- g_printerr("%s: %s\n", _("Unable to read file"), err->message);
- g_error_free(err);
- }
- g_assert(err == NULL && gnac_prefs_builder != NULL);
- gtk_builder_connect_signals(gnac_prefs_builder, NULL);
-
- prefs_window = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "gnac_preference_window"));
+ prefs_window = gnac_prefs_get_widget("gnac_preference_window");
/* Set the parent */
gtk_window_set_transient_for(GTK_WINDOW(prefs_window),
GTK_WINDOW(gnac_ui_get_widget("main_window")));
/* GSettings binding */
- check_button = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "check_notification_icon"));
+ check_button = gnac_prefs_get_widget("check_notification_icon");
g_settings_bind(settings_ui, GNAC_KEY_TRAY_ICON, check_button,
"active", G_SETTINGS_BIND_DEFAULT);
- check_button = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "erase_originals_checkbutton"));
+ check_button = gnac_prefs_get_widget("erase_originals_checkbutton");
g_settings_bind(settings, GNAC_KEY_CLEAR_SOURCE, check_button,
"active", G_SETTINGS_BIND_DEFAULT);
- check_button = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "strip_special_checkbutton"));
+ check_button = gnac_prefs_get_widget("strip_special_checkbutton");
g_settings_bind(settings, GNAC_KEY_STRIP_SPECIAL, check_button,
"active", G_SETTINGS_BIND_DEFAULT);
@@ -317,14 +296,14 @@ void
gnac_prefs_window_show(void)
{
GtkWidget *notebook;
- if (!gnac_prefs_window) {
+ if (G_UNLIKELY(!gnac_prefs_window)) {
gnac_prefs_window = gnac_prefs_window_new();
}
gnac_prefs_retrieve_settings();
/* always start with the general tab selected */
- notebook = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder, "notebook"));
+ notebook = gnac_prefs_get_widget("notebook");
gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0);
gtk_widget_show_all(gnac_prefs_window);
@@ -335,17 +314,11 @@ gnac_prefs_window_show(void)
static gchar *
gnac_prefs_get_rename_pattern_as_str(void)
{
- gint index;
- gint size;
- GtkComboBox *combo;
- combo = GTK_COMBO_BOX(gtk_builder_get_object(gnac_prefs_builder,
- "output_filename_combo"));
- index = gtk_combo_box_get_active(combo);
- size = G_N_ELEMENTS(rename_pattern_default);
- if (index < 0 || index > size)
- {
- index = 0;
- }
+ gint index = gnac_prefs_get_combo_box_active("output_filename_combo");
+ gint size = G_N_ELEMENTS(rename_pattern_default);
+
+ g_assert(index >= 0 && index <= size);
+
if (index == size)
{
return g_settings_get_string(settings, GNAC_KEY_RENAME_PATTERN_PATTERN);
@@ -357,17 +330,11 @@ gnac_prefs_get_rename_pattern_as_str(void)
static gchar *
gnac_prefs_get_folder_hierarchy_as_str(void)
{
- gint index;
- gint size;
- GtkComboBox *combo;
- combo = GTK_COMBO_BOX(gtk_builder_get_object(gnac_prefs_builder,
- "folder_hierarchy_combo"));
- index = gtk_combo_box_get_active(combo);
- size = G_N_ELEMENTS(folder_hierarchy_default);
- if (index < 0 || index > size)
- {
- index = 0;
- }
+ gint index = gnac_prefs_get_combo_box_active("folder_hierarchy_combo");
+ gint size = G_N_ELEMENTS(folder_hierarchy_default);
+
+ g_assert(index >= 0 && index <= size);
+
if (index == size)
{
return g_settings_get_string(settings, GNAC_KEY_FOLDER_HIERARCHY_PATTERN);
@@ -422,8 +389,7 @@ gnac_prefs_selected_radio_toggled(GtkWidget *widget,
{
gchar *uri;
GtkWidget *filechooserbutton;
- filechooserbutton = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "filechooserbutton"));
+ filechooserbutton = gnac_prefs_get_widget("filechooserbutton");
gnac_prefs_set_selected_mode();
gnac_settings_set_int(GNAC_KEY_FOLDER_TYPE, FOLDER_SELECTED);
uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(filechooserbutton));
@@ -438,8 +404,7 @@ gnac_prefs_selected_uri_changed(GtkWidget *widget,
{
gchar *uri;
GtkWidget *filechooserbutton;
- filechooserbutton = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "filechooserbutton"));
+ filechooserbutton = gnac_prefs_get_widget("filechooserbutton");
uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(filechooserbutton));
gnac_settings_set_string(GNAC_KEY_DESTINATION_DIRECTORY, uri);
g_free(uri);
@@ -457,11 +422,8 @@ gnac_prefs_update_example_label(GtkWidget *widget,
GtkWidget *combo;
GtkWidget *label;
- combo = GTK_WIDGET(gtk_builder_get_object(
- gnac_prefs_builder, "folder_hierarchy_combo"));
-
- label = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "example_label"));
+ combo = gnac_prefs_get_widget("folder_hierarchy_combo");
+ label = gnac_prefs_get_widget("example_label");
pattern_filename = gnac_prefs_entry_get_text("output_filename_entry");
if (pattern_filename && !g_str_equal(pattern_filename, ""))
@@ -510,8 +472,7 @@ gnac_prefs_button_press_event_cb(GtkWidget *widget,
GtkWidget *child;
GType widget_type;
- /* handle left clicks only */
- if (event->button != 1) return FALSE;
+ if (!gnac_utils_event_is_left_click(event)) return FALSE;
child = gtk_bin_get_child(GTK_BIN(user_data));
widget_type = G_OBJECT_TYPE(widget);
@@ -535,34 +496,40 @@ gnac_prefs_button_press_event_cb(GtkWidget *widget,
}
+static gboolean
+gnac_prefs_custom_pattern_is_selected(GtkComboBox *combo_box,
+ gint selected_index)
+{
+ gint size = gnac_utils_get_combo_size(combo_box);
+ return (selected_index == size-1);
+}
+
+
void
gnac_prefs_pattern_changed_cb(GtkWidget *widget,
gpointer data)
{
- gint size;
- gint active;
+ gint selected_index;
+ gboolean is_custom_pattern;
gchar *pattern;
GtkWidget *filename_entry;
- GtkWidget *filename_eventbox;
- active = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ selected_index = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+
gnac_prefs_update_example_label(widget, data);
- filename_entry = GTK_WIDGET(gtk_builder_get_object(
- gnac_prefs_builder, "output_filename_entry"));
- filename_eventbox = GTK_WIDGET(gtk_builder_get_object(
- gnac_prefs_builder, "output_filename_eventbox"));
+ filename_entry = gnac_prefs_get_widget("output_filename_entry");
- size = gnac_utils_get_combo_size(GTK_COMBO_BOX(widget));
- gtk_event_box_set_above_child(GTK_EVENT_BOX(filename_eventbox),
- (active != size-1));
- gtk_widget_set_sensitive(filename_entry, (active == size-1));
+ is_custom_pattern = gnac_prefs_custom_pattern_is_selected(
+ GTK_COMBO_BOX(widget), selected_index);
+ gnac_prefs_set_event_box_above_child("output_filename_eventbox", !is_custom_pattern);
+ gtk_widget_set_sensitive(filename_entry, is_custom_pattern);
pattern = gnac_prefs_get_rename_pattern_as_str();
gtk_entry_set_text(GTK_ENTRY(filename_entry), pattern);
- gnac_settings_set_int(GNAC_KEY_RENAME_PATTERN, active);
+ gnac_settings_set_int(GNAC_KEY_RENAME_PATTERN, selected_index);
gnac_settings_set_string(GNAC_KEY_RENAME_PATTERN_PATTERN, pattern);
g_free(pattern);
@@ -573,30 +540,26 @@ void
gnac_prefs_folder_hierarchy_changed_cb(GtkWidget *widget,
gpointer data)
{
- gint size;
- gint active;
+ gint selected_index;
+ gboolean is_custom_pattern;
gchar *pattern;
GtkWidget *folder_entry;
- GtkWidget *folder_eventbox;
- active = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ selected_index = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
gnac_prefs_update_example_label(widget, data);
- folder_entry = GTK_WIDGET(gtk_builder_get_object(
- gnac_prefs_builder, "folder_hierarchy_entry"));
- folder_eventbox = GTK_WIDGET(gtk_builder_get_object(
- gnac_prefs_builder, "folder_hierarchy_eventbox"));
+ folder_entry = gnac_prefs_get_widget("folder_hierarchy_entry");
- size = gnac_utils_get_combo_size(GTK_COMBO_BOX(widget));
- gtk_event_box_set_above_child(GTK_EVENT_BOX(folder_eventbox),
- (active != size-1));
- gtk_widget_set_sensitive(folder_entry, (active == size-1));
+ is_custom_pattern = gnac_prefs_custom_pattern_is_selected(
+ GTK_COMBO_BOX(widget), selected_index);
+ gnac_prefs_set_event_box_above_child("folder_hierarchy_eventbox", !is_custom_pattern);
+ gtk_widget_set_sensitive(folder_entry, is_custom_pattern);
pattern = gnac_prefs_get_folder_hierarchy_as_str();
gtk_entry_set_text(GTK_ENTRY(folder_entry), pattern);
- gnac_settings_set_int(GNAC_KEY_FOLDER_HIERARCHY, active);
+ gnac_settings_set_int(GNAC_KEY_FOLDER_HIERARCHY, selected_index);
gnac_settings_set_string(GNAC_KEY_FOLDER_HIERARCHY_PATTERN, pattern);
g_free(pattern);
@@ -639,8 +602,7 @@ gnac_prefs_destroy(void)
GtkWidget *window = NULL;
if (gnac_prefs_builder) {
- window = GTK_WIDGET(gtk_builder_get_object(gnac_prefs_builder,
- "gnac_preference_window"));
+ window = gnac_prefs_get_widget("gnac_preference_window");
if (window) gtk_widget_destroy(window);
g_object_unref(gnac_prefs_builder);
gnac_prefs_builder = NULL;
diff --git a/src/gnac-properties.c b/src/gnac-properties.c
index 61bf661..46be600 100644
--- a/src/gnac-properties.c
+++ b/src/gnac-properties.c
@@ -113,6 +113,11 @@ static const gchar *displayed_properties[][2] = {
static LibgnacTags *tags;
+static GtkWidget *
+gnac_properties_get_widget(const gchar *widget_name)
+{
+ return GTK_WIDGET(gtk_builder_get_object(gnac_properties_builder, widget_name));
+}
static gboolean
gnac_properties_visible_func(GtkTreeModel *model,
@@ -413,30 +418,15 @@ gnac_properties_get_property_from_value(const gchar *name,
GtkWidget *
gnac_properties_window_new(void)
{
- GError *err = NULL;
GtkWidget *properties_window;
- gnac_properties_builder = gtk_builder_new();
-
- gtk_builder_add_from_file(gnac_properties_builder,
- PKGDATADIR "/gnac-properties-window.xml", &err);
- if (err != NULL)
- {
- g_printerr("%s: %s\n", _("Unable to read file"), err->message);
- g_error_free (err);
- }
- g_assert (err == NULL && gnac_properties_builder != NULL);
-
- gtk_builder_connect_signals(gnac_properties_builder, NULL);
+ gnac_properties_builder = gnac_utils_create_gtk_builder(PKGDATADIR "/gnac-properties-window.xml");
gnac_properties_build_table();
- properties_window = GTK_WIDGET(gtk_builder_get_object(gnac_properties_builder,
- "properties_window"));
- backward_arrow = GTK_WIDGET(gtk_builder_get_object(gnac_properties_builder,
- "backward_btn"));
- forward_arrow = GTK_WIDGET(gtk_builder_get_object(gnac_properties_builder,
- "forward_btn"));
+ properties_window = gnac_properties_get_widget("properties_window");
+ backward_arrow = gnac_properties_get_widget("backward_btn");
+ forward_arrow = gnac_properties_get_widget("forward_btn");
gtk_window_set_transient_for(GTK_WINDOW(properties_window),
GTK_WINDOW(gnac_ui_get_widget("main_window")));
gtk_window_set_type_hint(GTK_WINDOW(properties_window), GDK_WINDOW_TYPE_HINT_DIALOG);
@@ -501,8 +491,7 @@ gnac_properties_reset_spin_if_empty(const gchar *name)
{
GtkWidget *spin = NULL;
- spin = GTK_WIDGET(gtk_builder_get_object(gnac_properties_builder,
- name));
+ spin = gnac_properties_get_widget(name);
if (gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)) == 0) {
gtk_entry_set_text(GTK_ENTRY(spin), "");
@@ -520,8 +509,7 @@ gnac_properties_window_show(void)
gnac_properties_window = gnac_properties_window_new();
}
- notebook = GTK_WIDGET(gtk_builder_get_object(gnac_properties_builder,
- "notebook1"));
+ notebook = gnac_properties_get_widget("notebook1");
properties_displayed = TRUE;
@@ -686,8 +674,7 @@ gnac_properties_destroy(void)
{
GtkWidget *window = NULL;
if (gnac_properties_builder) {
- window = GTK_WIDGET(gtk_builder_get_object(gnac_properties_builder,
- "properties_window"));
+ window = gnac_properties_get_widget("properties_window");
if (window) gtk_widget_destroy(window);
g_object_unref(gnac_properties_builder);
gnac_properties_builder = NULL;
diff --git a/src/gnac-ui.c b/src/gnac-ui.c
index 81ccec9..ab17b88 100644
--- a/src/gnac-ui.c
+++ b/src/gnac-ui.c
@@ -515,6 +515,15 @@ gnac_ui_on_filter_changed(GtkComboBox *combo,
}
+static gboolean
+gnac_ui_file_chooser_close_on_add_button_is_active(void)
+{
+ GtkToggleButton *button;
+ button = GTK_TOGGLE_BUTTON(gnac_ui_get_widget("close_on_add_button"));
+ return gtk_toggle_button_get_active(button);
+}
+
+
void
gnac_ui_file_chooser_response_cb(GtkDialog *dialog,
gint response,
@@ -523,8 +532,6 @@ gnac_ui_file_chooser_response_cb(GtkDialog *dialog,
GSList *list_path;
GSList *list_files = NULL;
- GtkWidget *close_on_add_button;
-
switch (response) {
/* Add button */
case GTK_RESPONSE_NONE:
@@ -539,10 +546,7 @@ gnac_ui_file_chooser_response_cb(GtkDialog *dialog,
gnac_add_files(list_files);
/* Do we have to close de file chooser? */
- close_on_add_button = gnac_ui_get_widget("close_on_add_button");
-
- if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(close_on_add_button)))
- return;
+ if (!gnac_ui_file_chooser_close_on_add_button_is_active()) return;
break;
@@ -583,19 +587,10 @@ gnac_ui_new(void)
gchar *current_profile;
GtkWidget *audio_profile_hbox;
GtkWidget *file_list;
- GError *err = NULL;
gnac_stock_items_init();
- gnac_main_builder = gtk_builder_new();
-
- gtk_builder_add_from_file(gnac_main_builder, PKGDATADIR "/gnac.xml", &err);
- if (err != NULL)
- {
- g_printerr("%s: %s\n", _("Unable to read file"), err->message);
- g_error_free (err);
- }
- g_assert (err == NULL && gnac_main_builder != NULL);
+ gnac_main_builder = gnac_utils_create_gtk_builder(PKGDATADIR "/gnac.xml");
gtk_window_set_default_icon_name(PACKAGE);
@@ -639,8 +634,6 @@ gnac_ui_new(void)
target_list,
n_targets,
GDK_ACTION_COPY);
-
- gtk_builder_connect_signals(gnac_main_builder, NULL);
}
diff --git a/src/gnac-utils.c b/src/gnac-utils.c
index 38269f5..a0a73c0 100644
--- a/src/gnac-utils.c
+++ b/src/gnac-utils.c
@@ -240,14 +240,14 @@ gnac_utils_event_is_single_click(GdkEventButton *event)
}
-static gboolean
+gboolean
gnac_utils_event_is_left_click(GdkEventButton *event)
{
return event->button == 1;
}
-static gboolean
+gboolean
gnac_utils_event_is_right_click(GdkEventButton *event)
{
return event->button == 3;
@@ -268,3 +268,23 @@ gnac_utils_event_is_single_right_click(GdkEventButton *event)
return gnac_utils_event_is_single_click(event) &&
gnac_utils_event_is_right_click(event);
}
+
+
+GtkBuilder *
+gnac_utils_create_gtk_builder(const gchar *filename)
+{
+ GError *error = NULL;
+ GtkBuilder *builder;
+ builder = gtk_builder_new();
+ gtk_builder_add_from_file(builder, filename, &error);
+ if (error) {
+ g_printerr("%s: %s\n", _("Unable to read file"), error->message);
+ g_error_free(error);
+ }
+
+ g_assert(error == NULL && builder);
+
+ gtk_builder_connect_signals(builder, NULL);
+
+ return builder;
+}
diff --git a/src/gnac-utils.h b/src/gnac-utils.h
index 74fcffc..86455a6 100644
--- a/src/gnac-utils.h
+++ b/src/gnac-utils.h
@@ -64,11 +64,20 @@ gboolean
gnac_utils_file_format_is_supported(const gchar *mime_type);
gboolean
+gnac_utils_event_is_left_click(GdkEventButton *event);
+
+gboolean
+gnac_utils_event_is_right_click(GdkEventButton *event);
+
+gboolean
gnac_utils_event_is_double_left_click(GdkEventButton *event);
gboolean
gnac_utils_event_is_single_right_click(GdkEventButton *event);
+GtkBuilder *
+gnac_utils_create_gtk_builder(const gchar *filename);
+
G_END_DECLS
#endif /* GNAC_UTILS_H */
diff --git a/src/profiles/gnac-profiles-manager.c b/src/profiles/gnac-profiles-manager.c
index abbc35f..0af953b 100644
--- a/src/profiles/gnac-profiles-manager.c
+++ b/src/profiles/gnac-profiles-manager.c
@@ -35,6 +35,7 @@
#include "gnac-main.h"
#include "gnac-profiles-default.h"
#include "gnac-profiles-manager.h"
+#include "gnac-utils.h"
#include "libgnac-debug.h"
/* Translators: Suffix added to a copied profile: 'profile (copy).xml' */
@@ -147,6 +148,25 @@ static void
gnac_profiles_mgr_on_treeselection_changed(void);
+static GtkWidget *
+gnac_profiles_mgr_get_widget(const gchar *widget_name)
+{
+ GtkWidget *widget;
+ widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder, widget_name));
+ return widget;
+}
+
+
+static void
+gnac_profiles_mgr_set_widget_sensitive(const gchar *widget_name,
+ gboolean sensitive)
+{
+ GtkWidget *widget;
+ widget = gnac_profiles_mgr_get_widget(widget_name);
+ gtk_widget_set_sensitive(widget, sensitive);
+}
+
+
void
gnac_profiles_mgr_init(StandardCallBack call_back)
{
@@ -155,21 +175,13 @@ gnac_profiles_mgr_init(StandardCallBack call_back)
GtkTreeView *view;
GtkTreeModel *model;
GtkWidget *widget;
- GError *error = NULL;
close_callback = call_back;
- profiles_mgr_builder = gtk_builder_new();
- gtk_builder_add_from_file(profiles_mgr_builder,
- PKGDATADIR "/profiles/gnac-profiles-manager.xml", &error);
- if (error) {
- libgnac_critical("%s", error->message);
- g_error_free(error);
- gnac_exit(EXIT_FAILURE);
- }
+ profiles_mgr_builder = gnac_utils_create_gtk_builder(
+ PKGDATADIR "/profiles/gnac-profiles-manager.xml");
- view = GTK_TREE_VIEW(gtk_builder_get_object(profiles_mgr_builder,
- "profile_treeview"));
+ view = GTK_TREE_VIEW(gnac_profiles_mgr_get_widget("profile_treeview"));
model = gtk_tree_view_get_model(view);
selection = gtk_tree_view_get_selection(view);
@@ -197,8 +209,7 @@ gnac_profiles_mgr_init(StandardCallBack call_back)
gtk_drag_source_set(GTK_WIDGET(view), GDK_BUTTON1_MASK, target_list,
n_targets, GDK_ACTION_COPY);
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "profile_manager_window"));
+ widget = gnac_profiles_mgr_get_widget("profile_manager_window");
gtk_window_set_modal(GTK_WINDOW(widget), TRUE);
gtk_window_set_type_hint(GTK_WINDOW(widget), GDK_WINDOW_TYPE_HINT_DIALOG);
@@ -208,8 +219,6 @@ gnac_profiles_mgr_init(StandardCallBack call_back)
gnac_profiles_mgr_display_status_message(NULL, NULL);
gnac_profiles_mgr_populate();
-
- gtk_builder_connect_signals(profiles_mgr_builder, NULL);
}
@@ -218,8 +227,7 @@ gnac_profiles_mgr_set_parent(GtkWidget *parent)
{
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "profile_manager_window"));
+ widget = gnac_profiles_mgr_get_widget("profile_manager_window");
gtk_window_set_transient_for(GTK_WINDOW(widget), GTK_WINDOW(parent));
gtk_window_set_position(GTK_WINDOW(widget), GTK_WIN_POS_CENTER_ON_PARENT);
@@ -506,8 +514,7 @@ gnac_profiles_mgr_get_profiles_list(void)
GtkTreeIter iter;
AudioProfileGeneric *profile;
- model = GTK_TREE_MODEL(gtk_builder_get_object(profiles_mgr_builder,
- "liststore"));
+ model = GTK_TREE_MODEL(gnac_profiles_mgr_get_widget("liststore"));
if (gtk_tree_model_get_iter_first(model, &iter)) {
do {
gtk_tree_model_get(model, &iter, COL_PROFILE, (gpointer*)&profile, -1);
@@ -526,8 +533,7 @@ gnac_profiles_mgr_destroy(void)
gnac_profiles_mgr_clear();
if (profiles_mgr_builder) {
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "profile_manager_window"));
+ widget = gnac_profiles_mgr_get_widget("profile_manager_window");
g_object_unref(profiles_mgr_builder);
gtk_widget_destroy(widget);
}
@@ -548,8 +554,7 @@ gnac_profiles_mgr_show(void)
first_show = FALSE;
}
- window = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "profile_manager_window"));
+ window = gnac_profiles_mgr_get_widget("profile_manager_window");
gtk_widget_show(window);
selected = gnac_profiles_mgr_get_selected_rows();
@@ -570,8 +575,7 @@ gnac_profiles_mgr_clear(void)
GtkTreeIter iter;
AudioProfileGeneric *profile;
- model = GTK_TREE_MODEL(gtk_builder_get_object(profiles_mgr_builder,
- "liststore"));
+ model = GTK_TREE_MODEL(gnac_profiles_mgr_get_widget("liststore"));
if (gtk_tree_model_get_iter_first(model, &iter)) {
do {
gtk_tree_model_get(model, &iter, COL_PROFILE, (gpointer*)&profile, -1);
@@ -591,8 +595,7 @@ gnac_profiles_mgr_insert(gpointer profile)
gchar *formatted_name;
generic = ((AudioProfileGeneric*) profile)->generic;
- model = GTK_LIST_STORE(gtk_builder_get_object(profiles_mgr_builder,
- "liststore"));
+ model = GTK_LIST_STORE(gnac_profiles_mgr_get_widget("liststore"));
formatted_name = gnac_profiles_properties_filter_text_for_displaying(
generic->name, MAX_NAME_DISPLAY_SIZE);
@@ -616,8 +619,7 @@ gnac_profiles_mgr_remove(GtkTreeRowReference *ref)
g_return_if_fail(ref);
- model = GTK_TREE_MODEL(gtk_builder_get_object(profiles_mgr_builder,
- "liststore"));
+ model = GTK_TREE_MODEL(gnac_profiles_mgr_get_widget("liststore"));
path = gtk_tree_row_reference_get_path(ref);
if (path) {
@@ -647,8 +649,7 @@ gnac_profiles_mgr_get(GtkTreeRowReference *ref,
g_return_if_fail(ref);
- model = GTK_TREE_MODEL(gtk_builder_get_object(profiles_mgr_builder,
- "liststore"));
+ model = GTK_TREE_MODEL(gnac_profiles_mgr_get_widget("liststore"));
path = gtk_tree_row_reference_get_path(ref);
if (path) {
@@ -672,8 +673,7 @@ gnac_profiles_mgr_set(GtkTreeRowReference *ref, ...)
g_return_if_fail(ref);
- list_store = GTK_LIST_STORE(gtk_builder_get_object(profiles_mgr_builder,
- "liststore"));
+ list_store = GTK_LIST_STORE(gnac_profiles_mgr_get_widget("liststore"));
path = gtk_tree_row_reference_get_path(ref);
if (path) {
@@ -700,10 +700,8 @@ gnac_profiles_mgr_get_selected_rows(void)
GList *next;
GList *next_temp;
- model = GTK_TREE_MODEL(gtk_builder_get_object(profiles_mgr_builder,
- "liststore"));
- view = GTK_TREE_VIEW(gtk_builder_get_object(profiles_mgr_builder,
- "profile_treeview"));
+ model = GTK_TREE_MODEL(gnac_profiles_mgr_get_widget("liststore"));
+ view = GTK_TREE_VIEW(gnac_profiles_mgr_get_widget("profile_treeview"));
selection = gtk_tree_view_get_selection(view);
/* Convert path to GtkTreeRowReference */
@@ -726,19 +724,9 @@ gnac_profiles_mgr_get_selected_rows(void)
static void
gnac_profiles_mgr_activate_buttons(gboolean activate)
{
- GtkWidget *widget;
-
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "copy_button"));
- gtk_widget_set_sensitive(widget, activate);
-
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "edit_button"));
- gtk_widget_set_sensitive(widget, activate);
-
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "delete_button"));
- gtk_widget_set_sensitive(widget, activate);
+ gnac_profiles_mgr_set_widget_sensitive("copy_button", activate);
+ gnac_profiles_mgr_set_widget_sensitive("edit_button", activate);
+ gnac_profiles_mgr_set_widget_sensitive("delete_button", activate);
}
@@ -747,8 +735,7 @@ gnac_profiles_mgr_show_description_frame(gboolean show)
{
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "frame-description"));
+ widget = gnac_profiles_mgr_get_widget("frame-description");
if (show) {
gtk_widget_show_all(widget);
@@ -763,8 +750,7 @@ gnac_profiles_mgr_show_import_progressbar(gboolean show)
{
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "frame-import"));
+ widget = gnac_profiles_mgr_get_widget("frame-import");
if (show) {
gtk_widget_show_all(widget);
@@ -777,23 +763,10 @@ gnac_profiles_mgr_show_import_progressbar(gboolean show)
static void
gnac_profiles_mgr_set_window_sensitive(gboolean sensitive)
{
- GtkWidget *widget;
-
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "frame-profiles-list"));
- gtk_widget_set_sensitive(widget, sensitive);
-
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "frame-description"));
- gtk_widget_set_sensitive(widget, sensitive);
-
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "frame-status"));
- gtk_widget_set_sensitive(widget, sensitive);
-
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "close_button"));
- gtk_widget_set_sensitive(widget, sensitive);
+ gnac_profiles_mgr_set_widget_sensitive("frame-profiles-list", sensitive);
+ gnac_profiles_mgr_set_widget_sensitive("frame-description", sensitive);
+ gnac_profiles_mgr_set_widget_sensitive("frame-status", sensitive);
+ gnac_profiles_mgr_set_widget_sensitive("close_button", sensitive);
}
@@ -802,8 +775,7 @@ gnac_profiles_mgr_set_progress_bar_fraction(gdouble fraction)
{
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "progressbar-import"));
+ widget = gnac_profiles_mgr_get_widget("progressbar-import");
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widget), fraction);
}
@@ -818,21 +790,16 @@ gnac_profiles_mgr_display_status_message(const gchar *ok,
GtkWidget *label_status_error;
GtkWidget *image_status_error;
- frame_status = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "frame-status"));
+ frame_status = gnac_profiles_mgr_get_widget("frame-status");
if ((ok == NULL) && (error == NULL)) {
gtk_widget_hide(frame_status);
} else {
gtk_widget_show_all(frame_status);
- label_status_ok = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "label-status-ok"));
- image_status_ok = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "image-status-ok"));
- label_status_error = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "label-status-error"));
- image_status_error = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "image-status-error"));
+ label_status_ok = gnac_profiles_mgr_get_widget("label-status-ok");
+ image_status_ok = gnac_profiles_mgr_get_widget("image-status-ok");
+ label_status_error = gnac_profiles_mgr_get_widget("label-status-error");
+ image_status_error = gnac_profiles_mgr_get_widget("image-status-error");
if (ok != NULL) {
gtk_label_set_markup(GTK_LABEL(label_status_ok), ok);
gtk_widget_show(label_status_ok);
@@ -1319,8 +1286,7 @@ gnac_profiles_mgr_on_remove(GtkWidget *widget,
GtkTreeView *view;
GtkTreeSelection *selection;
- view = GTK_TREE_VIEW(gtk_builder_get_object(profiles_mgr_builder,
- "profile_treeview"));
+ view = GTK_TREE_VIEW(gnac_profiles_mgr_get_widget("profile_treeview"));
selection = gtk_tree_view_get_selection(view);
gtk_tree_selection_select_iter(selection, &iter);
new_selected = TRUE;
@@ -1389,8 +1355,7 @@ gnac_profiles_mgr_on_treeselection_changed(void)
gnac_profiles_mgr_get((GtkTreeRowReference*)selected->data,
COL_PROFILE, (gpointer*) &profile);
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "label-description-content"));
+ widget = gnac_profiles_mgr_get_widget("label-description-content");
descr = gnac_profiles_properties_filter_text_for_displaying(
profile->generic->description, MAX_DESCR_DISPLAY_SIZE);
gtk_label_set_text(GTK_LABEL(widget), descr);
@@ -1411,8 +1376,7 @@ gnac_profiles_mgr_on_close(GtkWidget *widget,
{
GtkWidget *window;
- window = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "profile_manager_window"));
+ window = gnac_profiles_mgr_get_widget("profile_manager_window");
gtk_widget_hide(window);
close_callback(widget, data);
}
@@ -1455,8 +1419,7 @@ gnac_profiles_mgr_on_key_pressed(GtkWidget *widget,
switch (event->keyval)
{
case GDK_Escape:
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_mgr_builder,
- "close_button"));
+ widget = gnac_profiles_mgr_get_widget("close_button");
gtk_button_clicked(GTK_BUTTON(widget));
return TRUE;
diff --git a/src/profiles/gnac-profiles-properties.c b/src/profiles/gnac-profiles-properties.c
index b6e4653..6053215 100644
--- a/src/profiles/gnac-profiles-properties.c
+++ b/src/profiles/gnac-profiles-properties.c
@@ -44,6 +44,7 @@
#include "gnac-main.h"
#include "gnac-profiles-default.h"
#include "gnac-profiles-properties.h"
+#include "gnac-utils.h"
#include "libgnac-debug.h"
@@ -115,36 +116,31 @@ gnac_profiles_properties_name_description_set_text(const gchar *name,
static void
gnac_profiles_properties_reinit(void);
+static GtkWidget *
+gnac_profiles_properties_get_widget(const gchar *widget_name)
+{
+ return GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
+ widget_name));
+}
+
void
gnac_profiles_properties_init(void)
{
- GError *error = NULL;
GtkWidget *widget;
GtkWidget *combo_format;
GtkWidget *hbox_properties;
GtkCellRenderer *renderer_format;
- profiles_properties_builder = gtk_builder_new();
+ profiles_properties_builder = gnac_utils_create_gtk_builder(
+ PKGDATADIR "/profiles/gnac-profiles-properties.xml");
formats = g_hash_table_new(g_str_hash,g_str_equal);
saved_profiles_dir = g_build_filename(g_get_user_data_dir(),
"gnac", "profiles", NULL);
- if (!gtk_builder_add_from_file(profiles_properties_builder,
- PKGDATADIR "/profiles/gnac-profiles-properties.xml", &error))
- {
- libgnac_critical("%s", error->message);
- g_error_free(error);
- gnac_exit(EXIT_FAILURE);
- }
-
- hbox_properties = GTK_WIDGET(gtk_builder_get_object(
- profiles_properties_builder, "hbox_properties"));
-
- combo_format = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "format_combo_box"));
- gtk_builder_connect_signals(profiles_properties_builder, NULL);
+ hbox_properties = gnac_profiles_properties_get_widget("hbox_properties");
+ combo_format = gnac_profiles_properties_get_widget("format_combo_box");
renderer_format = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_format),
@@ -156,15 +152,12 @@ gnac_profiles_properties_init(void)
G_CALLBACK(gnac_profiles_properties_combo_format_on_changed),
hbox_properties);
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "window1"));
+ widget = gnac_profiles_properties_get_widget("window1");
gtk_window_set_type_hint(GTK_WINDOW(widget), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT (widget), "delete_event",
G_CALLBACK(gtk_widget_hide), NULL);
- gtk_builder_connect_signals(profiles_properties_builder, NULL);
-
gnac_profiles_properties_init_format();
gnac_profiles_properties_display_status_message(NULL);
@@ -178,8 +171,7 @@ gnac_profiles_properties_set_parent(GtkWidget *parent)
{
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "window1"));
+ widget = gnac_profiles_properties_get_widget("window1");
gtk_window_set_transient_for(GTK_WINDOW(widget), GTK_WINDOW(parent));
gtk_window_set_position(GTK_WINDOW(widget), GTK_WIN_POS_CENTER_ON_PARENT);
@@ -199,10 +191,8 @@ gnac_profiles_properties_init_format(void) {
gchar *format_name;
gint i;
- hbox_properties = GTK_WIDGET(gtk_builder_get_object(
- profiles_properties_builder, "hbox_properties"));
- format_combo_box = GTK_WIDGET(gtk_builder_get_object(
- profiles_properties_builder, "format_combo_box"));
+ hbox_properties = gnac_profiles_properties_get_widget("hbox_properties");
+ format_combo_box = gnac_profiles_properties_get_widget("format_combo_box");
model = GTK_LIST_STORE(gtk_combo_box_get_model(
GTK_COMBO_BOX(format_combo_box)));
@@ -244,10 +234,8 @@ gnac_profiles_properties_init_format(void) {
gtk_tree_path_free(tree_path);
if (format_module->funcs.set_pipeline_func != NULL) {
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "gstreamer_pipeline_text_view"));
- pipeline_box = GTK_WIDGET(gtk_builder_get_object(
- profiles_properties_builder, "gstreamer_pipeline_box"));
+ widget = gnac_profiles_properties_get_widget("gstreamer_pipeline_text_view");
+ pipeline_box = gnac_profiles_properties_get_widget("gstreamer_pipeline_box");
format_module->funcs.set_pipeline_func(GTK_TEXT_VIEW(widget),
pipeline_box);
}
@@ -276,8 +264,7 @@ gnac_profiles_properties_show(gpointer profile,
gnac_profiles_properties_reinit();
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "save-button"));
+ widget = gnac_profiles_properties_get_widget("save-button");
if (g_signal_handler_is_connected(G_OBJECT(widget), save_button_handler_id))
{
@@ -287,12 +274,10 @@ gnac_profiles_properties_show(gpointer profile,
save_button_handler_id = g_signal_connect(G_OBJECT(widget), "clicked",
G_CALLBACK(gnac_profiles_properties_on_save), call_back);
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "window1"));
+ widget = gnac_profiles_properties_get_widget("window1");
gtk_window_set_title(GTK_WINDOW(widget), title);
- format_combo_box = GTK_WIDGET(gtk_builder_get_object(
- profiles_properties_builder, "format_combo_box"));
+ format_combo_box = gnac_profiles_properties_get_widget("format_combo_box");
if (profile == NULL) {
gtk_widget_show(widget);
gtk_combo_box_set_active(GTK_COMBO_BOX(format_combo_box), 0);
@@ -363,8 +348,7 @@ gnac_profiles_properties_destroy(void)
formats = NULL;
g_free(saved_profiles_dir);
- window = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "window1"));
+ window = gnac_profiles_properties_get_widget("window1");
g_object_unref(G_OBJECT(profiles_properties_builder));
gtk_widget_destroy(window);
}
@@ -395,17 +379,14 @@ gnac_profiles_properties_combo_format_on_changed(GtkComboBox *widget,
gtk_widget_hide(properties);
}
- text_view = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "gstreamer_pipeline_text_view"));
+ text_view = gnac_profiles_properties_get_widget("gstreamer_pipeline_text_view");
gtk_text_view_set_editable(GTK_TEXT_VIEW(text_view), FALSE);
#ifndef GNOME_ENABLE_DEBUG
- text_view = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "gstreamer_pipeline_box"));
+ text_view = gnac_profiles_properties_get_widget("gstreamer_pipeline_box");
gtk_widget_hide(text_view);
#endif /* GNOME_ENABLE_DEBUG */
- label = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "format_decription_label"));
+ label = gnac_profiles_properties_get_widget("format_decription_label");
gtk_label_set_markup(GTK_LABEL(label),
format_module->funcs.get_description());
properties = format_module->funcs.get_widget(NULL);
@@ -422,8 +403,7 @@ gnac_profiles_properties_update_textbuffer(const gchar *pipeline)
GtkWidget *text_view;
GtkTextBuffer *pipeline_text_buffer;
- text_view = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "gstreamer_pipeline_text_view"));
+ text_view = gnac_profiles_properties_get_widget("gstreamer_pipeline_text_view");
pipeline_text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view));
gtk_text_buffer_set_text(pipeline_text_buffer, pipeline,
g_utf8_strlen(pipeline, -1));
@@ -435,13 +415,11 @@ gnac_profiles_properties_display_status_message(const gchar *error)
{
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "hbox-properties-status"));
+ widget = gnac_profiles_properties_get_widget("hbox-properties-status");
if (error != NULL) {
gtk_widget_show_all(widget);
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "label-properties-status-error"));
+ widget = gnac_profiles_properties_get_widget("label-properties-status-error");
gtk_label_set_text(GTK_LABEL(widget), error);
} else {
@@ -473,15 +451,13 @@ gnac_profiles_properties_name_description_set_text(const gchar *name,
GtkTextBuffer *text_buffer;
if (name != NULL) {
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "name_entry"));
+ widget = gnac_profiles_properties_get_widget("name_entry");
gtk_entry_set_text(GTK_ENTRY(widget), name);
current_profile_name = name;
}
if (description != NULL) {
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "profile_description_text_view"));
+ widget = gnac_profiles_properties_get_widget("profile_description_text_view");
text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));
gtk_text_buffer_set_text(GTK_TEXT_BUFFER(text_buffer), description,
g_utf8_strlen(description, -1));
@@ -503,8 +479,7 @@ gnac_profiles_properties_on_save(GtkWidget *widget,
AudioProfileGeneric *generic;
GError *error = NULL;
- window = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "window1"));
+ window = gnac_profiles_properties_get_widget("window1");
profile = current_format_module->funcs.generate_audio_profile(&error);
if (profile == NULL) {
@@ -516,8 +491,7 @@ gnac_profiles_properties_on_save(GtkWidget *widget,
GtkWidget *text_view;
GtkTextBuffer *pipeline_text_buffer;
- text_view = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "gstreamer_pipeline_text_view"));
+ text_view = gnac_profiles_properties_get_widget("gstreamer_pipeline_text_view");
pipeline_text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view));
generic = ((AudioProfileGeneric*) profile)->generic;
@@ -529,8 +503,7 @@ gnac_profiles_properties_on_save(GtkWidget *widget,
&start, &end, FALSE);
}
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "name_entry"));
+ widget = gnac_profiles_properties_get_widget("name_entry");
name = gtk_entry_get_text(GTK_ENTRY(widget));
if (!g_strcmp0(name, "")) {
@@ -553,8 +526,7 @@ gnac_profiles_properties_on_save(GtkWidget *widget,
gnac_profiles_properties_display_status_message(NULL);
generic->name = g_strdup(name);
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "profile_description_text_view"));
+ widget = gnac_profiles_properties_get_widget("profile_description_text_view");
text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));
gtk_text_buffer_get_start_iter(text_buffer, &start);
gtk_text_buffer_get_end_iter(text_buffer, &end);
@@ -579,8 +551,7 @@ gnac_profiles_properties_on_name_entry_key_pressed(GtkWidget *widget,
if (event->keyval == GDK_Return) {
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "save-button"));
+ widget = gnac_profiles_properties_get_widget("save-button");
gtk_button_clicked(GTK_BUTTON(widget));
return TRUE;
} else if (gnac_profiles_properties_is_valid_filename_char(event->keyval)) {
@@ -607,8 +578,7 @@ gnac_profiles_properties_on_window_key_pressed(GtkWidget *widget,
if (event->keyval == GDK_Escape) {
GtkWidget *widget;
- widget = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "cancel-button"));
+ widget = gnac_profiles_properties_get_widget("cancel-button");
gtk_button_clicked(GTK_BUTTON(widget));
return TRUE;
} else {
@@ -657,8 +627,7 @@ gnac_profiles_properties_on_cancel(GtkWidget *widget,
{
GtkWidget *window;
- window = GTK_WIDGET(gtk_builder_get_object(profiles_properties_builder,
- "window1"));
+ window = gnac_profiles_properties_get_widget("window1");
gtk_widget_hide(window);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]