File indexing completed on 2024-05-12 04:39:28
0001 /* 0002 SPDX-FileCopyrightText: 2007-2008 Aleix Pol <aleixpol@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef CMAKECACHEMODEL_H 0008 #define CMAKECACHEMODEL_H 0009 0010 #include <cmakecommonexport.h> 0011 #include <QStandardItemModel> 0012 #include <QVariant> 0013 #include <QSet> 0014 0015 #include <util/path.h> 0016 0017 /** 0018 * This class parses the CMakeCache.txt files and put it to a Model 0019 * @author Aleix Pol 0020 */ 0021 class CMakeCacheModel : public QStandardItemModel 0022 { 0023 Q_OBJECT 0024 public: 0025 CMakeCacheModel(QObject* parent, const KDevelop::Path &path); 0026 ~CMakeCacheModel() override {} 0027 0028 bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; 0029 0030 int internal() const { return m_internalBegin; } 0031 0032 QString value(const QString& name) const; 0033 bool isAdvanced(int i) const; 0034 bool isInternal(int i) const; 0035 0036 QList<QModelIndex> persistentIndices() const; 0037 KDevelop::Path filePath() const; 0038 void read(); 0039 QVariantMap changedValues() const; 0040 0041 Q_SIGNALS: 0042 void valueChanged(const QString& name, const QString& value) const; 0043 0044 public Q_SLOTS: 0045 void reset(); 0046 0047 private: 0048 KDevelop::Path m_filePath; 0049 int m_internalBegin; 0050 QSet<QString> m_internal; 0051 QSet<int> m_modifiedRows; 0052 }; 0053 0054 #endif