summaryrefslogtreecommitdiffstats
path: root/network/abstractnetworkmodel.h
diff options
context:
space:
mode:
authorRaquel Medina <raquel.medina@konsulko.com>2019-06-05 12:37:33 +0200
committerraquel medina <raquel.medina@konsulko.com>2019-06-10 10:55:23 +0000
commitd3632244d611435f48f5aeb653f9031ace9a3b20 (patch)
treedff535ea26de1483df29d5e52f91799645562d63 /network/abstractnetworkmodel.h
parent0b4be8897b1d041db9931f4726d0dbd9d03a0c58 (diff)
network: add network model abstraction
- AbstractNetworkModel : abstract class which provides common functionality and data to all network models. -ConnectionProfile : super class which aglomerates connection property information, independently of the technology type (e.g. wired or wifi). A network model contains a list of available connection profiles pertinent to the model. Bug-AGL: SPEC-2293 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: Ic7b9d59802d13067e057948d1fb109852f35c2fd
Diffstat (limited to 'network/abstractnetworkmodel.h')
-rw-r--r--network/abstractnetworkmodel.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/network/abstractnetworkmodel.h b/network/abstractnetworkmodel.h
new file mode 100644
index 0000000..1b0db43
--- /dev/null
+++ b/network/abstractnetworkmodel.h
@@ -0,0 +1,32 @@
+#ifndef ABSTRACT_NETWORK_MODEL_H
+#define ABSTRACT_NETWORK_MODEL_H
+
+#include <QAbstractListModel>
+#include <QStringList>
+#include <QtQml/QQmlContext>
+#include <QJsonObject>
+
+#include "connectionprofile.h"
+
+class AbstractNetworkModel : public QAbstractListModel
+{
+ Q_OBJECT
+
+ public:
+ AbstractNetworkModel(QObject *parent = Q_NULLPTR);
+ virtual QString getType() const = 0;
+
+ void addNetwork(ConnectionProfile *network);
+ void removeNetwork(ConnectionProfile *network);
+ void removeAllNetworks();
+ ConnectionProfile *getNetwork(QString service);
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+
+ virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const = 0;
+ virtual void updateProperties(QString service, QJsonObject properties) =0;
+
+ protected:
+ QList<ConnectionProfile *> m_networks;
+ QModelIndex indexOf(ConnectionProfile *network);
+};
+#endif // ABSTRACT_NETWORK_MODEL_H