diff options
Diffstat (limited to 'src/plugins/fs/collection.c')
-rw-r--r-- | src/plugins/fs/collection.c | 143 |
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 | ||
33 | static GladeXML * metaXML; | 34 | static GladeXML * metaXML; |
34 | 35 | ||
35 | 36 | void 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"); |
41 | void | ||
42 | on_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 | ||
86 | void createCollection_clicked(GtkWidget * dummy1, | 45 | void 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 |