Bug 370720 - Keyboard shortcut list is incomplete when opening Krita
Summary: Keyboard shortcut list is incomplete when opening Krita
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Shortcuts and Canvas Input Settings (show other bugs)
Version: 3.0.1.1
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-14 02:21 UTC by RN
Modified: 2016-12-09 10:05 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description RN 2016-10-14 02:21:32 UTC
If you go to Settings -> Configure Krita -> Keyboard Shortcuts when you open Krita, the list shows a certain amount of shortcuts.

If you open or create a document and then go to that shortcut list again it has more shortcut categories than before (the 'Painting' category, for example).

Reproducible: Always



Expected Results:  
Please make the shortcut list complete from the start of the program, without the need to open or create a document.
Comment 1 Halla Rempt 2016-10-14 06:55:33 UTC
Hi,

Thanks for your report. I can confirm the issue. This was supposed to be fixed in 3.0, but I guess we either have a regression, or missed something.
Comment 2 Dmitry Kazakov 2016-12-09 10:04:33 UTC
Git commit e7652741ecf2928fb20ccb1fc81bf56bcab853a1 by Dmitry Kazakov.
Committed on 09/12/2016 at 10:04.
Pushed by dkazakov into branch 'krita/3.1'.

All shortcuts should be configurable when no document is open

The problem happens because some actions are created/added-to-collection
only after a document is created. Now we workaround it by faking the
absent actions and deleting them together with KisActionsSnapshot.

Another problem is that some of the actions, e.g. "show_color_history",
is created long before it is added to the global action collection. It
is _created_ right at the start of Krita, but _added_ only when a new document
is constructed. If we change the shortcut between these two events, then
the changed value will be lost. Now we workaround this problem by connecting
to the action collection, listening to 'inserted()' signal and updating
shortcuts when an action is added to the collection.

M  +4    -0    krita/data/actions/ConnectionTool.action
M  +3    -52   krita/krita.action
M  +2    -0    krita/kritamenu.action
M  +4    -3    libs/ui/KisViewManager.cpp
M  +23   -7    libs/ui/kis_action_manager.cpp
M  +6    -3    libs/ui/kis_action_manager.h
M  +1    -1    libs/ui/kis_zoom_manager.cc
M  +2    -16   libs/widgets/KoZoomController.cpp
M  +0    -18   libs/widgets/KoZoomController.h
M  +1    -2    libs/widgets/KoZoomController_p.h
M  +31   -2    libs/widgetutils/KisActionsSnapshot.cpp
M  +1    -1    libs/widgetutils/KisActionsSnapshot.h
M  +5    -0    libs/widgetutils/kis_action_registry.cpp
M  +3    -0    libs/widgetutils/kis_action_registry.h

https://commits.kde.org/krita/e7652741ecf2928fb20ccb1fc81bf56bcab853a1
Comment 3 Dmitry Kazakov 2016-12-09 10:05:32 UTC
Git commit aeced4a1c199c4fb73d1beaa82315a088c410d72 by Dmitry Kazakov.
Committed on 09/12/2016 at 10:05.
Pushed by dkazakov into branch 'rempt/impex-refactoring'.

All shortcuts should be configurable when no document is open

The problem happens because some actions are created/added-to-collection
only after a document is created. Now we workaround it by faking the
absent actions and deleting them together with KisActionsSnapshot.

Another problem is that some of the actions, e.g. "show_color_history",
is created long before it is added to the global action collection. It
is _created_ right at the start of Krita, but _added_ only when a new document
is constructed. If we change the shortcut between these two events, then
the changed value will be lost. Now we workaround this problem by connecting
to the action collection, listening to 'inserted()' signal and updating
shortcuts when an action is added to the collection.

M  +4    -0    krita/data/actions/ConnectionTool.action
M  +3    -52   krita/krita.action
M  +2    -0    krita/kritamenu.action
M  +4    -3    libs/ui/KisViewManager.cpp
M  +23   -7    libs/ui/kis_action_manager.cpp
M  +6    -3    libs/ui/kis_action_manager.h
M  +1    -1    libs/ui/kis_zoom_manager.cc
M  +2    -16   libs/widgets/KoZoomController.cpp
M  +0    -18   libs/widgets/KoZoomController.h
M  +1    -2    libs/widgets/KoZoomController_p.h
M  +31   -2    libs/widgetutils/KisActionsSnapshot.cpp
M  +1    -1    libs/widgetutils/KisActionsSnapshot.h
M  +5    -0    libs/widgetutils/kis_action_registry.cpp
M  +3    -0    libs/widgetutils/kis_action_registry.h

https://commits.kde.org/krita/aeced4a1c199c4fb73d1beaa82315a088c410d72