kylin-nm/plugins/mobilehotspot/mobilehotspotwidget.h

143 lines
3.6 KiB
C
Raw Normal View History

2021-10-27 12:28:16 +08:00
#ifndef MOBILEHOTSPOTWIDGET_H
#define MOBILEHOTSPOTWIDGET_H
#include <QWidget>
#include <QLabel>
#include <QHBoxLayout>
#include <QPushButton>
#include <QComboBox>
#include <QLineEdit>
#include <QCheckBox>
#include <QTranslator>
#include <QApplication>
#include <QTimer>
2021-10-27 12:28:16 +08:00
#include <QDBusMessage>
#include <QDBusObjectPath>
#include <QDBusInterface>
#include <QDBusReply>
#include <QDBusMetaType>
#include <QScrollArea>
2021-10-27 12:28:16 +08:00
#include "titlelabel.h"
#include "kwidget.h"
#include "kswitchbutton.h"
#include "kpasswordedit.h"
#include "connectdevlistitem.h"
#include "blacklistpage.h"
#include "connectdevpage.h"
using namespace kdk;
2021-10-27 12:28:16 +08:00
class MobileHotspotWidget : public QWidget
{
Q_OBJECT
public:
explicit MobileHotspotWidget(QWidget *parent = nullptr);
~MobileHotspotWidget();
private:
QFrame *m_switchFrame = nullptr; //开关
QFrame *m_ApNameFrame = nullptr; //wifi名称
QFrame *m_passwordFrame = nullptr; //密码
QFrame *m_freqBandFrame = nullptr; //频带
QFrame *m_interfaceFrame = nullptr; //网卡
KSwitchButton *m_switchBtn;
2021-10-27 12:28:16 +08:00
TitleLabel *m_hotspotTitleLabel;
QLabel *m_switchLabel;
QLabel *m_apNameLabel;
QLabel *m_pwdLabel;
QLabel *m_pwdHintLabel;
2021-10-27 12:28:16 +08:00
QLabel *m_freqBandLabel;
QLabel *m_interfaceLabel;
QFrame *switchAndApNameLine;
QFrame *apNameAndPwdLine;
QFrame *pwdAndfreqBandLine;
QFrame *freqBandAndInterfaceLine;
QVBoxLayout *m_Vlayout;
2021-10-27 12:28:16 +08:00
QLineEdit *m_apNameLine;
KPasswordEdit *m_pwdNameLine;
2021-10-27 12:28:16 +08:00
QComboBox *m_freqBandComboBox;
QComboBox *m_interfaceComboBox;
QDBusInterface *m_interface = nullptr;
QString m_interfaceName = "";
QGSettings *m_switchGsettings = nullptr;
QString m_uuid = "";
QString m_hostName = "";
void initUI();
void initDbusConnect();
void initInterfaceInfo();
void getApInfo();
bool getApInfoBySsid(QString devName, QString ssid, QStringList &info);
void setSwitchFrame();
void setApNameFrame();
void setPasswordFrame();
void setFreqBandFrame();
void setInterFaceFrame();
void setUiEnabled(bool enable);
void setWidgetHidden(bool isHidden);
void showDesktopNotify(const QString &message);
void updateBandCombox();
QString getHostName();
bool eventFilter(QObject *watched, QEvent *event);
void paintEvent(QPaintEvent *event);
QFrame* myLine();
QDBusInterface *m_activePathInterface = nullptr;
QDBusInterface *m_settingPathInterface = nullptr;
ConnectdevPage * m_connectDevPage = nullptr;
BlacklistPage *m_blacklistPage = nullptr;
QString getActivePathByUuid();
QString getSettingPathByUuid();
void initNmDbus();
void initActivePathInterface(QString path);
void deleteActivePathInterface();
void initSettingPathInterface(QString path);
void deleteSettingPathInterface();
void initConnectDevPage();
void initBlackListPage();
2021-10-27 12:28:16 +08:00
signals:
private slots:
void onActivateFailed(QString errorMessage);
void onDeactivateFailed(QString errorMessage);
//设备插拔
void onDeviceStatusChanged();
void onDeviceNameChanged(QString oldName, QString newName, int type);
//热点断开
void onHotspotDeactivated(QString devName, QString ssid);
//热点连接
void onHotspotActivated(QString devName, QString ssid, QString uuid, QString activePath, QString settingPath);
2021-10-27 12:28:16 +08:00
void onGsettingChanged(const QString &key);
void onActiveConnectionChanged(QString deviceName, QString ssid, QString uuid, int status);
void onApLineEditTextEdit(QString text);
2021-10-27 12:28:16 +08:00
2022-06-30 14:58:47 +08:00
void onPwdTextChanged();
2021-10-27 12:28:16 +08:00
};
#endif // MOBILEHOTSPOTWIDGET_H