Skip to content

Replace ToolAction by ToggleActionMenu

Albert Astals Cid requested to merge aacid/okular:arcpatch-D21971 into master

Summary: This replaces ToolAction by a near-drop-in replacement named ToggleActionMenu. The new annotation toolbar already uses this (D15580).

Unlike ToolAction, ToggleActionMenu inherits from KActionMenu to be more flexible.

  • Menu can be set from outside, not hard coded.
  • Default action for toolbar button is controllable from outside. (Theoretically, the button could trigger //anything// now.)
  • KActionMenu instead of KSelectAction:
    • Pluggable in other menus, thus called “Menu”.
    • Doesn’t make the actions exclusive, so //any// actions can be added to the menu.
  • ImplicitDefaultAction mode can choose the default action of the toolbar buttons automatically, by looking for the first checked action in the menu.

Toolbar buttons use the default action //of// this menu, not this menu itself as action.

Because the default action is configurable now, D21622 and D21635 (where we tried to fine-tune ToolAction) become obsolete.

Screenshot: Everything like before, here with mouse_selecttool added to Tools menu to show submenu capability. {F6884228}

Test Plan: ToolAction replacement and ImplicitDefaultAction mode:

  • Open Okular and look at toolbar button -> has correct tool selected.
  • Open a document.
  • Look at toolbar button menu -> Correct menu entries (like before, with ToolAction).
  • Select some selection tools through shortcuts and toolbar button -> behaves correctly. Usage as submenu:
  • Add ToggleActionMenu ("mouse_selecttool") to menubar (..../kxmlgui5/okular/part.rc) -> Submenu looks correctly, has no checkbox attached and so on... Toolbar buttons:
  • Add diverse other actions to the menu -> still works as before.
  • Add actions when toolbar buttons are already created -> actions are added to existing buttons.
  • setDefaultAction() to some completely unrelated action. -> ToggleActionMenu does not get confused.

Reviewers: simgunz

Reviewed By: simgunz

Subscribers: aacid, ngraham, simgunz, okular-devel

Tags: #okular

Differential Revision: https://phabricator.kde.org/D21971

Merge request reports