kylin-nm/src-vpn/kylin-vpn-dbus/kylinvpndbus.h

58 lines
1.5 KiB
C
Raw Permalink Normal View History

2023-04-18 11:43:18 +08:00
#ifndef KYLINVPNDBUS_H
#define KYLINVPNDBUS_H
#include <QObject>
2023-07-19 17:38:27 +08:00
#include <QThread>
2023-04-18 11:43:18 +08:00
#include <QDBusMetaType>
#include <QMetaObject>
#include <QMetaType>
#include <QDBusConnection>
#include <kylin-nm/kylinnetworkmanager.h>
2023-07-19 17:38:27 +08:00
#include "vpnobject.h"
2023-04-18 11:43:18 +08:00
class KylinVpnDbus : public QObject
{
Q_OBJECT
2023-07-19 17:38:27 +08:00
Q_CLASSINFO("D-Bus Interface", "com.kylin.kylinvpn")
2023-04-18 11:43:18 +08:00
public:
explicit KylinVpnDbus(QObject *parent = nullptr);
~KylinVpnDbus() = default;
2023-07-20 11:31:46 +08:00
inline VpnObject *parent() const
{ return static_cast<VpnObject *>(QObject::parent()); }
2023-07-19 17:38:27 +08:00
private:
KyNetworkManager* m_manager;
QThread* m_thread;
void initDbusConnect();
bool launchApp(QString desktopFile);
void runExternalApp();
2023-04-18 11:43:18 +08:00
public Q_SLOTS:
2023-07-19 17:38:27 +08:00
QVector<QStringList> getVirtualList();
2023-04-18 11:43:18 +08:00
//删除
Q_NOREPLY void deleteVpn(const QString &connUuid);
//连接
Q_NOREPLY void activateVpn(const QString& connUuid);
//断开
Q_NOREPLY void deactivateVpn(const QString& connUuid);
void showKylinVpn();
Q_NOREPLY void showVpnAddWidget();
Q_NOREPLY void showDetailPage(const QString& connUuid);
2023-07-19 17:38:27 +08:00
private Q_SLOTS:
void sendVpnAddSignal(QString connectUuid, QString connectName, QString connectPath);
void sendVpnUpdateSignal(QString connectUuid, QString connectName, QString connectPath);
2023-04-18 11:43:18 +08:00
Q_SIGNALS:
void vpnAdd(QStringList info);
void vpnRemove(QString dbusPath);
void vpnUpdate(QStringList info);
void vpnActiveConnectionStateChanged(QString uuid, int status);
};
#endif // KYLINVPNDBUS_H