added autostart and start minimized options

- added disabling split tunneling when selecting the wireguard protocol
- if for macos the application is minimized to tray, then now it is not displayed in the dock
This commit is contained in:
vladimir.kuznetsov 2023-08-24 14:53:52 +05:00
parent 23ad006187
commit 4c79905f5b
8 changed files with 173 additions and 44 deletions

View file

@ -5,9 +5,13 @@
#include "../../platforms/android/androidutils.h"
#include <QJniObject>
#endif
#if defined Q_OS_MAC
#include "ui/macos_util.h"
#endif
PageController::PageController(const QSharedPointer<ServersModel> &serversModel, QObject *parent)
: QObject(parent), m_serversModel(serversModel)
PageController::PageController(const QSharedPointer<ServersModel> &serversModel,
const std::shared_ptr<Settings> &settings, QObject *parent)
: QObject(parent), m_serversModel(serversModel), m_settings(settings)
{
#ifdef Q_OS_ANDROID
// Change color of navigation and status bar's
@ -23,6 +27,9 @@ PageController::PageController(const QSharedPointer<ServersModel> &serversModel,
}
});
#endif
connect(this, &PageController::raiseMainWindow, []() { setDockIconVisible(true); });
connect(this, &PageController::hideMainWindow, []() { setDockIconVisible(false); });
}
QString PageController::getInitialPage()
@ -88,3 +95,16 @@ void PageController::updateNavigationBarColor(const int color)
});
#endif
}
void PageController::showOnStartup()
{
if (!m_settings->isStartMinimized()) {
emit raiseMainWindow();
} else {
#ifdef Q_OS_WIN
emit hideMainWindow();
#elif defined Q_OS_MACX
setDockIconVisible(false);
#endif
}
}

View file

@ -63,7 +63,8 @@ class PageController : public QObject
{
Q_OBJECT
public:
explicit PageController(const QSharedPointer<ServersModel> &serversModel, QObject *parent = nullptr);
explicit PageController(const QSharedPointer<ServersModel> &serversModel, const std::shared_ptr<Settings> &settings,
QObject *parent = nullptr);
public slots:
QString getInitialPage();
@ -75,6 +76,8 @@ public slots:
unsigned int getInitialPageNavigationBarColor();
void updateNavigationBarColor(const int color);
void showOnStartup();
signals:
void goToPageHome();
void goToPageSettings();
@ -100,6 +103,8 @@ signals:
private:
QSharedPointer<ServersModel> m_serversModel;
std::shared_ptr<Settings> m_settings;
};
#endif // PAGECONTROLLER_H

View file

@ -4,6 +4,7 @@
#include "fileUtilites.h"
#include "logger.h"
#include "ui/qautostart.h"
#include "version.h"
SettingsController::SettingsController(const QSharedPointer<ServersModel> &serversModel,
@ -137,3 +138,23 @@ void SettingsController::toggleAutoConnect(bool enable)
{
m_settings->setAutoConnect(enable);
}
bool SettingsController::isAutoStartEnabled()
{
return Autostart::isAutostart();
}
void SettingsController::toggleAutoStart(bool enable)
{
Autostart::setAutostart(enable);
}
bool SettingsController::isStartMinimizedEnabled()
{
return m_settings->isStartMinimized();
}
void SettingsController::toggleStartMinimized(bool enable)
{
m_settings->setStartMinimized(enable);
}

View file

@ -48,6 +48,12 @@ public slots:
bool isAutoConnectEnabled();
void toggleAutoConnect(bool enable);
bool isAutoStartEnabled();
void toggleAutoStart(bool enable);
bool isStartMinimizedEnabled();
void toggleStartMinimized(bool enable);
signals:
void primaryDnsChanged();
void secondaryDnsChanged();