Files
amnezia-client/client/amnezia_application.h
T

77 lines
1.8 KiB
C++
Raw Normal View History

2024-01-20 16:02:35 +03:00
#ifndef AMNEZIA_APPLICATION_H
#define AMNEZIA_APPLICATION_H
#include <QCommandLineParser>
#include <QNetworkAccessManager>
2024-01-20 16:02:35 +03:00
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QThread>
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
#include <QGuiApplication>
2024-01-20 16:02:35 +03:00
#else
#include <QApplication>
2024-01-20 16:02:35 +03:00
#endif
2025-02-22 14:42:09 +07:00
#include <QClipboard>
2024-01-20 16:02:35 +03:00
#include "core/controllers/coreController.h"
2024-01-20 16:02:35 +03:00
#include "settings.h"
#include "vpnconnection.h"
#define amnApp (static_cast<AmneziaApplication *>(QCoreApplication::instance()))
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
#define AMNEZIA_BASE_CLASS QGuiApplication
2024-01-20 16:02:35 +03:00
#else
#define AMNEZIA_BASE_CLASS QApplication
2024-01-20 16:02:35 +03:00
#endif
class AmneziaApplication : public AMNEZIA_BASE_CLASS
{
Q_OBJECT
public:
AmneziaApplication(int &argc, char *argv[]);
virtual ~AmneziaApplication();
void init();
void registerTypes();
void loadFonts();
bool parseCommands();
#if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) && !defined(MACOS_NE)
void startLocalServer();
#endif
2024-01-20 16:02:35 +03:00
QQmlApplicationEngine *qmlEngine() const;
2025-02-22 14:42:09 +07:00
QNetworkAccessManager *networkManager();
QClipboard *getClipboard();
2024-01-20 16:02:35 +03:00
2025-12-11 18:54:24 +08:00
public slots:
void forceQuit();
2024-01-20 16:02:35 +03:00
private:
2025-12-11 18:54:24 +08:00
static bool m_forceQuit;
2024-01-20 16:02:35 +03:00
QQmlApplicationEngine *m_engine {};
std::shared_ptr<Settings> m_settings;
QScopedPointer<CoreController> m_coreController;
2024-01-20 16:02:35 +03:00
QSharedPointer<ContainerProps> m_containerProps;
QSharedPointer<ProtocolProps> m_protocolProps;
QCommandLineParser m_parser;
QCommandLineOption m_optAutostart;
QCommandLineOption m_optCleanup;
2025-12-11 18:54:24 +08:00
QCommandLineOption m_optConnect;
QCommandLineOption m_optImport;
2024-01-20 16:02:35 +03:00
QSharedPointer<VpnConnection> m_vpnConnection;
QThread m_vpnConnectionThread;
QNetworkAccessManager *m_nam;
protected:
bool eventFilter(QObject *watched, QEvent *event) override;
2024-01-20 16:02:35 +03:00
};
#endif // AMNEZIA_APPLICATION_H