Enable deleting multiple macros at once

This commit is contained in:
WarmUpTill
2023-02-18 01:23:30 +01:00
committed by WarmUpTill
parent 46eaada0c4
commit eddc10c3e2
5 changed files with 59 additions and 2 deletions

View File

@@ -83,12 +83,12 @@ void AdvSceneSwitcher::on_macroAdd_clicked()
emit MacroAdded(QString::fromStdString(name));
}
void AdvSceneSwitcher::on_macroRemove_clicked()
void AdvSceneSwitcher::RemoveMacro(std::shared_ptr<Macro> &macro)
{
auto macro = getSelectedMacro();
if (!macro) {
return;
}
auto name = QString::fromStdString(macro->Name());
if (macro->IsGroup()) {
QString deleteWarning = obs_module_text(
@@ -106,6 +106,29 @@ void AdvSceneSwitcher::on_macroRemove_clicked()
emit MacroRemoved(name);
}
void AdvSceneSwitcher::on_macroRemove_clicked()
{
auto macros = getSelectedMacros();
if (macros.empty()) {
return;
}
if (macros.size() == 1) {
RemoveMacro(macros.at(0));
return;
}
QString deleteWarning = obs_module_text(
"AdvSceneSwitcher.macroTab.deleteMultipleMacrosConfirmation");
if (!DisplayMessage(deleteWarning.arg(macros.size()), true)) {
return;
}
for (auto &macro : macros) {
RemoveMacro(macro);
}
}
void AdvSceneSwitcher::on_macroUp_clicked()
{
std::lock_guard<std::mutex> lock(switcher->m);
@@ -314,6 +337,11 @@ std::shared_ptr<Macro> AdvSceneSwitcher::getSelectedMacro()
return ui->macros->GetCurrentMacro();
}
std::vector<std::shared_ptr<Macro>> AdvSceneSwitcher::getSelectedMacros()
{
return ui->macros->GetCurrentMacros();
}
void AdvSceneSwitcher::MacroSelectionChanged(const QItemSelection &,
const QItemSelection &)
{