File indexing completed on 2024-05-12 17:07:24
0001 /* 0002 SPDX-FileCopyrightText: 2012-2016 Ivan Cukic <ivan.cukic@kde.org> 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 <QAbstractListModel> 0010 0011 #include <utils/d_ptr.h> 0012 0013 /** 0014 * BlacklistedApplicationsModel 0015 */ 0016 class BlacklistedApplicationsModel : public QAbstractListModel 0017 { 0018 Q_OBJECT 0019 0020 Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) 0021 0022 public: 0023 explicit BlacklistedApplicationsModel(QObject *parent = nullptr); 0024 ~BlacklistedApplicationsModel() override; 0025 0026 enum Roles { 0027 ApplicationIdRole = Qt::UserRole + 1, 0028 BlockedApplicationRole, 0029 }; 0030 0031 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; 0032 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0033 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0034 0035 QHash<int, QByteArray> roleNames() const override; 0036 0037 Q_SIGNALS: 0038 void changed(bool changed); 0039 void defaulted(bool isDefault); 0040 void enabledChanged(bool enabled); 0041 0042 public Q_SLOTS: 0043 void toggleApplicationBlocked(int index); 0044 0045 void setEnabled(bool); 0046 bool enabled() const; 0047 0048 void load(); 0049 void save(); 0050 void defaults(); 0051 0052 private: 0053 D_PTR; 0054 };