Add option to expand or collapse all macro actions or conditions

This commit is contained in:
WarmUpTill 2021-07-18 03:08:31 +02:00 committed by WarmUpTill
parent 058af0d3bb
commit 95409dfa26
3 changed files with 97 additions and 7 deletions

View File

@ -68,6 +68,8 @@ AdvSceneSwitcher.macroTab.name="Name:"
AdvSceneSwitcher.macroTab.defaultname="Macro %1"
AdvSceneSwitcher.macroTab.exists="Macro name exists already"
AdvSceneSwitcher.macroTab.copy="Create copy"
AdvSceneSwitcher.macroTab.expandAll="Expand all"
AdvSceneSwitcher.macroTab.collapseAll="Collapse all"
; Macro Logic
AdvSceneSwitcher.logic.none="Ignore entry"

View File

@ -115,8 +115,14 @@ public slots:
void on_conditionRemove_clicked();
void on_actionAdd_clicked();
void on_actionRemove_clicked();
void showMacroContextMenu(const QPoint &);
void copyMacro();
void ShowMacroContextMenu(const QPoint &);
void ShowMacroActionsContextMenu(const QPoint &);
void ShowMacroConditionsContextMenu(const QPoint &);
void CopyMacro();
void ExpandAllActions();
void ExpandAllConditions();
void CollapseAllActions();
void CollapseAllConditions();
void AddMacroAction(int idx);
void RemoveMacroAction(int idx);
void MoveMacroActionUp(int idx);

View File

@ -300,22 +300,52 @@ void AdvSceneSwitcher::setupMacroTab()
}
ui->macros->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->macros, SIGNAL(customContextMenuRequested(QPoint)), this,
SLOT(showMacroContextMenu(QPoint)));
connect(ui->macros, &QWidget::customContextMenuRequested, this,
&AdvSceneSwitcher::ShowMacroContextMenu);
ui->macroActions->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->macroActions, &QWidget::customContextMenuRequested, this,
&AdvSceneSwitcher::ShowMacroActionsContextMenu);
ui->macroConditions->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->macroConditions, &QWidget::customContextMenuRequested, this,
&AdvSceneSwitcher::ShowMacroConditionsContextMenu);
ui->macroEdit->setDisabled(true);
}
void AdvSceneSwitcher::showMacroContextMenu(const QPoint &pos)
void AdvSceneSwitcher::ShowMacroContextMenu(const QPoint &pos)
{
QPoint globalPos = ui->macros->mapToGlobal(pos);
QMenu myMenu;
myMenu.addAction(obs_module_text("AdvSceneSwitcher.macroTab.copy"),
this, SLOT(copyMacro()));
this, &AdvSceneSwitcher::CopyMacro);
myMenu.exec(globalPos);
}
void AdvSceneSwitcher::copyMacro()
void AdvSceneSwitcher::ShowMacroActionsContextMenu(const QPoint &pos)
{
QPoint globalPos = ui->macroActions->mapToGlobal(pos);
QMenu myMenu;
myMenu.addAction(obs_module_text("AdvSceneSwitcher.macroTab.expandAll"),
this, &AdvSceneSwitcher::ExpandAllActions);
myMenu.addAction(
obs_module_text("AdvSceneSwitcher.macroTab.collapseAll"), this,
&AdvSceneSwitcher::CollapseAllActions);
myMenu.exec(globalPos);
}
void AdvSceneSwitcher::ShowMacroConditionsContextMenu(const QPoint &pos)
{
QPoint globalPos = ui->macroConditions->mapToGlobal(pos);
QMenu myMenu;
myMenu.addAction(obs_module_text("AdvSceneSwitcher.macroTab.expandAll"),
this, &AdvSceneSwitcher::ExpandAllConditions);
myMenu.addAction(
obs_module_text("AdvSceneSwitcher.macroTab.collapseAll"), this,
&AdvSceneSwitcher::CollapseAllConditions);
myMenu.exec(globalPos);
}
void AdvSceneSwitcher::CopyMacro()
{
obs_data_t *data = obs_data_create();
getSelectedMacro()->Save(data);
@ -337,3 +367,55 @@ void AdvSceneSwitcher::copyMacro()
item->setCheckState(Qt::Checked);
ui->macros->setCurrentItem(item);
}
void AdvSceneSwitcher::ExpandAllActions()
{
auto m = getSelectedMacro();
if (!m) {
return;
}
for (auto &a : m->Actions()) {
a->SetCollapsed(false);
}
SetEditMacro(*m);
}
void AdvSceneSwitcher::ExpandAllConditions()
{
auto m = getSelectedMacro();
if (!m) {
return;
}
for (auto &c : m->Conditions()) {
c->SetCollapsed(false);
}
SetEditMacro(*m);
}
void AdvSceneSwitcher::CollapseAllActions()
{
auto m = getSelectedMacro();
if (!m) {
return;
}
for (auto &a : m->Actions()) {
a->SetCollapsed(true);
}
SetEditMacro(*m);
}
void AdvSceneSwitcher::CollapseAllConditions()
{
auto m = getSelectedMacro();
if (!m) {
return;
}
for (auto &c : m->Conditions()) {
c->SetCollapsed(true);
}
SetEditMacro(*m);
}