[file-roller: 25/26] fixed file list sorting
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [file-roller: 25/26] fixed file list sorting
- Date: Thu, 9 Aug 2012 20:20:06 +0000 (UTC)
commit f14b36e369e3e87e2e738c47628a5b3c21a8d479
Author: Paolo Bacchilega <paobac src gnome org>
Date: Thu Aug 9 21:42:31 2012 +0200
fixed file list sorting
always keep the directories first, even when sorting in reverse order,
simplified the code to save and restore the sort method and order.
src/fr-window.c | 510 +++++++++++++++++++++----------------------------------
1 files changed, 195 insertions(+), 315 deletions(-)
---
diff --git a/src/fr-window.c b/src/fr-window.c
index 628d82a..98dcd03 100644
--- a/src/fr-window.c
+++ b/src/fr-window.c
@@ -616,8 +616,6 @@ fr_window_free_private_data (FrWindow *window)
g_free (window->priv->pd_last_message);
g_free (window->priv->extract_here_dir);
- g_settings_set_enum (window->priv->settings_listing, PREF_LISTING_SORT_METHOD, window->priv->sort_method);
- g_settings_set_enum (window->priv->settings_listing, PREF_LISTING_SORT_TYPE, window->priv->sort_type);
g_settings_set_enum (window->priv->settings_listing, PREF_LISTING_LIST_MODE, window->priv->last_list_mode);
_g_object_unref (window->priv->settings_listing);
@@ -683,45 +681,10 @@ fr_window_finalize (GObject *object)
}
-static void
-fr_window_class_init (FrWindowClass *klass)
-{
- GObjectClass *gobject_class;
-
- fr_window_parent_class = g_type_class_peek_parent (klass);
-
- fr_window_signals[ARCHIVE_LOADED] =
- g_signal_new ("archive-loaded",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (FrWindowClass, archive_loaded),
- NULL, NULL,
- fr_marshal_VOID__BOOLEAN,
- G_TYPE_NONE, 1,
- G_TYPE_BOOLEAN);
- fr_window_signals[PROGRESS] =
- g_signal_new ("progress",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (FrWindowClass, progress),
- NULL, NULL,
- fr_marshal_VOID__DOUBLE_STRING,
- G_TYPE_NONE, 2,
- G_TYPE_DOUBLE,
- G_TYPE_STRING);
- fr_window_signals[READY] =
- g_signal_new ("ready",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (FrWindowClass, ready),
- NULL, NULL,
- fr_marshal_VOID__POINTER,
- G_TYPE_NONE, 1,
- G_TYPE_POINTER);
- gobject_class = G_OBJECT_CLASS (klass);
- gobject_class->finalize = fr_window_finalize;
-}
+static void fr_window_update_file_list (FrWindow *window,
+ gboolean update_view);
+static void fr_window_update_dir_tree (FrWindow *window);
static void
@@ -772,19 +735,15 @@ clipboard_owner_change_cb (GtkClipboard *clipboard,
}
-static void fr_window_update_file_list (FrWindow *window,
- gboolean update_view);
-static void fr_window_update_dir_tree (FrWindow *window);
-
-
static void
-fr_window_realized (GtkWidget *widget,
- gpointer *data)
+fr_window_realize (GtkWidget *widget)
{
FrWindow *window = FR_WINDOW (widget);
GIcon *icon;
GtkClipboard *clipboard;
+ GTK_WIDGET_CLASS (fr_window_parent_class)->realize (widget);
+
window->priv->list_icon_cache = gth_icon_cache_new_for_widget (GTK_WIDGET (window), GTK_ICON_SIZE_LARGE_TOOLBAR);
window->priv->tree_icon_cache = gth_icon_cache_new_for_widget (GTK_WIDGET (window), GTK_ICON_SIZE_MENU);
@@ -799,14 +758,17 @@ fr_window_realized (GtkWidget *widget,
G_CALLBACK (clipboard_owner_change_cb),
window);
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (window->priv->list_store),
+ g_settings_get_enum (window->priv->settings_listing, PREF_LISTING_SORT_METHOD),
+ g_settings_get_enum (window->priv->settings_listing, PREF_LISTING_SORT_TYPE));
+
fr_window_update_dir_tree (window);
fr_window_update_file_list (window, TRUE);
}
static void
-fr_window_unrealized (GtkWidget *widget,
- gpointer *data)
+fr_window_unrealize (GtkWidget *widget)
{
FrWindow *window = FR_WINDOW (widget);
GtkClipboard *clipboard;
@@ -821,6 +783,74 @@ fr_window_unrealized (GtkWidget *widget,
g_signal_handlers_disconnect_by_func (clipboard,
G_CALLBACK (clipboard_owner_change_cb),
window);
+
+ GTK_WIDGET_CLASS (fr_window_parent_class)->unrealize (widget);
+}
+
+
+static void
+fr_window_unmap (GtkWidget *widget)
+{
+ FrWindow *window = FR_WINDOW (widget);
+ GtkSortType order;
+ int column_id;
+
+ if (gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (window->priv->list_store),
+ &column_id,
+ &order))
+ {
+ g_settings_set_enum (window->priv->settings_listing, PREF_LISTING_SORT_METHOD, column_id);
+ g_settings_set_enum (window->priv->settings_listing, PREF_LISTING_SORT_TYPE, order);
+ }
+
+ GTK_WIDGET_CLASS (fr_window_parent_class)->unmap (widget);
+}
+
+
+static void
+fr_window_class_init (FrWindowClass *klass)
+{
+ GObjectClass *gobject_class;
+ GtkWidgetClass *widget_class;
+
+ fr_window_parent_class = g_type_class_peek_parent (klass);
+
+ fr_window_signals[ARCHIVE_LOADED] =
+ g_signal_new ("archive-loaded",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (FrWindowClass, archive_loaded),
+ NULL, NULL,
+ fr_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE, 1,
+ G_TYPE_BOOLEAN);
+ fr_window_signals[PROGRESS] =
+ g_signal_new ("progress",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (FrWindowClass, progress),
+ NULL, NULL,
+ fr_marshal_VOID__DOUBLE_STRING,
+ G_TYPE_NONE, 2,
+ G_TYPE_DOUBLE,
+ G_TYPE_STRING);
+ fr_window_signals[READY] =
+ g_signal_new ("ready",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (FrWindowClass, ready),
+ NULL, NULL,
+ fr_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = fr_window_finalize;
+
+ widget_class = GTK_WIDGET_CLASS (klass);
+ widget_class->realize = fr_window_realize;
+ widget_class->unrealize = fr_window_unrealize;
+ widget_class->unmap = fr_window_unmap;
}
@@ -838,15 +868,6 @@ fr_window_init (FrWindow *window)
gtk_window_group_add_window (window->priv->window_group, GTK_WINDOW (window));
window->archive = NULL;
-
- g_signal_connect (window,
- "realize",
- G_CALLBACK (fr_window_realized),
- NULL);
- g_signal_connect (window,
- "unrealize",
- G_CALLBACK (fr_window_unrealized),
- NULL);
}
@@ -1233,134 +1254,6 @@ _fr_window_stop_activity_mode (FrWindow *window)
/* -- window_update_file_list -- */
-static gint
-sort_by_name (gconstpointer ptr1,
- gconstpointer ptr2)
-{
- FileData *fdata1 = *((FileData **) ptr1);
- FileData *fdata2 = *((FileData **) ptr2);
-
- if (file_data_is_dir (fdata1) != file_data_is_dir (fdata2)) {
- if (file_data_is_dir (fdata1))
- return -1;
- else
- return 1;
- }
-
- return strcmp (fdata1->sort_key, fdata2->sort_key);
-}
-
-
-static gint
-sort_by_size (gconstpointer ptr1,
- gconstpointer ptr2)
-{
- FileData *fdata1 = *((FileData **) ptr1);
- FileData *fdata2 = *((FileData **) ptr2);
-
- if (file_data_is_dir (fdata1) != file_data_is_dir (fdata2)) {
- if (file_data_is_dir (fdata1))
- return -1;
- else
- return 1;
- }
- else if (file_data_is_dir (fdata1) && file_data_is_dir (fdata2)) {
- if (fdata1->dir_size > fdata2->dir_size)
- return 1;
- else
- return -1;
- }
-
- if (fdata1->size == fdata2->size)
- return sort_by_name (ptr1, ptr2);
- else if (fdata1->size > fdata2->size)
- return 1;
- else
- return -1;
-}
-
-
-static gint
-sort_by_type (gconstpointer ptr1,
- gconstpointer ptr2)
-{
- FileData *fdata1 = *((FileData **) ptr1);
- FileData *fdata2 = *((FileData **) ptr2);
- int result;
- const char *desc1, *desc2;
-
- if (file_data_is_dir (fdata1) != file_data_is_dir (fdata2)) {
- if (file_data_is_dir (fdata1))
- return -1;
- else
- return 1;
- }
- else if (file_data_is_dir (fdata1) && file_data_is_dir (fdata2))
- return sort_by_name (ptr1, ptr2);
-
- desc1 = g_content_type_get_description (fdata1->content_type);
- desc2 = g_content_type_get_description (fdata2->content_type);
-
- result = strcasecmp (desc1, desc2);
- if (result == 0)
- return sort_by_name (ptr1, ptr2);
- else
- return result;
-}
-
-
-static gint
-sort_by_time (gconstpointer ptr1,
- gconstpointer ptr2)
-{
- FileData *fdata1 = *((FileData **) ptr1);
- FileData *fdata2 = *((FileData **) ptr2);
-
- if (file_data_is_dir (fdata1) != file_data_is_dir (fdata2)) {
- if (file_data_is_dir (fdata1))
- return -1;
- else
- return 1;
- }
- else if (file_data_is_dir (fdata1) && file_data_is_dir (fdata2))
- return sort_by_name (ptr1, ptr2);
-
- if (fdata1->modified == fdata2->modified)
- return sort_by_name (ptr1, ptr2);
- else if (fdata1->modified > fdata2->modified)
- return 1;
- else
- return -1;
-}
-
-
-static gint
-sort_by_path (gconstpointer ptr1,
- gconstpointer ptr2)
-{
- FileData *fdata1 = *((FileData **) ptr1);
- FileData *fdata2 = *((FileData **) ptr2);
- int result;
-
- if (file_data_is_dir (fdata1) != file_data_is_dir (fdata2)) {
- if (file_data_is_dir (fdata1))
- return -1;
- else
- return 1;
- }
- else if (file_data_is_dir (fdata1) && file_data_is_dir (fdata2))
- return sort_by_name (ptr1, ptr2);
-
- /* 2 files */
-
- result = strcasecmp (fdata1->path, fdata2->path);
- if (result == 0)
- return sort_by_name (ptr1, ptr2);
- else
- return result;
-}
-
-
static guint64
get_dir_size (FrWindow *window,
const char *current_dir,
@@ -1634,40 +1527,6 @@ get_emblem (FrWindow *window,
}
-static int
-get_column_from_sort_method (FrWindowSortMethod sort_method)
-{
- switch (sort_method) {
- case FR_WINDOW_SORT_BY_NAME: return COLUMN_NAME;
- case FR_WINDOW_SORT_BY_SIZE: return COLUMN_SIZE;
- case FR_WINDOW_SORT_BY_TYPE: return COLUMN_TYPE;
- case FR_WINDOW_SORT_BY_TIME: return COLUMN_TIME;
- case FR_WINDOW_SORT_BY_PATH: return COLUMN_PATH;
- default:
- break;
- }
-
- return COLUMN_NAME;
-}
-
-
-static int
-get_sort_method_from_column (int column_id)
-{
- switch (column_id) {
- case COLUMN_NAME: return FR_WINDOW_SORT_BY_NAME;
- case COLUMN_SIZE: return FR_WINDOW_SORT_BY_SIZE;
- case COLUMN_TYPE: return FR_WINDOW_SORT_BY_TYPE;
- case COLUMN_TIME: return FR_WINDOW_SORT_BY_TIME;
- case COLUMN_PATH: return FR_WINDOW_SORT_BY_PATH;
- default:
- break;
- }
-
- return FR_WINDOW_SORT_BY_NAME;
-}
-
-
static void
add_selected_from_list_view (GtkTreeModel *model,
GtkTreePath *path,
@@ -1704,7 +1563,9 @@ static void
fr_window_populate_file_list (FrWindow *window,
GPtrArray *files)
{
- int i;
+ int sort_column_id;
+ GtkSortType order;
+ int i;
if (! gtk_widget_get_realized (GTK_WIDGET (window))) {
_fr_window_stop_activity_mode (window);
@@ -1713,9 +1574,12 @@ fr_window_populate_file_list (FrWindow *window,
gtk_list_store_clear (window->priv->list_store);
+ gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (window->priv->list_store),
+ &sort_column_id,
+ &order);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (window->priv->list_store),
- GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
- GTK_SORT_ASCENDING);
+ GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID,
+ 0);
for (i = 0; i < files->len; i++) {
FileData *fdata = g_ptr_array_index (files, i);
@@ -1800,8 +1664,8 @@ fr_window_populate_file_list (FrWindow *window,
}
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (window->priv->list_store),
- get_column_from_sort_method (window->priv->sort_method),
- window->priv->sort_type);
+ sort_column_id,
+ order);
_fr_window_stop_activity_mode (window);
}
@@ -4903,7 +4767,7 @@ add_file_list_columns (FrWindow *window,
w = DEFAULT_NAME_COLUMN_WIDTH;
gtk_tree_view_column_set_fixed_width (column, w);
gtk_tree_view_column_set_resizable (column, TRUE);
- gtk_tree_view_column_set_sort_column_id (column, COLUMN_NAME);
+ gtk_tree_view_column_set_sort_column_id (column, FR_WINDOW_SORT_BY_NAME);
gtk_tree_view_column_set_cell_data_func (column, renderer,
(GtkTreeCellDataFunc) filename_cell_data_func,
window, NULL);
@@ -4925,7 +4789,7 @@ add_file_list_columns (FrWindow *window,
gtk_tree_view_column_set_fixed_width (column, OTHER_COLUMNS_WIDTH);
gtk_tree_view_column_set_resizable (column, TRUE);
- gtk_tree_view_column_set_sort_column_id (column, i);
+ gtk_tree_view_column_set_sort_column_id (column, FR_WINDOW_SORT_BY_NAME + 1 + j);
g_value_init (&value, PANGO_TYPE_ELLIPSIZE_MODE);
g_value_set_enum (&value, PANGO_ELLIPSIZE_END);
@@ -4943,12 +4807,26 @@ name_column_sort_func (GtkTreeModel *model,
GtkTreeIter *b,
gpointer user_data)
{
- FileData *fdata1, *fdata2;
+ FileData *fdata1;
+ FileData *fdata2;
+ GtkSortType sort_order;
+ int result;
+
+ gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model), NULL, &sort_order);
gtk_tree_model_get (model, a, COLUMN_FILE_DATA, &fdata1, -1);
gtk_tree_model_get (model, b, COLUMN_FILE_DATA, &fdata2, -1);
- return sort_by_name (&fdata1, &fdata2);
+ if (file_data_is_dir (fdata1) == file_data_is_dir (fdata2)) {
+ result = strcmp (fdata1->sort_key, fdata2->sort_key);
+ }
+ else {
+ result = file_data_is_dir (fdata1) ? -1 : 1;
+ if (sort_order == GTK_SORT_DESCENDING)
+ result = -1 * result;
+ }
+
+ return result;
}
@@ -4958,12 +4836,29 @@ size_column_sort_func (GtkTreeModel *model,
GtkTreeIter *b,
gpointer user_data)
{
- FileData *fdata1, *fdata2;
+ FileData *fdata1;
+ FileData *fdata2;
+ GtkSortType sort_order;
+ int result;
+
+ gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model), NULL, &sort_order);
gtk_tree_model_get (model, a, COLUMN_FILE_DATA, &fdata1, -1);
gtk_tree_model_get (model, b, COLUMN_FILE_DATA, &fdata2, -1);
- return sort_by_size (&fdata1, &fdata2);
+ if (file_data_is_dir (fdata1) == file_data_is_dir (fdata2)) {
+ if (file_data_is_dir (fdata1))
+ result = fdata1->dir_size - fdata2->dir_size;
+ else
+ result = fdata1->size - fdata2->size;
+ }
+ else {
+ result = file_data_is_dir (fdata1) ? -1 : 1;
+ if (sort_order == GTK_SORT_DESCENDING)
+ result = -1 * result;
+ }
+
+ return result;
}
@@ -4973,12 +4868,39 @@ type_column_sort_func (GtkTreeModel *model,
GtkTreeIter *b,
gpointer user_data)
{
- FileData *fdata1, *fdata2;
+ FileData *fdata1;
+ FileData *fdata2;
+ GtkSortType sort_order;
+ int result;
+
+ gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model), NULL, &sort_order);
gtk_tree_model_get (model, a, COLUMN_FILE_DATA, &fdata1, -1);
gtk_tree_model_get (model, b, COLUMN_FILE_DATA, &fdata2, -1);
- return sort_by_type (&fdata1, &fdata2);
+ if (file_data_is_dir (fdata1) == file_data_is_dir (fdata2)) {
+ if (file_data_is_dir (fdata1)) {
+ result = strcmp (fdata1->sort_key, fdata2->sort_key);
+ if (sort_order == GTK_SORT_DESCENDING)
+ result = -1 * result;
+ }
+ else {
+ const char *desc1, *desc2;
+
+ desc1 = g_content_type_get_description (fdata1->content_type);
+ desc2 = g_content_type_get_description (fdata2->content_type);
+ result = strcasecmp (desc1, desc2);
+ if (result == 0)
+ result = strcmp (fdata1->sort_key, fdata2->sort_key);
+ }
+ }
+ else {
+ result = file_data_is_dir (fdata1) ? -1 : 1;
+ if (sort_order == GTK_SORT_DESCENDING)
+ result = -1 * result;
+ }
+
+ return result;
}
@@ -4988,12 +4910,32 @@ time_column_sort_func (GtkTreeModel *model,
GtkTreeIter *b,
gpointer user_data)
{
- FileData *fdata1, *fdata2;
+ FileData *fdata1;
+ FileData *fdata2;
+ GtkSortType sort_order;
+ int result;
+
+ gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model), NULL, &sort_order);
gtk_tree_model_get (model, a, COLUMN_FILE_DATA, &fdata1, -1);
gtk_tree_model_get (model, b, COLUMN_FILE_DATA, &fdata2, -1);
- return sort_by_time (&fdata1, &fdata2);
+ if (file_data_is_dir (fdata1) == file_data_is_dir (fdata2)) {
+ if (file_data_is_dir (fdata1)) {
+ result = strcmp (fdata1->sort_key, fdata2->sort_key);
+ if (sort_order == GTK_SORT_DESCENDING)
+ result = -1 * result;
+ }
+ else
+ result = fdata1->modified - fdata2->modified;
+ }
+ else {
+ result = file_data_is_dir (fdata1) ? -1 : 1;
+ if (sort_order == GTK_SORT_DESCENDING)
+ result = -1 * result;
+ }
+
+ return result;
}
@@ -5003,22 +4945,23 @@ path_column_sort_func (GtkTreeModel *model,
GtkTreeIter *b,
gpointer user_data)
{
- FileData *fdata1, *fdata2;
+ FileData *fdata1;
+ FileData *fdata2;
+ char *path1;
+ char *path2;
+ int result;
- gtk_tree_model_get (model, a, COLUMN_FILE_DATA, &fdata1, -1);
- gtk_tree_model_get (model, b, COLUMN_FILE_DATA, &fdata2, -1);
+ gtk_tree_model_get (model, a, COLUMN_FILE_DATA, &fdata1, COLUMN_PATH, &path1, -1);
+ gtk_tree_model_get (model, b, COLUMN_FILE_DATA, &fdata2, COLUMN_PATH, &path2, -1);
- return sort_by_path (&fdata1, &fdata2);
-}
+ result = strcmp (path1, path2);
+ if (result == 0)
+ result = strcmp (fdata1->sort_key, fdata2->sort_key);
+ g_free (path1);
+ g_free (path2);
-static int
-no_sort_column_sort_func (GtkTreeModel *model,
- GtkTreeIter *a,
- GtkTreeIter *b,
- gpointer user_data)
-{
- return -1;
+ return result;
}
@@ -5034,27 +4977,6 @@ set_active (FrWindow *window,
}
-static void
-sort_column_changed_cb (GtkTreeSortable *sortable,
- gpointer user_data)
-{
- FrWindow *window = user_data;
- GtkSortType order;
- int column_id;
-
- if (! gtk_tree_sortable_get_sort_column_id (sortable,
- &column_id,
- &order))
- return;
-
- window->priv->sort_method = get_sort_method_from_column (column_id);
- window->priv->sort_type = order;
-
- /*set_active (window, get_action_from_sort_method (window->priv->sort_method), TRUE);
- set_active (window, "SortReverseOrder", (window->priv->sort_type == GTK_SORT_DESCENDING));*/
-}
-
-
static gboolean
fr_window_show_cb (GtkWidget *widget,
FrWindow *window)
@@ -5252,28 +5174,6 @@ view_as_radio_action (GtkAction *action,
static void
-fr_window_update_list_order (FrWindow *window)
-{
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (window->priv->list_store),
- get_column_from_sort_method (window->priv->sort_method),
- window->priv->sort_type);
-}
-
-
-static void
-sort_by_radio_action (GtkAction *action,
- GtkRadioAction *current,
- gpointer data)
-{
- FrWindow *window = data;
-
- window->priv->sort_method = gtk_radio_action_get_current_value (current);
- window->priv->sort_type = GTK_SORT_ASCENDING;
- fr_window_update_list_order (window);
-}
-
-
-static void
recent_chooser_item_activated_cb (GtkRecentChooser *chooser,
FrWindow *window)
{
@@ -5508,9 +5408,6 @@ fr_window_construct (FrWindow *window)
/* Initialize Data. */
- window->priv->sort_method = g_settings_get_enum (window->priv->settings_listing, PREF_LISTING_SORT_METHOD);
- window->priv->sort_type = g_settings_get_enum (window->priv->settings_listing, PREF_LISTING_SORT_TYPE);
-
window->priv->list_mode = window->priv->last_list_mode = g_settings_get_enum (window->priv->settings_listing, PREF_LISTING_LIST_MODE);
g_settings_set_boolean (window->priv->settings_listing, PREF_LISTING_SHOW_PATH, (window->priv->list_mode == FR_WINDOW_LIST_MODE_FLAT));
@@ -5597,25 +5494,21 @@ fr_window_construct (FrWindow *window)
COLUMN_NAME);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (window->priv->list_store),
- COLUMN_NAME, name_column_sort_func,
+ FR_WINDOW_SORT_BY_NAME, name_column_sort_func,
NULL, NULL);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (window->priv->list_store),
- COLUMN_SIZE, size_column_sort_func,
+ FR_WINDOW_SORT_BY_SIZE, size_column_sort_func,
NULL, NULL);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (window->priv->list_store),
- COLUMN_TYPE, type_column_sort_func,
+ FR_WINDOW_SORT_BY_TYPE, type_column_sort_func,
NULL, NULL);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (window->priv->list_store),
- COLUMN_TIME, time_column_sort_func,
+ FR_WINDOW_SORT_BY_TIME, time_column_sort_func,
NULL, NULL);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (window->priv->list_store),
- COLUMN_PATH, path_column_sort_func,
+ FR_WINDOW_SORT_BY_PATH, path_column_sort_func,
NULL, NULL);
- gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (window->priv->list_store),
- no_sort_column_sort_func,
- NULL, NULL);
-
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (window->priv->list_view));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
@@ -5627,7 +5520,6 @@ fr_window_construct (FrWindow *window)
"row_activated",
G_CALLBACK (row_activated_cb),
window);
-
g_signal_connect (G_OBJECT (window->priv->list_view),
"button_press_event",
G_CALLBACK (file_button_press_cb),
@@ -5644,12 +5536,6 @@ fr_window_construct (FrWindow *window)
"leave_notify_event",
G_CALLBACK (file_leave_notify_callback),
window);
-
- g_signal_connect (G_OBJECT (window->priv->list_store),
- "sort_column_changed",
- G_CALLBACK (sort_column_changed_cb),
- window);
-
g_signal_connect (G_OBJECT (window->priv->list_view),
"drag_begin",
G_CALLBACK (file_list_drag_begin),
@@ -5810,12 +5696,6 @@ fr_window_construct (FrWindow *window)
window->priv->list_mode,
G_CALLBACK (view_as_radio_action),
window);
- gtk_action_group_add_radio_actions (actions,
- sort_by_entries,
- n_sort_by_entries,
- window->priv->sort_type,
- G_CALLBACK (sort_by_radio_action),
- window);
g_signal_connect (ui, "connect_proxy",
G_CALLBACK (connect_proxy_cb), window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]