/** * Setup function allocating new taglist instance for unit tests. */ void taglist_setup(void) { COLOR_SETUP_START; tag_list = taglist_create(); if ( error_is_error() ) { ERROR_LOG(); } COLOR_SETUP_END; return; }
gchar* tags_dialog (GtkWidget *win, JamAccountLJ *acc, gchar *journal, gchar *typed) { GtkWidget *dlg, *sw, *tv; GSList *list = NULL; gchar *taglist = NULL; GSList *prev; if (acc == NULL) return NULL; load_tags (GTK_WINDOW (win), acc, journal, &list); dlg = gtk_dialog_new_with_buttons (_("Select tags"), GTK_WINDOW (win), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_OK, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), sw, TRUE, TRUE, 0); prev = tags_split(typed); tv = taglist_create (list, &prev); gtk_container_add (GTK_CONTAINER (sw), tv); gtk_window_resize(dlg, 60, 210); gtk_widget_show_all (sw); if (gtk_dialog_run (GTK_DIALOG (dlg)) == GTK_RESPONSE_OK) { taglist = g_strdup (""); gtk_tree_model_foreach (gtk_tree_view_get_model (tv), create_tag_string, &taglist); if (g_ascii_strcasecmp (taglist, "") == 0) { g_free (taglist); taglist = NULL; } } gtk_widget_destroy (dlg); /* free rest of prev list */ if (prev) { GSList *p; for (p = prev; p; p = g_slist_next(p)) { g_free(p->data); } g_slist_free(prev); } return taglist; }
TagList_t* taglist_clone(TagList_t *src) { return taglist_copy(src, taglist_create()); }