Files
amnezia-client/client/amnezia_application.h
T

67 lines
1.7 KiB
C++
Raw Normal View History

2022-08-25 12:47:02 +03:00
#ifndef AMNEZIA_APPLICATION_H
#define AMNEZIA_APPLICATION_H
#include <QApplication>
#include <QGuiApplication>
#include <QCommandLineParser>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include "settings.h"
#include "ui/uilogic.h"
2022-08-25 17:35:28 +03:00
#include "configurators/vpn_configurator.h"
#include "ui/models/servers_model.h"
#include "ui/models/containers_model.h"
2022-08-25 12:47:02 +03:00
2022-08-29 01:32:42 +03:00
#define amnApp (static_cast<AmneziaApplication *>(QCoreApplication::instance()))
2022-08-26 00:35:03 +03:00
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
2022-08-26 00:58:24 +03:00
#define AMNEZIA_BASE_CLASS QApplication
2022-08-26 00:35:03 +03:00
#else
2022-08-25 12:47:02 +03:00
#define AMNEZIA_BASE_CLASS SingleApplication
2022-08-26 00:35:03 +03:00
#define QAPPLICATION_CLASS QApplication
2022-08-25 12:47:02 +03:00
#include "singleapplication.h"
#endif
class AmneziaApplication : public AMNEZIA_BASE_CLASS
{
Q_OBJECT
public:
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
AmneziaApplication(int &argc, char *argv[]);
#else
AmneziaApplication(int &argc, char *argv[], bool allowSecondary = false,
SingleApplication::Options options = SingleApplication::User, int timeout = 1000, const QString &userData = {} );
#endif
virtual ~AmneziaApplication();
void init();
void registerTypes();
void loadFonts();
void loadTranslator();
2022-08-31 16:54:46 +03:00
bool parseCommands();
2022-08-25 12:47:02 +03:00
2022-08-29 01:32:42 +03:00
QQmlApplicationEngine *qmlEngine() const;
2022-08-25 12:47:02 +03:00
private:
2022-08-31 16:54:46 +03:00
QQmlApplicationEngine *m_engine {};
UiLogic *m_uiLogic {};
2022-08-25 12:47:02 +03:00
std::shared_ptr<Settings> m_settings;
2022-08-25 17:35:28 +03:00
std::shared_ptr<VpnConfigurator> m_configurator;
2022-08-25 12:47:02 +03:00
2022-08-31 16:54:46 +03:00
ContainerProps* m_containerProps {};
ProtocolProps* m_protocolProps {};
2022-08-26 00:35:03 +03:00
2022-08-25 12:47:02 +03:00
QTranslator* m_translator;
QCommandLineParser m_parser;
QScopedPointer<ContainersModel> m_containersModel;
QScopedPointer<ServersModel> m_serversModel;
2022-08-25 12:47:02 +03:00
};
#endif // AMNEZIA_APPLICATION_H