File: profilesettings.cpp

package info (click to toggle)
plasma-mobile 6.5.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 20,412 kB
  • sloc: xml: 38,474; cpp: 18,529; javascript: 139; sh: 82; makefile: 5
file content (139 lines) | stat: -rw-r--r-- 4,377 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
// SPDX-FileCopyrightText: 2022 Devin Lin <espidev@gmail.com>
// SPDX-License-Identifier: GPL-2.0-or-later

#include "profilesettings.h"

#include <KLocalizedString>

ProfileSettings::ProfileSettings(QObject *parent,
                                 const QString &name,
                                 const QString &apn,
                                 const QString &user,
                                 const QString &password,
                                 NetworkManager::GsmSetting::NetworkType networkType,
                                 const QString &connectionUni)
    : QObject{parent}
    , m_name(name)
    , m_apn(apn)
    , m_user(user)
    , m_password(password)
    , m_networkType(networkTypeStr(networkType))
    , m_connectionUni(connectionUni)
{
    setParent(parent);
}

ProfileSettings::ProfileSettings(QObject *parent, NetworkManager::Setting::Ptr setting, NetworkManager::Connection::Ptr connection)
    : QObject{parent}
    , m_connectionUni(connection->uuid())
{
    NetworkManager::GsmSetting::Ptr gsmSetting = setting.staticCast<NetworkManager::GsmSetting>();

    m_name = connection->name();
    m_apn = gsmSetting->apn();
    m_user = gsmSetting->username();
    m_password = gsmSetting->password();
    m_networkType = networkTypeStr(gsmSetting->networkType());
}

QString ProfileSettings::name() const
{
    return m_name;
}

QString ProfileSettings::apn() const
{
    return m_apn;
}

void ProfileSettings::setApn(const QString &apn)
{
    if (apn != m_apn) {
        m_apn = apn;
        Q_EMIT apnChanged();
    }
}

QString ProfileSettings::user() const
{
    return m_user;
}

void ProfileSettings::setUser(const QString &user)
{
    if (user != m_user) {
        m_user = user;
        Q_EMIT userChanged();
    }
}

QString ProfileSettings::password() const
{
    return m_password;
}

void ProfileSettings::setPassword(const QString &password)
{
    if (password != m_password) {
        m_password = password;
        Q_EMIT passwordChanged();
    }
}

QString ProfileSettings::networkType() const
{
    return m_networkType;
}

void ProfileSettings::setNetworkType(const QString &networkType)
{
    if (networkType != m_networkType) {
        m_networkType = networkType;
        Q_EMIT networkTypeChanged();
    }
}

QString ProfileSettings::connectionUni() const
{
    return m_connectionUni;
}

QString ProfileSettings::networkTypeStr(NetworkManager::GsmSetting::NetworkType networkType)
{
    if (networkType == NetworkManager::GsmSetting::NetworkType::Any) {
        return QStringLiteral("Any");
    } else if (networkType == NetworkManager::GsmSetting::NetworkType::GprsEdgeOnly) {
        return QStringLiteral("Only 2G");
    } else if (networkType == NetworkManager::GsmSetting::NetworkType::Only3G) {
        return QStringLiteral("Only 3G");
    } else if (networkType == NetworkManager::GsmSetting::NetworkType::Only4GLte) {
        return QStringLiteral("Only 4G");
    } else if (networkType == NetworkManager::GsmSetting::NetworkType::Prefer2G) {
        return QStringLiteral("2G");
    } else if (networkType == NetworkManager::GsmSetting::NetworkType::Prefer3G) {
        return QStringLiteral("3G/2G");
    } else if (networkType == NetworkManager::GsmSetting::NetworkType::Prefer4GLte) {
        return QStringLiteral("4G/3G/2G");
    }
    return QStringLiteral("Any");
}

NetworkManager::GsmSetting::NetworkType ProfileSettings::networkTypeFlag(const QString &networkType)
{
    if (networkType == QStringLiteral("Any")) {
        return NetworkManager::GsmSetting::NetworkType::Any;
    } else if (networkType == QStringLiteral("Only 2G")) {
        return NetworkManager::GsmSetting::NetworkType::GprsEdgeOnly;
    } else if (networkType == QStringLiteral("Only 3G")) {
        return NetworkManager::GsmSetting::NetworkType::Only3G;
    } else if (networkType == QStringLiteral("Only 4G")) {
        return NetworkManager::GsmSetting::NetworkType::Only4GLte;
    } else if (networkType == QStringLiteral("2G")) {
        return NetworkManager::GsmSetting::NetworkType::Prefer2G;
    } else if (networkType == QStringLiteral("3G/2G")) {
        return NetworkManager::GsmSetting::NetworkType::Prefer3G;
    } else if (networkType == QStringLiteral("4G/3G/2G")) {
        return NetworkManager::GsmSetting::NetworkType::Prefer4GLte;
    }
    return NetworkManager::GsmSetting::NetworkType::Any;
}