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

0001 #include "cmakeproject.h"
0002 #include "cmakedata.h"
0003 #include "models/cmaketargetsmodel.h"
0004 #include "cmakeprojecttarget.h"
0005 #include "projectpreferences.h"
0006 #include "cmakeprojectmanager.h"
0007 #include "projectmanager.h"
0008 
0009 #include <QDebug>
0010 
0011 CMakeProject::CMakeProject(CMakeProjectManager *manager) : QObject(manager)
0012 ,m_targetsModel(new CMakeTargetsModel{this})
0013 ,m_target(new CMakeProjectTarget(this))
0014 ,m_manager(manager)
0015 {
0016 
0017 
0018 }
0019 
0020 QString CMakeProject::title() const
0021 {
0022   return m_data.name;
0023 }
0024 
0025 CMakeTargetsModel *CMakeProject::targetsModel() const
0026 {
0027   return m_targetsModel;
0028 }
0029 
0030 CMakeProjectData CMakeProject::data() const
0031 {
0032   return m_data;
0033 }
0034 
0035 CMakeProjectTarget *CMakeProject::target() const
0036 {
0037   return m_target;
0038 }
0039 
0040 CMakeProjectManager *CMakeProject::manager() const
0041 {
0042   return m_manager;
0043 }
0044 
0045 void CMakeProject::setData(CMakeProjectData data)
0046 {
0047   qDebug() << "Setting the cmake project data" << data.name;
0048 
0049   m_data = data;
0050 
0051   m_targetsModel->setTargetData(m_data.targets);
0052   auto execs = m_targetsModel->filterBy(CMakeTarget::Executable);
0053 
0054   if(!execs.isEmpty())
0055     {
0056       m_target->setData(execs.first(), m_manager->root()->projectPath ());
0057     }
0058 
0059   emit dataChanged(m_data);
0060 }
0061