Add export config directory specification feature (#15235)

This commit is contained in:
wasd845
2024-12-14 00:44:30 +08:00
committed by GitHub
parent eef368ae63
commit f4f611163d
6 changed files with 41 additions and 10 deletions

View File

@@ -504,12 +504,11 @@ static void copyTemplateParameters(/*const*/ ParameterManager& templateParameter
}
}
void PreferencePackManager::save(const std::string& name, const std::vector<TemplateFile>& templates)
void PreferencePackManager::save(const std::string& name, const std::string& directory, const std::vector<TemplateFile>& templates)
{
if (templates.empty())
return;
AddPackToMetadata(name);
// Create the config file
auto outputParameterManager = ParameterManager::Create();
@@ -519,9 +518,17 @@ void PreferencePackManager::save(const std::string& name, const std::vector<Temp
templateParameterManager->LoadDocument(Base::FileInfo::pathToString(t.path).c_str());
copyTemplateParameters(*templateParameterManager, *outputParameterManager);
}
auto savedPreferencePacksDirectory = getSavedPreferencePacksPath();
auto cfgFilename = savedPreferencePacksDirectory / name / (name + ".cfg");
outputParameterManager->SaveDocument(Base::FileInfo::pathToString(cfgFilename).c_str());
std::string cfgFilename;
if (directory.empty()) {
AddPackToMetadata(name);
auto savedPreferencePacksDirectory = getSavedPreferencePacksPath();
cfgFilename = Base::FileInfo::pathToString(savedPreferencePacksDirectory / name / (name + ".cfg"));
}
else {
cfgFilename = Base::FileInfo::pathToString(fs::path(directory) / (name + ".cfg"));
}
outputParameterManager->SaveDocument(cfgFilename.c_str());
}
static std::vector<fs::path> scanForTemplateFolders(const std::string& groupName, const fs::path& entry)