Deduplicate "Show star rating" menu item creation
authorArkadiy Illarionov <qarkai@gmail.com>
Wed, 17 Apr 2024 20:42:44 +0000 (23:42 +0300)
committerColin Clark <colin.clark@cclark.uk>
Fri, 19 Apr 2024 08:40:00 +0000 (09:40 +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 fe7c180..56b9e54 100644 (file)
@@ -138,23 +138,14 @@ void vficon_pop_menu_show_names_cb(GtkWidget *, gpointer data)
        vficon_toggle_filenames(vf);
 }
 
-static void vficon_toggle_star_rating(ViewFile *vf)
+void vficon_pop_menu_show_star_rating_cb(ViewFile *vf)
 {
        GtkAllocation allocation;
 
-       options->show_star_rating = !options->show_star_rating;
-
        gtk_widget_get_allocation(vf->listview, &allocation);
        vficon_populate_at_new_size(vf, allocation.width, allocation.height, TRUE);
 }
 
-void vficon_pop_menu_show_star_rating_cb(GtkWidget *, gpointer data)
-{
-       auto vf = static_cast<ViewFile *>(data);
-
-       vficon_toggle_star_rating(vf);
-}
-
 void vficon_pop_menu_refresh_cb(GtkWidget *, gpointer data)
 {
        auto vf = static_cast<ViewFile *>(data);
index 73d0615..a0d0938 100644 (file)
@@ -52,10 +52,10 @@ GList *vficon_selection_get_one(ViewFile *vf, FileData *fd);
 GList *vficon_pop_menu_file_list(ViewFile *vf);
 void vficon_pop_menu_view_cb(GtkWidget *widget, gpointer data);
 void vficon_pop_menu_rename_cb(GtkWidget *widget, gpointer data);
+void vficon_pop_menu_show_star_rating_cb(ViewFile *vf);
 void vficon_pop_menu_refresh_cb(GtkWidget *widget, gpointer data);
 void vficon_popup_destroy_cb(GtkWidget *widget, gpointer data);
 void vficon_pop_menu_show_names_cb(GtkWidget *widget, gpointer data);
-void vficon_pop_menu_show_star_rating_cb(GtkWidget *widget, gpointer data);
 
 FileData *vficon_index_get_data(ViewFile *vf, gint row);
 gint vficon_index_by_fd(ViewFile *vf, FileData *in_fd);
index a941e7f..9404981 100644 (file)
@@ -461,12 +461,8 @@ void vflist_star_rating_set(ViewFile *vf, gboolean enable)
        g_list_free(columns);
 }
 
-void vflist_pop_menu_show_star_rating_cb(GtkWidget *, gpointer data)
+void vflist_pop_menu_show_star_rating_cb(ViewFile *vf)
 {
-       auto vf = static_cast<ViewFile *>(data);
-
-       options->show_star_rating = !options->show_star_rating;
-
        vflist_populate_view(vf, TRUE);
 
        vflist_color_set(vf, VFLIST(vf)->click_fd, FALSE);
index 7039cfd..6fc64c5 100644 (file)
@@ -52,6 +52,7 @@ GList *vflist_selection_get_one(ViewFile *vf, FileData *fd);
 GList *vflist_pop_menu_file_list(ViewFile *vf);
 void vflist_pop_menu_view_cb(GtkWidget *widget, gpointer data);
 void vflist_pop_menu_rename_cb(GtkWidget *widget, gpointer data);
+void vflist_pop_menu_show_star_rating_cb(ViewFile *vf);
 void vflist_pop_menu_refresh_cb(GtkWidget *widget, gpointer data);
 void vflist_popup_destroy_cb(GtkWidget *widget, gpointer data);
 void vflist_pop_menu_thumbs_cb(GtkWidget *widget, gpointer data);
@@ -81,7 +82,6 @@ void vflist_read_metadata_progress_count(GList *list, gint *count, gint *done);
 void vflist_set_thumb_fd(ViewFile *vf, FileData *fd);
 FileData *vflist_thumb_next_fd(ViewFile *vf);
 void vflist_thumb_reset_all(ViewFile *vf);
-void vflist_pop_menu_show_star_rating_cb(GtkWidget *widget, gpointer data);
 
 FileData *vflist_star_next_fd(ViewFile *vf);
 void vflist_set_star_fd(ViewFile *vf, FileData *fd);
index 929f4eb..27b0c8e 100644 (file)
@@ -668,6 +668,19 @@ static void vf_pop_menu_collections_cb(GtkWidget *widget, gpointer data)
        filelist_free(selection_list);
 }
 
+static void vf_pop_menu_show_star_rating_cb(GtkWidget *, gpointer data)
+{
+       auto *vf = static_cast<ViewFile *>(data);
+
+       options->show_star_rating = !options->show_star_rating;
+
+       switch (vf->type)
+       {
+       case FILEVIEW_LIST: vflist_pop_menu_show_star_rating_cb(vf); break;
+       case FILEVIEW_ICON: vficon_pop_menu_show_star_rating_cb(vf); break;
+       }
+}
+
 GtkWidget *vf_pop_menu(ViewFile *vf)
 {
        GtkWidget *menu;
@@ -825,17 +838,8 @@ GtkWidget *vf_pop_menu(ViewFile *vf)
                break;
        }
 
-       switch (vf->type)
-       {
-       case FILEVIEW_LIST:
-               menu_item_add_check(menu, _("Show star rating"), options->show_star_rating,
-                                   G_CALLBACK(vflist_pop_menu_show_star_rating_cb), vf);
-               break;
-       case FILEVIEW_ICON:
-               menu_item_add_check(menu, _("Show star rating"), options->show_star_rating,
-                                   G_CALLBACK(vficon_pop_menu_show_star_rating_cb), vf);
-               break;
-       }
+       menu_item_add_check(menu, _("Show star rating"), options->show_star_rating,
+                           G_CALLBACK(vf_pop_menu_show_star_rating_cb), vf);
 
        menu_item_add_icon(menu, _("Re_fresh"), GQ_ICON_REFRESH, G_CALLBACK(vf_pop_menu_refresh_cb), vf);