static void move_down_clicked_callback (GtkWidget *button, gpointer user_data) { CajaColumnChooser *chooser; GtkTreeIter iter; GtkTreeSelection *selection; chooser = CAJA_COLUMN_CHOOSER (user_data); selection = gtk_tree_view_get_selection (chooser->details->view); if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { GtkTreeIter next; next = iter; if (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->details->store), &next)) { gtk_list_store_move_after (chooser->details->store, &iter, &next); } } list_changed (chooser); }
static void row_deleted_callback (GtkTreeModel *model, GtkTreePath *path, gpointer user_data) { list_changed (CAJA_COLUMN_CHOOSER (user_data)); }
static void move_up_clicked_callback (GtkWidget *button, gpointer user_data) { CajaColumnChooser *chooser; GtkTreeIter iter; GtkTreeSelection *selection; chooser = CAJA_COLUMN_CHOOSER (user_data); selection = gtk_tree_view_get_selection (chooser->details->view); if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { GtkTreePath *path; GtkTreeIter prev; path = gtk_tree_model_get_path (GTK_TREE_MODEL (chooser->details->store), &iter); gtk_tree_path_prev (path); if (gtk_tree_model_get_iter (GTK_TREE_MODEL (chooser->details->store), &prev, path)) { gtk_list_store_move_before (chooser->details->store, &iter, &prev); } gtk_tree_path_free (path); } list_changed (chooser); }
static void caja_column_chooser_constructed (GObject *object) { CajaColumnChooser *chooser; chooser = CAJA_COLUMN_CHOOSER (object); populate_tree (chooser); g_signal_connect (chooser->details->store, "row_deleted", G_CALLBACK (row_deleted_callback), chooser); }
static void set_columns_from_settings (CajaColumnChooser *chooser) { char **visible_columns; char **column_order; visible_columns = g_settings_get_strv (caja_list_view_preferences, CAJA_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS); column_order = g_settings_get_strv (caja_list_view_preferences, CAJA_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER); caja_column_chooser_set_settings (CAJA_COLUMN_CHOOSER (chooser), visible_columns, column_order); g_strfreev (visible_columns); g_strfreev (column_order); }
static void caja_file_management_properties_dialog_setup_list_column_page (GtkBuilder *builder) { GtkWidget *chooser; GtkWidget *box; chooser = caja_column_chooser_new (NULL); g_signal_connect (chooser, "changed", G_CALLBACK (columns_changed_callback), chooser); g_signal_connect (chooser, "use_default", G_CALLBACK (use_default_callback), chooser); set_columns_from_settings (CAJA_COLUMN_CHOOSER (chooser)); gtk_widget_show (chooser); box = GTK_WIDGET (gtk_builder_get_object (builder, "list_columns_vbox")); gtk_box_pack_start (GTK_BOX (box), chooser, TRUE, TRUE, 0); }
static void caja_column_chooser_set_property (GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { CajaColumnChooser *chooser; chooser = CAJA_COLUMN_CHOOSER (object); switch (param_id) { case PROP_FILE: chooser->details->file = g_value_get_object (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); break; } }
static void columns_changed_callback (CajaColumnChooser *chooser, gpointer callback_data) { char **visible_columns; char **column_order; caja_column_chooser_get_settings (CAJA_COLUMN_CHOOSER (chooser), &visible_columns, &column_order); g_settings_set_strv (caja_list_view_preferences, CAJA_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS, (const char * const *)visible_columns); g_settings_set_strv (caja_list_view_preferences, CAJA_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER, (const char * const *)column_order); g_strfreev (visible_columns); g_strfreev (column_order); }
static void visible_toggled_callback (GtkCellRendererToggle *cell, char *path_string, gpointer user_data) { CajaColumnChooser *chooser; GtkTreePath *path; GtkTreeIter iter; gboolean visible; chooser = CAJA_COLUMN_CHOOSER (user_data); path = gtk_tree_path_new_from_string (path_string); gtk_tree_model_get_iter (GTK_TREE_MODEL (chooser->details->store), &iter, path); gtk_tree_model_get (GTK_TREE_MODEL (chooser->details->store), &iter, COLUMN_VISIBLE, &visible, -1); gtk_list_store_set (chooser->details->store, &iter, COLUMN_VISIBLE, !visible, -1); gtk_tree_path_free (path); list_changed (chooser); }
static void use_default_clicked_callback (GtkWidget *button, gpointer user_data) { g_signal_emit (CAJA_COLUMN_CHOOSER (user_data), signals[USE_DEFAULT], 0); }
static void selection_changed_callback (GtkTreeSelection *selection, gpointer user_data) { update_buttons (CAJA_COLUMN_CHOOSER (user_data)); }