Commit c8663580360e312cbf6dfdb8180b883d52b26d79

  • avatar
  • Sam Thursfield <sam @cand…ion.home>
  • Tue Aug 11 17:23:46 CEST 2009
[gsettings] Add 'remove' button to settings editor.
  
3333#include <glib/gi18n-lib.h>
3434
3535#include "glade.h"
36#include "glade-settings-editor.h"
3637
3738G_DEFINE_TYPE (GladeSettingsEditor, glade_settings_editor, GTK_TYPE_OBJECT)
3839
105105 if (property->key != NULL)
106106 {
107107 add_property (self, property, NULL);
108
108109 if (first_property == NULL)
109110 first_property = property;
110111 }
189189 if (!found)
190190 add_property (self, property, &iter);
191191
192 tree_selection = gtk_tree_view_get_selection (self->view);
192 tree_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self->view));
193193 gtk_tree_selection_select_iter (tree_selection, &iter);
194194
195195 self->property = property;
241241}
242242
243243static void
244remove_clicked (GtkButton *button,
245 GladeSettingsEditor *self)
246{
247 GtkTreeIter iter;
248 GladeProperty *property;
249
250 if (!gtk_tree_selection_get_selected (gtk_tree_view_get_selection (self->view),
251 NULL, &iter))
252 return;
253
254 gtk_tree_model_get (self->data, &iter,
255 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY, &property,
256 -1);
257 gtk_list_store_remove (GTK_LIST_STORE (self->data), &iter);
258
259 self->property = NULL;
260 glade_property_set_binding (property, NULL);
261};
262
263static void
244264dialog_response (GtkDialog *dialog)
245265{
246266 gtk_widget_hide (GTK_WIDGET (dialog));
275275 GObject *retval;
276276 GtkCellRenderer *cell_renderer;
277277 GtkTreeViewColumn *column;
278 GtkWidget *frame, *alignment, *button, *action_area;
278279
279280 retval = G_OBJECT_CLASS (glade_settings_editor_parent_class)->constructor
280281 (type, n_construct_properties, construct_properties);
309309
310310 g_signal_connect (cell_renderer, "edited", G_CALLBACK (key_edited), self);
311311
312
313312 gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self->dialog))),
314313 self->view);
314
315 /* Add 'remove' button to action area. */
316 button = gtk_button_new_from_stock (GTK_STOCK_REMOVE);
317 g_signal_connect (button, "clicked", remove_clicked, self);
318
319 action_area = gtk_dialog_get_action_area (GTK_DIALOG (self->dialog));
320 gtk_container_add (GTK_BOX (action_area), button);
321 gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (action_area), button, TRUE);
315322
316323 g_signal_connect (self->dialog, "response", G_CALLBACK (dialog_response), NULL);
317324