Warning, file /plasma/discover/libdiscover/ApplicationAddonsModel.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2012 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #pragma once 0008 0009 #include "Transaction/AddonList.h" 0010 #include <QAbstractListModel> 0011 #include <resources/PackageState.h> 0012 0013 #include "discovercommon_export.h" 0014 0015 class Transaction; 0016 class AbstractResource; 0017 0018 class DISCOVERCOMMON_EXPORT ApplicationAddonsModel : public QAbstractListModel 0019 { 0020 Q_OBJECT 0021 Q_PROPERTY(AbstractResource *application READ application WRITE setApplication NOTIFY applicationChanged) 0022 Q_PROPERTY(bool hasChanges READ hasChanges NOTIFY stateChanged) 0023 Q_PROPERTY(bool isEmpty READ isEmpty NOTIFY applicationChanged) 0024 public: 0025 enum Roles { 0026 PackageNameRole = Qt::UserRole, 0027 }; 0028 0029 explicit ApplicationAddonsModel(QObject *parent = nullptr); 0030 0031 AbstractResource *application() const; 0032 void setApplication(AbstractResource *app); 0033 bool hasChanges() const; 0034 0035 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0036 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0037 QHash<int, QByteArray> roleNames() const override; 0038 bool isEmpty() const; 0039 0040 public Q_SLOTS: 0041 void discardChanges(); 0042 void applyChanges(); 0043 void changeState(const QString &packageName, bool installed); 0044 0045 Q_SIGNALS: 0046 void stateChanged(); 0047 void applicationChanged(); 0048 0049 private: 0050 void transactionOver(Transaction *t); 0051 void resetState(); 0052 0053 AbstractResource *m_app; 0054 QList<PackageState> m_initial; 0055 AddonList m_state; 0056 };