File indexing completed on 2024-05-19 04:48:24
0001 #ifndef CMAKEPROJECT_H 0002 #define CMAKEPROJECT_H 0003 0004 #include <QObject> 0005 #include "cmakedata.h" 0006 0007 class CMakeProjectTarget; 0008 class CMakeProjectManager; 0009 class CMakeTargetsModel; 0010 class CMakeProject : public QObject 0011 { 0012 Q_OBJECT 0013 0014 // Project title as set in the cmake project_name 0015 Q_PROPERTY(QString title READ title NOTIFY dataChanged FINAL) 0016 0017 Q_PROPERTY(CMakeProjectData data READ data WRITE setData NOTIFY dataChanged) 0018 //The model of targets set in the cmake project 0019 Q_PROPERTY(CMakeTargetsModel *targetsModel READ targetsModel CONSTANT FINAL) 0020 0021 Q_PROPERTY(CMakeProjectTarget *target READ target CONSTANT FINAL) 0022 0023 0024 public: 0025 explicit CMakeProject(CMakeProjectManager *manager = nullptr); 0026 QString title() const; 0027 CMakeTargetsModel * targetsModel() const; 0028 CMakeProjectData data() const; 0029 CMakeProjectTarget *target() const; 0030 CMakeProjectManager *manager() const; 0031 0032 public slots: 0033 void setData(CMakeProjectData data); 0034 0035 private: 0036 CMakeTargetsModel *m_targetsModel; 0037 CMakeProjectData m_data; 0038 CMakeProjectTarget *m_target; 0039 CMakeProjectManager *m_manager; 0040 0041 0042 signals: 0043 void dataChanged(CMakeProjectData data); 0044 }; 0045 0046 #endif // CMAKEPROJECT_H