Trim trailing white spaces.
[geeqie.git] / src / dupe.c
index 16e60a2..77cc06e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Geeqie
  * (C) 2005 John Ellis
- * Copyright (C) 2008 - 2009 The Geeqie Team
+ * Copyright (C) 2008 - 2012 The Geeqie Team
  *
  * Author: John Ellis
  *
@@ -217,7 +217,7 @@ static void widget_set_cursor(GtkWidget *widget, gint icon)
 {
        GdkCursor *cursor;
 
-       if (!widget->window) return;
+       if (!gtk_widget_get_window(widget)) return;
 
        if (icon == -1)
                {
@@ -228,7 +228,7 @@ static void widget_set_cursor(GtkWidget *widget, gint icon)
                cursor = gdk_cursor_new(icon);
                }
 
-       gdk_window_set_cursor(widget->window, cursor);
+       gdk_window_set_cursor(gtk_widget_get_window(widget), cursor);
 
        if (cursor) gdk_cursor_unref(cursor);
 }
@@ -1116,7 +1116,7 @@ static gboolean dupe_match(DupeItem *a, DupeItem *b, DupeMatchType mask, gdouble
 {
        *rank = 0.0;
 
-       if (a == b) return FALSE;
+       if (a->fd->path == b->fd->path) return FALSE;
 
        if (mask & DUPE_MATCH_PATH)
                {
@@ -1347,10 +1347,10 @@ static void dupe_thumb_step(DupeWindow *dw)
 
 static void dupe_check_stop(DupeWindow *dw)
 {
-       if (dw->idle_id != -1 || dw->img_loader || dw->thumb_loader)
+       if (dw->idle_id || dw->img_loader || dw->thumb_loader)
                {
                g_source_remove(dw->idle_id);
-               dw->idle_id = -1;
+               dw->idle_id = 0;
                dupe_window_update_progress(dw, NULL, 0.0, FALSE);
                widget_set_cursor(dw->listview, -1);
                }
@@ -1424,7 +1424,7 @@ static gboolean dupe_check_cb(gpointer data)
 {
        DupeWindow *dw = data;
 
-       if (dw->idle_id == -1) return FALSE;
+       if (!dw->idle_id) return FALSE;
 
        if (!dw->setup_done)
                {
@@ -1535,7 +1535,7 @@ static gboolean dupe_check_cb(gpointer data)
                                                dw->img_loader = NULL;
                                                return TRUE;
                                                }
-                                       dw->idle_id = -1;
+                                       dw->idle_id = 0;
                                        return FALSE;
                                        }
 
@@ -1559,7 +1559,7 @@ static gboolean dupe_check_cb(gpointer data)
                        dupe_window_update_progress(dw, _("Sorting..."), 1.0, TRUE);
                        return TRUE;
                        }
-               dw->idle_id = -1;
+               dw->idle_id = 0;
                dupe_window_update_progress(dw, NULL, 0.0, FALSE);
 
                dupe_match_rank(dw);
@@ -1599,7 +1599,7 @@ static void dupe_check_start(DupeWindow *dw)
        dupe_window_update_count(dw, TRUE);
        widget_set_cursor(dw->listview, GDK_WATCH);
 
-       if (dw->idle_id != -1) return;
+       if (dw->idle_id) return;
 
        dw->idle_id = g_idle_add(dupe_check_cb, dw);
 }
@@ -2042,13 +2042,7 @@ static void dupe_window_remove_selection(DupeWindow *dw, GtkWidget *listview)
 
 static void dupe_window_edit_selected(DupeWindow *dw, const gchar *key)
 {
-       GList *list;
-
-       list = dupe_listview_get_selection(dw, dw->listview);
-
-       file_util_start_editor_from_filelist(key, list, dw->window);
-
-       filelist_free(list);
+       file_util_start_editor_from_filelist(key, dupe_listview_get_selection(dw, dw->listview), NULL, dw->window);
 }
 
 static void dupe_window_collection_from_selection(DupeWindow *dw)
@@ -2213,17 +2207,16 @@ static void dupe_menu_close_cb(GtkWidget *widget, gpointer data)
 
 static void dupe_menu_popup_destroy_cb(GtkWidget *widget, gpointer data)
 {
-       DupeWindow *dw = data;
+       GList *editmenu_fd_list = data;
 
-       filelist_free(dw->editmenu_fd_list);
-       dw->editmenu_fd_list = NULL;
-}      
+       filelist_free(editmenu_fd_list);
+}
 
 static GList *dupe_window_get_fd_list(DupeWindow *dw)
 {
        GList *list;
 
-       if (GTK_WIDGET_HAS_FOCUS(dw->second_listview))
+       if (gtk_widget_has_focus(dw->second_listview))
                {
                list = dupe_listview_get_selection(dw, dw->second_listview);
                }
@@ -2240,12 +2233,11 @@ static GtkWidget *dupe_menu_popup_main(DupeWindow *dw, DupeItem *di)
        GtkWidget *menu;
        GtkWidget *item;
        gint on_row;
+       GList *editmenu_fd_list;
 
        on_row = (di != NULL);
 
        menu = popup_menu_short_lived();
-       g_signal_connect(G_OBJECT(menu), "destroy",
-                        G_CALLBACK(dupe_menu_popup_destroy_cb), dw);
 
        menu_item_add_sensitive(menu, _("_View"), on_row,
                                G_CALLBACK(dupe_menu_view_cb), dw);
@@ -2262,8 +2254,10 @@ static GtkWidget *dupe_menu_popup_main(DupeWindow *dw, DupeItem *di)
                                G_CALLBACK(dupe_menu_select_dupes_set2_cb), dw);
        menu_item_add_divider(menu);
        
-       dw->editmenu_fd_list = dupe_window_get_fd_list(dw);
-       submenu_add_edit(menu, &item, G_CALLBACK(dupe_menu_edit_cb), dw, dw->editmenu_fd_list);
+       editmenu_fd_list = dupe_window_get_fd_list(dw);
+       g_signal_connect(G_OBJECT(menu), "destroy",
+                        G_CALLBACK(dupe_menu_popup_destroy_cb), editmenu_fd_list);
+       submenu_add_edit(menu, &item, G_CALLBACK(dupe_menu_edit_cb), dw, editmenu_fd_list);
        if (!on_row) gtk_widget_set_sensitive(item, FALSE);
        menu_item_add_stock_sensitive(menu, _("Add to new collection"), GTK_STOCK_INDEX, on_row,
                                G_CALLBACK(dupe_menu_collection_cb), dw);
@@ -2278,9 +2272,8 @@ static GtkWidget *dupe_menu_popup_main(DupeWindow *dw, DupeItem *di)
                                G_CALLBACK(dupe_menu_rename_cb), dw);
        menu_item_add_stock_sensitive(menu, _("_Delete..."), GTK_STOCK_DELETE, on_row,
                                G_CALLBACK(dupe_menu_delete_cb), dw);
