mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-21 17:34:57 -05:00
update current selection on media tab when selecting a different row
This commit is contained in:
parent
80cc8ba06c
commit
5e60cefd1c
|
|
@ -1240,12 +1240,19 @@ static void SaveSceneSwitcher(obs_data_t *save_data, bool saving, void *)
|
|||
array_obj, "restriction");
|
||||
uint64_t time = obs_data_get_int(array_obj, "time");
|
||||
|
||||
string mediaStr = MakeMediaSwitchName(source, scene,
|
||||
transition, state,
|
||||
restriction, time)
|
||||
.toUtf8()
|
||||
.constData();
|
||||
|
||||
switcher->mediaSwitches.emplace_back(
|
||||
GetWeakSourceByName(scene),
|
||||
GetWeakSourceByName(source),
|
||||
GetWeakTransitionByName(transition), state,
|
||||
restriction, time,
|
||||
(strcmp(scene, PREVIOUS_SCENE_NAME) == 0));
|
||||
(strcmp(scene, PREVIOUS_SCENE_NAME) == 0),
|
||||
mediaStr);
|
||||
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,6 +120,7 @@ public slots:
|
|||
void on_fileScenesList_currentRowChanged(int idx);
|
||||
void on_browseButton_3_clicked();
|
||||
|
||||
void on_mediaSwitches_currentRowChanged(int idx);
|
||||
void on_mediaAdd_clicked();
|
||||
void on_mediaRemove_clicked();
|
||||
|
||||
|
|
|
|||
|
|
@ -212,18 +212,20 @@ struct MediaSwitch {
|
|||
time_restriction restriction;
|
||||
bool matched;
|
||||
bool usePreviousScene;
|
||||
std::string mediaSwitchStr;
|
||||
|
||||
inline MediaSwitch(OBSWeakSource scene_, OBSWeakSource source_,
|
||||
OBSWeakSource transition_, obs_media_state state_,
|
||||
time_restriction restriction_, uint64_t time_,
|
||||
bool usePreviousScene_)
|
||||
bool usePreviousScene_, std::string mediaSwitchStr_)
|
||||
: scene(scene_),
|
||||
source(source_),
|
||||
transition(transition_),
|
||||
state(state_),
|
||||
restriction(restriction_),
|
||||
time(time_),
|
||||
usePreviousScene(usePreviousScene_)
|
||||
usePreviousScene(usePreviousScene_),
|
||||
mediaSwitchStr(mediaSwitchStr_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,37 @@
|
|||
#include <obs-module.h>
|
||||
#include "headers/advanced-scene-switcher.hpp"
|
||||
|
||||
void SceneSwitcher::on_mediaSwitches_currentRowChanged(int idx)
|
||||
{
|
||||
if (loading)
|
||||
return;
|
||||
if (idx == -1)
|
||||
return;
|
||||
|
||||
QListWidgetItem *item = ui->mediaSwitches->item(idx);
|
||||
|
||||
QString mediaSceneStr = item->data(Qt::UserRole).toString();
|
||||
|
||||
lock_guard<mutex> lock(switcher->m);
|
||||
for (auto &s : switcher->mediaSwitches) {
|
||||
if (mediaSceneStr.compare(s.mediaSwitchStr.c_str()) == 0) {
|
||||
QString sceneName = GetWeakSourceName(s.scene).c_str();
|
||||
QString sourceName =
|
||||
GetWeakSourceName(s.source).c_str();
|
||||
QString transitionName =
|
||||
GetWeakSourceName(s.transition).c_str();
|
||||
ui->mediaScenes->setCurrentText(sceneName);
|
||||
ui->mediaSources->setCurrentText(sourceName);
|
||||
ui->mediaTransitions->setCurrentText(transitionName);
|
||||
ui->mediaStates->setCurrentIndex(s.state);
|
||||
ui->mediaTimeRestrictions->setCurrentIndex(
|
||||
s.restriction);
|
||||
ui->mediaTime->setValue(s.time);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SceneSwitcher::on_mediaAdd_clicked()
|
||||
{
|
||||
QString sourceName = ui->mediaSources->currentText();
|
||||
|
|
@ -32,7 +63,8 @@ void SceneSwitcher::on_mediaAdd_clicked()
|
|||
lock_guard<mutex> lock(switcher->m);
|
||||
switcher->mediaSwitches.emplace_back(
|
||||
scene, source, transition, state, restriction, time,
|
||||
(sceneName == QString(PREVIOUS_SCENE_NAME)));
|
||||
(sceneName == QString(PREVIOUS_SCENE_NAME)),
|
||||
switchText.toUtf8().constData());
|
||||
}
|
||||
|
||||
void SceneSwitcher::on_mediaRemove_clicked()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user