File indexing completed on 2024-05-05 05:36:38
0001 /* 0002 SPDX-FileCopyrightText: 2018 Martin Kacej <m.kacej@atlas.sk> 0003 SPDX-FileCopyrightText: 2020-2021 Devin Lin <espidev@gmail.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include <QSharedPointer> 0011 0012 #include <KQuickConfigModule> 0013 0014 #include "mobileproviders.h" 0015 #include "modem.h" 0016 #include "modemdetails.h" 0017 #include "sim.h" 0018 0019 #include <NetworkManagerQt/CdmaSetting> 0020 #include <NetworkManagerQt/ConnectionSettings> 0021 #include <NetworkManagerQt/GsmSetting> 0022 #include <NetworkManagerQt/Manager> 0023 #include <NetworkManagerQt/ModemDevice> 0024 #include <NetworkManagerQt/Settings> 0025 0026 #include <ModemManagerQt/GenericTypes> 0027 #include <ModemManagerQt/Manager> 0028 #include <ModemManagerQt/ModemDevice> 0029 0030 class Sim; 0031 class Modem; 0032 class MobileProviders; 0033 0034 class InlineMessage : public QObject 0035 { 0036 Q_OBJECT 0037 Q_PROPERTY(int type READ type NOTIFY typeChanged) 0038 Q_PROPERTY(QString message READ message NOTIFY messageChanged) 0039 0040 public: 0041 enum Type { 0042 Information, 0043 Positive, 0044 Warning, 0045 Error, 0046 }; 0047 0048 InlineMessage(QObject *parent = nullptr, Type type = Information, QString message = ""); 0049 0050 Type type(); 0051 QString message(); 0052 0053 Q_SIGNALS: 0054 void typeChanged(); 0055 void messageChanged(); 0056 0057 private: 0058 Type m_type; 0059 QString m_message; 0060 }; 0061 0062 class CellularNetworkSettings : public KQuickConfigModule 0063 { 0064 Q_OBJECT 0065 Q_PROPERTY(bool modemFound READ modemFound NOTIFY modemFoundChanged) 0066 Q_PROPERTY(Modem *selectedModem READ selectedModem NOTIFY selectedModemChanged) 0067 Q_PROPERTY(QList<Sim *> sims READ sims NOTIFY simsChanged) 0068 Q_PROPERTY(QList<InlineMessage *> messages READ messages NOTIFY messagesChanged) 0069 0070 public: 0071 CellularNetworkSettings(QObject *parent, const KPluginMetaData &metaData); 0072 0073 static CellularNetworkSettings *instance(); 0074 0075 Modem *selectedModem(); 0076 QList<Modem *> modems(); 0077 QList<Sim *> sims(); 0078 0079 bool modemFound(); 0080 0081 QList<InlineMessage *> messages(); 0082 void addMessage(InlineMessage::Type type, QString msg); 0083 Q_INVOKABLE void removeMessage(int index); 0084 0085 Q_SIGNALS: 0086 void modemFoundChanged(); 0087 void selectedModemChanged(); 0088 void simsChanged(); 0089 void messagesChanged(); 0090 0091 private: 0092 void updateModemList(); 0093 void fillSims(); 0094 0095 QList<Modem *> m_modemList; 0096 QList<Sim *> m_simList; 0097 0098 QList<InlineMessage *> m_messages; 0099 0100 static CellularNetworkSettings *staticInst; 0101 };