19class ProjectManager :
public QObject
28 setActiveProject NOTIFY activeProjectChanged)
34 using Template = fs::path;
35 using TemplateList = std::vector<Template>;
36 using ProjectLoadResult =
37 std::variant<utils::QObjectUniquePtr<ProjectUiState>, QString>;
39 static ProjectManager * get_instance ();
51 Q_INVOKABLE
static QString
54 Q_INVOKABLE
void createNewProject (
55 const QUrl &directory,
57 const QUrl &templateUrl = QUrl{});
58 Q_INVOKABLE
void loadProject (
const QString &filepath);
60 void add_to_recent_projects (
const QString &path);
69 void projectLoadingFailed (
const QString &errorMessage);
76 void init_templates ();
84 void load_from_file ();
98 const fs::path &prj_dir,
107 std::unique_ptr<plugins::IPluginHostWindow>
114 TemplateList templates_;
121 Template demo_template_;
135 QFutureWatcher<ProjectLoadResult> project_watcher_;