aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/fs/search_namespace.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/fs/search_namespace.c')
-rw-r--r--src/plugins/fs/search_namespace.c106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/plugins/fs/search_namespace.c b/src/plugins/fs/search_namespace.c
new file mode 100644
index 00000000..22da212d
--- /dev/null
+++ b/src/plugins/fs/search_namespace.c
@@ -0,0 +1,106 @@
1static int addNamespace(void * arg,
2 const char * namespaceName,
3 const HashCode512 * namespaceId,
4 const struct ECRS_MetaData * md,
5 int rating) {
6 GtkListStore * model = arg;
7 GtkTreeIter iter;
8 EncName enc;
9 char * name;
10 struct ECRS_MetaData * dmd;
11 char * desc;
12 size_t n;
13
14 DEBUG_BEGIN();
15 hash2enc(namespaceId,
16 &enc);
17 if (md == NULL) {
18 dmd = NULL;
19 desc = STRDUP("");
20 } else {
21 dmd = ECRS_dupMetaData(md);
22 desc = ECRS_getFirstFromMetaData(md,
23 EXTRACTOR_DESCRIPTION,
24 EXTRACTOR_TITLE,
25 EXTRACTOR_AUTHOR,
26 EXTRACTOR_GENRE,
27 EXTRACTOR_SUBJECT,
28 EXTRACTOR_CREATOR,
29 EXTRACTOR_PRODUCER,
30 EXTRACTOR_GROUP,
31 EXTRACTOR_CREATED_FOR,
32 EXTRACTOR_SUMMARY,
33 EXTRACTOR_OWNER,
34 -1);
35 if (desc == NULL)
36 desc = STRDUP("");
37 }
38
39 n = strlen(desc) + 64;
40 name = MALLOC(n);
41 SNPRINTF(name,
42 n,
43 "%s: %*.s",
44 desc,
45 20,
46 &enc);
47 gtk_list_store_append(model,
48 &iter);
49 gtk_list_store_set(model,
50 &iter,
51 NS_SEARCH_DESCRIPTION, name,
52 NS_SEARCH_ENCNAME, &enc,
53 NS_SEARCH_METADATA, dmd,
54 NS_SEARCH_RATING, rating,
55 -1);
56 FREE(name);
57 DEBUG_END();
58 return OK;
59}
60
61#if 0
62/**
63 * cron job that periodically updates the model for the
64 * namespace selection in the search vbox.
65 */
66static void updateNCBModelSafe(void * unused) {
67 GtkWidget * searchNamespaceCB;
68 GtkListStore * model;
69 GtkTreeIter iter;
70
71 model = gtk_list_store_new(NS_SEARCH_NUM,
72 G_TYPE_STRING, /* what we show */
73 G_TYPE_STRING, /* EncName of namespace */
74 G_TYPE_POINTER,
75 G_TYPE_INT); /* Meta-data about namespace */
76 gtk_list_store_append(model,
77 &iter);
78 gtk_list_store_set(model,
79 &iter,
80 NS_SEARCH_DESCRIPTION, _("globally"),
81 NS_SEARCH_ENCNAME, NULL,
82 NS_SEARCH_METADATA, NULL,
83 NS_SEARCH_RATING, 0,
84 -1);
85 NS_listNamespaces(ectx,
86 cfg,
87 NO,
88 &addNamespace,
89 model);
90 searchNamespaceCB
91 = glade_xml_get_widget(getMainXML(),
92 "searchNamespaceComboBoxEntry");
93 gtk_combo_box_set_model(GTK_COMBO_BOX(searchNamespaceCB),
94 GTK_TREE_MODEL(model));
95 if (gtk_combo_box_entry_get_text_column(GTK_COMBO_BOX_ENTRY(searchNamespaceCB)) == -1)
96 gtk_combo_box_entry_set_text_column(GTK_COMBO_BOX_ENTRY(searchNamespaceCB),
97 0);
98 if (-1 == gtk_combo_box_get_active(GTK_COMBO_BOX(searchNamespaceCB)))
99 gtk_combo_box_set_active(GTK_COMBO_BOX(searchNamespaceCB),
100 0);
101}
102
103static void updateNCBModel(void * dummy) {
104 gtkSaveCall(&updateNCBModelSafe, NULL);
105}
106#endif