File indexing completed on 2024-04-21 03:59:58

0001 /*
0002     SPDX-FileCopyrightText: 2014 Jan Grulich <jgrulich@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #ifndef NETWORKMANAGERQT_FAKE_NETWORK_SETTINGS_CONNECTION_H
0008 #define NETWORKMANAGERQT_FAKE_NETWORK_SETTINGS_CONNECTION_H
0009 
0010 #include <QObject>
0011 
0012 #include <QDBusObjectPath>
0013 
0014 #include "../generictypes.h"
0015 
0016 class Connection : public QObject
0017 {
0018     Q_OBJECT
0019     Q_CLASSINFO("D-Bus Interface", "org.kde.fakenetwork.Settings.Connection")
0020 public:
0021     explicit Connection(QObject *parent = nullptr, const NMVariantMapMap &settings = NMVariantMapMap());
0022     ~Connection() override;
0023 
0024     Q_PROPERTY(bool Unsaved READ unsaved)
0025 
0026     bool unsaved() const;
0027 
0028     /* Not part of DBus interface */
0029     QString connectionPath() const;
0030     void setConnectionPath(const QString &path);
0031 
0032 public Q_SLOTS: // METHODS
0033     Q_SCRIPTABLE void Delete();
0034     Q_SCRIPTABLE NMVariantMapMap GetSecrets(const QString &setting_name);
0035     Q_SCRIPTABLE NMVariantMapMap GetSettings();
0036     Q_SCRIPTABLE void Save();
0037     Q_SCRIPTABLE void Update(const NMVariantMapMap &properties);
0038     Q_SCRIPTABLE void UpdateUnsaved(const NMVariantMapMap &properties);
0039 
0040 Q_SIGNALS:
0041     void connectionRemoved(const QDBusObjectPath &path);
0042     Q_SCRIPTABLE void Removed();
0043     Q_SCRIPTABLE void Updated();
0044     Q_SCRIPTABLE void PropertiesChanged(const QVariantMap &properties);
0045 
0046 private:
0047     bool m_unsaved;
0048     NMVariantMapMap m_settings;
0049 
0050     /* Not part of DBus interface */
0051     QString m_connectionPath;
0052 };
0053 
0054 #endif