#pragma once #include #include #include "config/directories.h" namespace Xybrid::Data { class Project; class Graph; class Node; } namespace Xybrid::FileOps { namespace Filter { extern const QString project; extern const QString node; extern const QString audioIn; extern const QString audioOut; } QString showOpenDialog(QWidget* parent = nullptr, const QString& caption = QString(), const QString& directory = QString(), const QString& filter = QString()); QString showSaveAsDialog(QWidget* parent = nullptr, const QString& caption = QString(), const QString& directory = QString(), const QString& filter = QString(), const QString& suffix = QString()); bool saveProject(std::shared_ptr project, QString fileName = QString()); std::shared_ptr loadProject(QString fileName, bool asTemplate = false); std::shared_ptr newProject(bool useTemplate = true); bool saveNode(std::shared_ptr node, QString fileName); std::shared_ptr loadNode(QString fileName, std::shared_ptr parent = nullptr); void loadConfig(); void saveConfig(); void loadUIState(); void saveUIState(); }