summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormonsta <[email protected]>2017-01-06 13:39:44 +0300
committermonsta <[email protected]>2017-01-06 13:39:44 +0300
commit81c03e738fd933702738264c75b0a4a0a72495b9 (patch)
tree2ed94d1a786a40cfa71231edeca3c985bef3243e /src
parentc9418210ed329f70454a3bc8760dc69782add9a8 (diff)
downloadcaja-81c03e738fd933702738264c75b0a4a0a72495b9.tar.bz2
caja-81c03e738fd933702738264c75b0a4a0a72495b9.tar.xz
show/hide columns instead of appending/removing them
fixes https://github.com/mate-desktop/caja/issues/649 adapted from: https://git.gnome.org/browse/nautilus/commit/?id=e19f7cb3fec1e6c884d1741c3c00916c65ab035f
Diffstat (limited to 'src')
-rw-r--r--src/file-manager/fm-list-view.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 1d370484..251f4a93 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -1544,27 +1544,22 @@ apply_columns_settings (FMListView *list_view,
view_columns = g_list_reverse (view_columns);
- /* remove columns that are not present in the configuration */
+ /* hide columns that are not present in the configuration */
old_view_columns = gtk_tree_view_get_columns (list_view->details->tree_view);
for (l = old_view_columns; l != NULL; l = l->next)
{
if (g_list_find (view_columns, l->data) == NULL)
{
- gtk_tree_view_remove_column (list_view->details->tree_view, l->data);
+ gtk_tree_view_column_set_visible (l->data, FALSE);
}
}
g_list_free (old_view_columns);
- /* append new columns from the configuration */
- old_view_columns = gtk_tree_view_get_columns (list_view->details->tree_view);
+ /* show new columns from the configuration */
for (l = view_columns; l != NULL; l = l->next)
{
- if (g_list_find (old_view_columns, l->data) == NULL)
- {
- gtk_tree_view_append_column (list_view->details->tree_view, l->data);
- }
+ gtk_tree_view_column_set_visible (l->data, TRUE);
}
- g_list_free (old_view_columns);
/* place columns in the correct order */
prev_view_column = NULL;
@@ -1646,7 +1641,7 @@ create_and_set_up_tree_view (FMListView *view)
view->details->columns = g_hash_table_new_full (g_str_hash,
g_str_equal,
(GDestroyNotify)g_free,
- (GDestroyNotify) g_object_unref);
+ NULL);
gtk_tree_view_set_enable_search (view->details->tree_view, TRUE);
/* Don't handle backspace key. It's used to open the parent folder. */
@@ -1760,7 +1755,7 @@ create_and_set_up_tree_view (FMListView *view)
gtk_style_context_get_font (context, GTK_STATE_FLAG_NORMAL)));
gtk_tree_view_column_set_min_width (view->details->file_name_column, 20*font_size);
- g_object_ref_sink (view->details->file_name_column);
+ gtk_tree_view_append_column (view->details->tree_view, view->details->file_name_column);
view->details->file_name_column_num = column_num;
g_hash_table_insert (view->details->columns,
@@ -1804,14 +1799,13 @@ create_and_set_up_tree_view (FMListView *view)
cell,
"text", column_num,
NULL);
- g_object_ref_sink (column);
+ gtk_tree_view_append_column (view->details->tree_view, column);
gtk_tree_view_column_set_sort_column_id (column, column_num);
g_hash_table_insert (view->details->columns,
g_strdup (name),
column);
gtk_tree_view_column_set_resizable (column, TRUE);
- gtk_tree_view_column_set_visible (column, TRUE);
}
g_free (name);
g_free (label);