File indexing completed on 2024-05-19 04:48:24

0001 #ifndef PROJECTMANAGER_H
0002 #define PROJECTMANAGER_H
0003 
0004 #include <QObject>
0005 #include <QUrl>
0006 
0007 class CMakeProjectManager;
0008 
0009 class ProjectPreferences;
0010 class ProjectManager : public QObject
0011 {
0012     Q_OBJECT
0013     // The root cmake file url
0014     Q_PROPERTY(QUrl projectUrl READ projectUrl WRITE setProjectUrl NOTIFY projectUrlChanged)
0015 
0016     //The root dir where the cmake file lives
0017     Q_PROPERTY(QUrl projectPath READ projectPath NOTIFY projectPathChanged FINAL)
0018     Q_PROPERTY(QString projectLogo READ projectLogo NOTIFY projectLogoChanged FINAL)
0019 
0020     Q_PROPERTY(bool active READ active NOTIFY activeChanged FINAL)
0021 
0022     Q_PROPERTY(ProjectPreferences * preferences READ preferences CONSTANT FINAL)
0023     Q_PROPERTY(CMakeProjectManager * manager READ manager CONSTANT FINAL)
0024 
0025 public:
0026     explicit ProjectManager(QObject *parent = nullptr);
0027 
0028     QString projectLogo() const;
0029     QUrl projectUrl() const;
0030     QUrl projectPath() const;
0031 
0032     ProjectPreferences * preferences() const;
0033 
0034     CMakeProjectManager * manager() const;
0035 
0036     bool active() const;
0037 
0038 public slots:
0039     void setProjectUrl(QUrl projectUrl);
0040     void configure();
0041 
0042 private:
0043     CMakeProjectManager *m_projectManager;
0044 
0045     QString m_projectLogo {"qrc:/img/strike.svg"};
0046     QUrl m_projectUrl;
0047     QUrl m_projectPath;
0048 
0049     ProjectPreferences *m_preferences;
0050 
0051     bool m_active;
0052 
0053 signals:
0054     void projectUrlChanged(QUrl projectUrl);
0055     void projectPathChanged(QUrl projectPath);
0056     void projectLogoChanged(QString projectLogo);
0057     void activeChanged();
0058 };
0059 
0060 #endif // PROJECTMANAGER_H