# HG changeset patch # User Tomasz Golinski # Date 1505589515 -3600 # Node ID c6a11c0bade8cf940f1e262bf4b4246c6474ab43 # Parent 93d065140133d149e36455299be67726914f599e Bug fix #509: Increase number of marks to 10 https://github.com/BestImageViewer/geeqie/issues/509 diff -r 93d065140133 -r c6a11c0bade8 src/bar_keywords.c --- a/src/bar_keywords.c Sat Sep 16 20:12:22 2017 +0100 +++ b/src/bar_keywords.c Sat Sep 16 20:18:35 2017 +0100 @@ -1292,7 +1292,7 @@ submenu = gtk_menu_new(); for (i = 0; i < FILEDATA_MARKS_SIZE; i++) { - text = g_strdup_printf(_("Mark %d"), i + 1); + text = g_strdup_printf(_("Mark %d"), 1 + (i < 9 ? i : -1)); item = menu_item_add(submenu, text, G_CALLBACK(bar_pane_keywords_connect_mark_cb), pkd); g_object_set_data(G_OBJECT(item), "mark", GINT_TO_POINTER(i + 1)); g_free(text); diff -r 93d065140133 -r c6a11c0bade8 src/cellrenderericon.c --- a/src/cellrenderericon.c Sat Sep 16 20:12:22 2017 +0100 +++ b/src/cellrenderericon.c Sat Sep 16 20:18:35 2017 +0100 @@ -25,9 +25,6 @@ #define FIXED_ICON_SIZE_MAX 512 -#define TOGGLE_WIDTH 13 -#define TOGGLE_SPACING 18 - static void gqv_cell_renderer_icon_get_property(GObject *object, guint param_id, diff -r 93d065140133 -r c6a11c0bade8 src/cellrenderericon.h --- a/src/cellrenderericon.h Sat Sep 16 20:12:22 2017 +0100 +++ b/src/cellrenderericon.h Sat Sep 16 20:18:35 2017 +0100 @@ -24,6 +24,9 @@ extern "C" { #endif /* __cplusplus */ +#define TOGGLE_WIDTH 13 +#define TOGGLE_SPACING 16 + #define GQV_TYPE_CELL_RENDERER_ICON (gqv_cell_renderer_icon_get_type()) #define GQV_CELL_RENDERER_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GQV_TYPE_CELL_RENDERER_ICON, GQvCellRendererIcon)) diff -r 93d065140133 -r c6a11c0bade8 src/image-overlay.c --- a/src/image-overlay.c Sat Sep 16 20:12:22 2017 +0100 +++ b/src/image-overlay.c Sat Sep 16 20:18:35 2017 +0100 @@ -650,7 +650,7 @@ for (mark = 0; mark < FILEDATA_MARKS_SIZE; mark++) { - g_string_append_printf(buf, file_data_get_mark(fd, mark) ? " %c" : " %c", '1' + mark); + g_string_append_printf(buf, file_data_get_mark(fd, mark) ? " %c" : " %c", '1' + (mark < 9 ? mark : -1) ); } if (*text) diff -r 93d065140133 -r c6a11c0bade8 src/layout_util.c --- a/src/layout_util.c Sat Sep 16 20:12:22 2017 +0100 +++ b/src/layout_util.c Sat Sep 16 20:18:35 2017 +0100 @@ -2220,7 +2220,7 @@ gtk_action_group_add_actions(lw->action_group, &entry, 1, lw); action = gtk_action_group_get_action(lw->action_group, name); - g_object_set_data(G_OBJECT(action), "mark_num", GINT_TO_POINTER(mark)); + g_object_set_data(G_OBJECT(action), "mark_num", GINT_TO_POINTER(mark > 0 ? mark : 10)); } static void layout_actions_setup_marks(LayoutWindow *lw) @@ -2234,17 +2234,19 @@ for (mark = 1; mark <= FILEDATA_MARKS_SIZE; mark++) { - layout_actions_setup_mark(lw, mark, "Mark%d", _("Mark _%d"), NULL, NULL, NULL); - layout_actions_setup_mark(lw, mark, "SetMark%d", _("_Set mark %d"), NULL, _("Set mark %d"), G_CALLBACK(layout_menu_set_mark_sel_cb)); - layout_actions_setup_mark(lw, mark, "ResetMark%d", _("_Reset mark %d"), NULL, _("Reset mark %d"), G_CALLBACK(layout_menu_res_mark_sel_cb)); - layout_actions_setup_mark(lw, mark, "ToggleMark%d", _("_Toggle mark %d"), "%d", _("Toggle mark %d"), G_CALLBACK(layout_menu_toggle_mark_sel_cb)); - layout_actions_setup_mark(lw, mark, "ToggleMark%dAlt1", _("_Toggle mark %d"), "KP_%d", _("Toggle mark %d"), G_CALLBACK(layout_menu_toggle_mark_sel_cb)); - layout_actions_setup_mark(lw, mark, "SelectMark%d", _("Se_lect mark %d"), "%d", _("Select mark %d"), G_CALLBACK(layout_menu_sel_mark_cb)); - layout_actions_setup_mark(lw, mark, "SelectMark%dAlt1", _("_Select mark %d"), "KP_%d", _("Select mark %d"), G_CALLBACK(layout_menu_sel_mark_cb)); - layout_actions_setup_mark(lw, mark, "AddMark%d", _("_Add mark %d"), NULL, _("Add mark %d"), G_CALLBACK(layout_menu_sel_mark_or_cb)); - layout_actions_setup_mark(lw, mark, "IntMark%d", _("_Intersection with mark %d"), NULL, _("Intersection with mark %d"), G_CALLBACK(layout_menu_sel_mark_and_cb)); - layout_actions_setup_mark(lw, mark, "UnselMark%d", _("_Unselect mark %d"), NULL, _("Unselect mark %d"), G_CALLBACK(layout_menu_sel_mark_minus_cb)); - layout_actions_setup_mark(lw, mark, "FilterMark%d", _("_Filter mark %d"), NULL, _("Filter mark %d"), G_CALLBACK(layout_menu_mark_filter_toggle_cb)); + gint i = (mark < 10 ? mark : 0); + + layout_actions_setup_mark(lw, i, "Mark%d", _("Mark _%d"), NULL, NULL, NULL); + layout_actions_setup_mark(lw, i, "SetMark%d", _("_Set mark %d"), NULL, _("Set mark %d"), G_CALLBACK(layout_menu_set_mark_sel_cb)); + layout_actions_setup_mark(lw, i, "ResetMark%d", _("_Reset mark %d"), NULL, _("Reset mark %d"), G_CALLBACK(layout_menu_res_mark_sel_cb)); + layout_actions_setup_mark(lw, i, "ToggleMark%d", _("_Toggle mark %d"), "%d", _("Toggle mark %d"), G_CALLBACK(layout_menu_toggle_mark_sel_cb)); + layout_actions_setup_mark(lw, i, "ToggleMark%dAlt1", _("_Toggle mark %d"), "KP_%d", _("Toggle mark %d"), G_CALLBACK(layout_menu_toggle_mark_sel_cb)); + layout_actions_setup_mark(lw, i, "SelectMark%d", _("Se_lect mark %d"), "%d", _("Select mark %d"), G_CALLBACK(layout_menu_sel_mark_cb)); + layout_actions_setup_mark(lw, i, "SelectMark%dAlt1", _("_Select mark %d"), "KP_%d", _("Select mark %d"), G_CALLBACK(layout_menu_sel_mark_cb)); + layout_actions_setup_mark(lw, i, "AddMark%d", _("_Add mark %d"), NULL, _("Add mark %d"), G_CALLBACK(layout_menu_sel_mark_or_cb)); + layout_actions_setup_mark(lw, i, "IntMark%d", _("_Intersection with mark %d"), NULL, _("Intersection with mark %d"), G_CALLBACK(layout_menu_sel_mark_and_cb)); + layout_actions_setup_mark(lw, i, "UnselMark%d", _("_Unselect mark %d"), NULL, _("Unselect mark %d"), G_CALLBACK(layout_menu_sel_mark_minus_cb)); + layout_actions_setup_mark(lw, i, "FilterMark%d", _("_Filter mark %d"), NULL, _("Filter mark %d"), G_CALLBACK(layout_menu_mark_filter_toggle_cb)); g_string_append_printf(desc, " " @@ -2259,7 +2261,7 @@ " " " " " ", - mark, mark, mark, mark, mark, mark, mark, mark, mark); + i, i, i, i, i, i, i, i, i); } g_string_append(desc, @@ -2267,10 +2269,12 @@ " "); for (mark = 1; mark <= FILEDATA_MARKS_SIZE; mark++) { + gint i = (mark < 10 ? mark : 0); + g_string_append_printf(desc, "" "", - mark, mark); + i, i); } g_string_append(desc, "" ); diff -r 93d065140133 -r c6a11c0bade8 src/metadata.c --- a/src/metadata.c Sat Sep 16 20:12:22 2017 +0100 +++ b/src/metadata.c Sat Sep 16 20:18:35 2017 +0100 @@ -1092,7 +1092,7 @@ path = keyword_tree_get_path(keyword_tree, kw_iter); file_data_register_mark_func(mark, meta_data_get_keyword_mark, meta_data_set_keyword_mark, path, (GDestroyNotify)string_list_free); - mark_str = g_strdup_printf("%d", mark + 1); + mark_str = g_strdup_printf("%d", (mark < 9 ? mark : -1) + 1); gtk_tree_store_set(GTK_TREE_STORE(keyword_tree), kw_iter, KEYWORD_COLUMN_MARK, mark_str, -1); g_free(mark_str); } @@ -1839,8 +1839,11 @@ if (mark_str) { + gint i = (gint)atoi(mark_str); + if (i == 0) i = 10; + meta_data_connect_mark_with_keyword(GTK_TREE_MODEL(keyword_tree), - &iter, (gint)atoi(mark_str) - 1); + &iter, i - 1); } g_free(name); diff -r 93d065140133 -r c6a11c0bade8 src/typedefs.h --- a/src/typedefs.h Sat Sep 16 20:12:22 2017 +0100 +++ b/src/typedefs.h Sat Sep 16 20:18:35 2017 +0100 @@ -529,7 +529,7 @@ gboolean mouse_wheel_mode; }; -#define FILEDATA_MARKS_SIZE 6 +#define FILEDATA_MARKS_SIZE 10 struct _FileDataChangeInfo { FileDataChangeType type; diff -r 93d065140133 -r c6a11c0bade8 src/view_file/view_file_icon.c --- a/src/view_file/view_file_icon.c Sat Sep 16 20:12:22 2017 +0100 +++ b/src/view_file/view_file_icon.c Sat Sep 16 20:18:35 2017 +0100 @@ -48,7 +48,8 @@ /* between these, the icon width is increased by thumb_max_width / 2 */ #define THUMB_MIN_ICON_WIDTH 128 -#define THUMB_MAX_ICON_WIDTH 150 +#define THUMB_MAX_ICON_WIDTH 160 +#define THUMB_MIN_ICON_WIDTH_WITH_MARKS TOGGLE_SPACING * FILEDATA_MARKS_SIZE #define VFICON_MAX_COLUMNS 32 #define THUMB_BORDER_PADDING 2 @@ -196,6 +197,7 @@ width = options->thumbnails.max_width + options->thumbnails.max_width / 2; if (width < THUMB_MIN_ICON_WIDTH) width = THUMB_MIN_ICON_WIDTH; if (width > THUMB_MAX_ICON_WIDTH) width = options->thumbnails.max_width; + if (vf->marks_enabled && width < THUMB_MIN_ICON_WIDTH_WITH_MARKS) width = THUMB_MIN_ICON_WIDTH_WITH_MARKS; return width; } diff -r 93d065140133 -r c6a11c0bade8 src/view_file/view_file_list.c --- a/src/view_file/view_file_list.c Sat Sep 16 20:12:22 2017 +0100 +++ b/src/view_file/view_file_list.c Sat Sep 16 20:18:35 2017 +0100 @@ -854,7 +854,11 @@ FILE_COLUMN_MARKS + 3, file_data_get_mark(fd, 3), FILE_COLUMN_MARKS + 4, file_data_get_mark(fd, 4), FILE_COLUMN_MARKS + 5, file_data_get_mark(fd, 5), -#if FILEDATA_MARKS_SIZE != 6 + FILE_COLUMN_MARKS + 6, file_data_get_mark(fd, 6), + FILE_COLUMN_MARKS + 7, file_data_get_mark(fd, 7), + FILE_COLUMN_MARKS + 8, file_data_get_mark(fd, 8), + FILE_COLUMN_MARKS + 9, file_data_get_mark(fd, 9), +#if FILEDATA_MARKS_SIZE != 10 #error this needs to be updated #endif #endif