commit afc2179643c98b67cea36701e39d026ff9c66061
Author: phantomjinx <[email protected]>
Date: Fri Dec 24 22:20:25 2010 +0000
Core Preferences fixes
* plugin.c
* Create proper destroy function for dialogs etc ...
* core_prefs.c
* Reformat source file in line with other source files
* Instead of destroying the dialogs, hide them so that they can be reopened
* core_prefs.xml
* Destroy the dialog when the parent preference notebook is destroyed
* Connect gtk_widget_hide_on_delete to delete event of each dialog so that
clicking the cross on the dialog hides it rather than destroys it.
plugins/core_preferences/core_prefs.c | 797 ++++++++++++++-----------------
plugins/core_preferences/core_prefs.h | 1 +
plugins/core_preferences/core_prefs.xml | 16 +
plugins/core_preferences/plugin.c | 2 +-
4 files changed, 378 insertions(+), 438 deletions(-)
---
diff --git a/plugins/core_preferences/core_prefs.c
b/plugins/core_preferences/core_prefs.c
index 0cc6bd9..b12febd 100644
--- a/plugins/core_preferences/core_prefs.c
+++ b/plugins/core_preferences/core_prefs.c
@@ -39,10 +39,9 @@
static gchar *builder_path = NULL;
static GtkWidget *notebook = NULL;
/*
- Begin types
-*/
-typedef struct _ind_string
-{
+ Begin types
+ */
+typedef struct _ind_string {
gint index;
const gchar *string;
} ind_string;
@@ -51,85 +50,83 @@ typedef struct _ind_string
#define COUNTOF(x) (sizeof(x) / sizeof((x)[0]))
/*
- Begin data
+ Begin data
- 0: checkbox glade ID
- 1: preference
- 2: dependency glade IDs, comma-separated
-*/
-const gchar *checkbox_map[][3] = {
+ 0: checkbox glade ID
+ 1: preference
+ 2: dependency glade IDs, comma-separated
+ */
+const gchar *checkbox_map[][3] =
+ {
/* Music tab */
- { "background_transfer", "file_convert_background_transfer", NULL },
- { "add_subfolders", "add_recursively", NULL },
- { "allow_duplicates", "!sha1", NULL },
- { "delete_missing", "sync_delete_tracks", NULL },
- { "update_existing_track", "update_existing", NULL },
- { "include_neverplayed", "not_played_track", NULL },
+ { "background_transfer", "file_convert_background_transfer", NULL },
+ { "add_subfolders", "add_recursively", NULL },
+ { "allow_duplicates", "!sha1", NULL },
+ { "delete_missing", "sync_delete_tracks", NULL },
+ { "update_existing_track", "update_existing", NULL },
+ { "include_neverplayed", "not_played_track", NULL },
/* Metadata tab */
- { "read_tags", "readtags", NULL },
- { "parse_filename_tags", "parsetags", "customize_tags" },
- { "last_resort_tags", NULL,
"tag_title,tag_artist,tag_album,tag_composer,tag_genre" },
- { "write_tags", "id3_write", "tag_encoding,write_tags_legacy" },
- { "write_tags_legacy", "!id3_write_id3v24", NULL },
- { "mass_modify_tags", "multi_edit", NULL },
- { "read_coverart", "coverart_apic", NULL },
- { "template_coverart", "coverart_file", "customize_coverart" },
- { "generate_video_thumbnails", "video_thumbnailer",
"customize_video_thumbnailer" },
+ { "read_tags", "readtags", NULL },
+ { "parse_filename_tags", "parsetags", "customize_tags" },
+ { "last_resort_tags", NULL,
"tag_title,tag_artist,tag_album,tag_composer,tag_genre" },
+ { "write_tags", "id3_write", "tag_encoding,write_tags_legacy" },
+ { "write_tags_legacy", "!id3_write_id3v24", NULL },
+ { "mass_modify_tags", "multi_edit", NULL },
+ { "read_coverart", "coverart_apic", NULL },
+ { "template_coverart", "coverart_file", "customize_coverart" },
+ { "generate_video_thumbnails", "video_thumbnailer",
"customize_video_thumbnailer" },
/* Feedback tab */
- { "confirm_del_tracks", NULL,
"confirm_from_ipod,confirm_from_hdd,confirm_from_db" },
- { "confirm_from_ipod", "delete_ipod", NULL },
- { "confirm_from_hdd", "delete_local_file", NULL },
- { "confirm_from_db", "delete_database", NULL },
- { "confirm_del_pl", "delete_file", NULL },
- { "confirm_del_sync", "sync_confirm_delete", NULL },
- { "msg_startup", "startup_messages", NULL },
- { "msg_duplicates", "show_duplicates", NULL },
- { "msg_results", "sync_show_summary", NULL },
- { "msg_updated", "show_updated", NULL },
- { "msg_unupdated", "show_non_updated", NULL },
-};
-
-const gchar *conv_checkbox_map[][3] = {
- { "convert_ogg", "convert_ogg", NULL },
- { "convert_flac", "convert_flac", NULL },
- { "convert_mp3", "convert_mp3", NULL },
- { "convert_aac", "convert_m4a", NULL },
- { "convert_wav", "convert_wav", NULL },
- { "convert_mp4", "convert_mp4", NULL },
- { "display_conversion_log", "", NULL },
-};
-
-ind_string tag_checkbox_map[] = {
- { 0, "tag_title" },
- { 1, "tag_artist" },
- { 2, "tag_album" },
- { 3, "tag_genre" },
- { 4, "tag_composer" },
-};
-
-const gchar *conv_scripts[] = {
- "convert-2mp3.sh",
- "convert-2m4a.sh",
-};
-
-ind_string conv_paths[] = {
- { -1, "path_conv_ogg" },
- { -1, "path_conv_flac" },
- { TARGET_FORMAT_AAC, "path_conv_m4a" },
- { TARGET_FORMAT_MP3, "path_conv_mp3" },
- { -1, "path_conv_wav" },
- { -1, "path_conv_mp4" }
-};
+ { "confirm_del_tracks", NULL,
"confirm_from_ipod,confirm_from_hdd,confirm_from_db" },
+ { "confirm_from_ipod", "delete_ipod", NULL },
+ { "confirm_from_hdd", "delete_local_file", NULL },
+ { "confirm_from_db", "delete_database", NULL },
+ { "confirm_del_pl", "delete_file", NULL },
+ { "confirm_del_sync", "sync_confirm_delete", NULL },
+ { "msg_startup", "startup_messages", NULL },
+ { "msg_duplicates", "show_duplicates", NULL },
+ { "msg_results", "sync_show_summary", NULL },
+ { "msg_updated", "show_updated", NULL },
+ { "msg_unupdated", "show_non_updated", NULL }, };
+
+const gchar *conv_checkbox_map[][3] =
+ {
+ { "convert_ogg", "convert_ogg", NULL },
+ { "convert_flac", "convert_flac", NULL },
+ { "convert_mp3", "convert_mp3", NULL },
+ { "convert_aac", "convert_m4a", NULL },
+ { "convert_wav", "convert_wav", NULL },
+ { "convert_mp4", "convert_mp4", NULL },
+ { "display_conversion_log", "", NULL }, };
+
+ind_string tag_checkbox_map[] =
+ {
+ { 0, "tag_title" },
+ { 1, "tag_artist" },
+ { 2, "tag_album" },
+ { 3, "tag_genre" },
+ { 4, "tag_composer" }, };
+
+const gchar *conv_scripts[] =
+ { "convert-2mp3.sh", "convert-2m4a.sh", };
+
+ind_string conv_paths[] =
+ {
+ { -1, "path_conv_ogg" },
+ { -1, "path_conv_flac" },
+ { TARGET_FORMAT_AAC, "path_conv_m4a" },
+ { TARGET_FORMAT_MP3, "path_conv_mp3" },
+ { -1, "path_conv_wav" },
+ { -1, "path_conv_mp4" } };
static TempPrefs *temp_prefs = NULL;
static GtkBuilder* builder = NULL;
-static void update_checkbox_deps (GtkToggleButton *checkbox, const gchar
*deps);
-static void init_checkbox (GtkToggleButton *checkbox, const gchar *pref, const
gchar *deps);
-static gboolean tree_get_current_iter (GtkTreeView *view, GtkTreeIter *iter);
+static void update_checkbox_deps(GtkToggleButton *checkbox, const gchar *deps);
+static void init_checkbox(GtkToggleButton *checkbox, const gchar *pref, const
gchar *deps);
+static gboolean tree_get_current_iter(GtkTreeView *view, GtkTreeIter *iter);
static GtkWindow *notebook_get_parent_window() {
- if (! notebook) {
+ if (!notebook) {
return NULL;
}
@@ -137,48 +134,43 @@ static GtkWindow *notebook_get_parent_window() {
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_agp_track_count_value_changed (GtkSpinButton *sender,
gpointer e)
-{
- gint num = gtk_spin_button_get_value_as_int (sender);
- prefs_set_int ("misc_track_nr", num);
+ glade callback
+ */
+G_MODULE_EXPORT void on_agp_track_count_value_changed(GtkSpinButton *sender,
gpointer e) {
+ gint num = gtk_spin_button_get_value_as_int(sender);
+ prefs_set_int("misc_track_nr", num);
}
/*
- generic glade callback, used by many checkboxes
-*/
-G_MODULE_EXPORT void on_simple_checkbox_toggled (GtkToggleButton *sender,
gpointer e)
-{
- gboolean active = gtk_toggle_button_get_active (sender);
- gchar *pref = (gchar *) g_object_get_data (G_OBJECT(sender), "pref");
- gchar *deps = (gchar *) g_object_get_data (G_OBJECT(sender), "deps");
-
- if(pref)
- {
- if(pref[0] == '!') /* Checkbox is !preference */
+ generic glade callback, used by many checkboxes
+ */
+G_MODULE_EXPORT void on_simple_checkbox_toggled(GtkToggleButton *sender,
gpointer e) {
+ gboolean active = gtk_toggle_button_get_active(sender);
+ gchar *pref = (gchar *) g_object_get_data(G_OBJECT(sender), "pref");
+ gchar *deps = (gchar *) g_object_get_data(G_OBJECT(sender), "deps");
+
+ if (pref) {
+ if (pref[0] == '!') /* Checkbox is !preference */
prefs_set_int(pref + 1, !active);
else
prefs_set_int(pref, active);
}
- update_checkbox_deps (sender, deps);
+ update_checkbox_deps(sender, deps);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_tag_checkbox_toggled (GtkToggleButton *sender,
gpointer e)
-{
- gint index = *(gint *) g_object_get_data (G_OBJECT(sender), "index");
- prefs_set_int_index ("tag_autoset", index, gtk_toggle_button_get_active
(sender));
+ glade callback
+ */
+G_MODULE_EXPORT void on_tag_checkbox_toggled(GtkToggleButton *sender, gpointer
e) {
+ gint index = *(gint *) g_object_get_data(G_OBJECT(sender), "index");
+ prefs_set_int_index("tag_autoset", index,
gtk_toggle_button_get_active(sender));
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_browse_button_clicked (GtkButton *sender, gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_browse_button_clicked(GtkButton *sender, gpointer e) {
GtkWidget *dialog;
gchar *base, *args, *path;
const gchar *space, *current;
@@ -186,287 +178,246 @@ G_MODULE_EXPORT void on_browse_button_clicked
(GtkButton *sender, gpointer e)
g_return_if_fail (entry);
- dialog = gtk_file_chooser_dialog_new (_("Browse"),
- GTK_WINDOW (gtk_widget_get_toplevel
(GTK_WIDGET (sender))),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
- NULL);
-
+ dialog
+ = gtk_file_chooser_dialog_new(_("Browse"), GTK_WINDOW
(gtk_widget_get_toplevel (GTK_WIDGET (sender))), GTK_FILE_CHOOSER_ACTION_OPEN,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
NULL);
- current = gtk_entry_get_text (entry);
+ current = gtk_entry_get_text(entry);
/* separate filename from command line arguments */
- space = strchr (current, ' ');
- if (space)
- {
- base = g_strndup (current, space-current);
- args = g_strdup (space);
+ space = strchr(current, ' ');
+ if (space) {
+ base = g_strndup(current, space - current);
+ args = g_strdup(space);
}
- else
- {
- base = g_strdup (current);
+ else {
+ base = g_strdup(current);
args = NULL;
}
- path = g_find_program_in_path (base);
+ path = g_find_program_in_path(base);
- if (path)
- {
- gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), path);
+ if (path) {
+ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (dialog), path);
}
- else
- {
- gchar *dir = g_path_get_dirname (base);
- if (dir)
- {
- if (g_file_test (dir, G_FILE_TEST_IS_DIR) && g_path_is_absolute (dir))
- {
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog),
- dir);
- }
+ else {
+ gchar *dir = g_path_get_dirname(base);
+ if (dir) {
+ if (g_file_test(dir, G_FILE_TEST_IS_DIR) &&
g_path_is_absolute(dir)) {
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (dialog),
dir);
+ }
}
- g_free (dir);
+ g_free(dir);
}
- if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
- {
- gchar *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER
(dialog));
- if (args)
- { /* add args to filename */
- gchar *new = g_strdup_printf ("%s%s", filename, args);
- gtk_entry_set_text (entry, new);
- g_free (new);
+ if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+ gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER
(dialog));
+ if (args) { /* add args to filename */
+ gchar *new = g_strdup_printf("%s%s", filename, args);
+ gtk_entry_set_text(entry, new);
+ g_free(new);
}
- else
- {
- gtk_entry_set_text (entry, filename);
+ else {
+ gtk_entry_set_text(entry, filename);
}
- g_free (filename);
+ g_free(filename);
}
- gtk_widget_destroy (GTK_WIDGET (dialog));
+ gtk_widget_destroy(GTK_WIDGET (dialog));
- g_free (base);
- g_free (path);
- g_free (args);
+ g_free(base);
+ g_free(path);
+ g_free(args);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_unsetdeps_checkbox_toggled (GtkToggleButton *sender,
gpointer e)
-{
- if(builder && !gtk_toggle_button_get_active (sender))
- {
+ glade callback
+ */
+G_MODULE_EXPORT void on_unsetdeps_checkbox_toggled(GtkToggleButton *sender,
gpointer e) {
+ if (builder && !gtk_toggle_button_get_active(sender)) {
int i;
- const gchar *deps = (gchar *) g_object_get_data (G_OBJECT(sender),
"deps");
- gchar **deparray = g_strsplit (deps, ",", 0);
+ const gchar *deps = (gchar *) g_object_get_data(G_OBJECT(sender),
"deps");
+ gchar **deparray = g_strsplit(deps, ",", 0);
- for(i = 0; deparray[i]; i++)
- {
+ for (i = 0; deparray[i]; i++) {
GtkWidget *dep = GTK_WIDGET(gtk_builder_get_object(builder,
deparray[i]));
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dep), FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (dep), FALSE);
}
- g_strfreev (deparray);
+ g_strfreev(deparray);
}
/* and then call the default handler */
- on_simple_checkbox_toggled (sender, e);
+ on_simple_checkbox_toggled(sender, e);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void open_encoding_dialog (GtkButton *sender, gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void open_encoding_dialog(GtkButton *sender, gpointer e) {
GtkWidget *dlg = GTK_WIDGET(gtk_builder_get_object (builder,
"prefs_encoding_dialog"));
GtkWidget *combo = GTK_WIDGET(gtk_builder_get_object (builder,
"encoding_combo"));
- gtk_window_set_transient_for (GTK_WINDOW (dlg),
notebook_get_parent_window());
+ gtk_window_set_transient_for(GTK_WINDOW (dlg),
notebook_get_parent_window());
- init_checkbox (GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
"use_encoding_for_update")),
- "update_charset", NULL);
+ init_checkbox(GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
"use_encoding_for_update")), "update_charset", NULL);
- init_checkbox (GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
"use_encoding_for_writing")),
- "write_charset", NULL);
+ init_checkbox(GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
"use_encoding_for_writing")), "write_charset", NULL);
- charset_init_combo_box (GTK_COMBO_BOX (combo));
+ charset_init_combo_box(GTK_COMBO_BOX (combo));
gtk_builder_connect_signals(builder, NULL);
- gtk_dialog_run (GTK_DIALOG (dlg));
- gtk_widget_destroy (dlg);
+ gtk_dialog_run(GTK_DIALOG (dlg));
+ gtk_widget_hide(dlg);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_encoding_combo_changed (GtkComboBox *sender, gpointer
e)
-{
- gchar *description = gtk_combo_box_get_active_text (sender);
- gchar *charset = charset_from_description (description);
+ glade callback
+ */
+G_MODULE_EXPORT void on_encoding_combo_changed(GtkComboBox *sender, gpointer
e) {
+ gchar *description = gtk_combo_box_get_active_text(sender);
+ gchar *charset = charset_from_description(description);
- prefs_set_string ("charset", charset);
- g_free (charset);
+ prefs_set_string("charset", charset);
+ g_free(charset);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_customize_tags_clicked (GtkButton *sender, gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_customize_tags_clicked(GtkButton *sender, gpointer e) {
GtkWidget *dlg = GTK_WIDGET(gtk_builder_get_object (builder,
"prefs_tag_parse_dialog"));
gchar *temp = prefs_get_string("parsetags_template");
- gtk_window_set_transient_for (GTK_WINDOW (dlg),
notebook_get_parent_window());
+ gtk_window_set_transient_for(GTK_WINDOW (dlg),
notebook_get_parent_window());
- if(temp)
- {
- gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (builder,
"filename_pattern")),
- temp);
+ if (temp) {
+ gtk_entry_set_text(GTK_ENTRY (gtk_builder_get_object (builder,
"filename_pattern")), temp);
- g_free (temp);
+ g_free(temp);
}
- init_checkbox (GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
"overwrite_tags")),
- "parsetags_overwrite", NULL);
+ init_checkbox(GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
"overwrite_tags")), "parsetags_overwrite", NULL);
gtk_builder_connect_signals(builder, NULL);
- gtk_dialog_run (GTK_DIALOG (dlg));
- gtk_widget_destroy (dlg);
+ gtk_dialog_run(GTK_DIALOG (dlg));
+ gtk_widget_hide(dlg);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_filename_pattern_changed (GtkEditable *sender,
gpointer e)
-{
- prefs_set_string ("parsetags_template", gtk_entry_get_text (GTK_ENTRY
(sender)));
+ glade callback
+ */
+G_MODULE_EXPORT void on_filename_pattern_changed(GtkEditable *sender, gpointer
e) {
+ prefs_set_string("parsetags_template", gtk_entry_get_text(GTK_ENTRY
(sender)));
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_customize_coverart_clicked (GtkButton *sender,
gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_customize_coverart_clicked(GtkButton *sender, gpointer
e) {
GtkWidget *dlg = GTK_WIDGET(gtk_builder_get_object (builder,
"prefs_coverart_dialog"));
gchar *temp = prefs_get_string("coverart_template");
- gtk_window_set_transient_for (GTK_WINDOW (dlg),
notebook_get_parent_window());
+ gtk_window_set_transient_for(GTK_WINDOW (dlg),
notebook_get_parent_window());
- if(temp)
- {
- gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (builder,
"coverart_pattern")),
- temp);
+ if (temp) {
+ gtk_entry_set_text(GTK_ENTRY (gtk_builder_get_object (builder,
"coverart_pattern")), temp);
- g_free (temp);
+ g_free(temp);
}
gtk_builder_connect_signals(builder, NULL);
- gtk_dialog_run (GTK_DIALOG (dlg));
- gtk_widget_destroy (dlg);
+ gtk_dialog_run(GTK_DIALOG (dlg));
+ gtk_widget_hide(dlg);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_customize_video_thumbnailer_clicked (GtkButton
*sender, gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_customize_video_thumbnailer_clicked(GtkButton *sender,
gpointer e) {
GtkWidget *dlg = GTK_WIDGET(gtk_builder_get_object (builder,
"prefs_video_thumbnailer_dialog"));
gchar *temp = prefs_get_string("video_thumbnailer_prog");
- gtk_window_set_transient_for (GTK_WINDOW (dlg),
notebook_get_parent_window());
+ gtk_window_set_transient_for(GTK_WINDOW (dlg),
notebook_get_parent_window());
- if(temp)
- {
- gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (builder,
"video_thumbnailer")),
- temp);
+ if (temp) {
+ gtk_entry_set_text(GTK_ENTRY (gtk_builder_get_object (builder,
"video_thumbnailer")), temp);
- g_free (temp);
+ g_free(temp);
}
gtk_builder_connect_signals(builder, NULL);
- gtk_dialog_run (GTK_DIALOG (dlg));
- gtk_widget_destroy (dlg);
+ gtk_dialog_run(GTK_DIALOG (dlg));
+ gtk_widget_hide(dlg);
}
-
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_coverart_pattern_changed (GtkEditable *sender,
gpointer e)
-{
- prefs_set_string ("coverart_template", gtk_entry_get_text (GTK_ENTRY
(sender)));
+ glade callback
+ */
+G_MODULE_EXPORT void on_coverart_pattern_changed(GtkEditable *sender, gpointer
e) {
+ prefs_set_string("coverart_template", gtk_entry_get_text(GTK_ENTRY
(sender)));
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_video_thumbnailer_changed (GtkEditable *sender,
gpointer e)
-{
- prefs_set_string ("video_thumbnailer_prog", gtk_entry_get_text (GTK_ENTRY
(sender)));
+ glade callback
+ */
+G_MODULE_EXPORT void on_video_thumbnailer_changed(GtkEditable *sender,
gpointer e) {
+ prefs_set_string("video_thumbnailer_prog", gtk_entry_get_text(GTK_ENTRY
(sender)));
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_exclusions_clicked (GtkButton *sender, gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_exclusions_clicked(GtkButton *sender, gpointer e) {
GtkWidget *dlg = GTK_WIDGET(gtk_builder_get_object (builder,
"prefs_exclusions_dialog"));
GtkWidget *tree = GTK_WIDGET(gtk_builder_get_object (builder,
"exclusion_list"));
- GtkListStore *store = gtk_list_store_new (1, G_TYPE_STRING);
- GtkTreeViewColumn *column = gtk_tree_view_column_new ();
- GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+ GtkListStore *store = gtk_list_store_new(1, G_TYPE_STRING);
+ GtkTreeViewColumn *column = gtk_tree_view_column_new();
+ GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
gchar *temp = prefs_get_string("exclude_file_mask");
- gtk_window_set_transient_for (GTK_WINDOW (dlg),
notebook_get_parent_window());
+ gtk_window_set_transient_for(GTK_WINDOW (dlg),
notebook_get_parent_window());
- if (temp)
- {
+ if (temp) {
gint i;
- gchar **masks = g_strsplit (temp, ";", 0);
+ gchar **masks = g_strsplit(temp, ";", 0);
GtkTreeIter iter;
- g_free (temp);
+ g_free(temp);
- for (i = 0; masks[i]; i++)
- {
- gtk_list_store_append (store, &iter);
+ for (i = 0; masks[i]; i++) {
+ gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, 0, masks[i], -1);
}
- g_strfreev (masks);
+ g_strfreev(masks);
}
- gtk_tree_view_column_pack_start (column, renderer, TRUE);
- gtk_tree_view_column_set_attributes (column, renderer, "text", 0, NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
- gtk_tree_view_set_model (GTK_TREE_VIEW (tree), GTK_TREE_MODEL (store));
- g_object_unref (store);
+ gtk_tree_view_column_pack_start(column, renderer, TRUE);
+ gtk_tree_view_column_set_attributes(column, renderer, "text", 0, NULL);
+ gtk_tree_view_append_column(GTK_TREE_VIEW (tree), column);
+ gtk_tree_view_set_model(GTK_TREE_VIEW (tree), GTK_TREE_MODEL (store));
+ g_object_unref(store);
gtk_builder_connect_signals(builder, NULL);
- gtk_dialog_run (GTK_DIALOG (dlg));
- gtk_widget_destroy (dlg);
+ gtk_dialog_run(GTK_DIALOG (dlg));
+ gtk_widget_hide(dlg);
}
-static gboolean tree_get_current_iter (GtkTreeView *view, GtkTreeIter *iter)
-{
- GtkTreeModel *model = gtk_tree_view_get_model (view);
+static gboolean tree_get_current_iter(GtkTreeView *view, GtkTreeIter *iter) {
+ GtkTreeModel *model = gtk_tree_view_get_model(view);
GtkTreePath *path;
- gtk_tree_view_get_cursor (view, &path, NULL);
+ gtk_tree_view_get_cursor(view, &path, NULL);
if (!path)
return FALSE;
- gtk_tree_model_get_iter (model, iter, path);
- gtk_tree_path_free (path);
+ gtk_tree_model_get_iter(model, iter, path);
+ gtk_tree_path_free(path);
return TRUE;
}
-static void update_exclusions (GtkListStore *store)
-{
+static void update_exclusions(GtkListStore *store) {
GtkTreeModel *model = GTK_TREE_MODEL (store);
- gint rows = gtk_tree_model_iter_n_children (model, NULL);
+ gint rows = gtk_tree_model_iter_n_children(model, NULL);
gchar **array = g_new (gchar *, rows + 1);
gchar *temp;
gint i;
@@ -474,312 +425,274 @@ static void update_exclusions (GtkListStore *store)
array[rows] = NULL;
- for (i = 0; i < rows; i++)
- {
- gtk_tree_model_iter_nth_child (model, &iter, NULL, i);
- gtk_tree_model_get (model, &iter, 0, array + i, -1);
+ for (i = 0; i < rows; i++) {
+ gtk_tree_model_iter_nth_child(model, &iter, NULL, i);
+ gtk_tree_model_get(model, &iter, 0, array + i, -1);
}
- temp = g_strjoinv (";", array);
- prefs_set_string ("exclude_file_mask", temp);
- g_free (temp);
- g_strfreev (array);
+ temp = g_strjoinv(";", array);
+ prefs_set_string("exclude_file_mask", temp);
+ g_free(temp);
+ g_strfreev(array);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_add_exclusion_clicked (GtkButton *sender, gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_add_exclusion_clicked(GtkButton *sender, gpointer e) {
GtkWidget *tree = GTK_WIDGET(gtk_builder_get_object(builder,
"exclusion_list"));
GtkWidget *entry = GTK_WIDGET(gtk_builder_get_object(builder,
"new_exclusion"));
- const gchar *text = gtk_entry_get_text (GTK_ENTRY (entry));
+ const gchar *text = gtk_entry_get_text(GTK_ENTRY (entry));
- if (text && text[0])
- {
+ if (text && text[0]) {
GtkListStore *store = GTK_LIST_STORE (gtk_tree_view_get_model
(GTK_TREE_VIEW (tree)));
GtkTreeIter iter;
- gtk_list_store_append (store, &iter);
+ gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, 0, text, -1);
- gtk_entry_set_text (GTK_ENTRY (entry), "");
+ gtk_entry_set_text(GTK_ENTRY (entry), "");
- update_exclusions (store);
+ update_exclusions(store);
}
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_remove_exclusion_clicked (GtkButton *sender, gpointer
e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_remove_exclusion_clicked(GtkButton *sender, gpointer
e) {
GtkWidget *tree = GTK_WIDGET(gtk_builder_get_object(builder,
"exclusion_list"));
GtkListStore *store = GTK_LIST_STORE (gtk_tree_view_get_model
(GTK_TREE_VIEW (tree)));
- GtkTreeIter iter;
+ GtkTreeIter iter;
- if(!tree_get_current_iter (GTK_TREE_VIEW (tree), &iter) ||
gtk_list_store_iter_is_valid (store, &iter))
- {
- gtk_list_store_remove (store, &iter);
- update_exclusions (store);
+ if (!tree_get_current_iter(GTK_TREE_VIEW (tree), &iter) ||
gtk_list_store_iter_is_valid(store, &iter)) {
+ gtk_list_store_remove(store, &iter);
+ update_exclusions(store);
}
}
-static void cmd_setup_widget (const gchar *entry_name, const gchar *envname,
const gchar *browse_name)
-{
+static void cmd_setup_widget(const gchar *entry_name, const gchar *envname,
const gchar *browse_name) {
GtkWidget *entry = GTK_WIDGET(gtk_builder_get_object(builder, entry_name));
- gchar *temp = prefs_get_string (envname);
- if (!temp)
- {
- temp = g_strdup ("");
+ gchar *temp = prefs_get_string(envname);
+ if (!temp) {
+ temp = g_strdup("");
}
- gtk_entry_set_text (GTK_ENTRY (entry), temp);
- g_free (temp);
+ gtk_entry_set_text(GTK_ENTRY (entry), temp);
+ g_free(temp);
- g_object_set_data (G_OBJECT (entry), "envname", (gpointer)envname);
- g_object_set_data (G_OBJECT (gtk_builder_get_object(builder, browse_name)),
- "entry", entry);
+ g_object_set_data(G_OBJECT (entry), "envname", (gpointer) envname);
+ g_object_set_data(G_OBJECT (gtk_builder_get_object(builder, browse_name)),
"entry", entry);
}
-
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_normalization_clicked (GtkButton *sender, gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_normalization_clicked(GtkButton *sender, gpointer e) {
GtkWidget *dlg = GTK_WIDGET(gtk_builder_get_object(builder,
"prefs_normalization_dialog"));
- gtk_window_set_transient_for (GTK_WINDOW (dlg),
notebook_get_parent_window());
+ gtk_window_set_transient_for(GTK_WINDOW (dlg),
notebook_get_parent_window());
- cmd_setup_widget ("cmd_mp3gain", "path_mp3gain", "browse_mp3gain");
- cmd_setup_widget ("cmd_aacgain", "path_aacgain", "browse_aacgain");
+ cmd_setup_widget("cmd_mp3gain", "path_mp3gain", "browse_mp3gain");
+ cmd_setup_widget("cmd_aacgain", "path_aacgain", "browse_aacgain");
gtk_builder_connect_signals(builder, NULL);
- gtk_dialog_run (GTK_DIALOG (dlg));
- gtk_widget_destroy (dlg);
+ gtk_dialog_run(GTK_DIALOG (dlg));
+ gtk_widget_hide(dlg);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_cmd_entry_changed (GtkEditable *sender, gpointer e)
-{
- const gchar *envname = g_object_get_data (G_OBJECT (sender), "envname");
+ glade callback
+ */
+G_MODULE_EXPORT void on_cmd_entry_changed(GtkEditable *sender, gpointer e) {
+ const gchar *envname = g_object_get_data(G_OBJECT (sender), "envname");
- prefs_set_string (envname, gtk_entry_get_text (GTK_ENTRY (sender)));
+ prefs_set_string(envname, gtk_entry_get_text(GTK_ENTRY (sender)));
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_conversion_settings_clicked (GtkButton *sender,
gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_conversion_settings_clicked(GtkButton *sender,
gpointer e) {
GtkWidget *dlg = GTK_WIDGET(gtk_builder_get_object(builder,
"prefs_conversion_dialog"));
- gchar *temp = prefs_get_string ("file_convert_cachedir");
+ gchar *temp = prefs_get_string("file_convert_cachedir");
gint i;
- gtk_window_set_transient_for (GTK_WINDOW (dlg),
notebook_get_parent_window());
+ gtk_window_set_transient_for(GTK_WINDOW (dlg),
notebook_get_parent_window());
- if(temp)
- {
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER
(gtk_builder_get_object(builder, "cache_folder")),
- temp);
-
- g_free (temp);
+ if (temp) {
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER
(gtk_builder_get_object(builder, "cache_folder")), temp);
+ g_free(temp);
}
- gtk_spin_button_set_value (GTK_SPIN_BUTTON
(gtk_builder_get_object(builder, "bg_threads")),
- prefs_get_int("file_convert_max_threads_num"));
-
- gtk_spin_button_set_value (GTK_SPIN_BUTTON
(gtk_builder_get_object(builder, "cache_size")),
- prefs_get_int("file_convert_maxdirsize"));
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON (gtk_builder_get_object(builder,
"bg_threads")), prefs_get_int("file_convert_max_threads_num"));
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON (gtk_builder_get_object(builder,
"cache_size")), prefs_get_int("file_convert_maxdirsize"));
- for (i = 0; i < COUNTOF(conv_checkbox_map); i++)
- {
- init_checkbox (GTK_TOGGLE_BUTTON (gtk_builder_get_object(builder,
conv_checkbox_map[i][0])),
- conv_checkbox_map[i][1], conv_checkbox_map[i][2]);
+ for (i = 0; i < COUNTOF(conv_checkbox_map); i++) {
+ init_checkbox(GTK_TOGGLE_BUTTON (gtk_builder_get_object(builder,
conv_checkbox_map[i][0])), conv_checkbox_map[i][1], conv_checkbox_map[i][2]);
}
gtk_builder_connect_signals(builder, NULL);
- gtk_dialog_run (GTK_DIALOG (dlg));
- gtk_widget_destroy (dlg);
- file_convert_prefs_changed ();
+ gtk_dialog_run(GTK_DIALOG (dlg));
+ gtk_widget_hide(dlg);
+ file_convert_prefs_changed();
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_cache_folder_current_folder_changed (GtkFileChooser
*sender, gpointer e)
-{
- prefs_set_string ("file_convert_cachedir",
- gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER
(sender)));
+ glade callback
+ */
+G_MODULE_EXPORT void on_cache_folder_current_folder_changed(GtkFileChooser
*sender, gpointer e) {
+ prefs_set_string("file_convert_cachedir",
gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER (sender)));
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_bg_threads_value_changed (GtkSpinButton *sender,
gpointer e)
-{
- prefs_set_int ("file_convert_max_threads_num",
gtk_spin_button_get_value_as_int (sender));
+ glade callback
+ */
+G_MODULE_EXPORT void on_bg_threads_value_changed(GtkSpinButton *sender,
gpointer e) {
+ prefs_set_int("file_convert_max_threads_num",
gtk_spin_button_get_value_as_int(sender));
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_cache_size_value_changed (GtkSpinButton *sender,
gpointer e)
-{
- prefs_set_int ("file_convert_maxdirsize", gtk_spin_button_get_value_as_int
(sender));
+ glade callback
+ */
+G_MODULE_EXPORT void on_cache_size_value_changed(GtkSpinButton *sender,
gpointer e) {
+ prefs_set_int("file_convert_maxdirsize",
gtk_spin_button_get_value_as_int(sender));
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_target_format_changed (GtkComboBox *sender, gpointer e)
-{
- gint index = gtk_combo_box_get_active (sender);
- gchar *script = g_build_filename (get_script_dir(), conv_scripts[index],
NULL);
+ glade callback
+ */
+G_MODULE_EXPORT void on_target_format_changed(GtkComboBox *sender, gpointer e)
{
+ gint index = gtk_combo_box_get_active(sender);
+ gchar *script = g_build_filename(get_script_dir(), conv_scripts[index],
NULL);
gint i;
- for (i = 0; i < COUNTOF (conv_paths); i++)
- {
- if (conv_paths[i].index == index)
- {
+ for (i = 0; i < COUNTOF (conv_paths); i++) {
+ if (conv_paths[i].index == index) {
/*
- The source format is the same as the target format -
- we set "null conversion" without touching the boolean
preference
- */
- prefs_set_string (conv_paths[i].string, "");
+ The source format is the same as the target format -
+ we set "null conversion" without touching the boolean preference
+ */
+ prefs_set_string(conv_paths[i].string, "");
}
else
- prefs_set_string (conv_paths[i].string, script);
+ prefs_set_string(conv_paths[i].string, script);
}
- prefs_set_int ("conversion_target_format", index);
- g_free (script);
- file_convert_prefs_changed ();
+ prefs_set_int("conversion_target_format", index);
+ g_free(script);
+ file_convert_prefs_changed();
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_replaygain_clicked (GtkButton *sender, gpointer e)
-{
+ glade callback
+ */
+G_MODULE_EXPORT void on_replaygain_clicked(GtkButton *sender, gpointer e) {
GtkWidget *dlg = GTK_WIDGET(gtk_builder_get_object(builder,
"prefs_replaygain_dialog"));
GtkWidget *mode_album_radio = GTK_WIDGET(gtk_builder_get_object(builder,
"mode_album"));
GtkWidget *mode_track_radio = GTK_WIDGET(gtk_builder_get_object(builder,
"mode_track"));
- gtk_window_set_transient_for (GTK_WINDOW (dlg),
notebook_get_parent_window());
+ gtk_window_set_transient_for(GTK_WINDOW (dlg),
notebook_get_parent_window());
- gtk_spin_button_set_value (GTK_SPIN_BUTTON
(gtk_builder_get_object(builder, "replaygain_offset")),
prefs_get_int("replaygain_offset"));
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON (gtk_builder_get_object(builder,
"replaygain_offset")), prefs_get_int("replaygain_offset"));
- if(prefs_get_int("replaygain_mode_album_priority"))
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mode_album_radio),
TRUE);
+ if (prefs_get_int("replaygain_mode_album_priority"))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (mode_album_radio),
TRUE);
else
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mode_track_radio),
TRUE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (mode_track_radio),
TRUE);
gtk_builder_connect_signals(builder, NULL);
- gtk_dialog_run (GTK_DIALOG (dlg));
- gtk_widget_destroy (dlg);
+ gtk_dialog_run(GTK_DIALOG (dlg));
+ gtk_widget_hide(dlg);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_replaygain_mode_album_toggled (GtkToggleButton
*sender, gpointer e)
-{
- gboolean active = gtk_toggle_button_get_active (sender);
+ glade callback
+ */
+G_MODULE_EXPORT void on_replaygain_mode_album_toggled(GtkToggleButton *sender,
gpointer e) {
+ gboolean active = gtk_toggle_button_get_active(sender);
- prefs_set_int ("replaygain_mode_album_priority", active);
+ prefs_set_int("replaygain_mode_album_priority", active);
}
/*
- glade callback
-*/
-G_MODULE_EXPORT void on_replaygain_offset_value_changed (GtkSpinButton
*sender, gpointer e)
-{
- prefs_set_int ("replaygain_offset", gtk_spin_button_get_value_as_int
(sender));
+ glade callback
+ */
+G_MODULE_EXPORT void on_replaygain_offset_value_changed(GtkSpinButton *sender,
gpointer e) {
+ prefs_set_int("replaygain_offset",
gtk_spin_button_get_value_as_int(sender));
}
-static void update_checkbox_deps (GtkToggleButton *checkbox, const gchar *deps)
-{
+static void update_checkbox_deps(GtkToggleButton *checkbox, const gchar *deps)
{
/* Enable or disable dependent checkboxes */
- gboolean active = gtk_toggle_button_get_active (checkbox);
+ gboolean active = gtk_toggle_button_get_active(checkbox);
gchar **deparray;
int i;
- if(!builder || !deps)
+ if (!builder || !deps)
return;
- deparray = g_strsplit (deps, ",", 0);
+ deparray = g_strsplit(deps, ",", 0);
- for(i = 0; deparray[i]; i++)
- {
- GtkWidget *dep = GTK_WIDGET(gtk_builder_get_object(builder,
deparray[i]));
- gtk_widget_set_sensitive (dep, active);
+ for (i = 0; deparray[i]; i++) {
+ GtkWidget *dep = GTK_WIDGET(gtk_builder_get_object(builder,
deparray[i]));
+ gtk_widget_set_sensitive(dep, active);
}
- g_strfreev (deparray);
+ g_strfreev(deparray);
}
-static void init_checkbox (GtkToggleButton *checkbox, const gchar *pref, const
gchar *deps)
-{
+static void init_checkbox(GtkToggleButton *checkbox, const gchar *pref, const
gchar *deps) {
g_object_set_data(G_OBJECT(checkbox), "pref", (gchar *) pref);
g_object_set_data(G_OBJECT(checkbox), "deps", (gchar *) deps);
- if(pref)
- {
- if(pref[0] == '!') /* Checkbox is !preference */
+ if (pref) {
+ if (pref[0] == '!') /* Checkbox is !preference */
gtk_toggle_button_set_active(checkbox, !prefs_get_int(pref + 1));
else
gtk_toggle_button_set_active(checkbox, prefs_get_int(pref));
}
- update_checkbox_deps (checkbox, deps);
+ update_checkbox_deps(checkbox, deps);
}
-static void setup_values ()
-{
+static void setup_values() {
gint i;
GtkWidget *skip_track_update_radio = GTK_WIDGET(gtk_builder_get_object
(builder, "skip_track_update"));
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object
(builder, "agp_track_count")),
- prefs_get_int("misc_track_nr"));
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON (gtk_builder_get_object
(builder, "agp_track_count")), prefs_get_int("misc_track_nr"));
/* Check boxes */
- for (i = 0; i < COUNTOF(checkbox_map); i++)
- {
- init_checkbox (GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
checkbox_map[i][0])),
- checkbox_map[i][1], checkbox_map[i][2]);
+ for (i = 0; i < COUNTOF(checkbox_map); i++) {
+ init_checkbox(GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder,
checkbox_map[i][0])), checkbox_map[i][1], checkbox_map[i][2]);
}
- for (i = 0; i < COUNTOF(tag_checkbox_map); i++)
- {
+ for (i = 0; i < COUNTOF(tag_checkbox_map); i++) {
GtkWidget *widget = GTK_WIDGET(gtk_builder_get_object (builder,
tag_checkbox_map[i].string));
- g_object_set_data (G_OBJECT (widget), "index",
&tag_checkbox_map[i].index);
+ g_object_set_data(G_OBJECT (widget), "index",
&tag_checkbox_map[i].index);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
- prefs_get_int_index ("tag_autoset",
tag_checkbox_map[i].index));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON (widget),
prefs_get_int_index("tag_autoset", tag_checkbox_map[i].index));
}
- if(!prefs_get_int("update_existing"))
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(skip_track_update_radio), TRUE);
+ if (!prefs_get_int("update_existing"))
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON
(skip_track_update_radio), TRUE);
- gtk_combo_box_set_active (GTK_COMBO_BOX (gtk_builder_get_object (builder,
"target_format")),
- prefs_get_int ("conversion_target_format"));
+ gtk_combo_box_set_active(GTK_COMBO_BOX (gtk_builder_get_object (builder,
"target_format")), prefs_get_int("conversion_target_format"));
}
static GtkWidget *create_preference_notebook() {
- GError* error = NULL;
GtkWidget *notebook;
+ GError* error = NULL;
+
+ g_return_val_if_fail(builder_path, NULL);
builder = gtk_builder_new();
gtk_builder_add_from_file(builder, builder_path, &error);
if (error) {
- g_warning("Could not load settings preferences: %s", error->message);
+ g_warning("Failed to load core preferences component because '%s'",
error->message);
g_error_free(error);
return NULL;
}
+
notebook = GTK_WIDGET (gtk_builder_get_object (builder,
"settings_notebook"));
GtkWidget *parent = gtk_widget_get_parent(notebook);
g_object_ref(notebook);
@@ -797,8 +710,18 @@ GtkWidget *init_settings_preferences(gchar
*builder_file_path) {
builder_path = builder_file_path;
temp_prefs = temp_prefs_create();
- temp_prefs_copy_prefs (temp_prefs);
+ temp_prefs_copy_prefs(temp_prefs);
notebook = create_preference_notebook();
return notebook;
}
+
+void destroy_settings_preferences() {
+ if (notebook)
+ gtk_widget_destroy(notebook);
+
+ if (builder)
+ g_object_unref(builder);
+
+ builder_path = NULL;
+}
diff --git a/plugins/core_preferences/core_prefs.h
b/plugins/core_preferences/core_prefs.h
index 3494ead..a9e7a2b 100644
--- a/plugins/core_preferences/core_prefs.h
+++ b/plugins/core_preferences/core_prefs.h
@@ -37,5 +37,6 @@
#include <gtk/gtk.h>
GtkWidget *init_settings_preferences();
+void destroy_settings_preferences();
#endif
diff --git a/plugins/core_preferences/core_prefs.xml
b/plugins/core_preferences/core_prefs.xml
index 9d378fa..ef341be 100644
--- a/plugins/core_preferences/core_prefs.xml
+++ b/plugins/core_preferences/core_prefs.xml
@@ -66,9 +66,11 @@
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="has_separator">False</property>
+ <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox7">
<property name="visible">True</property>
@@ -209,9 +211,11 @@
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="has_separator">False</property>
+ <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox8">
<property name="visible">True</property>
@@ -337,9 +341,11 @@ Example: <i>%a - %A/%T %t.mp3;%t.wav</i>.
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="has_separator">False</property>
+ <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox10">
<property name="visible">True</property>
@@ -455,9 +461,11 @@ Examples:
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="has_separator">False</property>
+ <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox17">
<property name="visible">True</property>
@@ -558,9 +566,11 @@ Examples:
<property name="modal">True</property>
<property name="window_position">center-on-parent</property>
<property name="default_height">350</property>
+ <property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="has_separator">False</property>
+ <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox11">
<property name="visible">True</property>
@@ -710,9 +720,11 @@ Examples:
<property name="border_width">5</property>
<property name="resizable">False</property>
<property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="has_separator">False</property>
+ <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox13">
<property name="visible">True</property>
@@ -981,9 +993,11 @@ Examples:
<property name="title" translatable="yes">Conversion Preferences</property>
<property name="resizable">False</property>
<property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
<property name="has_separator">False</property>
+ <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox14">
<property name="visible">True</property>
@@ -1418,8 +1432,10 @@ Examples:
<property name="title" translatable="yes">ReplayGain Preferences</property>
<property name="resizable">False</property>
<property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="has_separator">False</property>
+ <signal name="delete_event" handler="gtk_widget_hide_on_delete"/>
<child internal-child="vbox">
<object class="GtkVBox" id="dialog-vbox19">
<property name="visible">True</property>
diff --git a/plugins/core_preferences/plugin.c
b/plugins/core_preferences/plugin.c
index daf0096..ea68aee 100644
--- a/plugins/core_preferences/plugin.c
+++ b/plugins/core_preferences/plugin.c
@@ -130,7 +130,7 @@ static void ipreferences_merge(IAnjutaPreferences* ipref,
AnjutaPreferences* pre
static void ipreferences_unmerge(IAnjutaPreferences* ipref, AnjutaPreferences*
prefs, GError** e) {
anjuta_preferences_remove_page(prefs, _("Settings"));
CorePrefsPlugin* prefs_plugin = GTKPOD_CORE_PREFS_PLUGIN(ipref);
- gtk_widget_destroy(prefs_plugin->prefs);
+ destroy_settings_preferences();
}
static void ipreferences_iface_init(IAnjutaPreferencesIface* iface) {
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2