Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Source/QtDialog/QCMakePresetItemModel.h
5000 views
1
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2
file LICENSE.rst or https://cmake.org/licensing for details. */
3
#pragma once
4
5
#include <cm/optional>
6
7
#include "QCMakePreset.h"
8
#include <QAbstractItemModel>
9
#include <QModelIndex>
10
#include <QString>
11
#include <QVariant>
12
#include <QVector>
13
#include <QtGlobal>
14
15
class QObject;
16
17
class QCMakePresetItemModel : public QAbstractItemModel
18
{
19
Q_OBJECT
20
public:
21
QCMakePresetItemModel(QObject* parent = nullptr);
22
23
QVariant data(QModelIndex const& index, int role) const override;
24
Qt::ItemFlags flags(QModelIndex const& index) const override;
25
26
int rowCount(QModelIndex const& parent = QModelIndex{}) const override;
27
int columnCount(QModelIndex const& parent = QModelIndex{}) const override;
28
29
QModelIndex index(int row, int column,
30
QModelIndex const& parent = QModelIndex{}) const override;
31
QModelIndex parent(QModelIndex const& index) const override;
32
33
QVector<QCMakePreset> const& presets() const;
34
35
int presetNameToRow(QString const& name) const;
36
37
public slots:
38
void setPresets(QVector<QCMakePreset> const& presets);
39
40
private:
41
QVector<QCMakePreset> m_presets;
42
43
static constexpr quintptr SEPARATOR_INDEX = static_cast<quintptr>(-2);
44
static constexpr quintptr CUSTOM_INDEX = static_cast<quintptr>(-1);
45
};
46
47