diff options
Diffstat (limited to 'src/libs/installer/componentmodel.h')
-rw-r--r-- | src/libs/installer/componentmodel.h | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/libs/installer/componentmodel.h b/src/libs/installer/componentmodel.h index 8a9fbf884..c93dd60ae 100644 --- a/src/libs/installer/componentmodel.h +++ b/src/libs/installer/componentmodel.h @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2024 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -31,6 +31,8 @@ #include "qinstallerglobal.h" +#include "component.h" + #include <QtCore/QAbstractItemModel> #include <QtCore/QList> #include <QtCore/QSet> @@ -38,7 +40,6 @@ namespace QInstaller { -class Component; class PackageManagerCore; class INSTALLER_EXPORT ComponentModel : public QAbstractItemModel @@ -49,6 +50,7 @@ class INSTALLER_EXPORT ComponentModel : public QAbstractItemModel public: enum ModelStateFlag { + Empty = -0x01, AllChecked = 0x01, AllUnchecked = 0x02, DefaultChecked = 0x04, @@ -59,25 +61,26 @@ public: explicit ComponentModel(int columns, PackageManagerCore *core = 0); ~ComponentModel(); - Qt::ItemFlags flags(const QModelIndex &index) const; + Qt::ItemFlags flags(const QModelIndex &index) const override; - int rowCount(const QModelIndex &parent = QModelIndex()) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; - QModelIndex parent(const QModelIndex &child) const; - QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; + QModelIndex parent(const QModelIndex &child) const override; + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, - int role = Qt::EditRole); + int role = Qt::EditRole) override; QSet<Component *> checked() const; QSet<Component *> partially() const; QSet<Component *> unchecked() const; QSet<Component *> uncheckable() const; + bool componentsSelected() const; PackageManagerCore *core() const; ComponentModel::ModelState checkedState() const; @@ -86,21 +89,20 @@ public: Component* componentFromIndex(const QModelIndex &index) const; public Q_SLOTS: - void setRootComponents(QList<QInstaller::Component*> rootComponents); + void reset(QList<Component *> rootComponents = QList<Component *>()); void setCheckedState(QInstaller::ComponentModel::ModelStateFlag state); Q_SIGNALS: - void checkStateChanged(const QModelIndex &index); void checkStateChanged(QInstaller::ComponentModel::ModelState state); private Q_SLOTS: - void slotModelReset(); void onVirtualStateChanged(); private: + void postModelReset(); void updateAndEmitModelState(); void collectComponents(Component *const component, const QModelIndex &parent) const; - QSet<QModelIndex> updateCheckedState(const ComponentSet &components, Qt::CheckState state); + QSet<QModelIndex> updateCheckedState(const ComponentSet &components, const Qt::CheckState state); private: PackageManagerCore *m_core; |