File indexing completed on 2024-05-12 05:43:31
0001 /* 0002 Copyright (C) 2015 Volker Krause <vkrause@kde.org> 0003 0004 This program is free software; you can redistribute it and/or modify it 0005 under the terms of the GNU Library General Public License as published by 0006 the Free Software Foundation; either version 2 of the License, or (at your 0007 option) any later version. 0008 0009 This program is distributed in the hope that it will be useful, but WITHOUT 0010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0011 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 0012 License for more details. 0013 0014 You should have received a copy of the GNU General Public License 0015 along with this program. If not, see <https://www.gnu.org/licenses/>. 0016 */ 0017 0018 #ifndef FILEUSERMODEL_H 0019 #define FILEUSERMODEL_H 0020 0021 #include <QAbstractListModel> 0022 0023 class ElfFileSet; 0024 class ElfFile; 0025 0026 /** Lists all files using a given file from an ElfFileSet. */ 0027 class FileUserModel : public QAbstractListModel 0028 { 0029 Q_OBJECT 0030 public: 0031 enum Role { 0032 FileRole = Qt::UserRole + 1 0033 }; 0034 explicit FileUserModel(QObject* parent = nullptr); 0035 ~FileUserModel(); 0036 0037 void setFile(ElfFileSet *fileSet, ElfFile *usedFile); 0038 ElfFile* usedFile() const; 0039 0040 QVariant data(const QModelIndex& index, int role) const override; 0041 int rowCount(const QModelIndex& parent) const override; 0042 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; 0043 0044 private: 0045 ElfFileSet *m_fileSet = nullptr; 0046 ElfFile *m_usedFile = nullptr; 0047 QVector<int> m_users; 0048 }; 0049 0050 #endif // FILEUSERMODEL_H