Files
amnezia-client/client/ui/controllers/exportController.h
T

69 lines
2.0 KiB
C++
Raw Normal View History

2023-06-13 20:03:20 +09:00
#ifndef EXPORTCONTROLLER_H
#define EXPORTCONTROLLER_H
#include <QObject>
#include "configurators/vpn_configurator.h"
#include "ui/models/containers_model.h"
#include "ui/models/servers_model.h"
#ifdef Q_OS_ANDROID
#include "platforms/android/authResultReceiver.h"
#endif
2023-06-13 20:03:20 +09:00
class ExportController : public QObject
{
Q_OBJECT
public:
explicit ExportController(const QSharedPointer<ServersModel> &serversModel,
const QSharedPointer<ContainersModel> &containersModel,
const std::shared_ptr<Settings> &settings,
const std::shared_ptr<VpnConfigurator> &configurator, QObject *parent = nullptr);
2023-06-13 20:03:20 +09:00
Q_PROPERTY(QList<QString> qrCodes READ getQrCodes NOTIFY exportConfigChanged)
Q_PROPERTY(int qrCodesCount READ getQrCodesCount NOTIFY exportConfigChanged)
2023-07-14 13:14:50 +09:00
Q_PROPERTY(QString config READ getConfig NOTIFY exportConfigChanged)
2023-06-13 20:03:20 +09:00
public slots:
void generateFullAccessConfig();
#if defined(Q_OS_ANDROID)
void generateFullAccessConfigAndroid();
#endif
2023-06-13 20:03:20 +09:00
void generateConnectionConfig();
void generateOpenVpnConfig();
void generateWireGuardConfig();
2023-07-14 13:14:50 +09:00
QString getConfig();
2023-06-13 20:03:20 +09:00
QList<QString> getQrCodes();
2023-08-30 15:10:44 +05:00
void saveFile(const QString &fileName);
2023-06-13 20:03:20 +09:00
signals:
void generateConfig(int type);
2023-08-08 19:10:14 +05:00
void exportErrorOccurred(const QString &errorMessage);
void exportConfigChanged();
2023-06-13 20:03:20 +09:00
private:
QList<QString> generateQrCodeImageSeries(const QByteArray &data);
QString svgToBase64(const QString &image);
int getQrCodesCount();
void clearPreviousConfig();
2023-06-13 20:03:20 +09:00
QSharedPointer<ServersModel> m_serversModel;
QSharedPointer<ContainersModel> m_containersModel;
std::shared_ptr<Settings> m_settings;
std::shared_ptr<VpnConfigurator> m_configurator;
2023-07-14 13:14:50 +09:00
QString m_config;
2023-06-13 20:03:20 +09:00
QList<QString> m_qrCodes;
#ifdef Q_OS_ANDROID
QSharedPointer<AuthResultNotifier> m_authResultNotifier;
QSharedPointer<QAndroidActivityResultReceiver> m_authResultReceiver;
#endif
2023-06-13 20:03:20 +09:00
};
#endif // EXPORTCONTROLLER_H