Skip to content

Commit 8984f9e

Browse files
committed
fixed nav shorcuts (added compat map)
1 parent a599a97 commit 8984f9e

3 files changed

Lines changed: 42 additions & 11 deletions

File tree

framework/shortcuts/internal/shortcutscontroller.cpp

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
*/
2222
#include "shortcutscontroller.h"
2323

24+
#include "global/containers.h"
25+
26+
#include "actions/actiontypes.h"
27+
#include "ui/navigationcommands.h"
2428
#include "log.h"
2529

2630
#define SHORTCUTS_DEBUG 1
@@ -34,6 +38,26 @@
3438
using namespace muse::shortcuts;
3539
using namespace muse::actions;
3640
using namespace muse::rcommand;
41+
using namespace muse::ui;
42+
43+
static std::map<std::string, Command> compatActionToCommand = {
44+
{ "nav-next-section", NEXT_SECTION_COMMAND },
45+
{ "nav-prev-section", PREV_SECTION_COMMAND },
46+
{ "nav-next-panel", NEXT_PANEL_COMMAND },
47+
{ "nav-prev-panel", PREV_PANEL_COMMAND },
48+
{ "nav-next-tab", NEXT_PANEL_COMMAND },
49+
{ "nav-prev-tab", PREV_PANEL_COMMAND },
50+
{ "nav-trigger-control", TRIGGER_CONTROL_COMMAND },
51+
{ "nav-right", RIGHT_COMMAND },
52+
{ "nav-left", LEFT_COMMAND },
53+
{ "nav-up", UP_COMMAND },
54+
{ "nav-down", DOWN_COMMAND },
55+
{ "nav-escape", ESCAPE_COMMAND },
56+
{ "nav-first-control", FIRST_CONTROL_COMMAND },
57+
{ "nav-last-control", LAST_CONTROL_COMMAND },
58+
{ "nav-nextrow-control", NEXTROW_CONTROL_COMMAND },
59+
{ "nav-prevrow-control", PREVROW_CONTROL_COMMAND },
60+
};
3761

3862
void ShortcutsController::init()
3963
{
@@ -81,7 +105,12 @@ void ShortcutsController::activate(const std::string& sequence)
81105
if (!commandShortcutsProcessed) {
82106
ActionCode actionCode = resolveAction(sequence);
83107
if (!actionCode.empty()) {
84-
dispatcher()->dispatch(actionCode);
108+
const Command& command = muse::value(compatActionToCommand, actionCode);
109+
if (command.isValid()) {
110+
commandDispatcher()->dispatch(command);
111+
} else {
112+
dispatcher()->dispatch(actionCode);
113+
}
85114
}
86115
}
87116
}

framework/ui/api/navigationapi.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
*/
2222
#include "navigationapi.h"
2323

24+
#include "navigationcommands.h"
25+
2426
#include "log.h"
2527

2628
using namespace muse::api;
@@ -37,37 +39,37 @@ NavigationApi::~NavigationApi()
3739

3840
void NavigationApi::nextPanel()
3941
{
40-
dispatcher()->dispatch("nav-next-panel");
42+
dispatcher()->dispatch(NEXT_PANEL_COMMAND);
4143
}
4244

4345
void NavigationApi::prevPanel()
4446
{
45-
dispatcher()->dispatch("nav-prev-panel");
47+
dispatcher()->dispatch(PREV_PANEL_COMMAND);
4648
}
4749

4850
void NavigationApi::right()
4951
{
50-
dispatcher()->dispatch("nav-right");
52+
dispatcher()->dispatch(RIGHT_COMMAND);
5153
}
5254

5355
void NavigationApi::left()
5456
{
55-
dispatcher()->dispatch("nav-left");
57+
dispatcher()->dispatch(LEFT_COMMAND);
5658
}
5759

5860
void NavigationApi::up()
5961
{
60-
dispatcher()->dispatch("nav-up");
62+
dispatcher()->dispatch(UP_COMMAND);
6163
}
6264

6365
void NavigationApi::down()
6466
{
65-
dispatcher()->dispatch("nav-down");
67+
dispatcher()->dispatch(DOWN_COMMAND);
6668
}
6769

6870
void NavigationApi::escape()
6971
{
70-
dispatcher()->dispatch("nav-escape");
72+
dispatcher()->dispatch(ESCAPE_COMMAND);
7173
}
7274

7375
bool NavigationApi::goToControl(const QString& section, const QString& panel, const QJSValue& controlNameOrIndex)
@@ -95,7 +97,7 @@ bool NavigationApi::goToControl(const QString& section, const QString& panel, co
9597

9698
void NavigationApi::trigger()
9799
{
98-
dispatcher()->dispatch("nav-trigger-control");
100+
dispatcher()->dispatch(TRIGGER_CONTROL_COMMAND);
99101
}
100102

101103
bool NavigationApi::triggerControl(const QString& section, const QString& panel, const QJSValue& controlNameOrIndex)

framework/ui/api/navigationapi.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@
2727

2828
#include "api/apiobject.h"
2929
#include "modularity/ioc.h"
30-
#include "actions/iactionsdispatcher.h"
30+
#include "rcommand/icommanddispatcher.h"
3131
#include "ui/inavigationcontroller.h"
3232

3333
namespace muse::api {
3434
class NavigationApi : public api::ApiObject
3535
{
3636
Q_OBJECT
3737

38-
ContextInject<actions::IActionsDispatcher> dispatcher = { this };
38+
ContextInject<rcommand::ICommandDispatcher> dispatcher = { this };
3939
ContextInject<ui::INavigationController> navigation = { this };
4040

4141
public:

0 commit comments

Comments
 (0)