aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2005-06-19 16:14:32 +0000
committerChristian Grothoff <christian@grothoff.org>2005-06-19 16:14:32 +0000
commit7cb7ccf6b1b35f959ba1f49bd451ed4714b015ed (patch)
tree0f650fdcefdfc9baf7b889c1784f18539700b26c
parent44b596fcc39b411b455954eabdf348de8ac11550 (diff)
downloadgnunet-gtk-7cb7ccf6b1b35f959ba1f49bd451ed4714b015ed.tar.gz
gnunet-gtk-7cb7ccf6b1b35f959ba1f49bd451ed4714b015ed.zip
update
-rw-r--r--ChangeLog6
-rw-r--r--TODO4
-rw-r--r--src/download.c129
-rw-r--r--src/download.h2
-rw-r--r--src/fs.h50
-rw-r--r--src/search.c204
-rw-r--r--src/search.h13
-rw-r--r--src/upload.c110
8 files changed, 265 insertions, 253 deletions
diff --git a/ChangeLog b/ChangeLog
index ccfb52d3..3d6d544c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,3 @@
1 1
2Mon May 23 11:06:02 EST 2005 2Mon May 23 11:06:02 EST 2005
3 Started serious coding on glade-based gnunet-gtk. 3 Started serious coding on glade-based gnunet-gtk.
4
52005/5/24 6:45:33 EST
6 update files from .glade file
7
82005/5/24 16:35:41 EST
9 update files from .glade file
diff --git a/TODO b/TODO
index d7dfadba..8e4496d1 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,4 @@
1Important (for 0.7.0): 1Important (for 0.7.0):
2* cleanup-code (enum instead of 1,2,3,4; refactor search/download copied code) [ easy, CG ]
3* make use of anonymity level specification widgets [ easy, CG ]: 2* make use of anonymity level specification widgets [ easy, CG ]:
4 - search 3 - search
5 - download 4 - download
@@ -25,6 +24,7 @@ Less important (but still 0.7.0ish):
25* highlight active downloads in search list [ easy ] 24* highlight active downloads in search list [ easy ]
26 25
27Later (0.7.1): 26Later (0.7.1):
27* plugin mechanism! [ medium, CG (I have something rather specific in mind) ]
28* auto-rename downloaded files to better names (user feedback!?) [ medium ] 28* auto-rename downloaded files to better names (user feedback!?) [ medium ]
29* stats integration [ medium ] 29* stats integration [ medium ]
30* available apps [ medium ] 30* available apps [ medium ]
@@ -37,8 +37,6 @@ Later (0.7.1):
37 37
38 38
39gnunet-gtk wishlist (from pre-0.7.0 days): 39gnunet-gtk wishlist (from pre-0.7.0 days):
40- #770? (use freedback (LOG) in gnunet-gtk via show-messages)
41 (is this not working nicely already?)
42- add option to list all indexed files and perhaps delete from them 40- add option to list all indexed files and perhaps delete from them
43 (ECRS now supports listing of indexed files!) 41 (ECRS now supports listing of indexed files!)
44- for potentially long clists, add option to specify a string 42- for potentially long clists, add option to specify a string
diff --git a/src/download.c b/src/download.c
index 0154e9ac..eca922c8 100644
--- a/src/download.c
+++ b/src/download.c
@@ -63,14 +63,6 @@ static int addFilesToDirectory
63 GtkTreeIter iter; 63 GtkTreeIter iter;
64 GtkTreeIter child; 64 GtkTreeIter child;
65 int i; 65 int i;
66 unsigned long long size;
67 char * name;
68 char * mime;
69 char * desc;
70 unsigned char * thumb;
71 size_t ts;
72 GdkPixbuf * pixbuf;
73 GdkPixbufLoader * loader;
74 GtkTreePath * path; 66 GtkTreePath * path;
75 67
76 if (! gtk_tree_row_reference_valid(pos->rr)) 68 if (! gtk_tree_row_reference_valid(pos->rr))
@@ -89,7 +81,7 @@ static int addFilesToDirectory
89 uri = NULL; 81 uri = NULL;
90 gtk_tree_model_get(pos->model, 82 gtk_tree_model_get(pos->model,
91 &iter, 83 &iter,
92 5, &uri, 84 SEARCH_URI, &uri,
93 -1); 85 -1);
94 if ( (uri != NULL) && 86 if ( (uri != NULL) &&
95 (ECRS_equalsUri(uri, 87 (ECRS_equalsUri(uri,
@@ -100,69 +92,10 @@ static int addFilesToDirectory
100 gtk_tree_store_append(GTK_TREE_STORE(pos->model), 92 gtk_tree_store_append(GTK_TREE_STORE(pos->model),
101 &child, 93 &child,
102 &iter); 94 &iter);
103 95 addEntryToSearchTree(GTK_TREE_STORE(pos->model),
104 /* FIXME: this code is identical to some 96 &child,
105 code in search.c -- refactor into one 97 fi->uri,
106 function (on model, iter and fi) */ 98 fi->meta);
107 mime = ECRS_getFromMetaData(fi->meta,
108 EXTRACTOR_MIMETYPE);
109 if (mime == NULL)
110 mime = STRDUP(_("unknown"));
111 desc = ECRS_getFirstFromMetaData(fi->meta,
112 EXTRACTOR_DESCRIPTION,
113 EXTRACTOR_GENRE,
114 EXTRACTOR_ALBUM,
115 EXTRACTOR_COMMENT,
116 EXTRACTOR_SUBJECT,
117 EXTRACTOR_FORMAT,
118 EXTRACTOR_SIZE,
119 EXTRACTOR_KEYWORDS,
120 -1);
121 if (desc == NULL)
122 desc = STRDUP(_(""));
123 name = ECRS_getFirstFromMetaData(fi->meta,
124 EXTRACTOR_FILENAME,
125 EXTRACTOR_TITLE,
126 EXTRACTOR_ARTIST,
127 EXTRACTOR_AUTHOR,
128 EXTRACTOR_PUBLISHER,
129 EXTRACTOR_CREATOR,
130 EXTRACTOR_PRODUCER,
131 EXTRACTOR_UNKNOWN,
132 -1);
133 if (name == NULL)
134 name = STRDUP(_("no name given"));
135 size = ECRS_fileSize(fi->uri);
136 thumb = NULL;
137 ts = ECRS_getThumbnailFromMetaData(fi->meta,
138 &thumb);
139 if (ts != 0) {
140 loader = gdk_pixbuf_loader_new();
141 gdk_pixbuf_loader_write(loader,
142 (const guchar*) thumb,
143 ts,
144 NULL);
145 pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
146 gdk_pixbuf_loader_close(loader,
147 NULL);
148 } else {
149 pixbuf = NULL;
150 }
151 gtk_tree_store_set(GTK_TREE_STORE(pos->model),
152 &child,
153 0, name,
154 1, size,
155 2, mime,
156 3, desc,
157 4, pixbuf,
158 5, ECRS_dupUri(fi->uri),
159 6, ECRS_dupMetaData(fi->meta),
160 7, NULL, /* internal */
161 -1);
162 FREE(mime);
163 FREE(desc);
164 FREE(name);
165 FREENONNULL(thumb);
166 } 99 }
167 return OK; 100 return OK;
168} 101}
@@ -186,9 +119,9 @@ static void initiateDownload(GtkTreeModel *model,
186 name = NULL; 119 name = NULL;
187 gtk_tree_model_get(model, 120 gtk_tree_model_get(model,
188 iter, 121 iter,
189 0, &name, 122 SEARCH_NAME, &name,
190 5, &uri, 123 SEARCH_URI, &uri,
191 6, &meta, 124 SEARCH_META, &meta,
192 -1); 125 -1);
193 if (uri == NULL) { 126 if (uri == NULL) {
194 BREAK(); 127 BREAK();
@@ -258,12 +191,12 @@ static void initiateDownload(GtkTreeModel *model,
258 0); 191 0);
259 gtk_tree_store_set(summary, 192 gtk_tree_store_set(summary,
260 &iiter, 193 &iiter,
261 0, name, 194 DOWNLOAD_FILENAME, name,
262 1, ECRS_fileSize(uri), 195 DOWNLOAD_SIZE, ECRS_fileSize(uri),
263 2, 0, /* progress */ 196 DOWNLOAD_PROGRESS, 0, /* progress */
264 3, filename, 197 DOWNLOAD_URISTRING, filename,
265 4, ECRS_dupUri(uri), 198 DOWNLOAD_URI, ECRS_dupUri(uri),
266 5, list->rr, /* internal: row reference! */ 199 DOWNLOAD_TREEPATH, list->rr, /* internal: row reference! */
267 -1); 200 -1);
268 FREE(filename); 201 FREE(filename);
269 FREE(name); 202 FREE(name);
@@ -303,8 +236,8 @@ void displayDownloadUpdate(const struct ECRS_URI * uri,
303 do { 236 do {
304 gtk_tree_model_get(GTK_TREE_MODEL(summary), 237 gtk_tree_model_get(GTK_TREE_MODEL(summary),
305 &iter, 238 &iter,
306 1, &total, 239 DOWNLOAD_SIZE, &total,
307 4, &u, 240 DOWNLOAD_URI, &u,
308 -1); 241 -1);
309 if (ECRS_equalsUri(u, uri)) { 242 if (ECRS_equalsUri(u, uri)) {
310 if (total != 0) 243 if (total != 0)
@@ -313,7 +246,7 @@ void displayDownloadUpdate(const struct ECRS_URI * uri,
313 val = 100; 246 val = 100;
314 gtk_tree_store_set(GTK_TREE_STORE(summary), 247 gtk_tree_store_set(GTK_TREE_STORE(summary),
315 &iter, 248 &iter,
316 2, val, 249 DOWNLOAD_PROGRESS, val,
317 -1); 250 -1);
318 break; 251 break;
319 } 252 }
@@ -409,12 +342,12 @@ static int addDownloadView(void * cls,
409 0); 342 0);
410 gtk_tree_store_set(summary, 343 gtk_tree_store_set(summary,
411 &iiter, 344 &iiter,
412 0, filename, 345 DOWNLOAD_FILENAME, filename,
413 1, filesize, 346 DOWNLOAD_SIZE, filesize,
414 2, progress, 347 DOWNLOAD_PROGRESS, progress,
415 3, uriname, 348 DOWNLOAD_URISTRING, uriname,
416 4, ECRS_dupUri(uri), 349 DOWNLOAD_URI, ECRS_dupUri(uri),
417 5, NULL, 350 DOWNLOAD_TREEPATH, NULL,
418 -1); 351 -1);
419 FREE(uriname); 352 FREE(uriname);
420 return OK; 353 return OK;
@@ -430,7 +363,7 @@ void fs_download_start() {
430 downloadList = glade_xml_get_widget(mainXML, 363 downloadList = glade_xml_get_widget(mainXML,
431 "activeDownloadsList"); 364 "activeDownloadsList");
432 summary = 365 summary =
433 gtk_tree_store_new(6, 366 gtk_tree_store_new(DOWNLOAD_NUM,
434 G_TYPE_STRING, /* name */ 367 G_TYPE_STRING, /* name */
435 G_TYPE_UINT64, /* size */ 368 G_TYPE_UINT64, /* size */
436 G_TYPE_INT, /* progress */ 369 G_TYPE_INT, /* progress */
@@ -444,22 +377,22 @@ void fs_download_start() {
444 -1, 377 -1,
445 _("Name"), 378 _("Name"),
446 renderer, 379 renderer,
447 "value", 2, 380 "value", DOWNLOAD_PROGRESS,
448 "text", 0, 381 "text", DOWNLOAD_FILENAME,
449 NULL); 382 NULL);
450 renderer = gtk_cell_renderer_text_new(); 383 renderer = gtk_cell_renderer_text_new();
451 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(downloadList), 384 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(downloadList),
452 -1, 385 -1,
453 _("Size"), 386 _("Size"),
454 renderer, 387 renderer,
455 "text", 1, 388 "text", DOWNLOAD_SIZE,
456 NULL); 389 NULL);
457 renderer = gtk_cell_renderer_text_new(); 390 renderer = gtk_cell_renderer_text_new();
458 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(downloadList), 391 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(downloadList),
459 -1, 392 -1,
460 _("URI"), 393 _("URI"),
461 renderer, 394 renderer,
462 "text", 3, 395 "text", DOWNLOAD_URISTRING,
463 NULL); 396 NULL);
464 FSUI_listDownloads(ctx, 397 FSUI_listDownloads(ctx,
465 NULL, 398 NULL,
@@ -480,13 +413,15 @@ void fs_download_stop() {
480 do { 413 do {
481 gtk_tree_model_get(GTK_TREE_MODEL(summary), 414 gtk_tree_model_get(GTK_TREE_MODEL(summary),
482 &iter, 415 &iter,
483 4, &u, 416 DOWNLOAD_URI, &u,
484 -1); 417 -1);
485 gtk_tree_store_set(GTK_TREE_STORE(summary), 418 gtk_tree_store_set(GTK_TREE_STORE(summary),
486 &iter, 419 &iter,
487 4, NULL, 420 DOWNLOAD_URI, NULL,
488 -1); 421 -1);
489 ECRS_freeUri(u); 422 ECRS_freeUri(u);
423 /* FIXME:
424 also free DOWNLOAD_TREEPATH! */
490 } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(summary), 425 } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(summary),
491 &iter)); 426 &iter));
492} 427}
diff --git a/src/download.h b/src/download.h
index a5629cda..b78e4b59 100644
--- a/src/download.h
+++ b/src/download.h
@@ -30,6 +30,7 @@
30#include "main.h" 30#include "main.h"
31#include "fs.h" 31#include "fs.h"
32 32
33
33/** 34/**
34 */ 35 */
35void displayDownloadUpdate(const struct ECRS_URI * uri, 36void displayDownloadUpdate(const struct ECRS_URI * uri,
@@ -46,4 +47,5 @@ void fs_download_start(void);
46 47
47void fs_download_stop(void); 48void fs_download_stop(void);
48 49
50
49#endif 51#endif
diff --git a/src/fs.h b/src/fs.h
index 89b5605c..f08904fc 100644
--- a/src/fs.h
+++ b/src/fs.h
@@ -31,6 +31,56 @@
31#include <GNUnet/gnunet_ecrs_lib.h> 31#include <GNUnet/gnunet_ecrs_lib.h>
32#include <GNUnet/gnunet_fsui_lib.h> 32#include <GNUnet/gnunet_fsui_lib.h>
33 33
34enum {
35 SEARCH_NAME = 0,
36 SEARCH_SIZE,
37 SEARCH_MIME,
38 SEARCH_DESC,
39 SEARCH_PIXBUF,
40 SEARCH_URI,
41 SEARCH_META,
42 SEARCH_INTERNAL,
43 SEARCH_NUM,
44};
45
46enum {
47 SER_SUM_NAME = 0,
48 SER_SUM_COUNT,
49 SER_SUM_URI,
50 SER_SUM_NUM
51};
52
53enum {
54 DOWNLOAD_FILENAME = 0,
55 DOWNLOAD_SIZE,
56 DOWNLOAD_PROGRESS,
57 DOWNLOAD_URISTRING,
58 DOWNLOAD_URI,
59 DOWNLOAD_TREEPATH,
60 DOWNLOAD_NUM
61};
62
63enum {
64 UPLOAD_FILENAME = 0,
65 UPLOAD_PROGRESS,
66 UPLOAD_URISTRING,
67 UPLOAD_NUM
68};
69
70enum {
71 META_TYPE = 0,
72 META_STYPE,
73 META_VALUE,
74 META_NUM,
75};
76
77enum {
78 KTYPE_STRING = 0,
79 KTYPE_TYPE,
80 KTYPE_NUM,
81};
82
83
34extern struct FSUI_Context * ctx; 84extern struct FSUI_Context * ctx;
35 85
36void gtk_fs_init(void); 86void gtk_fs_init(void);
diff --git a/src/search.c b/src/search.c
index 000b7837..3b834e23 100644
--- a/src/search.c
+++ b/src/search.c
@@ -31,6 +31,90 @@
31#include <extractor.h> 31#include <extractor.h>
32 32
33/** 33/**
34 * Add an entry to the search tree.
35 *
36 * @param model the search model
37 * @param pos the position to add the entry
38 * @param uri the URI to add
39 * @param meta metadata describing the URI
40 */
41void addEntryToSearchTree(GtkTreeStore * model,
42 GtkTreeIter * pos,
43 const struct ECRS_URI * uri,
44 const struct ECRS_MetaData * meta) {
45 char * name;
46 char * mime;
47 char * desc;
48 unsigned char * thumb;
49 size_t ts;
50 GdkPixbuf * pixbuf;
51 GdkPixbufLoader * loader;
52 unsigned long long size;
53
54 mime = ECRS_getFromMetaData(meta,
55 EXTRACTOR_MIMETYPE);
56 if (mime == NULL)
57 mime = STRDUP(_("unknown"));
58 desc = ECRS_getFirstFromMetaData(meta,
59 EXTRACTOR_DESCRIPTION,
60 EXTRACTOR_GENRE,
61 EXTRACTOR_ALBUM,
62 EXTRACTOR_COMMENT,
63 EXTRACTOR_SUBJECT,
64 EXTRACTOR_FORMAT,
65 EXTRACTOR_SIZE,
66 EXTRACTOR_KEYWORDS,
67 -1);
68 if (desc == NULL)
69 desc = STRDUP(_(""));
70 name = ECRS_getFirstFromMetaData(meta,
71 EXTRACTOR_FILENAME,
72 EXTRACTOR_TITLE,
73 EXTRACTOR_ARTIST,
74 EXTRACTOR_AUTHOR,
75 EXTRACTOR_PUBLISHER,
76 EXTRACTOR_CREATOR,
77 EXTRACTOR_PRODUCER,
78 EXTRACTOR_UNKNOWN,
79 -1);
80 if (name == NULL)
81 name = STRDUP(_("no name given"));
82 size = ECRS_fileSize(uri);
83 thumb = NULL;
84 ts = ECRS_getThumbnailFromMetaData(meta,
85 &thumb);
86 if (ts != 0) {
87 loader = gdk_pixbuf_loader_new();
88 gdk_pixbuf_loader_write(loader,
89 (const guchar*) thumb,
90 ts,
91 NULL);
92 pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
93 gdk_pixbuf_loader_close(loader,
94 NULL);
95 } else {
96 pixbuf = NULL;
97 }
98 gtk_tree_store_set(model,
99 pos,
100 SEARCH_NAME, name,
101 SEARCH_SIZE, size,
102 SEARCH_MIME, mime,
103 SEARCH_DESC, desc,
104 SEARCH_PIXBUF, pixbuf,
105 SEARCH_URI, ECRS_dupUri(uri),
106 SEARCH_META, ECRS_dupMetaData(meta),
107 SEARCH_INTERNAL, NULL, /* internal */
108 -1);
109 FREE(mime);
110 FREE(desc);
111 FREE(name);
112 FREENONNULL(thumb);
113}
114
115
116
117/**
34 * @brief linked list of pages in the search notebook 118 * @brief linked list of pages in the search notebook
35 */ 119 */
36typedef struct SL { 120typedef struct SL {
@@ -59,8 +143,8 @@ static void freeIterSubtree(GtkTreeModel * tree,
59 meta = NULL; 143 meta = NULL;
60 gtk_tree_model_get(tree, 144 gtk_tree_model_get(tree,
61 iter, 145 iter,
62 5, &uri, 146 SEARCH_URI, &uri,
63 6, &meta, 147 SEARCH_META, &meta,
64 -1); 148 -1);
65 if (uri != NULL) 149 if (uri != NULL)
66 ECRS_freeUri(uri); 150 ECRS_freeUri(uri);
@@ -68,8 +152,8 @@ static void freeIterSubtree(GtkTreeModel * tree,
68 ECRS_freeMetaData(meta); 152 ECRS_freeMetaData(meta);
69 gtk_tree_store_set(GTK_TREE_STORE(tree), 153 gtk_tree_store_set(GTK_TREE_STORE(tree),
70 iter, 154 iter,
71 5, NULL, 155 SEARCH_URI, NULL,
72 6, NULL, 156 SEARCH_META, NULL,
73 -1); 157 -1);
74 if (gtk_tree_model_iter_children(tree, 158 if (gtk_tree_model_iter_children(tree,
75 &child, 159 &child,
@@ -110,14 +194,6 @@ static void addSearchResultToModel(const ECRS_FileInfo * info,
110 GtkTreeIter parent; 194 GtkTreeIter parent;
111 GtkTreeIter * pparent; 195 GtkTreeIter * pparent;
112 GtkTreePath * path; 196 GtkTreePath * path;
113 unsigned long long size;
114 char * name;
115 char * mime;
116 char * desc;
117 unsigned char * thumb;
118 size_t ts;
119 GdkPixbuf * pixbuf;
120 GdkPixbufLoader * loader;
121 197
122 if (! gtk_tree_row_reference_valid(row)) 198 if (! gtk_tree_row_reference_valid(row))
123 path = NULL; 199 path = NULL;
@@ -135,65 +211,10 @@ static void addSearchResultToModel(const ECRS_FileInfo * info,
135 &iter, 211 &iter,
136 pparent, 212 pparent,
137 0); 213 0);
138 mime = ECRS_getFromMetaData(info->meta, 214 addEntryToSearchTree(model,
139 EXTRACTOR_MIMETYPE); 215 &iter,
140 if (mime == NULL) 216 info->uri,
141 mime = STRDUP(_("unknown")); 217 info->meta);
142 desc = ECRS_getFirstFromMetaData(info->meta,
143 EXTRACTOR_DESCRIPTION,
144 EXTRACTOR_GENRE,
145 EXTRACTOR_ALBUM,
146 EXTRACTOR_COMMENT,
147 EXTRACTOR_SUBJECT,
148 EXTRACTOR_FORMAT,
149 EXTRACTOR_SIZE,
150 EXTRACTOR_KEYWORDS,
151 -1);
152 if (desc == NULL)
153 desc = STRDUP(_(""));
154 name = ECRS_getFirstFromMetaData(info->meta,
155 EXTRACTOR_FILENAME,
156 EXTRACTOR_TITLE,
157 EXTRACTOR_ARTIST,
158 EXTRACTOR_AUTHOR,
159 EXTRACTOR_PUBLISHER,
160 EXTRACTOR_CREATOR,
161 EXTRACTOR_PRODUCER,
162 EXTRACTOR_UNKNOWN,
163 -1);
164 if (name == NULL)
165 name = STRDUP(_("no name given"));
166 size = ECRS_fileSize(info->uri);
167 thumb = NULL;
168 ts = ECRS_getThumbnailFromMetaData(info->meta,
169 &thumb);
170 if (ts != 0) {
171 loader = gdk_pixbuf_loader_new();
172 gdk_pixbuf_loader_write(loader,
173 (const guchar*) thumb,
174 ts,
175 NULL);
176 pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
177 gdk_pixbuf_loader_close(loader,
178 NULL);
179 } else {
180 pixbuf = NULL;
181 }
182 gtk_tree_store_set(model,
183 &iter,
184 0, name,
185 1, size,
186 2, mime,
187 3, desc,
188 4, pixbuf,
189 5, ECRS_dupUri(info->uri),
190 6, ECRS_dupMetaData(info->meta),
191 7, NULL, /* internal */
192 -1);
193 FREE(mime);
194 FREE(desc);
195 FREE(name);
196 FREENONNULL(thumb);
197} 218}
198 219
199/** 220/**
@@ -236,15 +257,15 @@ void displaySearchResult(const ECRS_FileInfo * info,
236 do { 257 do {
237 gtk_tree_model_get(GTK_TREE_MODEL(summary), 258 gtk_tree_model_get(GTK_TREE_MODEL(summary),
238 &iter, 259 &iter,
239 1, &count, 260 SER_SUM_COUNT, &count,
240 2, &euri, 261 SER_SUM_URI, &euri,
241 -1); 262 -1);
242 if (ECRS_equalsUri(euri, 263 if (ECRS_equalsUri(euri,
243 uri)) { 264 uri)) {
244 count++; 265 count++;
245 gtk_list_store_set(GTK_LIST_STORE(summary), 266 gtk_list_store_set(GTK_LIST_STORE(summary),
246 &iter, 267 &iter,
247 1, count, 268 SER_SUM_COUNT, count,
248 -1); 269 -1);
249 return; 270 return;
250 } 271 }
@@ -308,7 +329,7 @@ void on_closeSearchButton_clicked(GtkWidget * searchPage,
308 do { 329 do {
309 gtk_tree_model_get(GTK_TREE_MODEL(summary), 330 gtk_tree_model_get(GTK_TREE_MODEL(summary),
310 &iter, 331 &iter,
311 2, &euri, 332 SER_SUM_URI, &euri,
312 -1); 333 -1);
313 if (ECRS_equalsUri(euri, 334 if (ECRS_equalsUri(euri,
314 uri)) { 335 uri)) {
@@ -344,7 +365,7 @@ static GtkWidget * makeResultFrame(GtkWidget ** treeview) {
344 if (treeview != NULL) 365 if (treeview != NULL)
345 (*treeview) = GTK_WIDGET(GTK_TREE_VIEW(resultList)); 366 (*treeview) = GTK_WIDGET(GTK_TREE_VIEW(resultList));
346 tree = 367 tree =
347 gtk_tree_store_new(8, 368 gtk_tree_store_new(SEARCH_NUM,
348 G_TYPE_STRING, /* name */ 369 G_TYPE_STRING, /* name */
349 G_TYPE_UINT64, /* size */ 370 G_TYPE_UINT64, /* size */
350 G_TYPE_STRING, /* mime-type */ 371 G_TYPE_STRING, /* mime-type */
@@ -360,35 +381,35 @@ static GtkWidget * makeResultFrame(GtkWidget ** treeview) {
360 -1, 381 -1,
361 _("Name"), 382 _("Name"),
362 renderer, 383 renderer,
363 "text", 0, 384 "text", SEARCH_NAME,
364 NULL); 385 NULL);
365 renderer = gtk_cell_renderer_text_new(); 386 renderer = gtk_cell_renderer_text_new();
366 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList), 387 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
367 -1, 388 -1,
368 _("Size"), 389 _("Size"),
369 renderer, 390 renderer,
370 "text", 1, 391 "text", SEARCH_SIZE,
371 NULL); 392 NULL);
372 renderer = gtk_cell_renderer_text_new(); 393 renderer = gtk_cell_renderer_text_new();
373 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList), 394 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
374 -1, 395 -1,
375 _("Mime-type"), 396 _("Mime-type"),
376 renderer, 397 renderer,
377 "text", 2, 398 "text", SEARCH_MIME,
378 NULL); 399 NULL);
379 renderer = gtk_cell_renderer_text_new(); 400 renderer = gtk_cell_renderer_text_new();
380 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList), 401 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
381 -1, 402 -1,
382 _("Meta-data"), 403 _("Meta-data"),
383 renderer, 404 renderer,
384 "text", 3, 405 "text", SEARCH_DESC,
385 NULL); 406 NULL);
386 renderer = gtk_cell_renderer_pixbuf_new(); 407 renderer = gtk_cell_renderer_pixbuf_new();
387 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList), 408 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(resultList),
388 -1, 409 -1,
389 _("Preview"), 410 _("Preview"),
390 renderer, 411 renderer,
391 "pixbuf", 4, 412 "pixbuf", SEARCH_PIXBUF,
392 NULL); 413 NULL);
393 child = gtk_bin_get_child(GTK_BIN(window)); 414 child = gtk_bin_get_child(GTK_BIN(window));
394 gtk_widget_ref(GTK_WIDGET(child)); 415 gtk_widget_ref(GTK_WIDGET(child));
@@ -435,8 +456,7 @@ void on_fssearchbutton_clicked(gpointer dummy2,
435 &iter); 456 &iter);
436 gtk_list_store_set(model, 457 gtk_list_store_set(model,
437 &iter, 458 &iter,
438 0, 459 0, ss,
439 ss,
440 -1); 460 -1);
441 } 461 }
442 462
@@ -504,9 +524,9 @@ void on_fssearchbutton_clicked(gpointer dummy2,
504 &iter); 524 &iter);
505 gtk_list_store_set(summary, 525 gtk_list_store_set(summary,
506 &iter, 526 &iter,
507 0, tabtxt, 527 SER_SUM_NAME, tabtxt,
508 1, 0, 528 SER_SUM_COUNT, 0,
509 2, ECRS_dupUri(uri), 529 SER_SUM_URI, ECRS_dupUri(uri),
510 -1); 530 -1);
511 531
512 label = gtk_label_new(tabtxt); 532 label = gtk_label_new(tabtxt);
@@ -631,9 +651,9 @@ static int openTabForSearch(void * unused,
631 &iter); 651 &iter);
632 gtk_list_store_set(summary, 652 gtk_list_store_set(summary,
633 &iter, 653 &iter,
634 0, dhead, 654 SER_SUM_NAME, dhead,
635 1, resultCount, 655 SER_SUM_COUNT, resultCount,
636 2, ECRS_dupUri(uri), 656 SER_SUM_URI, ECRS_dupUri(uri),
637 -1); 657 -1);
638 658
639 FREE(description); 659 FREE(description);
@@ -683,7 +703,7 @@ void fs_search_start() {
683 searchList = glade_xml_get_widget(mainXML, 703 searchList = glade_xml_get_widget(mainXML,
684 "activeSearchesSummary"); 704 "activeSearchesSummary");
685 summary = 705 summary =
686 gtk_list_store_new(3, 706 gtk_list_store_new(SER_SUM_NUM,
687 G_TYPE_STRING, /* name */ 707 G_TYPE_STRING, /* name */
688 G_TYPE_INT, /* # results */ 708 G_TYPE_INT, /* # results */
689 G_TYPE_POINTER); /* internal: uri */ 709 G_TYPE_POINTER); /* internal: uri */
@@ -694,14 +714,14 @@ void fs_search_start() {
694 -1, 714 -1,
695 _("Query"), 715 _("Query"),
696 renderer, 716 renderer,
697 "text", 0, 717 "text", SER_SUM_NAME,
698 NULL); 718 NULL);
699 renderer = gtk_cell_renderer_text_new(); 719 renderer = gtk_cell_renderer_text_new();
700 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(searchList), 720 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(searchList),
701 -1, 721 -1,
702 _("Results"), 722 _("Results"),
703 renderer, 723 renderer,
704 "text", 1, 724 "text", SER_SUM_COUNT,
705 NULL); 725 NULL);
706 726
707 FSUI_listSearches(ctx, 727 FSUI_listSearches(ctx,
diff --git a/src/search.h b/src/search.h
index 37c7ecda..f04562ae 100644
--- a/src/search.h
+++ b/src/search.h
@@ -31,6 +31,19 @@
31#include "fs.h" 31#include "fs.h"
32 32
33/** 33/**
34 * Add an entry to the search tree.
35 *
36 * @param model the search model
37 * @param pos the position to add the entry
38 * @param uri the URI to add
39 * @param meta metadata describing the URI
40 */
41void addEntryToSearchTree(GtkTreeStore * model,
42 GtkTreeIter * pos,
43 const struct ECRS_URI * uri,
44 const struct ECRS_MetaData * meta);
45
46/**
34 * Add the given result to the model (search result 47 * Add the given result to the model (search result
35 * list). 48 * list).
36 * @param info the information to add to the model 49 * @param info the information to add to the model
diff --git a/src/upload.c b/src/upload.c
index d8bf831c..18ac7c73 100644
--- a/src/upload.c
+++ b/src/upload.c
@@ -61,12 +61,12 @@ void displayUploadUpdate(const char * mainName,
61 do { 61 do {
62 gtk_tree_model_get(GTK_TREE_MODEL(summary), 62 gtk_tree_model_get(GTK_TREE_MODEL(summary),
63 &iter, 63 &iter,
64 0, &name, 64 UPLOAD_FILENAME, &name,
65 -1); 65 -1);
66 if (0 == strcmp(name, filename)) { 66 if (0 == strcmp(name, filename)) {
67 gtk_tree_store_set(GTK_TREE_STORE(summary), 67 gtk_tree_store_set(GTK_TREE_STORE(summary),
68 &iter, 68 &iter,
69 1, progress, 69 UPLOAD_PROGRESS, progress,
70 -1); 70 -1);
71 return; 71 return;
72 } 72 }
@@ -77,12 +77,12 @@ void displayUploadUpdate(const char * mainName,
77 do { 77 do {
78 gtk_tree_model_get(GTK_TREE_MODEL(summary), 78 gtk_tree_model_get(GTK_TREE_MODEL(summary),
79 &child, 79 &child,
80 0, &name, 80 UPLOAD_FILENAME, &name,
81 -1); 81 -1);
82 if (0 == strcmp(name, filename)) { 82 if (0 == strcmp(name, filename)) {
83 gtk_tree_store_set(GTK_TREE_STORE(summary), 83 gtk_tree_store_set(GTK_TREE_STORE(summary),
84 &child, 84 &child,
85 1, progress, 85 UPLOAD_PROGRESS, progress,
86 -1); 86 -1);
87 return; 87 return;
88 } 88 }
@@ -94,9 +94,9 @@ void displayUploadUpdate(const char * mainName,
94 &iter); 94 &iter);
95 gtk_tree_store_set(GTK_TREE_STORE(summary), 95 gtk_tree_store_set(GTK_TREE_STORE(summary),
96 &child, 96 &child,
97 0, filename, 97 UPLOAD_FILENAME, filename,
98 1, progress, 98 UPLOAD_PROGRESS, progress,
99 2, NULL, 99 UPLOAD_URISTRING, NULL,
100 -1); 100 -1);
101 return; 101 return;
102 } 102 }
@@ -110,18 +110,18 @@ void displayUploadUpdate(const char * mainName,
110 NULL); 110 NULL);
111 gtk_tree_store_set(GTK_TREE_STORE(summary), 111 gtk_tree_store_set(GTK_TREE_STORE(summary),
112 &iter, 112 &iter,
113 0, mainName, 113 UPLOAD_FILENAME, mainName,
114 1, 0, 114 UPLOAD_PROGRESS, 0,
115 2, NULL, 115 UPLOAD_URISTRING, NULL,
116 -1); 116 -1);
117 gtk_tree_store_append(GTK_TREE_STORE(summary), 117 gtk_tree_store_append(GTK_TREE_STORE(summary),
118 &child, 118 &child,
119 &iter); 119 &iter);
120 gtk_tree_store_set(GTK_TREE_STORE(summary), 120 gtk_tree_store_set(GTK_TREE_STORE(summary),
121 &child, 121 &child,
122 0, filename, 122 UPLOAD_FILENAME, filename,
123 1, progress, 123 UPLOAD_PROGRESS, progress,
124 2, NULL, 124 UPLOAD_URISTRING, NULL,
125 -1); 125 -1);
126 } else { 126 } else {
127 gtk_tree_store_append(GTK_TREE_STORE(summary), 127 gtk_tree_store_append(GTK_TREE_STORE(summary),
@@ -129,9 +129,9 @@ void displayUploadUpdate(const char * mainName,
129 NULL); 129 NULL);
130 gtk_tree_store_set(GTK_TREE_STORE(summary), 130 gtk_tree_store_set(GTK_TREE_STORE(summary),
131 &iter, 131 &iter,
132 0, filename, 132 UPLOAD_FILENAME, filename,
133 1, progress, 133 UPLOAD_PROGRESS, progress,
134 2, NULL, 134 UPLOAD_URISTRING, NULL,
135 -1); 135 -1);
136 } 136 }
137} 137}
@@ -153,13 +153,13 @@ void displayUploadComplete(const char * mainName,
153 do { 153 do {
154 gtk_tree_model_get(GTK_TREE_MODEL(summary), 154 gtk_tree_model_get(GTK_TREE_MODEL(summary),
155 &iter, 155 &iter,
156 0, &name, 156 UPLOAD_FILENAME, &name,
157 -1); 157 -1);
158 if (0 == strcmp(name, filename)) { 158 if (0 == strcmp(name, filename)) {
159 gtk_tree_store_set(GTK_TREE_STORE(summary), 159 gtk_tree_store_set(GTK_TREE_STORE(summary),
160 &iter, 160 &iter,
161 1, 100, 161 UPLOAD_PROGRESS, 100,
162 2, us, 162 UPLOAD_URISTRING, us,
163 -1); 163 -1);
164 FREE(us); 164 FREE(us);
165 return; 165 return;
@@ -171,13 +171,13 @@ void displayUploadComplete(const char * mainName,
171 do { 171 do {
172 gtk_tree_model_get(GTK_TREE_MODEL(summary), 172 gtk_tree_model_get(GTK_TREE_MODEL(summary),
173 &child, 173 &child,
174 0, &name, 174 UPLOAD_FILENAME, &name,
175 -1); 175 -1);
176 if (0 == strcmp(name, filename)) { 176 if (0 == strcmp(name, filename)) {
177 gtk_tree_store_set(GTK_TREE_STORE(summary), 177 gtk_tree_store_set(GTK_TREE_STORE(summary),
178 &child, 178 &child,
179 1, 100, 179 UPLOAD_PROGRESS, 100,
180 2, us, 180 UPLOAD_URISTRING, us,
181 -1); 181 -1);
182 FREE(us); 182 FREE(us);
183 return; 183 return;
@@ -190,9 +190,9 @@ void displayUploadComplete(const char * mainName,
190 &iter); 190 &iter);
191 gtk_tree_store_set(GTK_TREE_STORE(summary), 191 gtk_tree_store_set(GTK_TREE_STORE(summary),
192 &child, 192 &child,
193 0, filename, 193 UPLOAD_FILENAME, filename,
194 1, 100, 194 UPLOAD_PROGRESS, 100,
195 2, us, 195 UPLOAD_URISTRING, us,
196 -1); 196 -1);
197 FREE(us); 197 FREE(us);
198 return; 198 return;
@@ -207,18 +207,18 @@ void displayUploadComplete(const char * mainName,
207 NULL); 207 NULL);
208 gtk_tree_store_set(GTK_TREE_STORE(summary), 208 gtk_tree_store_set(GTK_TREE_STORE(summary),
209 &iter, 209 &iter,
210 0, mainName, 210 UPLOAD_FILENAME, mainName,
211 1, 0, 211 UPLOAD_PROGRESS, 0,
212 2, NULL, 212 UPLOAD_URISTRING, NULL,
213 -1); 213 -1);
214 gtk_tree_store_append(GTK_TREE_STORE(summary), 214 gtk_tree_store_append(GTK_TREE_STORE(summary),
215 &child, 215 &child,
216 &iter); 216 &iter);
217 gtk_tree_store_set(GTK_TREE_STORE(summary), 217 gtk_tree_store_set(GTK_TREE_STORE(summary),
218 &iter, 218 &iter,
219 0, filename, 219 UPLOAD_FILENAME, filename,
220 1, 100, 220 UPLOAD_PROGRESS, 100,
221 2, NULL, 221 UPLOAD_URISTRING, NULL,
222 -1); 222 -1);
223 } else { 223 } else {
224 gtk_tree_store_append(GTK_TREE_STORE(summary), 224 gtk_tree_store_append(GTK_TREE_STORE(summary),
@@ -226,9 +226,9 @@ void displayUploadComplete(const char * mainName,
226 NULL); 226 NULL);
227 gtk_tree_store_set(GTK_TREE_STORE(summary), 227 gtk_tree_store_set(GTK_TREE_STORE(summary),
228 &iter, 228 &iter,
229 0, filename, 229 UPLOAD_FILENAME, filename,
230 1, 100, 230 UPLOAD_PROGRESS, 100,
231 2, us, 231 UPLOAD_URISTRING, us,
232 -1); 232 -1);
233 } 233 }
234 FREE(us); 234 FREE(us);
@@ -246,9 +246,9 @@ static int publishMetaData(EXTRACTOR_KeywordType type,
246 &iter); 246 &iter);
247 gtk_list_store_set(store, 247 gtk_list_store_set(store,
248 &iter, 248 &iter,
249 0, type, 249 META_TYPE, type,
250 1, stype, 250 META_STYPE, stype,
251 2, data, 251 META_VALUE, data,
252 -1); 252 -1);
253 return OK; 253 return OK;
254} 254}
@@ -340,16 +340,16 @@ void on_metaDataDialogMetaDataAddButton_clicked(gpointer dummy,
340 return; /* oops */ 340 return; /* oops */
341 gtk_tree_model_get(GTK_TREE_MODEL(typemodel), 341 gtk_tree_model_get(GTK_TREE_MODEL(typemodel),
342 &iter, 342 &iter,
343 0, &stype, 343 META_STYPE, &stype,
344 1, &type, 344 META_TYPE, &type,
345 -1); 345 -1);
346 gtk_list_store_append(metamodel, 346 gtk_list_store_append(metamodel,
347 &iter); 347 &iter);
348 gtk_list_store_set(metamodel, 348 gtk_list_store_set(metamodel,
349 &iter, 349 &iter,
350 0, type, 350 META_TYPE, type,
351 1, stype, 351 META_STYPE, stype,
352 2, value, 352 META_VALUE, value,
353 -1); 353 -1);
354 gtk_entry_set_text(GTK_ENTRY(entryLine), ""); 354 gtk_entry_set_text(GTK_ENTRY(entryLine), "");
355} 355}
@@ -410,7 +410,7 @@ void on_fsinsertuploadbutton_clicked(gpointer dummy,
410 dialog = glade_xml_get_widget(metaXML, 410 dialog = glade_xml_get_widget(metaXML,
411 "metaDataDialog"); 411 "metaDataDialog");
412 metamodel 412 metamodel
413 = gtk_list_store_new(3, 413 = gtk_list_store_new(META_NUM,
414 G_TYPE_INT, 414 G_TYPE_INT,
415 G_TYPE_STRING, 415 G_TYPE_STRING,
416 G_TYPE_STRING); 416 G_TYPE_STRING);
@@ -421,14 +421,14 @@ void on_fsinsertuploadbutton_clicked(gpointer dummy,
421 -1, 421 -1,
422 _("Category"), 422 _("Category"),
423 renderer, 423 renderer,
424 "text", 1, 424 "text", META_STYPE,
425 NULL); 425 NULL);
426 renderer = gtk_cell_renderer_text_new(); 426 renderer = gtk_cell_renderer_text_new();
427 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList), 427 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList),
428 -1, 428 -1,
429 _("Value"), 429 _("Value"),
430 renderer, 430 renderer,
431 "text", 2, 431 "text", META_VALUE,
432 NULL); 432 NULL);
433 gtk_tree_view_set_model(GTK_TREE_VIEW(metaList), 433 gtk_tree_view_set_model(GTK_TREE_VIEW(metaList),
434 GTK_TREE_MODEL(metamodel)); 434 GTK_TREE_MODEL(metamodel));
@@ -467,7 +467,7 @@ void on_fsinsertuploadbutton_clicked(gpointer dummy,
467 (ECRS_KeywordIterator) &publishKeyword, 467 (ECRS_KeywordIterator) &publishKeyword,
468 keymodel); 468 keymodel);
469 keywordTypeModel 469 keywordTypeModel
470 = gtk_list_store_new(2, 470 = gtk_list_store_new(KTYPE_NUM,
471 G_TYPE_STRING, 471 G_TYPE_STRING,
472 G_TYPE_INT); 472 G_TYPE_INT);
473 metaType = glade_xml_get_widget(metaXML, 473 metaType = glade_xml_get_widget(metaXML,
@@ -480,8 +480,8 @@ void on_fsinsertuploadbutton_clicked(gpointer dummy,
480 &iter); 480 &iter);
481 gtk_list_store_set(keywordTypeModel, 481 gtk_list_store_set(keywordTypeModel,
482 &iter, 482 &iter,
483 0, stype, 483 KTYPE_STRING, stype,
484 1, type, 484 KTYPE_TYPE, type,
485 -1); 485 -1);
486 } 486 }
487 renderer = gtk_cell_renderer_text_new(); 487 renderer = gtk_cell_renderer_text_new();
@@ -490,7 +490,7 @@ void on_fsinsertuploadbutton_clicked(gpointer dummy,
490 FALSE); 490 FALSE);
491 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(metaType), 491 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(metaType),
492 renderer, 492 renderer,
493 "text", 0); 493 "text", KTYPE_STRING);
494 gtk_combo_box_set_active(GTK_COMBO_BOX(metaType), 494 gtk_combo_box_set_active(GTK_COMBO_BOX(metaType),
495 0); 495 0);
496 gtk_dialog_set_default_response(GTK_DIALOG(dialog), 496 gtk_dialog_set_default_response(GTK_DIALOG(dialog),
@@ -538,8 +538,8 @@ void on_fsinsertuploadbutton_clicked(gpointer dummy,
538 do { 538 do {
539 gtk_tree_model_get(GTK_TREE_MODEL(metamodel), 539 gtk_tree_model_get(GTK_TREE_MODEL(metamodel),
540 &iter, 540 &iter,
541 0, &type, 541 META_TYPE, &type,
542 2, &mvalue, 542 META_VALUE, &mvalue,
543 -1); 543 -1);
544 ECRS_addToMetaData(meta, 544 ECRS_addToMetaData(meta,
545 type, 545 type,
@@ -722,7 +722,7 @@ void fs_upload_start() {
722 uploadList = glade_xml_get_widget(mainXML, 722 uploadList = glade_xml_get_widget(mainXML,
723 "activeUploadsList"); 723 "activeUploadsList");
724 summary = 724 summary =
725 gtk_tree_store_new(3, 725 gtk_tree_store_new(UPLOAD_NUM,
726 G_TYPE_STRING, /* filename */ 726 G_TYPE_STRING, /* filename */
727 G_TYPE_INT, /* progress */ 727 G_TYPE_INT, /* progress */
728 G_TYPE_STRING); /* URI (as string) - after completion */ 728 G_TYPE_STRING); /* URI (as string) - after completion */
@@ -733,15 +733,15 @@ void fs_upload_start() {
733 -1, 733 -1,
734 _("Filename"), 734 _("Filename"),
735 renderer, 735 renderer,
736 "text", 0, 736 "text", UPLOAD_FILENAME,
737 "value", 1, 737 "value", UPLOAD_PROGRESS,
738 NULL); 738 NULL);
739 renderer = gtk_cell_renderer_text_new(); 739 renderer = gtk_cell_renderer_text_new();
740 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(uploadList), 740 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(uploadList),
741 -1, 741 -1,
742 _("URI"), 742 _("URI"),
743 renderer, 743 renderer,
744 "text", 2, 744 "text", UPLOAD_URISTRING,
745 NULL); 745 NULL);
746 746
747 747