Clean up source condition and action

* Add hints directing to the scene item visibility action / condition as
  they frequently get mixed up
* Clean up layout of the source condition (removed spaces in locale as
  this unnecessary spacing in the layout when the settings check was not
  selected
This commit is contained in:
WarmUpTill 2023-05-24 21:26:48 +02:00 committed by WarmUpTill
parent dfa12f9807
commit 3229bf0150
3 changed files with 29 additions and 19 deletions

View File

@ -312,10 +312,11 @@ AdvSceneSwitcher.condition.source="Source"
AdvSceneSwitcher.condition.source.type.active="Is active"
AdvSceneSwitcher.condition.source.type.showing="Is showing"
AdvSceneSwitcher.condition.source.type.settings="Settings match"
AdvSceneSwitcher.condition.source.sceneVisibilityHint="Scene specific visibility can be checked using the \"Scene item visibility\" condition"
AdvSceneSwitcher.condition.source.getSettings="Get current settings"
AdvSceneSwitcher.condition.source.entry.line1="{{sources}} {{conditions}}"
AdvSceneSwitcher.condition.source.entry.line1="{{sources}}{{conditions}}"
AdvSceneSwitcher.condition.source.entry.line2="{{settings}}"
AdvSceneSwitcher.condition.source.entry.line3="{{regex}} {{getSettings}}"
AdvSceneSwitcher.condition.source.entry.line3="{{regex}}{{getSettings}}"
AdvSceneSwitcher.condition.virtualCamera="Virtual camera"
AdvSceneSwitcher.condition.virtualCamera.state.start="Virtual camera started"
AdvSceneSwitcher.condition.virtualCamera.state.stop="Virtual camera stopped"
@ -522,7 +523,7 @@ AdvSceneSwitcher.action.source.type.pressSettingsButton="Press settings button"
AdvSceneSwitcher.action.source.type.refreshSettings.tooltip="Can be used to refresh browser, media, etc. sources"
AdvSceneSwitcher.action.source.noSettingsButtons="No buttons found!"
AdvSceneSwitcher.action.source.entry="{{actions}}{{sources}}{{settingsButtons}}"
AdvSceneSwitcher.action.source.warning="Warning: Enabling and disabling sources globally cannot be controlled by the OBS UI"
AdvSceneSwitcher.action.source.warning="Warning: Enabling and disabling sources globally cannot be controlled by the OBS UI\nYou might be looking for \"Scene item visibility\""
AdvSceneSwitcher.action.source.getSettings="Get current settings"
AdvSceneSwitcher.action.media="Media"
AdvSceneSwitcher.action.media.type.play="Play"

View File

@ -121,24 +121,27 @@ MacroConditionSourceEdit::MacroConditionSourceEdit(
QWidget::connect(_regex, SIGNAL(RegexConfigChanged(RegexConfig)), this,
SLOT(RegexChanged(RegexConfig)));
QVBoxLayout *mainLayout = new QVBoxLayout;
QHBoxLayout *line1Layout = new QHBoxLayout;
QHBoxLayout *line2Layout = new QHBoxLayout;
QHBoxLayout *line3Layout = new QHBoxLayout;
std::unordered_map<std::string, QWidget *> widgetPlaceholders = {
{"{{sources}}", _sources}, {"{{conditions}}", _conditions},
{"{{settings}}", _settings}, {"{{getSettings}}", _getSettings},
{"{{regex}}", _regex},
};
auto line1Layout = new QHBoxLayout;
line1Layout->setContentsMargins(0, 0, 0, 0);
PlaceWidgets(obs_module_text(
"AdvSceneSwitcher.condition.source.entry.line1"),
line1Layout, widgetPlaceholders);
auto line2Layout = new QHBoxLayout;
line2Layout->setContentsMargins(0, 0, 0, 0);
PlaceWidgets(obs_module_text(
"AdvSceneSwitcher.condition.source.entry.line2"),
line2Layout, widgetPlaceholders, false);
auto line3Layout = new QHBoxLayout;
line3Layout->setContentsMargins(0, 0, 0, 0);
PlaceWidgets(obs_module_text(
"AdvSceneSwitcher.condition.source.entry.line3"),
line3Layout, widgetPlaceholders);
auto mainLayout = new QVBoxLayout;
mainLayout->addLayout(line1Layout);
mainLayout->addLayout(line2Layout);
mainLayout->addLayout(line3Layout);
@ -169,8 +172,7 @@ void MacroConditionSourceEdit::ConditionChanged(int index)
auto lock = LockContext();
_entryData->_condition = static_cast<SourceCondition>(index);
SetSettingsSelectionVisible(_entryData->_condition ==
SourceCondition::SETTINGS);
SetWidgetVisibility();
}
void MacroConditionSourceEdit::GetSettingsClicked()
@ -213,12 +215,23 @@ void MacroConditionSourceEdit::RegexChanged(RegexConfig conf)
updateGeometry();
}
void MacroConditionSourceEdit::SetSettingsSelectionVisible(bool visible)
void MacroConditionSourceEdit::SetWidgetVisibility()
{
_settings->setVisible(visible);
_getSettings->setVisible(visible);
_regex->setVisible(visible);
_settings->setVisible(_entryData->_condition ==
SourceCondition::SETTINGS);
_getSettings->setVisible(_entryData->_condition ==
SourceCondition::SETTINGS);
_regex->setVisible(_entryData->_condition == SourceCondition::SETTINGS);
setToolTip(
(_entryData->_condition == SourceCondition::ACTIVE ||
_entryData->_condition == SourceCondition::SHOWING)
? obs_module_text(
"AdvSceneSwitcher.condition.source.sceneVisibilityHint")
: "");
adjustSize();
updateGeometry();
}
void MacroConditionSourceEdit::UpdateEntryData()
@ -231,11 +244,7 @@ void MacroConditionSourceEdit::UpdateEntryData()
_conditions->setCurrentIndex(static_cast<int>(_entryData->_condition));
_settings->setPlainText(_entryData->_settings);
_regex->SetRegexConfig(_entryData->_regex);
SetSettingsSelectionVisible(_entryData->_condition ==
SourceCondition::SETTINGS);
adjustSize();
updateGeometry();
SetWidgetVisibility();
}
} // namespace advss

View File

@ -74,7 +74,7 @@ protected:
std::shared_ptr<MacroConditionSource> _entryData;
private:
void SetSettingsSelectionVisible(bool visible);
void SetWidgetVisibility();
bool _loading = true;
};