Utils: Change macro expander to use FilePath

Change-Id: Ib7787d1b7f72f6b4728893636f6844e4297fcecd
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-04-04 09:49:37 +02:00
parent a374dd8bfe
commit 4fbc56d453

View File

@@ -377,41 +377,45 @@ void MacroExpander::registerIntVariable(const QByteArray &variable,
void MacroExpander::registerFileVariables(const QByteArray &prefix, void MacroExpander::registerFileVariables(const QByteArray &prefix,
const QString &heading, const FileFunction &base, bool visibleInChooser) const QString &heading, const FileFunction &base, bool visibleInChooser)
{ {
registerVariable(prefix + kFilePathPostfix, registerVariable(
Tr::tr("%1: Full path including file name.").arg(heading), prefix + kFilePathPostfix,
[base]() -> QString { QString tmp = base().toString(); return tmp.isEmpty() ? QString() : QFileInfo(tmp).filePath(); }, Tr::tr("%1: Full path including file name.").arg(heading),
visibleInChooser); [base]() -> QString { return base().toUserOutput(); },
visibleInChooser);
registerVariable(prefix + kPathPostfix, registerVariable(
Tr::tr("%1: Full path excluding file name.").arg(heading), prefix + kPathPostfix,
[base]() -> QString { QString tmp = base().toString(); return tmp.isEmpty() ? QString() : QFileInfo(tmp).path(); }, Tr::tr("%1: Full path excluding file name.").arg(heading),
visibleInChooser); [base]() -> QString { return base().parentDir().toUserOutput(); },
visibleInChooser);
registerVariable(prefix + kNativeFilePathPostfix, registerVariable(
Tr::tr("%1: Full path including file name, with native path separator (backslash on Windows).").arg(heading), prefix + kNativeFilePathPostfix,
[base]() -> QString { Tr::tr(
QString tmp = base().toString(); "%1: Full path including file name, with native path separator (backslash on Windows).")
return tmp.isEmpty() ? QString() : QDir::toNativeSeparators(QFileInfo(tmp).filePath()); .arg(heading),
}, [base]() -> QString { return base().nativePath(); },
visibleInChooser); visibleInChooser);
registerVariable(prefix + kNativePathPostfix, registerVariable(
Tr::tr("%1: Full path excluding file name, with native path separator (backslash on Windows).").arg(heading), prefix + kNativePathPostfix,
[base]() -> QString { Tr::tr(
QString tmp = base().toString(); "%1: Full path excluding file name, with native path separator (backslash on Windows).")
return tmp.isEmpty() ? QString() : QDir::toNativeSeparators(QFileInfo(tmp).path()); .arg(heading),
}, [base]() -> QString { return base().parentDir().nativePath(); },
visibleInChooser); visibleInChooser);
registerVariable(prefix + kFileNamePostfix, registerVariable(
Tr::tr("%1: File name without path.").arg(heading), prefix + kFileNamePostfix,
[base]() -> QString { QString tmp = base().toString(); return tmp.isEmpty() ? QString() : FilePath::fromString(tmp).fileName(); }, Tr::tr("%1: File name without path.").arg(heading),
visibleInChooser); [base]() -> QString { return base().fileName(); },
visibleInChooser);
registerVariable(prefix + kFileBaseNamePostfix, registerVariable(
Tr::tr("%1: File base name without path and suffix.").arg(heading), prefix + kFileBaseNamePostfix,
[base]() -> QString { QString tmp = base().toString(); return tmp.isEmpty() ? QString() : QFileInfo(tmp).baseName(); }, Tr::tr("%1: File base name without path and suffix.").arg(heading),
visibleInChooser); [base]() -> QString { return base().baseName(); },
visibleInChooser);
} }
void MacroExpander::registerExtraResolver(const MacroExpander::ResolverFunction &value) void MacroExpander::registerExtraResolver(const MacroExpander::ResolverFunction &value)