51
46
G_DEFINE_TYPE (BraseroFilterOption, brasero_filter_option, GTK_TYPE_VBOX);
54
brasero_file_filtered_filter_hidden_cb (GtkToggleButton *button,
55
BraseroFilterOption *self)
57
BraseroFilterOptionPrivate *priv;
59
priv = BRASERO_FILTER_OPTION_PRIVATE (self);
60
gconf_client_set_bool (priv->client,
61
BRASERO_FILTER_HIDDEN_KEY,
62
gtk_toggle_button_get_active (button),
67
brasero_file_filtered_filter_broken_sym_cb (GtkToggleButton *button,
68
BraseroFilterOption *self)
70
BraseroFilterOptionPrivate *priv;
72
priv = BRASERO_FILTER_OPTION_PRIVATE (self);
73
gconf_client_set_bool (priv->client,
74
BRASERO_FILTER_BROKEN_SYM_KEY,
75
gtk_toggle_button_get_active (button),
80
brasero_file_filtered_replace_sym_cb (GtkToggleButton *button,
81
BraseroFilterOption *self)
83
BraseroFilterOptionPrivate *priv;
85
priv = BRASERO_FILTER_OPTION_PRIVATE (self);
86
gconf_client_set_bool (priv->client,
87
BRASERO_REPLACE_SYMLINK_KEY,
88
gtk_toggle_button_get_active (button),
93
brasero_file_filtered_gconf_notify_cb (GConfClient *client,
99
GtkToggleButton *button = user_data;
101
value = gconf_entry_get_value (entry);
102
gtk_toggle_button_set_active (button, gconf_value_get_bool (value));
106
49
brasero_filter_option_init (BraseroFilterOption *object)
111
GError *error = NULL;
112
53
GtkWidget *button_sym;
113
54
GtkWidget *button_broken;
114
55
GtkWidget *button_hidden;
117
58
priv = BRASERO_FILTER_OPTION_PRIVATE (object);
119
priv->client = gconf_client_get_default ();
60
priv->settings = g_settings_new (BRASERO_SCHEMA_FILTER);
121
62
/* filter hidden files */
122
active = gconf_client_get_bool (priv->client,
123
BRASERO_FILTER_HIDDEN_KEY,
126
63
button_hidden = gtk_check_button_new_with_mnemonic (_("Filter _hidden files"));
64
g_settings_bind (priv->settings, BRASERO_PROPS_FILTER_HIDDEN,
65
button_hidden, "active",
66
G_SETTINGS_BIND_DEFAULT);
127
67
gtk_widget_show (button_hidden);
128
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button_hidden), active);
129
g_signal_connect (button_hidden,
131
G_CALLBACK (brasero_file_filtered_filter_hidden_cb),
134
priv->hidden_notify = gconf_client_notify_add (priv->client,
135
BRASERO_FILTER_HIDDEN_KEY,
136
brasero_file_filtered_gconf_notify_cb,
137
button_hidden, NULL, &error);
139
g_warning ("GConf : %s\n", error->message);
140
g_error_free (error);
144
69
/* replace symlink */
145
active = gconf_client_get_bool (priv->client,
146
BRASERO_REPLACE_SYMLINK_KEY,
149
70
button_sym = gtk_check_button_new_with_mnemonic (_("Re_place symbolic links"));
71
g_settings_bind (priv->settings, BRASERO_PROPS_FILTER_REPLACE_SYMLINK,
73
G_SETTINGS_BIND_DEFAULT);
150
74
gtk_widget_show (button_sym);
151
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button_sym), active);
152
g_signal_connect (button_sym,
154
G_CALLBACK (brasero_file_filtered_replace_sym_cb),
157
priv->sym_notify = gconf_client_notify_add (priv->client,
158
BRASERO_REPLACE_SYMLINK_KEY,
159
brasero_file_filtered_gconf_notify_cb,
160
button_sym, NULL, &error);
162
g_warning ("GConf : %s\n", error->message);
163
g_error_free (error);
167
76
/* filter broken symlink button */
168
active = gconf_client_get_bool (priv->client,
169
BRASERO_FILTER_BROKEN_SYM_KEY,
172
77
button_broken = gtk_check_button_new_with_mnemonic (_("Filter _broken symbolic links"));
78
g_settings_bind (priv->settings, BRASERO_PROPS_FILTER_BROKEN,
79
button_broken, "active",
80
G_SETTINGS_BIND_DEFAULT);
173
81
gtk_widget_show (button_broken);
174
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button_broken), active);
175
g_signal_connect (button_broken,
177
G_CALLBACK (brasero_file_filtered_filter_broken_sym_cb),
180
priv->broken_sym_notify = gconf_client_notify_add (priv->client,
181
BRASERO_FILTER_BROKEN_SYM_KEY,
182
brasero_file_filtered_gconf_notify_cb,
183
button_broken, NULL, &error);
185
g_warning ("GConf : %s\n", error->message);
186
g_error_free (error);
190
83
string = g_strdup_printf ("<b>%s</b>", _("Filtering options"));
191
84
frame = brasero_utils_pack_properties (string,
210
103
priv = BRASERO_FILTER_OPTION_PRIVATE (object);
212
if (priv->sym_notify) {
213
gconf_client_notify_remove (priv->client, priv->sym_notify);
214
priv->sym_notify = 0;
217
if (priv->hidden_notify) {
218
gconf_client_notify_remove (priv->client,
219
priv->hidden_notify);
220
priv->hidden_notify = 0;
223
if (priv->broken_sym_notify) {
224
gconf_client_notify_remove (priv->client,
225
priv->broken_sym_notify);
226
priv->broken_sym_notify = 0;
230
g_object_unref (priv->client);
105
if (priv->settings) {
106
g_object_unref (priv->settings);
107
priv->settings = NULL;
234
110
G_OBJECT_CLASS (brasero_filter_option_parent_class)->finalize (object);