Show warning if macro is paused

And clean up timer handling for this condition type
This commit is contained in:
WarmUpTill 2021-11-11 21:55:49 +01:00 committed by WarmUpTill
parent 2155a942f3
commit 5ef09f661f
3 changed files with 20 additions and 9 deletions

View File

@ -172,6 +172,7 @@ AdvSceneSwitcher.condition.macro.count.type.below="Less than"
AdvSceneSwitcher.condition.macro.count.type.above="More than"
AdvSceneSwitcher.condition.macro.count.type.equal="Exactly"
AdvSceneSwitcher.condition.macro.count.reset="Reset"
AdvSceneSwitcher.condition.macro.pausedWarning="Selected macro is currently paused!"
AdvSceneSwitcher.condition.macro.state.entry="Conditions of {{macros}} are true"
AdvSceneSwitcher.condition.macro.count.entry.line1="{{macros}} was executed {{conditions}} {{count}} times"
AdvSceneSwitcher.condition.macro.count.entry.line2="Current count: {{currentCount}} {{resetCount}}"

View File

@ -67,6 +67,7 @@ private slots:
void ConditionChanged(int cond);
void ResetClicked();
void UpdateCount();
void UpdatePaused();
signals:
void HeaderInfoChanged(const QString &);
@ -76,16 +77,17 @@ protected:
QComboBox *_counterConditions;
QSpinBox *_count;
QLabel *_currentCount;
QLabel *_pausedWarning;
QPushButton *_resetCount;
QHBoxLayout *_settingsLine1;
QHBoxLayout *_settingsLine2;
std::unique_ptr<QTimer> _timer;
QTimer _countTimer;
QTimer _pausedTimer;
std::shared_ptr<MacroConditionMacro> _entryData;
private:
void ClearLayouts();
void SetupStateWidgets();
void SetupCountWidgets();
void ResetTimer();
bool _loading = true;
};

View File

@ -125,6 +125,8 @@ MacroConditionMacroEdit::MacroConditionMacroEdit(
_currentCount = new QLabel(parent);
_resetCount = new QPushButton(obs_module_text(
"AdvSceneSwitcher.condition.macro.count.reset"));
_pausedWarning = new QLabel(obs_module_text(
"AdvSceneSwitcher.condition.macro.pausedWarning"));
_count->setMaximum(10000000);
populateTypeSelection(_types);
@ -156,9 +158,18 @@ MacroConditionMacroEdit::MacroConditionMacroEdit(
mainLayout->addLayout(typesLayout);
mainLayout->addLayout(_settingsLine1);
mainLayout->addLayout(_settingsLine2);
mainLayout->addWidget(_pausedWarning);
setLayout(mainLayout);
_entryData = entryData;
connect(&_countTimer, SIGNAL(timeout()), this, SLOT(UpdateCount()));
_countTimer.start(1000);
_pausedWarning->setVisible(false);
connect(&_pausedTimer, SIGNAL(timeout()), this, SLOT(UpdatePaused()));
_pausedTimer.start(1000);
UpdateEntryData();
_loading = false;
}
@ -237,7 +248,6 @@ void MacroConditionMacroEdit::UpdateEntryData()
_counterConditions->setCurrentIndex(
static_cast<int>(_entryData->_counterCondition));
_count->setValue(_entryData->_count);
ResetTimer();
}
void MacroConditionMacroEdit::MacroChanged(const QString &text)
@ -248,7 +258,6 @@ void MacroConditionMacroEdit::MacroChanged(const QString &text)
std::lock_guard<std::mutex> lock(switcher->m);
_entryData->_macro.UpdateRef(text);
ResetTimer();
emit HeaderInfoChanged(
QString::fromStdString(_entryData->GetShortDesc()));
}
@ -303,7 +312,6 @@ void MacroConditionMacroEdit::ResetClicked()
}
_entryData->_macro->ResetCount();
ResetTimer();
}
void MacroConditionMacroEdit::UpdateCount()
@ -316,9 +324,9 @@ void MacroConditionMacroEdit::UpdateCount()
}
}
void MacroConditionMacroEdit::ResetTimer()
void MacroConditionMacroEdit::UpdatePaused()
{
_timer.reset(new QTimer(this));
connect(_timer.get(), SIGNAL(timeout()), this, SLOT(UpdateCount()));
_timer->start(1000);
_pausedWarning->setVisible(_entryData && _entryData->_macro.get() &&
_entryData->_macro->Paused());
adjustSize();
}