Bug 441900

Summary: Color history on pop-up palette is out of order
Product: [Applications] krita Reporter: Yu-Hsuan Lai <raincolee>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: halla, lynx.mw+kde
Priority: NOR    
Version: 5.2.6   
Target Milestone: ---   
Platform: Compiled Sources   
OS: All   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: In order vs out of order

Description Yu-Hsuan Lai 2021-09-02 08:19:47 UTC
Created attachment 141238 [details]
In order vs out of order

SUMMARY
Please see the attachment. On Advanced Color Selector, the color history is in order. On pop-up palette, it's out of order.

STEPS TO REPRODUCE
1. Paint with several colors
2. Open pop-up palette

OBSERVED RESULT
Color history is out of order

EXPECTED RESULT
Color history is in order

SOFTWARE/OS VERSIONS
Krita

 Version: 5.0.0-beta1
 Languages: en_US, en
 Hidpi: true

Qt

  Version (compiled): 5.12.11
  Version (loaded): 5.12.11

OS Information

  Build ABI: x86_64-little_endian-llp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: winnt
  Kernel Version: 10.0.22000
  Pretty Productname: Windows 10 (10.0)
  Product Type: windows
  Product Version: 10
Comment 1 Lynx3d 2021-09-02 11:43:56 UTC
It's actually supposed to be a feature, the colors are sorted by hue.

But I never found that behavior very useful either, nor is it obvious until you read the code...
Comment 2 Halla Rempt 2022-06-28 12:09:51 UTC
The manual also doesn't talk about it (https://docs.krita.org/en/reference_manual/popup-palette.html), so we can safely change this.
Comment 3 Halla Rempt 2022-06-28 12:11:36 UTC
Eek, I assigned this to myself before looking at the code. I'm not going to touch this.
Comment 4 Vitamorus 2024-11-07 15:14:34 UTC
Confirming this is still the case. I agree that it would make sense for a color history to be ordered chronologically but perhaps it needs further discussion. Since it's technically not a bug I would argue it should be labelled as 'wishlist' but I can't change the importance/severity myself.
Comment 5 Bug Janitor Service 2024-11-11 12:53:41 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/2266
Comment 6 Dmitry Kazakov 2024-11-21 14:35:36 UTC
Git commit 418457f188e947db6af59ac8b3d8fd4115cd7f5f by Dmitry Kazakov.
Committed on 21/11/2024 at 14:34.
Pushed by dkazakov into branch 'master'.

Switch color history in the popup palette to use last-used sorting

In the current implementation the popup palette uses hue-based sorting
for the last-used colors. This patch switches it to the last-used order.

I'm not really sure it is a good idea, since the old method seem to tried to align
the color hues with the wheel of the triangular color selector. And the new
version doesn't do that.

A  +85   -0    libs/global/KisHistoryList.h     [License: GPL(v2.0+)]
M  +1    -0    libs/global/tests/CMakeLists.txt
A  +76   -0    libs/global/tests/KisHistoryListTest.cpp     [License: GPL(v2.0+)]
A  +21   -0    libs/global/tests/KisHistoryListTest.h     [License: GPL(v2.0+)]
M  +10   -147  libs/ui/kis_favorite_resource_manager.cpp
M  +5    -4    libs/ui/kis_favorite_resource_manager.h
D  +0    -155  libs/ui/kis_min_heap.h
M  +8    -9    libs/ui/kis_popup_palette.cpp

https://invent.kde.org/graphics/krita/-/commit/418457f188e947db6af59ac8b3d8fd4115cd7f5f
Comment 7 Dmitry Kazakov 2024-11-21 14:35:38 UTC
Git commit 3138bbd1ccbb9fa0026db6e2e1a9f9a07b7960be by Dmitry Kazakov.
Committed on 21/11/2024 at 14:34.
Pushed by dkazakov into branch 'master'.

[new strings] Implement a GUI option to configure sorting in Color History Wheel

Default value is the old behavoir: "Sort by HSV". BUt now the user can sort them into
a "Last Used" order.

M  +26   -0    libs/ui/dialogs/kis_dlg_preferences.cc
M  +25   -4    libs/ui/forms/WdgPopupPaletteSettings.ui

https://invent.kde.org/graphics/krita/-/commit/3138bbd1ccbb9fa0026db6e2e1a9f9a07b7960be
Comment 8 Dmitry Kazakov 2024-11-21 14:36:22 UTC
Git commit f8b06c96fc41d48e1e1d952d3e60f5c264864884 by Dmitry Kazakov.
Committed on 21/11/2024 at 14:36.
Pushed by dkazakov into branch 'krita/5.2'.

Switch color history in the popup palette to use last-used sorting

In the current implementation the popup palette uses hue-based sorting
for the last-used colors. This patch switches it to the last-used order.

I'm not really sure it is a good idea, since the old method seem to tried to align
the color hues with the wheel of the triangular color selector. And the new
version doesn't do that.

A  +85   -0    libs/global/KisHistoryList.h     [License: GPL(v2.0+)]
M  +1    -0    libs/global/tests/CMakeLists.txt
A  +76   -0    libs/global/tests/KisHistoryListTest.cpp     [License: GPL(v2.0+)]
A  +21   -0    libs/global/tests/KisHistoryListTest.h     [License: GPL(v2.0+)]
M  +10   -147  libs/ui/kis_favorite_resource_manager.cpp
M  +5    -4    libs/ui/kis_favorite_resource_manager.h
D  +0    -155  libs/ui/kis_min_heap.h
M  +8    -9    libs/ui/kis_popup_palette.cpp

https://invent.kde.org/graphics/krita/-/commit/f8b06c96fc41d48e1e1d952d3e60f5c264864884