From 488bc39771e8058c936d2eba8968a1b55d78fa1b Mon Sep 17 00:00:00 2001 From: deekayhd <53017684+deekayhd@users.noreply.github.com> Date: Sun, 30 Aug 2026 15:16:47 +0200 Subject: [PATCH 1/4] add unrated star icon --- src/libs/tools/ratings.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/libs/tools/ratings.c b/src/libs/tools/ratings.c index d7a01e36aba..afe46ee391a 100644 --- a/src/libs/tools/ratings.c +++ b/src/libs/tools/ratings.c @@ -133,7 +133,7 @@ static gboolean _lib_ratings_draw_callback(GtkWidget *widget, cairo_t *crf, dt_l gtk_widget_get_allocation(widget, &allocation); const float star_size = allocation.height; - const float star_spacing = (allocation.width - 5.0 * star_size) / 4.0; + const float star_spacing = (allocation.width - 6.0 * star_size) / 5.0; cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, allocation.width, allocation.height); @@ -151,6 +151,20 @@ static gboolean _lib_ratings_draw_callback(GtkWidget *widget, cairo_t *crf, dt_l int x = 0; cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1)); gdk_cairo_set_source_rgba(cr, &fg_color); + + // draw unrated star + cairo_set_source_rgba(cr, fg_color.red, fg_color.green, fg_color.blue, fg_color.alpha * 0.3); + dt_draw_star(cr, star_size / 2.0 + x, star_size / 2.0, star_size / 2.0, star_size / (2.0 * 2.5)); + cairo_stroke(cr); + gdk_cairo_set_source_rgba(cr, &fg_color); + cairo_set_line_width(cr, 1.6 * cairo_get_line_width(cr)); + cairo_move_to(cr, x + star_size * .1, star_size / 2.0); + cairo_line_to(cr, x + star_size * .9, star_size / 2.0); + cairo_stroke(cr); + cairo_set_line_width(cr, cairo_get_line_width(cr) / 1.6); + x += star_size + star_spacing; + + //now the regular stars d->current = 0; for(int k = 0; k < 5; k++) { From 8aa6bd08bb172efb9708ada36af08b569f384d34 Mon Sep 17 00:00:00 2001 From: deekayhd <53017684+deekayhd@users.noreply.github.com> Date: Sun, 30 Aug 2026 15:33:18 +0200 Subject: [PATCH 2/4] add logic --- src/libs/tools/ratings.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/libs/tools/ratings.c b/src/libs/tools/ratings.c index afe46ee391a..b036697cb82 100644 --- a/src/libs/tools/ratings.c +++ b/src/libs/tools/ratings.c @@ -208,14 +208,11 @@ static void _lib_ratings_button_press_callback(GtkGestureSingle *gesture, int n_ dt_lib_module_t *self) { dt_lib_ratings_t *d = self->data; - if(d->current > 0) - { - GList *imgs = dt_act_on_get_images(FALSE, TRUE, FALSE); - dt_ratings_apply_on_list(imgs, d->current, TRUE); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_RATING_RANGE, imgs); + GList *imgs = dt_act_on_get_images(FALSE, TRUE, FALSE); + dt_ratings_apply_on_list(imgs, d->current, TRUE); + dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_RATING_RANGE, imgs); - dt_control_queue_redraw_center(); - } + dt_control_queue_redraw_center(); } static void _lib_ratings_button_release_callback(GtkGestureSingle *gesture, int n_press, From 2d83af4a5e13e171b1198c9905da125d36875fc6 Mon Sep 17 00:00:00 2001 From: deekayhd <53017684+deekayhd@users.noreply.github.com> Date: Mon, 31 Aug 2026 13:54:28 +0200 Subject: [PATCH 3/4] adds release note --- RELEASE_NOTES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 4b1ab74e0a1..cbcb082f1fc 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -101,6 +101,9 @@ changes (where available). covering built-in and Lumix-branded lenses that lensfun has no profile for. +- Added a control in the bottom panel of the lighttable to reset + the star rating of images. + ## Bug Fixes - Clarified multi-image rating toasts for un-reject and for mixed From c135e3e7b2887f1328be785fbacd60ba79fb7b36 Mon Sep 17 00:00:00 2001 From: deekayhd <53017684+deekayhd@users.noreply.github.com> Date: Mon, 31 Aug 2026 13:54:28 +0200 Subject: [PATCH 4/4] adds release note --- RELEASE_NOTES.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index cbcb082f1fc..4a317058eb4 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -101,6 +101,11 @@ changes (where available). covering built-in and Lumix-branded lenses that lensfun has no profile for. +- When installing development versions of darktable (snapshots, self + compiled etc.) the Windows installer now allows to setup a custom + configuration-directory and custom shortcut-name, useful for + multiple parallel darktable installations. + - Added a control in the bottom panel of the lighttable to reset the star rating of images.