Commit 3e3f9de40a382614f0432808fa955c3ee1a88a25

  • avatar
  • Sam Thursfield <sam @cand…ion.home>
  • Tue Aug 11 13:52:52 CEST 2009
[gsettings] Settings editor improvements.

Selects the property being connected.
  
4040
4141static void
4242add_property (GladeSettingsEditor *self,
43 GladeProperty *property)
43 GladeProperty *property,
44 GtkTreeIter *iter)
4445{
45 GtkTreeIter iter;
46 GtkTreeIter temp_iter;
47 if (iter == NULL)
48 iter = &temp_iter;
49
4650 GladePropertyClass *property_class = property->klass;;
4751
48 gtk_list_store_append (GTK_LIST_STORE (self->data), &iter);
52 gtk_list_store_append (GTK_LIST_STORE (self->data), iter);
4953
50 gtk_list_store_set (GTK_LIST_STORE (self->data), &iter,
54 gtk_list_store_set (GTK_LIST_STORE (self->data), iter,
5155 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY, property,
5256 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY_NAME, property_class->name,
5357 GLADE_SETTINGS_EDITOR_COLUMN_KEY_NAME, KEY_DEFAULT,
103103
104104 if (property->key != NULL)
105105 {
106 add_property (self, property);
106 add_property (self, property, NULL);
107107 if (first_property == NULL)
108108 first_property = property;
109109 }
161161glade_settings_editor_set_property (GladeSettingsEditor *self,
162162 GladeProperty *property)
163163{
164 gboolean found = FALSE;
165 GtkTreeIter iter;
166 GtkTreeSelection *tree_selection;
167
164168 if (property == self->property)
165169 return;
166170
180180
181181 if (property->widget != self->widget)
182182 set_widget (self, property->widget, property);
183
184 if (property->key != NULL)
185 {
186 // FIXME: look for property in list & select it
187 GtkTreeIter iter;
188 gboolean found;
189
190 found = find_property (self, property, &iter);
191 g_warn_if_fail (found);
192 }
193183 else
194 add_property (self, property);
184 /* Same widget - maybe the property is already in the window. */
185 found = find_property (self, property, &iter);
186
187 if (!found)
188 add_property (self, property, &iter);
189
190 tree_selection = gtk_tree_view_get_selection (self->view);
191 gtk_tree_selection_select_iter (tree_selection, &iter);
195192
196193 self->property = property;
197194 self->property_notify_id = g_signal_connect (property, "notify::settings-key",
251251{
252252 GladeSettingsEditor *self;
253253 GObject *retval;
254 GtkWidget *tree_view;
255254 GtkCellRenderer *cell_renderer;
256255 GtkTreeViewColumn *column;
257256
266266 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
267267 NULL);
268268
269 tree_view = gtk_tree_view_new_with_model (self->data);
270 gtk_widget_set_size_request (tree_view, 200, 200);
269 self->view = gtk_tree_view_new_with_model (self->data);
270 gtk_widget_set_size_request (self->view, 200, 200);
271271
272272 cell_renderer = gtk_cell_renderer_text_new ();
273273 column = gtk_tree_view_column_new_with_attributes
274274 (_("Property Name"), cell_renderer,
275275 "text", GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY_NAME,
276276 NULL);
277 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
277 gtk_tree_view_append_column (GTK_TREE_VIEW (self->view), column);
278278
279279 cell_renderer = gtk_cell_renderer_text_new ();
280280 g_object_set (cell_renderer, "editable", TRUE, NULL);
282282 (_("Settings Key"), cell_renderer,
283283 "text", GLADE_SETTINGS_EDITOR_COLUMN_KEY_NAME,
284284 NULL);
285 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
285 gtk_tree_view_append_column (GTK_TREE_VIEW (self->view), column);
286286
287287 g_signal_connect (cell_renderer, "edited", G_CALLBACK (key_edited), self);
288288
289289
290290 gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self->dialog))),
291 tree_view);
291 self->view);
292292
293293 g_signal_connect (self->dialog, "response", G_CALLBACK (dialog_response), NULL);
294294
  
3535 GladeProperty *property; /* Currently selected property */
3636 int property_notify_id; /* Signal handler connected to notify::settings-key */
3737
38 GtkWidget *dialog;
38 GtkWidget *dialog, *view;
3939 GtkTreeModel *data;
4040};
4141