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