Add some super-kludgy hotkey migration logic
Originally committed to SVN as r6295.
This commit is contained in:
parent
40e4f887ba
commit
72c9bdeebf
1 changed files with 45 additions and 0 deletions
|
@ -30,6 +30,46 @@
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "standard_paths.h"
|
#include "standard_paths.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
const char *removed_commands_6294[] = {
|
||||||
|
"edit/line/swap",
|
||||||
|
"grid/swap/up",
|
||||||
|
"grid/swap/down",
|
||||||
|
"time/sort/end",
|
||||||
|
"time/sort/start",
|
||||||
|
"time/sort/style",
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
|
const char *added_hotkeys_6294[][4] = {
|
||||||
|
{ "grid/move/down", "Default", "Alt", "Down" },
|
||||||
|
{ "grid/move/up", "Default", "Alt", "Up" },
|
||||||
|
{ "grid/line/next/create", "Subtitle Edit Box", "Enter", 0 },
|
||||||
|
{ "grid/line/next/create", "Subtitle Edit Box", "KP_Enter", 0 },
|
||||||
|
0
|
||||||
|
};
|
||||||
|
|
||||||
|
void migrate_hotkeys(const char *removed[], const char *added[][4]) {
|
||||||
|
agi::hotkey::Hotkey::HotkeyMap hk_map = hotkey::inst->GetHotkeyMap();
|
||||||
|
|
||||||
|
for (size_t i = 0; removed[i]; ++i) {
|
||||||
|
hk_map.erase(removed[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; added[i] && added[i][0]; ++i) {
|
||||||
|
std::vector<std::string> keys;
|
||||||
|
keys.push_back(added[i][2]);
|
||||||
|
if (added[i][3])
|
||||||
|
keys.push_back(added[i][3]);
|
||||||
|
hk_map.insert(make_pair(
|
||||||
|
std::string(added[i][0]),
|
||||||
|
agi::hotkey::Combo(added[i][1], added[i][0], keys)));
|
||||||
|
}
|
||||||
|
|
||||||
|
hotkey::inst->SetHotkeyMap(hk_map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
namespace hotkey {
|
namespace hotkey {
|
||||||
|
|
||||||
agi::hotkey::Hotkey *inst = 0;
|
agi::hotkey::Hotkey *inst = 0;
|
||||||
|
@ -37,6 +77,11 @@ void init() {
|
||||||
inst = new agi::hotkey::Hotkey(
|
inst = new agi::hotkey::Hotkey(
|
||||||
STD_STR(StandardPaths::DecodePath("?user/hotkey.json")),
|
STD_STR(StandardPaths::DecodePath("?user/hotkey.json")),
|
||||||
GET_DEFAULT_CONFIG(default_hotkey));
|
GET_DEFAULT_CONFIG(default_hotkey));
|
||||||
|
|
||||||
|
int last_version = OPT_GET("Version/Last Version")->GetInt();
|
||||||
|
if (last_version < 6294) {
|
||||||
|
migrate_hotkeys(removed_commands_6294, added_hotkeys_6294);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void clear() {
|
void clear() {
|
||||||
|
|
Loading…
Reference in a new issue