diff options
Diffstat (limited to 'src/plugins/fs/meta.c')
-rw-r--r-- | src/plugins/fs/meta.c | 89 |
1 files changed, 50 insertions, 39 deletions
diff --git a/src/plugins/fs/meta.c b/src/plugins/fs/meta.c index cb32959c..6cbab5f5 100644 --- a/src/plugins/fs/meta.c +++ b/src/plugins/fs/meta.c | |||
@@ -56,7 +56,7 @@ void createMetaDataListTreeView(GladeXML * xml, | |||
56 | const char * name, | 56 | const char * name, |
57 | const char * previewName, | 57 | const char * previewName, |
58 | const struct ECRS_MetaData * init) { | 58 | const struct ECRS_MetaData * init) { |
59 | GtkWidget * metaList; | 59 | GtkTreeView * metaList; |
60 | GtkListStore * metamodel; | 60 | GtkListStore * metamodel; |
61 | GtkCellRenderer * renderer; | 61 | GtkCellRenderer * renderer; |
62 | GtkWidget * preview; | 62 | GtkWidget * preview; |
@@ -73,47 +73,39 @@ void createMetaDataListTreeView(GladeXML * xml, | |||
73 | G_TYPE_INT, | 73 | G_TYPE_INT, |
74 | G_TYPE_STRING, | 74 | G_TYPE_STRING, |
75 | G_TYPE_STRING); | 75 | G_TYPE_STRING); |
76 | metaList = glade_xml_get_widget(xml, | 76 | metaList = GTK_TREE_VIEW(glade_xml_get_widget(xml, |
77 | name); | 77 | name)); |
78 | gtk_tree_selection_set_mode(gtk_tree_view_get_selection(metaList), | ||
79 | GTK_SELECTION_MULTIPLE); | ||
78 | renderer = gtk_cell_renderer_text_new(); | 80 | renderer = gtk_cell_renderer_text_new(); |
79 | col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList), | 81 | col = gtk_tree_view_insert_column_with_attributes(metaList, |
80 | -1, | 82 | -1, |
81 | _("Category"), | 83 | _("Category"), |
82 | renderer, | 84 | renderer, |
83 | "text", META_STYPE, | 85 | "text", META_STYPE, |
84 | NULL); | 86 | NULL); |
85 | column = gtk_tree_view_get_column(GTK_TREE_VIEW(metaList), | 87 | column = gtk_tree_view_get_column(metaList, |
86 | col - 1); | 88 | col - 1); |
87 | gtk_tree_view_column_set_resizable(column, TRUE); | 89 | gtk_tree_view_column_set_resizable(column, TRUE); |
88 | gtk_tree_view_column_set_clickable(column, TRUE); | 90 | gtk_tree_view_column_set_clickable(column, TRUE); |
89 | gtk_tree_view_column_set_reorderable(column, TRUE); | 91 | gtk_tree_view_column_set_reorderable(column, TRUE); |
90 | gtk_tree_view_column_set_sort_column_id(column, META_STYPE); | 92 | gtk_tree_view_column_set_sort_column_id(column, META_STYPE); |
91 | /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/ | ||
92 | |||
93 | gtk_tree_view_column_set_resizable(gtk_tree_view_get_column(GTK_TREE_VIEW(metaList), | ||
94 | col - 1), | ||
95 | TRUE); | ||
96 | renderer = gtk_cell_renderer_text_new(); | 93 | renderer = gtk_cell_renderer_text_new(); |
97 | col = gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList), | 94 | col = gtk_tree_view_insert_column_with_attributes(metaList, |
98 | -1, | 95 | -1, |
99 | _("Value"), | 96 | _("Value"), |
100 | renderer, | 97 | renderer, |
101 | "text", META_VALUE, | 98 | "text", META_VALUE, |
102 | NULL); | 99 | NULL); |
103 | column = gtk_tree_view_get_column(GTK_TREE_VIEW(metaList), | 100 | column = gtk_tree_view_get_column(metaList, |
104 | col - 1); | 101 | col - 1); |
105 | gtk_tree_view_column_set_resizable(column, TRUE); | 102 | gtk_tree_view_column_set_resizable(column, TRUE); |
106 | gtk_tree_view_column_set_clickable(column, TRUE); | 103 | gtk_tree_view_column_set_clickable(column, TRUE); |
107 | gtk_tree_view_column_set_reorderable(column, TRUE); | 104 | gtk_tree_view_column_set_reorderable(column, TRUE); |
108 | gtk_tree_view_column_set_sort_column_id(column, META_VALUE); | 105 | gtk_tree_view_column_set_sort_column_id(column, META_VALUE); |
109 | /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/ | 106 | gtk_tree_view_set_model(metaList, |
110 | gtk_tree_view_column_set_resizable(gtk_tree_view_get_column(GTK_TREE_VIEW(metaList), | ||
111 | col - 1), | ||
112 | TRUE); | ||
113 | gtk_tree_view_set_model(GTK_TREE_VIEW(metaList), | ||
114 | GTK_TREE_MODEL(metamodel)); | 107 | GTK_TREE_MODEL(metamodel)); |
115 | gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(metaList)), | 108 | |
116 | GTK_SELECTION_MULTIPLE); | ||
117 | if (init != NULL) | 109 | if (init != NULL) |
118 | ECRS_getMetaData(init, | 110 | ECRS_getMetaData(init, |
119 | &publishMetaData, | 111 | &publishMetaData, |
@@ -168,7 +160,7 @@ static int publishKeyword(const char * data, | |||
168 | void createKeywordListTreeView(GladeXML * xml, | 160 | void createKeywordListTreeView(GladeXML * xml, |
169 | const char * name, | 161 | const char * name, |
170 | const struct ECRS_URI * init) { | 162 | const struct ECRS_URI * init) { |
171 | GtkWidget * keywordList; | 163 | GtkTreeView * keywordList; |
172 | GtkListStore * keymodel; | 164 | GtkListStore * keymodel; |
173 | GtkCellRenderer * renderer; | 165 | GtkCellRenderer * renderer; |
174 | GtkTreeViewColumn * column; | 166 | GtkTreeViewColumn * column; |
@@ -177,26 +169,25 @@ void createKeywordListTreeView(GladeXML * xml, | |||
177 | keymodel | 169 | keymodel |
178 | = gtk_list_store_new(1, | 170 | = gtk_list_store_new(1, |
179 | G_TYPE_STRING); | 171 | G_TYPE_STRING); |
180 | keywordList = glade_xml_get_widget(xml, | 172 | keywordList = GTK_TREE_VIEW(glade_xml_get_widget(xml, |
181 | name); | 173 | name)); |
174 | gtk_tree_selection_set_mode(gtk_tree_view_get_selection(keywordList), | ||
175 | GTK_SELECTION_MULTIPLE); | ||
182 | renderer = gtk_cell_renderer_text_new(); | 176 | renderer = gtk_cell_renderer_text_new(); |
183 | gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(keywordList), | 177 | gtk_tree_view_insert_column_with_attributes(keywordList, |
184 | -1, | 178 | -1, |
185 | _("Keyword"), | 179 | _("Keyword"), |
186 | renderer, | 180 | renderer, |
187 | "text", 0, | 181 | "text", 0, |
188 | NULL); | 182 | NULL); |
189 | column = gtk_tree_view_get_column(GTK_TREE_VIEW(keywordList), | 183 | column = gtk_tree_view_get_column(keywordList, |
190 | 0); | 184 | 0); |
191 | gtk_tree_view_column_set_resizable(column, TRUE); | 185 | gtk_tree_view_column_set_resizable(column, TRUE); |
192 | gtk_tree_view_column_set_clickable(column, TRUE); | 186 | gtk_tree_view_column_set_clickable(column, TRUE); |
193 | gtk_tree_view_column_set_reorderable(column, TRUE); | 187 | gtk_tree_view_column_set_reorderable(column, TRUE); |
194 | gtk_tree_view_column_set_sort_column_id(column, 0); | 188 | gtk_tree_view_column_set_sort_column_id(column, 0); |
195 | /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/ | 189 | gtk_tree_view_set_model(keywordList, |
196 | gtk_tree_view_set_model(GTK_TREE_VIEW(keywordList), | ||
197 | GTK_TREE_MODEL(keymodel)); | 190 | GTK_TREE_MODEL(keymodel)); |
198 | gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(keywordList)), | ||
199 | GTK_SELECTION_MULTIPLE); | ||
200 | if (init != NULL) | 191 | if (init != NULL) |
201 | ECRS_getKeywordsFromUri(init, | 192 | ECRS_getKeywordsFromUri(init, |
202 | &publishKeyword, | 193 | &publishKeyword, |
@@ -322,6 +313,26 @@ void handleMetaDataListUpdate(GladeXML * xml, | |||
322 | DEBUG_END(); | 313 | DEBUG_END(); |
323 | } | 314 | } |
324 | 315 | ||
316 | static void removeRow(GtkTreeModel * model, | ||
317 | GtkTreePath * path, | ||
318 | GtkTreeIter * iter, | ||
319 | gpointer unused) { | ||
320 | gtk_list_store_remove(GTK_LIST_STORE(model), | ||
321 | iter); | ||
322 | } | ||
323 | |||
324 | void handleListRemove(GladeXML * xml, | ||
325 | const char * listName) { | ||
326 | GtkWidget * list; | ||
327 | |||
328 | list = glade_xml_get_widget(xml, | ||
329 | listName); | ||
330 | ggc_tree_selection_selected_foreach | ||
331 | (gtk_tree_view_get_selection(GTK_TREE_VIEW(list)), | ||
332 | &removeRow, | ||
333 | NULL); | ||
334 | } | ||
335 | |||
325 | struct ECRS_MetaData * getMetaDataFromList(GladeXML * xml, | 336 | struct ECRS_MetaData * getMetaDataFromList(GladeXML * xml, |
326 | const char * name, | 337 | const char * name, |
327 | const char * previewName) { | 338 | const char * previewName) { |
@@ -587,7 +598,7 @@ const char * getEntryLineValue(GladeXML * xml, | |||
587 | const char * widgetName) { | 598 | const char * widgetName) { |
588 | GtkBin * line; | 599 | GtkBin * line; |
589 | GtkEntry * entry; | 600 | GtkEntry * entry; |
590 | 601 | ||
591 | line = GTK_BIN(glade_xml_get_widget(xml, | 602 | line = GTK_BIN(glade_xml_get_widget(xml, |
592 | widgetName)); | 603 | widgetName)); |
593 | entry = GTK_ENTRY(gtk_bin_get_child(line)); | 604 | entry = GTK_ENTRY(gtk_bin_get_child(line)); |