Example #1
0
static void
load_themes (DialogData *data)
{
	GFile        *style_dir;
	GFile        *data_dir;
	char         *default_theme;
	GtkTreeModel *model;
	GtkTreeIter   iter;

	/* local themes */

	style_dir = gth_user_dir_get_file_for_read (GTH_DIR_DATA, PIX_DIR, "albumthemes", NULL);
	add_themes_from_dir (data, style_dir);
	g_object_unref (style_dir);

	/* system themes */

	data_dir = g_file_new_for_path (WEBALBUM_DATADIR);
	style_dir = _g_file_get_child (data_dir, "albumthemes", NULL);
	add_themes_from_dir (data, style_dir);
	g_object_unref (style_dir);
	g_object_unref (data_dir);

	/**/

	gtk_widget_set_size_request (GET_WIDGET ("theme_iconview"), (150 * 3), 140);
	gtk_widget_realize (GET_WIDGET ("theme_iconview"));

	default_theme = g_settings_get_string (data->settings, PREF_WEBALBUMS_THEME);

	model = GTK_TREE_MODEL (GET_WIDGET ("theme_liststore"));
	if (gtk_tree_model_get_iter_first (model, &iter)) {
		do {
			char *name;

			gtk_tree_model_get(model, &iter, THEME_COLUMN_ID, &name, -1);

			if (g_strcmp0 (name, default_theme) == 0) {
				GtkTreePath *path;

				path = gtk_tree_model_get_path (model, &iter);
				gtk_icon_view_select_path (GTK_ICON_VIEW (GET_WIDGET ("theme_iconview")), path);
				gtk_icon_view_scroll_to_path (GTK_ICON_VIEW (GET_WIDGET ("theme_iconview")), path, TRUE, 0.5, 0.5);

				gtk_tree_path_free (path);
				g_free (name);
				break;
			}

			g_free (name);
		}
		while (gtk_tree_model_iter_next (model, &iter));
	}

	g_free (default_theme);
}
Example #2
0
static void
_gth_browser_update_system_bookmark_list (GthBrowser *browser)
{
    BrowserData         *browser_data;
    GFile               *bookmark_file;
    GFileInputStream    *input_stream;
    UpdateBookmarksData *data;

    browser_data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY);
    g_return_if_fail (browser_data != NULL);

    g_menu_remove_all (browser_data->system_bookmarks_menu);

    /* give priority to XDG_CONFIG_HOME/gtk-3.0/bookmarks if not found
     * try the old ~/.gtk-bookmarks */

    bookmark_file = gth_user_dir_get_file_for_read (GTH_DIR_CONFIG, "gtk-3.0", "bookmarks", NULL);
    if (! g_file_query_exists (bookmark_file, NULL)) {
        char *path;

        g_object_unref (bookmark_file);
        path = g_build_filename (g_get_home_dir (), ".gtk-bookmarks", NULL);
        bookmark_file = g_file_new_for_path (path);

        g_free (path);
    }

    input_stream = g_file_read (bookmark_file, NULL, NULL);
    g_object_unref (bookmark_file);

    if (input_stream == NULL)
        return;

    data = g_new0 (UpdateBookmarksData, 1);
    data->browser = g_object_ref (browser);
    data->stream = (GInputStream*) input_stream;
    data->file_content = g_string_new ("");

    g_input_stream_read_async (data->stream,
                               data->buffer,
                               BUFFER_SIZE - 1,
                               G_PRIORITY_DEFAULT,
                               NULL,
                               update_system_bookmark_list_ready,
                               data);
}