aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/fs/collection.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/fs/collection.c')
-rw-r--r--src/plugins/fs/collection.c143
1 files changed, 18 insertions, 125 deletions
diff --git a/src/plugins/fs/collection.c b/src/plugins/fs/collection.c
index f7bf5793..53e51e47 100644
--- a/src/plugins/fs/collection.c
+++ b/src/plugins/fs/collection.c
@@ -27,82 +27,32 @@
27#include "platform.h" 27#include "platform.h"
28#include "gnunetgtk_common.h" 28#include "gnunetgtk_common.h"
29#include "fs.h" 29#include "fs.h"
30#include "meta.h"
30#include "collection.h" 31#include "collection.h"
31#include <extractor.h> 32#include <extractor.h>
32 33
33static GladeXML * metaXML; 34static GladeXML * metaXML;
34 35
35 36void on_collectionDialogMetaDataAddButton_clicked(gpointer dummy,
36 37 GtkWidget * uploadButton) {
37/** 38 handleMetaDataListUpdate(metaXML,
38 * FIXME: somehow this function is not called 39 "collectionMetaDataTypeComboBox",
39 * when the button is clicked. 40 "collectionMetaDataValueEntry",
40 */ 41 "collectionMetaDataTreeView");
41void
42on_collectionDialogMetaDataAddButton_clicked(gpointer dummy,
43 GtkWidget * uploadButton) {
44 GtkWidget * metaList;
45 GtkWidget * entryLine;
46 GtkWidget * typeCB;
47 const char * value;
48 EXTRACTOR_KeywordType type;
49 GtkListStore * metamodel;
50 GtkListStore * typemodel;
51 GtkTreeIter iter;
52 char * stype;
53
54 metaList = glade_xml_get_widget(metaXML,
55 "collectionMetaDataTreeView");
56 metamodel
57 = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(metaList)));
58
59 entryLine = glade_xml_get_widget(metaXML,
60 "collectionMetaDataValueEntry");
61 value = gtk_entry_get_text(GTK_ENTRY(entryLine));
62 typeCB = glade_xml_get_widget(metaXML,
63 "collectionMetaDataTypeComboBox");
64 typemodel
65 = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(typeCB)));
66 if (! gtk_combo_box_get_active_iter(GTK_COMBO_BOX(typeCB),
67 &iter))
68 return; /* oops */
69 gtk_tree_model_get(GTK_TREE_MODEL(typemodel),
70 &iter,
71 KTYPE_STRING, &stype,
72 KTYPE_TYPE, &type,
73 -1);
74 gtk_list_store_append(metamodel,
75 &iter);
76 gtk_list_store_set(metamodel,
77 &iter,
78 META_TYPE, type,
79 META_STYPE, stype,
80 META_VALUE, value,
81 -1);
82 gtk_entry_set_text(GTK_ENTRY(entryLine), "");
83} 42}
84 43
85 44
86void createCollection_clicked(GtkWidget * dummy1, 45void createCollection_clicked(GtkWidget * dummy1,
87 GtkWidget * dummy2) { 46 GtkWidget * dummy2) {
88 GtkWidget * w;
89 const char * collectionName; 47 const char * collectionName;
48 const char * updateIntervalString;
49 GtkWidget * w;
90 GtkWidget * nameLine; 50 GtkWidget * nameLine;
91 GtkWidget * metaList;
92 GtkWidget * dialog; 51 GtkWidget * dialog;
93 GtkWidget * metaType;
94 GtkWidget * spin; 52 GtkWidget * spin;
95 GtkListStore * metamodel;
96 GtkCellRenderer * renderer;
97 GtkListStore * keywordTypeModel;
98 GtkTreeIter iter;
99 struct ECRS_MetaData * meta; 53 struct ECRS_MetaData * meta;
100 EXTRACTOR_KeywordType type;
101 const char * stype;
102 char * mvalue;
103 struct ECRS_URI * root; 54 struct ECRS_URI * root;
104 cron_t updateInterval; 55 cron_t updateInterval;
105 const char * updateIntervalString;
106 56
107 metaXML 57 metaXML
108 = glade_xml_new(getGladeFileName(), 58 = glade_xml_new(getGladeFileName(),
@@ -111,75 +61,18 @@ void createCollection_clicked(GtkWidget * dummy1,
111 connectGladeWithPlugins(metaXML); 61 connectGladeWithPlugins(metaXML);
112 dialog = glade_xml_get_widget(metaXML, 62 dialog = glade_xml_get_widget(metaXML,
113 "createCollectionDialog"); 63 "createCollectionDialog");
114 metamodel 64 createMetaDataListTreeView(metaXML,
115 = gtk_list_store_new(META_NUM, 65 "collectionMetaDataTreeView",
116 G_TYPE_INT, 66 NULL,
117 G_TYPE_STRING, 67 NULL);
118 G_TYPE_STRING); 68 createMetaTypeComboBox(metaXML,
119 metaList = glade_xml_get_widget(metaXML, 69 "collectionMetaTypeComboBox");
120 "collectionMetaDataTreeView");
121 renderer = gtk_cell_renderer_text_new();
122 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList),
123 -1,
124 _("Category"),
125 renderer,
126 "text", META_STYPE,
127 NULL);
128 renderer = gtk_cell_renderer_text_new();
129 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList),
130 -1,
131 _("Value"),
132 renderer,
133 "text", META_VALUE,
134 NULL);
135 gtk_tree_view_set_model(GTK_TREE_VIEW(metaList),
136 GTK_TREE_MODEL(metamodel));
137 keywordTypeModel
138 = gtk_list_store_new(KTYPE_NUM,
139 G_TYPE_STRING,
140 G_TYPE_INT);
141 metaType
142 = glade_xml_get_widget(metaXML,
143 "collectionMetaTypeComboBox");
144 gtk_combo_box_set_model(GTK_COMBO_BOX(metaType),
145 GTK_TREE_MODEL(keywordTypeModel));
146 for (type=0;type<EXTRACTOR_getHighestKeywordTypeNumber();type++) {
147 stype = EXTRACTOR_getKeywordTypeAsString(type);
148 gtk_list_store_append(keywordTypeModel,
149 &iter);
150 gtk_list_store_set(keywordTypeModel,
151 &iter,
152 KTYPE_STRING, stype,
153 KTYPE_TYPE, type,
154 -1);
155 }
156 renderer = gtk_cell_renderer_text_new();
157 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(metaType),
158 renderer,
159 FALSE);
160 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(metaType),
161 renderer,
162 "text", KTYPE_STRING);
163 gtk_combo_box_set_active(GTK_COMBO_BOX(metaType),
164 0);
165 gtk_dialog_set_default_response(GTK_DIALOG(dialog), 70 gtk_dialog_set_default_response(GTK_DIALOG(dialog),
166 GTK_RESPONSE_OK); 71 GTK_RESPONSE_OK);
167 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) { 72 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
168 meta = ECRS_createMetaData(); 73 meta = getMetaDataFromList(metaXML,
169 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(metamodel), 74 "collectionMetaDataTreeView",
170 &iter)) { 75 NULL);
171 do {
172 gtk_tree_model_get(GTK_TREE_MODEL(metamodel),
173 &iter,
174 META_TYPE, &type,
175 META_VALUE, &mvalue,
176 -1);
177 ECRS_addToMetaData(meta,
178 type,
179 mvalue);
180 } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(metamodel),
181 &iter));
182 }
183 spin = glade_xml_get_widget(metaXML, 76 spin = glade_xml_get_widget(metaXML,
184 "collectionAnonymityLevel"); 77 "collectionAnonymityLevel");
185 nameLine 78 nameLine