MCPcopy Create free account
hub / github.com/KDE/kdevelop / LaunchConfigurationsModel

Class LaunchConfigurationsModel

kdevplatform/shell/launchconfigurationdialog.h:49–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47
48
49class LaunchConfigurationsModel : public QAbstractItemModel
50{
51Q_OBJECT
52public:
53 explicit LaunchConfigurationsModel(QObject* parent = nullptr);
54 int columnCount(const QModelIndex& parent = QModelIndex()) const override;
55 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
56 QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
57 QModelIndex parent(const QModelIndex& child) const override;
58 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
59 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
60 Qt::ItemFlags flags(const QModelIndex& index) const override;
61 bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
62 void createConfiguration( const QModelIndex& );
63 void deleteConfiguration( const QModelIndex& index );
64 LaunchConfiguration* configForIndex( const QModelIndex& ) const;
65 ILaunchMode* modeForIndex( const QModelIndex& idx ) const;
66 QModelIndex indexForConfig( LaunchConfiguration* ) const;
67 void addConfiguration(KDevelop::ILaunchConfiguration* launch, const QModelIndex& idx);
68 KDevelop::IProject* projectForIndex(const QModelIndex& idx);
69
70private:
71 class TreeItem
72 {
73 public:
74 TreeItem() {}
75 virtual ~TreeItem() {}
76 TreeItem* parent = nullptr;
77 int row;
78 QList<TreeItem*> children;
79 };
80 class ProjectItem : public TreeItem
81 {
82 public:
83 IProject* project;
84 };
85 class LaunchItem : public TreeItem
86 {
87 public:
88 LaunchConfiguration* launch;
89 };
90 class LaunchModeItem : public TreeItem
91 {
92 public:
93 ILaunchMode* mode;
94 };
95 class GenericPageItem : public TreeItem
96 {
97 public:
98 QString text;
99 };
100 void addItemForLaunchConfig( LaunchConfiguration* l );
101 void addLaunchModeItemsForLaunchConfig ( KDevelop::LaunchConfigurationsModel::LaunchItem* l );
102 QList<TreeItem*> topItems;
103
104public:
105 ProjectItem* findItemForProject(IProject* p) const;
106};

Callers

nothing calls this directly

Calls 1

QModelIndexClass · 0.70

Tested by

no test coverage detected