File indexing completed on 2024-05-12 16:23:45

0001 // SPDX-FileCopyrightText: 2020 Jonah BrĂ¼chert <jbb@kaidan.im>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004 
0005 #pragma once
0006 
0007 #include <QAbstractListModel>
0008 #include <QDateTime>
0009 #include <QNetworkAccessManager>
0010 
0011 #include "adblockfilterlistsmanager.h"
0012 
0013 class AdblockFilterListsModel : public QAbstractListModel
0014 {
0015     Q_OBJECT
0016 
0017     enum Role {
0018         Url = Qt::UserRole + 1,
0019     };
0020 
0021 public:
0022     explicit AdblockFilterListsModel(QObject *parent = nullptr);
0023 
0024     QVariant data(const QModelIndex &index, int role) const override;
0025     QHash<int, QByteArray> roleNames() const override;
0026     int rowCount(const QModelIndex &parent) const override;
0027 
0028     Q_SLOT void addFilterList(const QString &name, const QUrl &url);
0029     Q_SLOT void removeFilterList(const int index);
0030 
0031     Q_SLOT void refreshLists();
0032     Q_SLOT void resetAdblock();
0033     Q_SIGNAL void refreshFinished();
0034 
0035 private:
0036     AdblockFilterListsManager m_manager;
0037 };