mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
UI: Split toggle preview program hotkey into hotkey pair
This commit is contained in:
+43
-16
@@ -2639,7 +2639,21 @@ void OBSBasic::CreateHotkeys()
|
||||
};
|
||||
|
||||
auto LoadHotkeyPair = [&](obs_hotkey_pair_id id, const char *name0,
|
||||
const char *name1) {
|
||||
const char *name1,
|
||||
const char *oldName = NULL) {
|
||||
if (oldName) {
|
||||
const auto info = config_get_string(basicConfig,
|
||||
"Hotkeys", oldName);
|
||||
if (info) {
|
||||
config_set_string(basicConfig, "Hotkeys", name0,
|
||||
info);
|
||||
config_set_string(basicConfig, "Hotkeys", name1,
|
||||
info);
|
||||
config_remove_value(basicConfig, "Hotkeys",
|
||||
oldName);
|
||||
config_save(basicConfig);
|
||||
}
|
||||
}
|
||||
OBSDataArrayAutoRelease array0 =
|
||||
obs_data_get_array(LoadHotkeyData(name0), "bindings");
|
||||
OBSDataArrayAutoRelease array1 =
|
||||
@@ -2759,6 +2773,23 @@ void OBSBasic::CreateHotkeys()
|
||||
LoadHotkeyPair(togglePreviewHotkeys, "OBSBasic.EnablePreview",
|
||||
"OBSBasic.DisablePreview");
|
||||
|
||||
togglePreviewProgramHotkeys = obs_hotkey_pair_register_frontend(
|
||||
"OBSBasic.EnablePreviewProgram",
|
||||
Str("Basic.EnablePreviewProgramMode"),
|
||||
"OBSBasic.DisablePreviewProgram",
|
||||
Str("Basic.DisablePreviewProgramMode"),
|
||||
MAKE_CALLBACK(!basic.IsPreviewProgramMode(),
|
||||
basic.EnablePreviewProgram,
|
||||
"Enabling preview program"),
|
||||
MAKE_CALLBACK(basic.IsPreviewProgramMode(),
|
||||
basic.DisablePreviewProgram,
|
||||
"Disabling preview program"),
|
||||
this, this);
|
||||
LoadHotkeyPair(togglePreviewProgramHotkeys,
|
||||
"OBSBasic.EnablePreviewProgram",
|
||||
"OBSBasic.DisablePreviewProgram",
|
||||
"OBSBasic.TogglePreviewProgram");
|
||||
|
||||
contextBarHotkeys = obs_hotkey_pair_register_frontend(
|
||||
"OBSBasic.ShowContextBar", Str("Basic.Main.ShowContextBar"),
|
||||
"OBSBasic.HideContextBar", Str("Basic.Main.HideContextBar"),
|
||||
@@ -2771,20 +2802,6 @@ void OBSBasic::CreateHotkeys()
|
||||
"OBSBasic.HideContextBar");
|
||||
#undef MAKE_CALLBACK
|
||||
|
||||
auto togglePreviewProgram = [](void *data, obs_hotkey_id,
|
||||
obs_hotkey_t *, bool pressed) {
|
||||
if (pressed)
|
||||
QMetaObject::invokeMethod(static_cast<OBSBasic *>(data),
|
||||
"on_modeSwitch_clicked",
|
||||
Qt::QueuedConnection);
|
||||
};
|
||||
|
||||
togglePreviewProgramHotkey = obs_hotkey_register_frontend(
|
||||
"OBSBasic.TogglePreviewProgram",
|
||||
Str("Basic.TogglePreviewProgramMode"), togglePreviewProgram,
|
||||
this);
|
||||
LoadHotkey(togglePreviewProgramHotkey, "OBSBasic.TogglePreviewProgram");
|
||||
|
||||
auto transition = [](void *data, obs_hotkey_id, obs_hotkey_t *,
|
||||
bool pressed) {
|
||||
if (pressed)
|
||||
@@ -2846,8 +2863,8 @@ void OBSBasic::ClearHotkeys()
|
||||
obs_hotkey_pair_unregister(vcamHotkeys);
|
||||
obs_hotkey_pair_unregister(togglePreviewHotkeys);
|
||||
obs_hotkey_pair_unregister(contextBarHotkeys);
|
||||
obs_hotkey_pair_unregister(togglePreviewProgramHotkeys);
|
||||
obs_hotkey_unregister(forceStreamingStopHotkey);
|
||||
obs_hotkey_unregister(togglePreviewProgramHotkey);
|
||||
obs_hotkey_unregister(transitionHotkey);
|
||||
obs_hotkey_unregister(statsHotkey);
|
||||
obs_hotkey_unregister(screenshotHotkey);
|
||||
@@ -9047,6 +9064,16 @@ void OBSBasic::DisablePreview()
|
||||
EnablePreviewDisplay(false);
|
||||
}
|
||||
|
||||
void OBSBasic::EnablePreviewProgram()
|
||||
{
|
||||
SetPreviewProgramMode(true);
|
||||
}
|
||||
|
||||
void OBSBasic::DisablePreviewProgram()
|
||||
{
|
||||
SetPreviewProgramMode(false);
|
||||
}
|
||||
|
||||
static bool nudge_callback(obs_scene_t *, obs_sceneitem_t *item, void *param)
|
||||
{
|
||||
if (obs_sceneitem_locked(item))
|
||||
|
||||
Reference in New Issue
Block a user