File indexing completed on 2024-05-05 04:39:24

0001 /*
0002     SPDX-FileCopyrightText: 2009 Aleix Pol <aleixpol@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef CMAKECOMMANDSCONTENTS_H
0008 #define CMAKECOMMANDSCONTENTS_H
0009 
0010 #include <QVector>
0011 #include <QMap>
0012 #include <QAbstractItemModel>
0013 
0014 #include "cmakedocumentation.h"
0015 
0016 class CMakeCommandsContents : public QAbstractItemModel
0017 {
0018     Q_OBJECT
0019 public:
0020     explicit CMakeCommandsContents(QObject* parent);
0021 
0022     void processOutput(int code);
0023 
0024     int rowCount(const QModelIndex & parent) const override;
0025 
0026     QVariant data(const QModelIndex & index, int role) const override;
0027 
0028     QString descriptionForIdentifier(const QString& id, CMakeDocumentation::Type t) const;
0029     QVector<QString> names(CMakeDocumentation::Type t) const;
0030     CMakeDocumentation::Type typeFor(const QString &id) const;
0031     void showItemAt(const QModelIndex &idx) const;
0032 
0033     QModelIndex parent(const QModelIndex & child) const override;
0034     QModelIndex index(int row, int column, const QModelIndex & parent) const override;
0035     int columnCount(const QModelIndex & parent) const override;
0036 
0037 private:
0038     QMap<QString, CMakeDocumentation::Type> m_typeForName;
0039     QVector<QVector<QString>> m_namesForType;
0040 };
0041 #endif // CMAKECOMMANDSCONTENTS_H