Commit 4a70f67d9f1d56877da33be48c3f7aa45f0c0769

  • avatar
  • Sam Thursfield <sam @dja…go.(none)>
  • Mon Aug 03 13:06:29 CEST 2009
[gsettings] glade_settings_editor can add & remove entries.
  
4747
4848#define KEY_DEFAULT _("<Type here>")
4949
50static void
51add_property (GladeSettingsEditor *self,
52 GladeProperty *property)
53{
54 gtk_list_store_append (GTK_LIST_STORE (self->data), &iter);
55
56 // FIXME: set tooltip as klass->name
57 gtk_list_store_set (GTK_LIST_STORE (self->data), &iter,
58 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY, property,
59 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY_NAME, property_class->id,
60 GLADE_SETTINGS_EDITOR_COLUMN_KEY_NAME, KEY_DEFAULT,
61 -1);
62};
63
5064void
5165glade_settings_editor_show (GladeSettingsEditor *self,
5266 GladeWidget *widget,
7676glade_settings_editor_set_widget (GladeSettingsEditor *self,
7777 GladeWidget *widget)
7878{
79 GList *node;
80
7981 if (widget == self->widget)
8082 return;
8183
82 // FIXME: load all bound properties into treeview
83 // should a widget keep a list of all its bound properties to save us going through
84 /* Load the widget's bound properties. */
85 gtk_list_store_clear (GTK_LIST_STORE (self->data));
86
87 // FIXME: should a widget keep a list of all its bound properties to save us going through
8488 // each one?
89 for (node=widget->properties; node; node=node->next) {
90 GladeProperty *property = GLADE_PROPERTY (node->data);
8591
92 if (node->key != NULL) {
93
94
95 };
96 };
97
8698 self->widget = widget;
8799};
88100
105105 GladePropertyClass *property_class = property->klass;;
106106 GtkTreeIter iter;
107107
108 };
109 };
110
111 self->widget = widget;
112};
113
114void
115glade_settings_editor_set_property (GladeSettingsEditor *self,
116 GladeProperty *property)
117{
118 GladePropertyClass *property_class = property->klass;;
119 GtkTreeIter iter;
120
121 if (property == self->property)
122 return;
123
108124 if (property->widget != self->widget)
109125 glade_settings_editor_set_widget (self, property->widget);
110126
111127 // FIXME: look for property in list
112 gtk_list_store_append (GTK_LIST_STORE (self->data), &iter);
113 // FIXME: set tooltip as klass->name
114 gtk_list_store_set (GTK_LIST_STORE (self->data), &iter,
115 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY, property_class->id,
116 GLADE_SETTINGS_EDITOR_COLUMN_KEY, KEY_DEFAULT,
117 -1);
128 add_property (self, property);
118129};
119130
120131static void
137137 GladeSettingsEditor *self = GLADE_SETTINGS_EDITOR (data);
138138 GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
139139 GtkTreeIter iter;
140 gboolean is_void;
140 GladeProperty *property;
141141
142142 g_return_if_fail (gtk_tree_model_get_iter (self->data, &iter, path));
143143 gtk_tree_path_free (path);
144144
145 gtk_tree_model_get (self->data, &iter,
146 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY, &property,
147 -1);
148
145149 if (new_key == NULL || *new_key == 0)
146150 {
147151 /* Not bound any more - remove from tree model */
153153 }
154154 else {
155155 gtk_list_store_set (GTK_LIST_STORE (self->data), &iter,
156 GLADE_SETTINGS_EDITOR_COLUMN_KEY, new_key,
156 GLADE_SETTINGS_EDITOR_COLUMN_KEY_NAME, new_key,
157157 -1);
158158 };
159159
160 glade_command_set_property_binding (property, new_key);
161
160162 /*old_signal = glade_signal_new (signal_name, handler, old_userdata, after);
161163
162164 new_signal = glade_signal_new (signal_name, handler, new_userdata, after);
191191 (type, n_construct_properties, construct_properties);
192192 self = GLADE_SETTINGS_EDITOR (retval);
193193
194 self->data = GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING));
194 self->data = GTK_TREE_MODEL (gtk_list_store_new (3, GLADE_TYPE_PROPERTY,
195 G_TYPE_STRING, G_TYPE_STRING));
195196
196197 self->dialog = gtk_dialog_new_with_buttons (_("Settings connections"),
197198 GTK_WINDOW (glade_app_get_window ()), 0,
205205 cell_renderer = gtk_cell_renderer_text_new ();
206206 column = gtk_tree_view_column_new_with_attributes
207207 (_("Property Name"), cell_renderer,
208 "text", GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY,
208 "text", GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY_NAME,
209209 NULL);
210210 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
211211
213213 g_object_set (cell_renderer, "editable", TRUE, NULL);
214214 column = gtk_tree_view_column_new_with_attributes
215215 (_("Settings Key"), cell_renderer,
216 "text", GLADE_SETTINGS_EDITOR_COLUMN_KEY,
216 "text", GLADE_SETTINGS_EDITOR_COLUMN_KEY_NAME,
217217 NULL);
218218 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
219219
  
1919enum
2020{
2121 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY,
22 GLADE_SETTINGS_EDITOR_COLUMN_KEY,
22 GLADE_SETTINGS_EDITOR_COLUMN_PROPERTY_NAME,
23 GLADE_SETTINGS_EDITOR_COLUMN_KEY_NAME,
2324 GLADE_SETTINGS_EDITOR_NUM_COLUMNS
2425};
2526