mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-07-24 12:40:47 -05:00
Use name of macro to be copied in addNewMacro() dialog
This commit is contained in:
parent
eeedf11c6a
commit
5298b14803
|
|
@ -49,7 +49,7 @@ public:
|
|||
void OpenSequenceExtendEdit(SequenceWidget *sw);
|
||||
void SetEditSceneGroup(SceneGroup &sg);
|
||||
|
||||
bool addNewMacro(std::string &name);
|
||||
bool addNewMacro(std::string &name, std::string format = "");
|
||||
Macro *getSelectedMacro();
|
||||
void SetEditMacro(Macro &m);
|
||||
void HighlightAction(int idx);
|
||||
|
|
|
|||
|
|
@ -17,15 +17,21 @@ bool macroNameExists(std::string name)
|
|||
return !!GetMacroByName(name.c_str());
|
||||
}
|
||||
|
||||
bool AdvSceneSwitcher::addNewMacro(std::string &name)
|
||||
bool AdvSceneSwitcher::addNewMacro(std::string &name, std::string format)
|
||||
{
|
||||
QString format{
|
||||
obs_module_text("AdvSceneSwitcher.macroTab.defaultname")};
|
||||
|
||||
QString fmt;
|
||||
int i = 1;
|
||||
QString placeHolderText = format.arg(i);
|
||||
if (format.empty()) {
|
||||
fmt = {obs_module_text(
|
||||
"AdvSceneSwitcher.macroTab.defaultname")};
|
||||
} else {
|
||||
fmt = QString::fromStdString(format);
|
||||
i = 2;
|
||||
}
|
||||
|
||||
QString placeHolderText = fmt.arg(i);
|
||||
while ((macroNameExists(placeHolderText.toUtf8().constData()))) {
|
||||
placeHolderText = format.arg(++i);
|
||||
placeHolderText = fmt.arg(++i);
|
||||
}
|
||||
|
||||
bool accepted = AdvSSNameDialog::AskForName(
|
||||
|
|
@ -475,15 +481,19 @@ void AdvSceneSwitcher::ShowMacroConditionsContextMenu(const QPoint &pos)
|
|||
|
||||
void AdvSceneSwitcher::CopyMacro()
|
||||
{
|
||||
obs_data_t *data = obs_data_create();
|
||||
getSelectedMacro()->Save(data);
|
||||
|
||||
std::string name;
|
||||
if (!addNewMacro(name)) {
|
||||
obs_data_release(data);
|
||||
const auto macro = getSelectedMacro();
|
||||
if (!macro) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::string format = macro->Name() + " %1";
|
||||
std::string name;
|
||||
if (!addNewMacro(name, format)) {
|
||||
return;
|
||||
}
|
||||
|
||||
obs_data_t *data = obs_data_create();
|
||||
macro->Save(data);
|
||||
switcher->macros.back()->Load(data);
|
||||
switcher->macros.back()->SetName(name);
|
||||
obs_data_release(data);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user