File indexing completed on 2024-05-05 05:36:40

0001 // SPDX-FileCopyrightText: 2021-2022 Devin Lin <devin@kde.org>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003 
0004 #pragma once
0005 
0006 #include "cellularnetworksettings.h"
0007 #include "modemdetails.h"
0008 #include "sim.h"
0009 
0010 #include <QList>
0011 #include <QString>
0012 
0013 #include <NetworkManagerQt/CdmaSetting>
0014 #include <NetworkManagerQt/ConnectionSettings>
0015 #include <NetworkManagerQt/GsmSetting>
0016 #include <NetworkManagerQt/Manager>
0017 #include <NetworkManagerQt/ModemDevice>
0018 #include <NetworkManagerQt/Settings>
0019 
0020 #include <ModemManagerQt/GenericTypes>
0021 #include <ModemManagerQt/Manager>
0022 #include <ModemManagerQt/Modem3Gpp>
0023 #include <ModemManagerQt/ModemDevice>
0024 
0025 class ProfileSettings : public QObject
0026 {
0027     Q_OBJECT
0028     Q_PROPERTY(QString name READ name NOTIFY nameChanged)
0029     Q_PROPERTY(QString apn READ apn WRITE setApn NOTIFY apnChanged)
0030     Q_PROPERTY(QString user READ user WRITE setUser NOTIFY userChanged)
0031     Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged)
0032     Q_PROPERTY(QString networkType READ networkType WRITE setNetworkType NOTIFY networkTypeChanged)
0033     Q_PROPERTY(QString connectionUni READ connectionUni NOTIFY connectionUniChanged)
0034 
0035 public:
0036     ProfileSettings(QObject *parent = nullptr)
0037         : QObject{parent}
0038     {
0039     }
0040     ProfileSettings(QObject *parent,
0041                     QString name,
0042                     QString apn,
0043                     QString user,
0044                     QString password,
0045                     NetworkManager::GsmSetting::NetworkType networkType,
0046                     QString connectionUni);
0047     ProfileSettings(QObject *parent, NetworkManager::Setting::Ptr settings, NetworkManager::Connection::Ptr connection);
0048 
0049     QString name();
0050     QString apn();
0051     void setApn(QString apn);
0052     QString user();
0053     void setUser(QString user);
0054     QString password();
0055     void setPassword(QString password);
0056     QString networkType();
0057     void setNetworkType(QString ipType);
0058     QString connectionUni();
0059 
0060     // utilities
0061     static QString networkTypeStr(NetworkManager::GsmSetting::NetworkType networkType);
0062     static NetworkManager::GsmSetting::NetworkType networkTypeFlag(const QString &networkType);
0063 
0064 Q_SIGNALS:
0065     void nameChanged();
0066     void apnChanged();
0067     void userChanged();
0068     void passwordChanged();
0069     void networkTypeChanged();
0070     void connectionUniChanged();
0071 
0072 private:
0073     QString m_name;
0074     QString m_apn;
0075     QString m_user;
0076     QString m_password;
0077     QString m_networkType;
0078     QString m_connectionUni;
0079 };