Improve macro name conflict error messages

This commit is contained in:
WarmUpTill 2024-03-19 19:45:36 +01:00 committed by WarmUpTill
parent f3996855c3
commit e1b8edd444
8 changed files with 31 additions and 26 deletions

View File

@ -80,7 +80,6 @@ AdvSceneSwitcher.macroTab.runInParallel="Parallel zu anderen Makros ausführen"
AdvSceneSwitcher.macroTab.onChange="Nur bei Änderung ausführen"
AdvSceneSwitcher.macroTab.defaultname="Makro %1"
AdvSceneSwitcher.macroTab.defaultGroupName="Gruppe %1"
AdvSceneSwitcher.macroTab.exists="Makro-Name existiert bereits"
AdvSceneSwitcher.macroTab.removeGroupPopup.text="Sicher, dass \"%1\" und alle zugehörigen Elemente gelöscht werden?"
AdvSceneSwitcher.macroTab.copy="Kopie des aktuellen Makros erstellen"
AdvSceneSwitcher.macroTab.group="Ausgewählte Elemente gruppieren"

View File

@ -101,6 +101,7 @@ AdvSceneSwitcher.macroTab.edit.logic="Logic type:"
AdvSceneSwitcher.macroTab.edit.condition="Condition type:"
AdvSceneSwitcher.macroTab.edit.action="Action type:"
AdvSceneSwitcher.macroTab.add="Add new macro"
AdvSceneSwitcher.macroTab.addGroup="Add new macro group"
AdvSceneSwitcher.macroTab.name="Name:"
AdvSceneSwitcher.macroTab.run="Run macro"
AdvSceneSwitcher.macroTab.run.tooltip="Run all macro actions regardless of condition.\nIf else actions are available, hold Shift and click the button to execute them instead."
@ -110,7 +111,8 @@ AdvSceneSwitcher.macroTab.runInParallel="Run macro in parallel to other macros"
AdvSceneSwitcher.macroTab.onChange="Perform actions only on condition change"
AdvSceneSwitcher.macroTab.defaultname="Macro %1"
AdvSceneSwitcher.macroTab.defaultGroupName="Group %1"
AdvSceneSwitcher.macroTab.exists="Macro name exists already"
AdvSceneSwitcher.macroTab.macroNameExists="The name \"%1\" is already used by a macro."
AdvSceneSwitcher.macroTab.groupNameExists="The name \"%1\" is already used by a macro group."
AdvSceneSwitcher.macroTab.removeSingleMacroPopup.text="Are you sure you want to remove \"%1\"?"
AdvSceneSwitcher.macroTab.removeMultipleMacrosPopup.text="Are you sure you want to remove %1 macros/groups?"
AdvSceneSwitcher.macroTab.removeGroupPopup.text="Are you sure you want to remove \"%1\" group and all its elements?"
@ -125,7 +127,7 @@ AdvSceneSwitcher.macroTab.export.info="Paste the string below into the import di
AdvSceneSwitcher.macroTab.import="Import"
AdvSceneSwitcher.macroTab.import.info="Paste the export string into the below text box to import macros:"
AdvSceneSwitcher.macroTab.import.invalid="Invalid import data provided!"
AdvSceneSwitcher.macroTab.import.nameConflict="Cannot continue importing macro \"%1\" as a macro with the same name already exists!\nDo you want to continue with the import of \"%2\" and choose a new name? (Will be skipped otherwise)"
AdvSceneSwitcher.macroTab.import.nameConflict="Cannot continue with import of \"%1\" as the name is already in use!\nDo want to choose a new name for the imported \"%2\"? (It will be skipped otherwise)"
AdvSceneSwitcher.macroTab.expandAll="Expand all"
AdvSceneSwitcher.macroTab.collapseAll="Collapse all"
AdvSceneSwitcher.macroTab.maximize="Maximize"

View File

@ -75,7 +75,6 @@ AdvSceneSwitcher.macroTab.run="Ejecutar macro"
AdvSceneSwitcher.macroTab.runInParallel="Ejecutar macro en paralelo a otras macros"
AdvSceneSwitcher.macroTab.onChange="Realizar acciones solo en el cambio de condición"
AdvSceneSwitcher.macroTab.defaultname="Macro %1"
AdvSceneSwitcher.macroTab.exists="El nombre de la macro ya existe"
AdvSceneSwitcher.macroTab.copy="Crear copia"
AdvSceneSwitcher.macroTab.expandAll="Expandir todo"
AdvSceneSwitcher.macroTab.collapseAll="Contraer todo"

View File

@ -82,7 +82,6 @@ AdvSceneSwitcher.macroTab.runInParallel="Exécuter la macro en parallèle avec d
AdvSceneSwitcher.macroTab.onChange="Exécuter des actions uniquement en cas de changement de condition"
AdvSceneSwitcher.macroTab.defaultname="Macro %1"
AdvSceneSwitcher.macroTab.defaultGroupName="Groupe %1"
AdvSceneSwitcher.macroTab.exists="Le nom de la macro existe déjà"
AdvSceneSwitcher.macroTab.removeSingleMacroPopup.text="Êtes-vous sûr de vouloir supprimer \"%1\" ?"
AdvSceneSwitcher.macroTab.removeMultipleMacrosPopup.text="Êtes-vous sûr de vouloir supprimer %1 macros ?"
AdvSceneSwitcher.macroTab.removeGroupPopup.text="Êtes-vous sûr de vouloir supprimer \"%1\" et tous ses éléments ?"

