#ifndef EXPORTCONTROLLER_H #define EXPORTCONTROLLER_H #include #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 class ExportController : public QObject { Q_OBJECT public: explicit ExportController(const QSharedPointer &serversModel, const QSharedPointer &containersModel, const std::shared_ptr &settings, const std::shared_ptr &configurator, QObject *parent = nullptr); Q_PROPERTY(QList qrCodes READ getQrCodes NOTIFY exportConfigChanged) Q_PROPERTY(int qrCodesCount READ getQrCodesCount NOTIFY exportConfigChanged) Q_PROPERTY(QString config READ getConfig NOTIFY exportConfigChanged) public slots: void generateFullAccessConfig(); #if defined(Q_OS_ANDROID) void generateFullAccessConfigAndroid(); #endif void generateConnectionConfig(); void generateOpenVpnConfig(); void generateWireGuardConfig(); QString getConfig(); QList getQrCodes(); void saveFile(); signals: void generateConfig(int type); void exportErrorOccurred(QString errorMessage); void exportConfigChanged(); private: QList generateQrCodeImageSeries(const QByteArray &data); QString svgToBase64(const QString &image); int getQrCodesCount(); void clearPreviousConfig(); QSharedPointer m_serversModel; QSharedPointer m_containersModel; std::shared_ptr m_settings; std::shared_ptr m_configurator; QString m_config; QList m_qrCodes; #ifdef Q_OS_ANDROID QSharedPointer m_authResultNotifier; QSharedPointer m_authResultReceiver; #endif }; #endif // EXPORTCONTROLLER_H