Files
amnezia-client/client/ui/controllers/importUiController.h
T
yp fb5666057b feat: add extended vless configuration (#2566)
* update UI XRay, add new page PageProtocolXrayTransportSettings.qml PageProtocolXrayXmuxSettings.qml PageProtocolXrayXPaddingSettings.qml

* add UI PageProtocolXrayConfigsSettings, PageProtocolXrayFlowSettings, PageProtocolXraySecuritySettings

* add Xray-specific keys

* add vars xray model

* add new qml padding, update model

* update model and export

* rename file & update name class & update list xray

* fixed ui

* add save file in temp

* remove debug macros

* fixed build windows

* fix path Windows

* remove save config

* fixed changes

* fixed conf

* fixed UI

* fixed size & button save

* fixed build iOS

* fix: fixed headers base control

---------

Co-authored-by: vkamn <vk@amnezia.org>
2026-05-18 22:35:01 +08:00

70 lines
2.0 KiB
C++

#ifndef IMPORTUICONTROLLER_H
#define IMPORTUICONTROLLER_H
#include <QObject>
#include "core/controllers/selfhosted/importController.h"
class ImportUiController : public QObject
{
Q_OBJECT
Q_PROPERTY(QString config READ getConfig NOTIFY importConfigChanged)
Q_PROPERTY(QString configFileName READ getConfigFileName NOTIFY importConfigChanged)
Q_PROPERTY(QString maliciousWarningText READ getMaliciousWarningText NOTIFY importConfigChanged)
Q_PROPERTY(bool isNativeWireGuardConfig READ isNativeWireGuardConfig NOTIFY importConfigChanged)
public:
explicit ImportUiController(ImportController* importController, QObject *parent = nullptr);
public slots:
void importConfig();
void clearConfigFileName();
bool extractConfigFromFile(const QString &fileName);
bool extractConfigFromData(QString data);
bool extractConfigFromQr(const QByteArray &data);
QString getConfig();
QString getConfigFileName();
QString getMaliciousWarningText();
bool isNativeWireGuardConfig();
void processNativeWireGuardConfig();
QString readTextFile(const QString &fileName);
#if defined Q_OS_ANDROID || defined Q_OS_IOS
void startDecodingQr();
bool parseQrCodeChunk(const QString &code);
double getQrCodeScanProgressBarValue();
QString getQrCodeScanProgressString();
#endif
#if defined Q_OS_ANDROID
static bool decodeQrCode(const QString &code);
#endif
signals:
void importFinished();
void importErrorOccurred(ErrorCode errorCode, bool goToPageHome);
void qrDecodingFinished();
void restoreAppConfig(const QByteArray &data);
void importConfigChanged();
private:
#if defined Q_OS_ANDROID || defined Q_OS_IOS
void stopDecodingQr();
#endif
ImportController* m_importController;
QJsonObject m_config;
QString m_configFileName;
QString m_maliciousWarningText;
bool m_isNativeWireGuardConfig;
#if defined Q_OS_ANDROID
static ImportUiController* mInstance;
#endif
};
#endif // IMPORTUICONTROLLER_H