mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-11 11:47:41 -05:00
Refactor macro dock handling
Some checks failed
debian-build / build (push) Has been cancelled
Check locale / ubuntu64 (push) Has been cancelled
Push to master / Check Formatting 🔍 (push) Has been cancelled
Push to master / Build Project 🧱 (push) Has been cancelled
Push to master / Create Release 🛫 (push) Has been cancelled
Some checks failed
debian-build / build (push) Has been cancelled
Check locale / ubuntu64 (push) Has been cancelled
Push to master / Check Formatting 🔍 (push) Has been cancelled
Push to master / Build Project 🧱 (push) Has been cancelled
Push to master / Create Release 🛫 (push) Has been cancelled
* Move dock related settings into its own class * Add support for grouping macro docks into a single dock window
This commit is contained in:
@@ -94,6 +94,9 @@ MacroSettingsDialog::MacroSettingsDialog(QWidget *parent,
|
||||
_currentInputs(new MacroInputSelection()),
|
||||
_currentMacroRegisterDock(new QCheckBox(obs_module_text(
|
||||
"AdvSceneSwitcher.macroTab.currentRegisterDock"))),
|
||||
_currentMacroIsStandaloneDock(new QCheckBox(obs_module_text(
|
||||
"AdvSceneSwitcher.macroTab.currentIsStandaloneDock"))),
|
||||
_currentMacroDockWindowName(new QLineEdit(this)),
|
||||
_currentMacroDockAddRunButton(new QCheckBox(obs_module_text(
|
||||
"AdvSceneSwitcher.macroTab.currentDockAddRunButton"))),
|
||||
_currentMacroDockAddPauseButton(new QCheckBox(obs_module_text(
|
||||
@@ -198,6 +201,15 @@ MacroSettingsDialog::MacroSettingsDialog(QWidget *parent,
|
||||
int row = 0;
|
||||
_dockLayout->addWidget(_currentMacroRegisterDock, row, 1, 1, 2);
|
||||
row++;
|
||||
_dockLayout->addWidget(_currentMacroIsStandaloneDock, row, 1, 1, 2);
|
||||
row++;
|
||||
_dockLayout->addWidget(
|
||||
new QLabel(obs_module_text(
|
||||
"AdvSceneSwitcher.macroTab.currentDockWindowName")),
|
||||
row, 1);
|
||||
_dockLayout->addWidget(_currentMacroDockWindowName, row, 2);
|
||||
_dockWindowNameRow = row;
|
||||
row++;
|
||||
_dockLayout->addWidget(_currentMacroDockAddRunButton, row, 1, 1, 2);
|
||||
row++;
|
||||
_dockLayout->addWidget(
|
||||
@@ -252,6 +264,8 @@ MacroSettingsDialog::MacroSettingsDialog(QWidget *parent,
|
||||
|
||||
connect(_currentMacroRegisterDock, &QCheckBox::stateChanged, this,
|
||||
&MacroSettingsDialog::DockEnableChanged);
|
||||
connect(_currentMacroIsStandaloneDock, &QCheckBox::stateChanged, this,
|
||||
&MacroSettingsDialog::IsStandaloneDockChanged);
|
||||
connect(_currentMacroDockAddRunButton, &QCheckBox::stateChanged, this,
|
||||
&MacroSettingsDialog::RunButtonEnableChanged);
|
||||
connect(_currentMacroDockAddPauseButton, &QCheckBox::stateChanged, this,
|
||||
@@ -329,55 +343,37 @@ MacroSettingsDialog::MacroSettingsDialog(QWidget *parent,
|
||||
_currentSkipOnStartup->setChecked(macro->SkipExecOnStart());
|
||||
_currentStopActionsIfNotDone->setChecked(macro->StopActionsIfNotDone());
|
||||
_currentInputs->SetInputs(macro->GetInputVariables());
|
||||
const bool dockEnabled = macro->DockEnabled();
|
||||
const auto &dockSettings = macro->GetDockSettings();
|
||||
const bool dockEnabled = dockSettings.DockEnabled();
|
||||
_currentMacroRegisterDock->setChecked(dockEnabled);
|
||||
_currentMacroDockAddRunButton->setChecked(macro->DockHasRunButton());
|
||||
_currentMacroIsStandaloneDock->setChecked(
|
||||
dockSettings.IsStandaloneDock());
|
||||
_currentMacroDockWindowName->setText(
|
||||
QString::fromStdString(dockSettings.DockWindowName()));
|
||||
_currentMacroDockAddRunButton->setChecked(dockSettings.HasRunButton());
|
||||
_currentMacroDockAddPauseButton->setChecked(
|
||||
macro->DockHasPauseButton());
|
||||
dockSettings.HasPauseButton());
|
||||
_currentMacroDockAddStatusLabel->setChecked(
|
||||
macro->DockHasStatusLabel());
|
||||
dockSettings.HasStatusLabel());
|
||||
_currentMacroDockHighlightIfConditionsTrue->setChecked(
|
||||
macro->DockHighlightEnabled());
|
||||
_runButtonText->setText(macro->RunButtonText());
|
||||
_pauseButtonText->setText(macro->PauseButtonText());
|
||||
_unpauseButtonText->setText(macro->UnpauseButtonText());
|
||||
_conditionsTrueStatusText->setText(macro->ConditionsTrueStatusText());
|
||||
_conditionsFalseStatusText->setText(macro->ConditionsFalseStatusText());
|
||||
dockSettings.HighlightEnabled());
|
||||
_runButtonText->setText(dockSettings.RunButtonText());
|
||||
_pauseButtonText->setText(dockSettings.PauseButtonText());
|
||||
_unpauseButtonText->setText(dockSettings.UnpauseButtonText());
|
||||
_conditionsTrueStatusText->setText(
|
||||
dockSettings.ConditionsTrueStatusText());
|
||||
_conditionsFalseStatusText->setText(
|
||||
dockSettings.ConditionsFalseStatusText());
|
||||
|
||||
_currentMacroDockAddRunButton->setVisible(dockEnabled);
|
||||
_currentMacroDockAddPauseButton->setVisible(dockEnabled);
|
||||
_currentMacroDockAddStatusLabel->setVisible(dockEnabled);
|
||||
_currentMacroDockHighlightIfConditionsTrue->setVisible(dockEnabled);
|
||||
SetGridLayoutRowVisible(_dockLayout, _runButtonTextRow,
|
||||
dockEnabled && macro->DockHasRunButton());
|
||||
SetGridLayoutRowVisible(_dockLayout, _pauseButtonTextRow,
|
||||
dockEnabled && macro->DockHasPauseButton());
|
||||
SetGridLayoutRowVisible(_dockLayout, _unpauseButtonTextRow,
|
||||
dockEnabled && macro->DockHasPauseButton());
|
||||
SetGridLayoutRowVisible(_dockLayout, _conditionsTrueTextRow,
|
||||
dockEnabled && macro->DockHasStatusLabel());
|
||||
SetGridLayoutRowVisible(_dockLayout, _conditionsFalseTextRow,
|
||||
dockEnabled && macro->DockHasStatusLabel());
|
||||
DockEnableChanged(dockEnabled);
|
||||
MinimizeSizeOfColumn(_dockLayout, 0);
|
||||
Resize();
|
||||
|
||||
// Try to set sensible initial size for the dialog window
|
||||
QSize contentSize = contentWidget->sizeHint();
|
||||
resize(contentSize.width() + layout->contentsMargins().left() +
|
||||
layout->contentsMargins().right() +
|
||||
dialogLayout->contentsMargins().left() +
|
||||
dialogLayout->contentsMargins().right() +
|
||||
scrollArea->verticalScrollBar()->sizeHint().width() + 20,
|
||||
contentSize.height() + dialogLayout->spacing() +
|
||||
buttonbox->sizeHint().height() +
|
||||
dialogLayout->contentsMargins().top() +
|
||||
dialogLayout->contentsMargins().bottom() +
|
||||
scrollArea->horizontalScrollBar()->sizeHint().height() +
|
||||
20);
|
||||
Resize();
|
||||
}
|
||||
|
||||
void MacroSettingsDialog::DockEnableChanged(int enabled)
|
||||
{
|
||||
_currentMacroIsStandaloneDock->setVisible(enabled);
|
||||
_currentMacroDockAddRunButton->setVisible(enabled);
|
||||
_currentMacroDockAddPauseButton->setVisible(enabled);
|
||||
_currentMacroDockAddStatusLabel->setVisible(enabled);
|
||||
@@ -401,6 +397,12 @@ void MacroSettingsDialog::DockEnableChanged(int enabled)
|
||||
Resize();
|
||||
}
|
||||
|
||||
void MacroSettingsDialog::IsStandaloneDockChanged(int enabled)
|
||||
{
|
||||
SetGridLayoutRowVisible(_dockLayout, _dockWindowNameRow, !enabled);
|
||||
Resize();
|
||||
}
|
||||
|
||||
void MacroSettingsDialog::RunButtonEnableChanged(int enabled)
|
||||
{
|
||||
SetGridLayoutRowVisible(_dockLayout, _runButtonTextRow, enabled);
|
||||
@@ -479,29 +481,29 @@ bool MacroSettingsDialog::AskForSettings(QWidget *parent,
|
||||
macro->SetStopActionsIfNotDone(
|
||||
dialog._currentStopActionsIfNotDone->isChecked());
|
||||
|
||||
// Only apply "on change" to avoid recreation of the dock widget
|
||||
const bool enableDock = dialog._currentMacroRegisterDock->isChecked();
|
||||
if (macro->DockEnabled() != enableDock) {
|
||||
macro->EnableDock(
|
||||
dialog._currentMacroRegisterDock->isChecked());
|
||||
}
|
||||
|
||||
macro->SetDockHasRunButton(
|
||||
auto &dockSettings = macro->GetDockSettings();
|
||||
dockSettings.EnableDock(dialog._currentMacroRegisterDock->isChecked());
|
||||
dockSettings.SetIsStandaloneDock(
|
||||
dialog._currentMacroIsStandaloneDock->isChecked());
|
||||
dockSettings.SetDockWindowName(
|
||||
dialog._currentMacroDockWindowName->text().toStdString());
|
||||
dockSettings.SetHasRunButton(
|
||||
dialog._currentMacroDockAddRunButton->isChecked());
|
||||
macro->SetDockHasPauseButton(
|
||||
dockSettings.SetHasPauseButton(
|
||||
dialog._currentMacroDockAddPauseButton->isChecked());
|
||||
macro->SetDockHasStatusLabel(
|
||||
dockSettings.SetHasStatusLabel(
|
||||
dialog._currentMacroDockAddStatusLabel->isChecked());
|
||||
macro->SetHighlightEnable(
|
||||
dockSettings.SetHighlightEnable(
|
||||
dialog._currentMacroDockHighlightIfConditionsTrue->isChecked());
|
||||
macro->SetRunButtonText(dialog._runButtonText->text().toStdString());
|
||||
macro->SetPauseButtonText(
|
||||
dockSettings.SetRunButtonText(
|
||||
dialog._runButtonText->text().toStdString());
|
||||
dockSettings.SetPauseButtonText(
|
||||
dialog._pauseButtonText->text().toStdString());
|
||||
macro->SetUnpauseButtonText(
|
||||
dockSettings.SetUnpauseButtonText(
|
||||
dialog._unpauseButtonText->text().toStdString());
|
||||
macro->SetConditionsTrueStatusText(
|
||||
dockSettings.SetConditionsTrueStatusText(
|
||||
dialog._conditionsTrueStatusText->text().toStdString());
|
||||
macro->SetConditionsFalseStatusText(
|
||||
dockSettings.SetConditionsFalseStatusText(
|
||||
dialog._conditionsFalseStatusText->text().toStdString());
|
||||
macro->SetInputVariables(dialog._currentInputs->GetInputs());
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user