Path: blob/master/Source/QtDialog/QCMakePresetItemModel.h
5000 views
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying1file LICENSE.rst or https://cmake.org/licensing for details. */2#pragma once34#include <cm/optional>56#include "QCMakePreset.h"7#include <QAbstractItemModel>8#include <QModelIndex>9#include <QString>10#include <QVariant>11#include <QVector>12#include <QtGlobal>1314class QObject;1516class QCMakePresetItemModel : public QAbstractItemModel17{18Q_OBJECT19public:20QCMakePresetItemModel(QObject* parent = nullptr);2122QVariant data(QModelIndex const& index, int role) const override;23Qt::ItemFlags flags(QModelIndex const& index) const override;2425int rowCount(QModelIndex const& parent = QModelIndex{}) const override;26int columnCount(QModelIndex const& parent = QModelIndex{}) const override;2728QModelIndex index(int row, int column,29QModelIndex const& parent = QModelIndex{}) const override;30QModelIndex parent(QModelIndex const& index) const override;3132QVector<QCMakePreset> const& presets() const;3334int presetNameToRow(QString const& name) const;3536public slots:37void setPresets(QVector<QCMakePreset> const& presets);3839private:40QVector<QCMakePreset> m_presets;4142static constexpr quintptr SEPARATOR_INDEX = static_cast<quintptr>(-2);43static constexpr quintptr CUSTOM_INDEX = static_cast<quintptr>(-1);44};454647