-       if (options->show_copy_path)
-               menu_item_add_sensitive(menu, _("_Copy path"), on_row,
-                                       G_CALLBACK(dupe_menu_copy_path_cb), dw);
+       menu_item_add_sensitive(menu, _("_Copy path"), on_row,
+                               G_CALLBACK(dupe_menu_copy_path_cb), dw);
        menu_item_add_divider(menu);
        menu_item_add_stock_sensitive(menu, _("Rem_ove"), GTK_STOCK_REMOVE, on_row,
                                G_CALLBACK(dupe_menu_remove_cb), dw);
@@ -2584,7 +2577,7 @@ static void dupe_second_set_toggle_cb(GtkWidget *widget, gpointer data)
 {
        DupeWindow *dw = data;
 
-       dw->second_set = GTK_TOGGLE_BUTTON(widget)->active;
+       dw->second_set = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
 
        if (dw->second_set)
                {
@@ -2776,7 +2769,7 @@ static void dupe_listview_set_height(GtkWidget *listview, gboolean thumb)
 
        gtk_tree_view_column_set_fixed_width(column, (thumb) ? options->thumbnails.max_width : 4);
 
-       list = gtk_tree_view_column_get_cell_renderers(column);
+       list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(column));
        if (!list) return;
        cell = list->data;
        g_list_free(list);
@@ -2796,7 +2789,7 @@ static void dupe_window_show_thumb_cb(GtkWidget *widget, gpointer data)
 {
        DupeWindow *dw = data;
 
-       dw->show_thumbs = GTK_TOGGLE_BUTTON(widget)->active;
+       dw->show_thumbs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
 
        if (dw->show_thumbs)
                {
@@ -2863,7 +2856,7 @@ static gboolean dupe_window_keypress_cb(GtkWidget *widget, GdkEventKey *event, g
        GList *slist;
        DupeItem *di = NULL;
 
-       on_second = GTK_WIDGET_HAS_FOCUS(dw->second_listview);
+       on_second = gtk_widget_has_focus(dw->second_listview);
 
        if (on_second)
                {
@@ -2894,42 +2887,21 @@ static gboolean dupe_window_keypress_cb(GtkWidget *widget, GdkEventKey *event, g
 
        if (event->state & GDK_CONTROL_MASK)
                {
-               gint edit_val = -1;
-
                if (!on_second)
                        {
                        stop_signal = TRUE;
                        switch (event->keyval)
                                {
                                case '1':
-                                       edit_val = 0;
-                                       break;
                                case '2':
-                                       edit_val = 1;
-                                       break;
                                case '3':
-                                       edit_val = 2;
-                                       break;
                                case '4':
-                                       edit_val = 3;
-                                       break;
                                case '5':
-                                       edit_val = 4;
-                                       break;
                                case '6':
-                                       edit_val = 5;
-                                       break;
                                case '7':
-                                       edit_val = 6;
-                                       break;
                                case '8':
-                                       edit_val = 7;
-                                       break;
                                case '9':
-                                       edit_val = 8;
-                                       break;
                                case '0':
-                                       edit_val = 9;
                                        break;
                                case 'C': case 'c':
                                        file_util_copy(NULL, dupe_listview_get_selection(dw, listview),
@@ -2966,7 +2938,7 @@ static gboolean dupe_window_keypress_cb(GtkWidget *widget, GdkEventKey *event, g
                                                gtk_tree_selection_select_all(selection);
                                                }
                                        break;
-                               case GDK_Delete: case GDK_KP_Delete:
+                               case GDK_KEY_Delete: case GDK_KEY_KP_Delete:
                                        if (on_second)
                                                {
                                                dupe_second_clear(dw);
@@ -2992,25 +2964,19 @@ static gboolean dupe_window_keypress_cb(GtkWidget *widget, GdkEventKey *event, g
                                        break;
                                }
                        }
-#if 0
-               if (edit_val >= 0)
-                       {
-                       dupe_window_edit_selected(dw, edit_val);
-                       }
-#endif
                }
        else
                {
                stop_signal = TRUE;
                switch (event->keyval)
                        {
-                       case GDK_Return: case GDK_KP_Enter:
+                       case GDK_KEY_Return: case GDK_KEY_KP_Enter:
                                dupe_menu_view(dw, di, listview, FALSE);
                                break;
                        case 'V': case 'v':
                                dupe_menu_view(dw, di, listview, TRUE);
                                break;
-                       case GDK_Delete: case GDK_KP_Delete:
+                       case GDK_KEY_Delete: case GDK_KEY_KP_Delete:
                                dupe_window_remove_selection(dw, listview);
                                break;
                        case 'C': case 'c':
@@ -3025,8 +2991,8 @@ static gboolean dupe_window_keypress_cb(GtkWidget *widget, GdkEventKey *event, g
                        case '2':
                                dupe_listview_select_dupes(dw, FALSE);
                                break;
-                       case GDK_Menu:
-                       case GDK_F10:
+                       case GDK_KEY_Menu:
+                       case GDK_KEY_F10:
                                if (!on_second)
                                        {
                                        GtkWidget *menu;
@@ -3117,14 +3083,7 @@ DupeWindow *dupe_window_new(DupeMatchType match_mask)
 
        dw = g_new0(DupeWindow, 1);
 
-       dw->list = NULL;
-       dw->dupes = NULL;
        dw->match_mask = match_mask;
-       dw->show_thumbs = FALSE;
-
-       dw->idle_id = -1;
-
-       dw->second_set = FALSE;
 
        dw->window = window_new(GTK_WINDOW_TOPLEVEL, "dupe", NULL, NULL, _("Find duplicates"));
 
@@ -3396,8 +3355,6 @@ static void dupe_dnd_data_set(GtkWidget *widget, GdkDragContext *context,
                              guint time, gpointer data)
 {
        DupeWindow *dw = data;
-       gchar *uri_text;
-       gint length;
        GList *list;
 
        switch (info)
@@ -3406,17 +3363,12 @@ static void dupe_dnd_data_set(GtkWidget *widget, GdkDragContext *context,
                case TARGET_TEXT_PLAIN:
                        list = dupe_listview_get_selection(dw, widget);
                        if (!list) return;
-                       uri_text = uri_text_from_filelist(list, &length, (info == TARGET_TEXT_PLAIN));
+                       uri_selection_data_set_uris_from_filelist(selection_data, list);
                        filelist_free(list);
                        break;
                default:
-                       uri_text = NULL;
                        break;
                }
-
-       if (uri_text) gtk_selection_data_set(selection_data, selection_data->target,
-                                            8, (guchar *)uri_text, length);
-       g_free(uri_text);
 }
 
 static void dupe_dnd_data_get(GtkWidget *widget, GdkDragContext *context,
@@ -3437,10 +3389,10 @@ static void dupe_dnd_data_get(GtkWidget *widget, GdkDragContext *context,
        switch (info)
                {
                case TARGET_APP_COLLECTION_MEMBER:
-                       collection_from_dnd_data((gchar *)selection_data->data, &list, NULL);
+                       collection_from_dnd_data((gchar *)gtk_selection_data_get_data(selection_data), &list, NULL);
                        break;
                case TARGET_URI_LIST:
-                       list = uri_filelist_from_text((gchar *)selection_data->data, TRUE);
+                       list = uri_filelist_from_gtk_selection_data(selection_data);
                        work = list;
                        while (work)
                                {