Deduplicate ViewFile pop menu functions
authorArkadiy Illarionov <qarkai@gmail.com>
Sun, 21 Apr 2024 14:07:43 +0000 (17:07 +0300)
committerColin Clark <colin.clark@cclark.uk>
Sun, 21 Apr 2024 15:03:45 +0000 (16:03 +0100)
src/view-file/view-file-icon.cc
src/view-file/view-file-icon.h
src/view-file/view-file-list.cc
src/view-file/view-file-list.h
src/view-file/view-file.cc

index 7a43146..722680c 100644 (file)
@@ -32,7 +32,6 @@
 #include "debug.h"
 #include "dnd.h"
 #include "filedata.h"
-#include "img-view.h"
 #include "intl.h"
 #include "layout-image.h"
 #include "main-defines.h"
@@ -91,36 +90,6 @@ GList *vficon_selection_get_one(ViewFile *, FileData *fd)
        return g_list_prepend(filelist_copy(fd->sidecar_files), file_data_ref(fd));
 }
 
-GList *vficon_pop_menu_file_list(ViewFile *vf)
-{
-       if (!vf->click_fd) return nullptr;
-
-       if (vf->click_fd->selected & SELECTION_SELECTED)
-               {
-               return vf_selection_get_list(vf);
-               }
-
-       return vficon_selection_get_one(vf, vf->click_fd);
-}
-
-void vficon_pop_menu_view_cb(ViewFile *vf)
-{
-       if (!vf->click_fd) return;
-
-       if (vf->click_fd->selected & SELECTION_SELECTED)
-               {
-               GList *list;
-
-               list = vf_selection_get_list(vf);
-               view_window_new_from_list(list);
-               filelist_free(list);
-               }
-       else
-               {
-               view_window_new(vf->click_fd);
-               }
-}
-
 void vficon_pop_menu_rename_cb(ViewFile *vf)
 {
        file_util_rename(nullptr, vf_pop_menu_file_list(vf), vf->listview);
index b9ff01f..2dfef24 100644 (file)
@@ -74,8 +74,6 @@ void vficon_star_rating_set(ViewFile *vf, gboolean enable);
 void vficon_sort_set(ViewFile *vf, SortType type, gboolean ascend, gboolean case_sensitive);
 
 GList *vficon_selection_get_one(ViewFile *vf, FileData *fd);
-GList *vficon_pop_menu_file_list(ViewFile *vf);
-void vficon_pop_menu_view_cb(ViewFile *vf);
 void vficon_pop_menu_rename_cb(ViewFile *vf);
 void vficon_pop_menu_add_items(ViewFile *vf, GtkWidget *menu);
 void vficon_pop_menu_show_star_rating_cb(ViewFile *vf);
index a8c19a3..6a74e40 100644 (file)
@@ -31,7 +31,6 @@
 #include "debug.h"
 #include "dnd.h"
 #include "filedata.h"
-#include "img-view.h"
 #include "intl.h"
 #include "layout-image.h"
 #include "layout.h"
@@ -282,34 +281,6 @@ GList *vflist_selection_get_one(ViewFile *vf, FileData *fd)
        return g_list_prepend(list, file_data_ref(fd));
 }
 
-GList *vflist_pop_menu_file_list(ViewFile *vf)
-{
-       if (!vf->click_fd) return nullptr;
-
-       if (vflist_row_is_selected(vf, vf->click_fd))
-               {
-               return vf_selection_get_list(vf);
-               }
-       return vflist_selection_get_one(vf, vf->click_fd);
-}
-
-
-void vflist_pop_menu_view_cb(ViewFile *vf)
-{
-       if (vflist_row_is_selected(vf, vf->click_fd))
-               {
-               GList *list;
-
-               list = vf_selection_get_list(vf);
-               view_window_new_from_list(list);
-               filelist_free(list);
-               }
-       else
-               {
-               view_window_new(vf->click_fd);
-               }
-}
-
 void vflist_pop_menu_rename_cb(ViewFile *vf)
 {
        GList *list;
index 0b63d77..1d64d53 100644 (file)
@@ -63,8 +63,6 @@ void vflist_star_rating_set(ViewFile *vf, gboolean enable);
 void vflist_sort_set(ViewFile *vf, SortType type, gboolean ascend, gboolean case_sensitive);
 
 GList *vflist_selection_get_one(ViewFile *vf, FileData *fd);
-GList *vflist_pop_menu_file_list(ViewFile *vf);
-void vflist_pop_menu_view_cb(ViewFile *vf);
 void vflist_pop_menu_rename_cb(ViewFile *vf);
 void vflist_pop_menu_add_items(ViewFile *vf, GtkWidget *menu);
 void vflist_pop_menu_show_star_rating_cb(ViewFile *vf);
index 68c6e52..09941e0 100644 (file)
@@ -30,6 +30,7 @@
 #include "dupe.h"
 #include "filedata.h"
 #include "history-list.h"
+#include "img-view.h"
 #include "intl.h"
 #include "layout.h"
 #include "main-defines.h"
@@ -430,16 +431,14 @@ static void vf_dnd_init(ViewFile *vf)
 
 GList *vf_pop_menu_file_list(ViewFile *vf)
 {
-       GList *ret;
+       if (!vf->click_fd) return nullptr;
 
-       switch (vf->type)
-       {
-       case FILEVIEW_LIST: ret = vflist_pop_menu_file_list(vf); break;
-       case FILEVIEW_ICON: ret = vficon_pop_menu_file_list(vf); break;
-       default: ret = nullptr;
-       }
+       if (vf_is_selected(vf, vf->click_fd))
+               {
+               return vf_selection_get_list(vf);
+               }
 
-       return ret;
+       return vf_selection_get_one(vf, vf->click_fd);
 }
 
 GList *vf_selection_get_one(ViewFile *vf, FileData *fd)
@@ -472,11 +471,20 @@ static void vf_pop_menu_view_cb(GtkWidget *, gpointer data)
 {
        auto vf = static_cast<ViewFile *>(data);
 
-       switch (vf->type)
-       {
-       case FILEVIEW_LIST: vflist_pop_menu_view_cb(vf); break;
-       case FILEVIEW_ICON: vficon_pop_menu_view_cb(vf); break;
-       }
+       if (!vf->click_fd) return;
+
+       if (vf_is_selected(vf, vf->click_fd))
+               {
+               GList *list;
+
+               list = vf_selection_get_list(vf);
+               view_window_new_from_list(list);
+               filelist_free(list);
+               }
+       else
+               {
+               view_window_new(vf->click_fd);
+               }
 }
 
 static void vf_pop_menu_open_archive_cb(GtkWidget *, gpointer data)