6#include <score_lib_base_export.h>
12struct DocumentContext;
54 QString documentFolder() const noexcept;
64QString pickerStartFolder(
65 const QString& current, const
PathRoots& roots, const QString& userDocuments,
66 const QString& workingDir) noexcept;
79QString locateFilePath(const QString& filename, const
PathRoots& roots) noexcept;
85QString relativizeFilePath(const QString& filename, const
PathRoots& roots) noexcept;
91bool isUnderFolder(const QString& path, const QString& folder) noexcept;
98bool isRemoteUrl(const QString& path) noexcept;
103bool isContainedRelativePath(const QString& relative) noexcept;
107bool isProjectRelativePath(const QString& path) noexcept;
109bool isLibraryRelativePath(const QString& path) noexcept;
116QString sanitizeFileName(const QString& name) noexcept;
121bool sameFileContents(const QString& lhs, const QString& rhs) noexcept;
138 bool collectLibraryFiles =
false;
142 bool useKindSubfolders =
true;
146 bool keepSourceFolderName =
false;
172 bool alreadyInProject{};
186 const QString& absoluteSource,
FileKind kind,
187 const std::vector<QString>& companions = {});
189 const QString& projectFolder() const noexcept {
return m_root; }
190 const ConsolidateOptions& options() const noexcept {
return m_opts; }
193 QString subfolderFor(
const QString& absoluteSource, FileKind kind)
const;
194 Placement placeWithCompanions(
195 const QString& canonicalSource, FileKind kind,
196 const std::vector<QString>& companions);
199 QString m_canonicalRoot;
200 ConsolidateOptions m_opts;
201 QHash<QString, Placement> m_placed;
203 QSet<QString> m_claimed;
206 QSet<QString> m_fileFolders;
214 const QString& source,
const QString& destination, CopyMode mode, QString& error);
Decides where each source file goes inside a project folder.
Definition ProjectFiles.hpp:163
Base toolkit upon which the software is built.
Definition Application.cpp:83
FileKind guessFileKind(const QString &path) noexcept
Definition ProjectFiles.cpp:59
QString mediaSubfolder(FileKind k) noexcept
Name of the project sub-folder collected files of that kind go into.
Definition ProjectFiles.cpp:105
@ Unknown
Versions unreadable; treated as usable.
bool materializeFile(const QString &source, const QString &destination, CopyMode mode, QString &error)
Definition ProjectFiles.cpp:536
CopyMode
How a collected file is materialized in the project folder.
Definition ProjectFiles.hpp:125
@ Symlink
A symbolic link to the original.
@ Copy
An independent copy.
FileKind
Definition ProjectFiles.hpp:17
Definition ProjectFiles.hpp:132
Definition DocumentContext.hpp:18
Definition ProjectFiles.hpp:168
QString destination
Absolute destination path.
Definition ProjectFiles.hpp:170
Definition ProjectFiles.hpp:45
QString library
Absolute path of the user library root. May be empty.
Definition ProjectFiles.hpp:51
QString documentFile
Definition ProjectFiles.hpp:49
Definition PluginRequirements_QtInterface.hpp:13