aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/fs/search_namespace.c
blob: 4e4f08d29a8e379116d37b62f85af821da51ba60 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
static int addNamespace(void * arg,
			const char * namespaceName,
			const HashCode512 * namespaceId,
			const struct ECRS_MetaData * md,
			int rating) {
  GtkListStore * model = arg;
  GtkTreeIter iter;
  EncName enc;
  char * name;
  struct ECRS_MetaData * dmd;
  char * desc;
  size_t n;

  DEBUG_BEGIN();
  hash2enc(namespaceId,
	   &enc);
  if (md == NULL) {
    dmd = NULL;
    desc = STRDUP("");
  } else {
    dmd = ECRS_dupMetaData(md);
    desc = ECRS_getFirstFromMetaData(md,
				     EXTRACTOR_DESCRIPTION,
				     EXTRACTOR_TITLE,
				     EXTRACTOR_AUTHOR,
				     EXTRACTOR_GENRE,
				     EXTRACTOR_SUBJECT,
				     EXTRACTOR_CREATOR,
				     EXTRACTOR_PRODUCER,
				     EXTRACTOR_GROUP,
				     EXTRACTOR_CREATED_FOR,
				     EXTRACTOR_SUMMARY,
				     EXTRACTOR_OWNER,
				     -1);
    if (desc == NULL)
      desc = STRDUP("");
  }

  n = strlen(desc) + 64;
  name = MALLOC(n);
  SNPRINTF(name,
	   n,
	   "%s: %*.s",
	   desc,
	   20,
	   &enc);
  gtk_list_store_append(model,
			&iter);
  gtk_list_store_set(model,
		     &iter,
		     NS_SEARCH_DESCRIPTION, name,
		     NS_SEARCH_ENCNAME, &enc,
		     NS_SEARCH_METADATA, dmd,
		     NS_SEARCH_RATING, rating,
		     -1);
  FREE(name);
  DEBUG_END();
  return OK;
}

#if 0
/**
 * cron job that periodically updates the model for the
 * namespace selection in the search vbox.
 *
 * FIXME: replace with callback!
 */
static void updateNCBModelSafe(void * unused) {
  GtkWidget * searchNamespaceCB;
  GtkListStore * model;
  GtkTreeIter iter;

  model = gtk_list_store_new(NS_SEARCH_NUM,
			     G_TYPE_STRING, /* what we show */
			     G_TYPE_STRING, /* EncName of namespace */
			     G_TYPE_POINTER,
			     G_TYPE_INT);  /* Meta-data about namespace */
  gtk_list_store_append(model,
			&iter);
  gtk_list_store_set(model,
		     &iter,
		     NS_SEARCH_DESCRIPTION, _("globally"),
		     NS_SEARCH_ENCNAME, NULL,
		     NS_SEARCH_METADATA, NULL,		
		     NS_SEARCH_RATING, 0,
		     -1);
  NS_listNamespaces(ectx,
		    cfg,
		    NO,
		    &addNamespace,
		    model);
  searchNamespaceCB
    = glade_xml_get_widget(getMainXML(),
			   "searchNamespaceComboBoxEntry");
  gtk_combo_box_set_model(GTK_COMBO_BOX(searchNamespaceCB),
			  GTK_TREE_MODEL(model));
  if (gtk_combo_box_entry_get_text_column(GTK_COMBO_BOX_ENTRY(searchNamespaceCB)) == -1)
    gtk_combo_box_entry_set_text_column(GTK_COMBO_BOX_ENTRY(searchNamespaceCB),
					0);
  if (-1 == gtk_combo_box_get_active(GTK_COMBO_BOX(searchNamespaceCB)))
    gtk_combo_box_set_active(GTK_COMBO_BOX(searchNamespaceCB),
			     0);
}

static void updateNCBModel(void * dummy) {
  gtkSaveCall(&updateNCBModelSafe, NULL);
}
#endif