View File

@ -69,7 +69,6 @@ AdvSceneSwitcher.macroTab.edit.action="Тип действия:"
AdvSceneSwitcher.macroTab.add="Добавить новый макрос"
AdvSceneSwitcher.macroTab.name="Имя:"
AdvSceneSwitcher.macroTab.defaultname="Макрос %1"
AdvSceneSwitcher.macroTab.exists="Имя макроса уже существует"
AdvSceneSwitcher.macroTab.copy="Создать копию"
; Macro Logic
AdvSceneSwitcher.logic.none="Игнорировать вход"

View File

@ -75,7 +75,6 @@ AdvSceneSwitcher.macroTab.run="Makro Çalıştırma"
AdvSceneSwitcher.macroTab.runInParallel="Makroyu diğer makrolara paralel olarak çalıştırın"
AdvSceneSwitcher.macroTab.onChange="Eylemleri yalnızca koşul değişikliğinde gerçekleştirin"
AdvSceneSwitcher.macroTab.defaultname="Makro %1"
AdvSceneSwitcher.macroTab.exists="Macro adı zaten mevcut"
AdvSceneSwitcher.macroTab.copy="Kopya oluştur"
AdvSceneSwitcher.macroTab.expandAll="Hepsini Genişlet"
AdvSceneSwitcher.macroTab.collapseAll="Hepsini Küçült"

View File

@ -81,7 +81,6 @@ AdvSceneSwitcher.macroTab.runInParallel="与其他宏同时运行宏"
AdvSceneSwitcher.macroTab.onChange="仅在条件更改时执行操作"
AdvSceneSwitcher.macroTab.defaultname="宏 %1"
AdvSceneSwitcher.macroTab.defaultGroupName="组 %1"
AdvSceneSwitcher.macroTab.exists="宏名称已存在"
AdvSceneSwitcher.macroTab.removeSingleMacroPopup.text="你确定你要删除 \"%1\"?"
AdvSceneSwitcher.macroTab.removeMultipleMacrosPopup.text="您确定要删除 %1 宏吗?"
AdvSceneSwitcher.macroTab.removeGroupPopup.text="您确定要删除 \"%1\"及其所有元素吗?"

View File

@ -30,6 +30,25 @@ static bool macroNameExists(const std::string &name)
return !!GetMacroByName(name.c_str());
}
static bool newMacroNameIsValid(const std::string &name)
{
if (!macroNameExists(name)) {
return true;
}
auto macro = GetMacroByName(name.c_str());
if (!macro) {
return false;
}
QString fmt = obs_module_text(
macro->IsGroup() ? "AdvSceneSwitcher.macroTab.groupNameExists"
: "AdvSceneSwitcher.macroTab.macroNameExists");
DisplayMessage(fmt.arg(QString::fromStdString(name)));
return false;
}
bool AdvSceneSwitcher::AddNewMacro(std::shared_ptr<Macro> &res,
std::string &name, std::string format)
{
@ -61,9 +80,7 @@ bool AdvSceneSwitcher::AddNewMacro(std::shared_ptr<Macro> &res,
return false;
}
if (macroNameExists(name)) {
DisplayMessage(
obs_module_text("AdvSceneSwitcher.macroTab.exists"));
if (!newMacroNameIsValid(name)) {
return false;
}
@ -173,15 +190,6 @@ void AdvSceneSwitcher::on_macroDown_clicked()
ui->macros->Down(macro);
}
static bool newMacroNameValid(const std::string &name)
{
if (!macroNameExists(name)) {
return true;
}
DisplayMessage(obs_module_text("AdvSceneSwitcher.macroTab.exists"));
return false;
}
void AdvSceneSwitcher::RenameSelectedMacro()
{
auto macro = GetSelectedMacro();
@ -198,7 +206,7 @@ void AdvSceneSwitcher::RenameSelectedMacro()
return;
}
if (name.empty() || name == oldName || !newMacroNameValid(name)) {
if (name.empty() || name == oldName || !newMacroNameIsValid(name)) {
return;
}
@ -363,7 +371,10 @@ bool AdvSceneSwitcher::ResolveMacroImportNameConflict(
std::string newName;
bool accepted = AdvSSNameDialog::AskForName(
this, obs_module_text("AdvSceneSwitcher.macroTab.add"),
this,
obs_module_text(macro->IsGroup()
? "AdvSceneSwitcher.macroTab.addGroup"
: "AdvSceneSwitcher.macroTab.add"),
obs_module_text("AdvSceneSwitcher.macroTab.name"), newName,
placeHolderText);
@ -375,9 +386,7 @@ bool AdvSceneSwitcher::ResolveMacroImportNameConflict(
return false;
}
if (macroNameExists(newName)) {
DisplayMessage(
obs_module_text("AdvSceneSwitcher.macroTab.exists"));
if (!newMacroNameIsValid(newName)) {
return ResolveMacroImportNameConflict(macro);
}
@ -466,7 +475,7 @@ void AdvSceneSwitcher::on_macroName_editingFinished()
QString oldName = QString::fromStdString(macro->Name());
if (newName.isEmpty() || newName == oldName ||
!newMacroNameValid(newName.toStdString())) {
!newMacroNameIsValid(newName.toStdString())) {
ui->macroName->setText(oldName);
return;
}