20class ProjectManager :
public QObject
29 setActiveSession NOTIFY activeSessionChanged)
35 using Template = fs::path;
36 using TemplateList = std::vector<Template>;
37 using ProjectLoadResult =
38 std::variant<utils::QObjectUniquePtr<ProjectSession>, QString>;
40 static ProjectManager * get_instance ();
52 Q_INVOKABLE
static QString
55 Q_INVOKABLE
void createNewProject (
56 const QUrl &directory,
58 const QUrl &templateUrl = QUrl{});
76 void projectLoadingFailed (
const QString &errorMessage);
83 void init_templates ();
91 void load_from_file ();
105 const fs::path &prj_dir,
114 std::unique_ptr<plugins::IPluginHostWindow>
121 TemplateList templates_;
128 Template demo_template_;
142 QFutureWatcher<ProjectLoadResult> project_watcher_;