/* Static functions */
static void
gal_view_instance_save_as_dialog_set_instance (GalViewInstanceSaveAsDialog *dialog,
                                               GalViewInstance *instance)
{
	GtkListStore *store;
	GtkCellRenderer *renderer;
	gint ii, view_count;

	dialog->instance = instance;

	store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);

	view_count = gal_view_collection_get_count (instance->collection);

	for (ii = 0; ii < view_count; ii++) {
		GalViewCollectionItem *item;
		GtkTreeIter iter;
		gchar *title = NULL;

		item = gal_view_collection_get_view_item (
			instance->collection, ii);

		title = e_str_without_underscores (item->title);

		gtk_list_store_append (store, &iter);
		gtk_list_store_set (
			store, &iter,
			COL_GALVIEW_NAME, title,
			COL_GALVIEW_DATA, item,
			-1);

		g_free (title);
	}

	gtk_tree_sortable_set_sort_column_id (
		GTK_TREE_SORTABLE (store),
			COL_GALVIEW_NAME, GTK_SORT_ASCENDING);

	/* attaching treeview to model */
	gtk_tree_view_set_model (dialog->treeview, GTK_TREE_MODEL (store));
	gtk_tree_view_set_search_column (dialog->treeview, COL_GALVIEW_NAME);

	dialog->model = GTK_TREE_MODEL (store);

	renderer = gtk_cell_renderer_text_new ();

	gtk_tree_view_insert_column_with_attributes (
		dialog->treeview,
		COL_GALVIEW_NAME, _("Name"),
		renderer, "text", COL_GALVIEW_NAME,
		NULL);

	/* set sort column */
	gtk_tree_sortable_set_sort_column_id (
		GTK_TREE_SORTABLE (dialog->model),
		COL_GALVIEW_NAME, GTK_SORT_ASCENDING);
}
static void
gal_define_views_dialog_set_collection(GalDefineViewsDialog *dialog,
				       GalViewCollection *collection)
{
	int i;
	GtkListStore *store;
	GtkCellRenderer *renderer;
	dialog->collection = collection;

	store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);

	for (i=0; i<collection->view_count; i++) {
		GalViewCollectionItem *item = collection->view_data[i];
		GtkTreeIter iter;

		/* hide built in views */
		/*if (item->built_in == 1)
			continue;*/

		char *title = NULL;
		title = e_str_without_underscores (item->title);

		gtk_list_store_append (store, &iter);
		gtk_list_store_set (store, &iter,
				    COL_GALVIEW_NAME, title,
				    COL_GALVIEW_DATA, item,
				    -1);

		g_free (title);
	}

	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
					      COL_GALVIEW_NAME, GTK_SORT_ASCENDING);

	/* attaching treeview to model */
	gtk_tree_view_set_model (dialog->treeview, GTK_TREE_MODEL (store));
	gtk_tree_view_set_search_column (dialog->treeview, COL_GALVIEW_NAME);

	dialog->model = GTK_TREE_MODEL (store);

	renderer = gtk_cell_renderer_text_new ();
	gtk_tree_view_insert_column_with_attributes (dialog->treeview,
						    COL_GALVIEW_NAME, _("Name"),
						    renderer, "text", COL_GALVIEW_NAME,
						    NULL);

	/* set sort column */
	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (dialog->model),
					      COL_GALVIEW_NAME, GTK_SORT_ASCENDING);

	if (dialog->gui) {
		GtkWidget *widget = glade_xml_get_widget(dialog->gui, "label-views");
		if (widget && GTK_IS_LABEL (widget)) {
			if (collection->title) {
				char *text = g_strdup_printf (_("Define Views for %s"),
							      collection->title);
				gtk_label_set_text (GTK_LABEL (widget),
						    text);
				gtk_window_set_title (GTK_WINDOW (dialog), text);
				g_free (text);
			} else {
				gtk_label_set_text (GTK_LABEL (widget),
						    _("Define Views"));
				gtk_window_set_title (GTK_WINDOW (dialog),
						      _("Define Views"));
			}
		}
	}
}