File indexing completed on 2024-05-12 09:38:26

0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 // SPDX-FileCopyrightText: 2011 Craig Drummond <craig.p.drummond@gmail.com>
0003 // SPDX-FileCopyrightText: 2018 Alexis Lopes Zubeta <contact@azubieta.net>
0004 // SPDX-FileCopyrightText: 2020 Tomaz Canabrava <tcanabrava@kde.org>
0005 /*
0006  * UFW KControl Module
0007  */
0008 
0009 #pragma once
0010 
0011 #include <kcm_firewall_core_export.h>
0012 
0013 #include <QAbstractTableModel>
0014 
0015 #include "profile.h"
0016 
0017 class KCM_FIREWALL_CORE_EXPORT RuleListModel : public QAbstractTableModel
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     enum ProfileItemModelColumns { ActionColumn = 0, FromColumn, ToColumn, Ipv6Column, LoggingColumn, EditColumn};
0023     Q_ENUM(ProfileItemModelColumns)
0024 
0025     explicit RuleListModel(QObject *parent = nullptr);
0026 
0027     Q_INVOKABLE void move(int from, int to);
0028 
0029     int rowCount(const QModelIndex &parent = QModelIndex()) const override;
0030     int columnCount(const QModelIndex &parent = QModelIndex()) const override;
0031     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
0032     QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
0033 
0034     void setProfile(const Profile &profile);
0035 
0036 private:
0037     Profile m_profile;
0038     QList<Rule *> m_rules;
0039 };