forked from qt-creator/qt-creator
ProjectExplorer: Use Result in JsonWizardFileGenerator
Change-Id: I068c4a22099f406142e24a528eba61be147e10a5 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -28,14 +28,14 @@ namespace ProjectExplorer::Internal {
|
||||
class JsonWizardFileGenerator final : public JsonWizardGenerator
|
||||
{
|
||||
public:
|
||||
Utils::Result<> setup(const QVariant &data);
|
||||
Result<> setup(const QVariant &data);
|
||||
|
||||
Core::GeneratedFiles fileList(MacroExpander *expander,
|
||||
const FilePath &wizardDir,
|
||||
const FilePath &projectDir,
|
||||
QString *errorMessage) final;
|
||||
|
||||
Utils::Result<> writeFile(const JsonWizard *wizard, Core::GeneratedFile *file) final;
|
||||
Result<> writeFile(const JsonWizard *wizard, Core::GeneratedFile *file) final;
|
||||
|
||||
private:
|
||||
class File {
|
||||
@@ -53,8 +53,7 @@ private:
|
||||
QList<JsonWizard::OptionDefinition> options;
|
||||
};
|
||||
|
||||
Core::GeneratedFile generateFile(const File &file, MacroExpander *expander,
|
||||
QString *errorMessage);
|
||||
Result<Core::GeneratedFile> generateFile(const File &file, MacroExpander *expander);
|
||||
|
||||
QList<File> m_fileList;
|
||||
|
||||
@@ -109,13 +108,12 @@ Result<> JsonWizardFileGenerator::setup(const QVariant &data)
|
||||
return ResultOk;
|
||||
}
|
||||
|
||||
Core::GeneratedFile JsonWizardFileGenerator::generateFile(const File &file,
|
||||
MacroExpander *expander, QString *errorMessage)
|
||||
Result<Core::GeneratedFile> JsonWizardFileGenerator::generateFile(const File &file, MacroExpander *expander)
|
||||
{
|
||||
// Read contents of source file
|
||||
FileReader reader;
|
||||
if (!reader.fetch(file.source, errorMessage))
|
||||
return Core::GeneratedFile();
|
||||
if (!reader.fetch(file.source))
|
||||
return ResultError(reader.errorString());
|
||||
|
||||
// Generate file information:
|
||||
Core::GeneratedFile gf;
|
||||
@@ -147,12 +145,12 @@ Core::GeneratedFile JsonWizardFileGenerator::generateFile(const File &file,
|
||||
return expander->resolveMacro(n, ret);
|
||||
});
|
||||
|
||||
QString errorMessage;
|
||||
gf.setContents(TemplateEngine::processText(&nested, QString::fromUtf8(reader.text()),
|
||||
errorMessage));
|
||||
if (!errorMessage->isEmpty()) {
|
||||
*errorMessage = Tr::tr("When processing \"%1\":<br>%2")
|
||||
.arg(file.source.toUserOutput(), *errorMessage);
|
||||
return Core::GeneratedFile();
|
||||
&errorMessage));
|
||||
if (!errorMessage.isEmpty()) {
|
||||
return ResultError(Tr::tr("When processing \"%1\":<br>%2")
|
||||
.arg(file.source.toUserOutput(), errorMessage));
|
||||
}
|
||||
}
|
||||
if (!file.source.isResourceFile()) // resource files mess up permissions, stay with default
|
||||
@@ -233,11 +231,10 @@ Core::GeneratedFiles JsonWizardFileGenerator::fileList(MacroExpander *expander,
|
||||
|
||||
const Core::GeneratedFiles result
|
||||
= Utils::transform(fileList, [this, &expander, &errorMessage](const File &f) {
|
||||
QString generateError;
|
||||
const Core::GeneratedFile file = generateFile(f, expander, &generateError);
|
||||
if (!generateError.isEmpty())
|
||||
*errorMessage = generateError;
|
||||
return file;
|
||||
const Result<Core::GeneratedFile> file = generateFile(f, expander);
|
||||
if (!file)
|
||||
*errorMessage = file.error();
|
||||
return file.value();
|
||||
});
|
||||
|
||||
if (Utils::contains(result, [](const Core::GeneratedFile &gf) {
|
||||
|
Reference in New Issue
Block a user