/* SPDX-FileCopyrightText: 2009-2010 Trever Fischer SPDX-FileCopyrightText: 2015 Kai Uwe Broulik SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once #include #include #include #include #include class AutomounterSettings; class DeviceModel : public QAbstractItemModel { Q_OBJECT public: explicit DeviceModel(AutomounterSettings *m_settings, QObject *parent = nullptr); ~DeviceModel() override = default; enum DeviceType { Attached, Detached, }; enum { UdiRole = Qt::UserRole, TypeRole, }; enum { RowAll, RowAttached, RowDetached, }; Qt::ItemFlags flags(const QModelIndex &index) const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; QModelIndex parent(const QModelIndex &index) const override; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; void setAutomaticMountOnLogin(bool automaticLogin); void setAutomaticMountOnPlugin(bool automaticAttached); void setAutomaticUnknown(bool automaticUnknown); void updateCheckedColumns(int column = -1); public Q_SLOTS: void forgetDevice(const QString &udi); void reload(); private Q_SLOTS: void deviceAttached(const QString &udi); void deviceRemoved(const QString &udi); private: void addNewDevice(const QString &udi); QList m_attached; QList m_disconnected; AutomounterSettings *const m_settings; };