diff --git a/client/core/controllers/coreController.cpp b/client/core/controllers/coreController.cpp index 0e72ef1a..0d478a6a 100644 --- a/client/core/controllers/coreController.cpp +++ b/client/core/controllers/coreController.cpp @@ -243,6 +243,9 @@ void CoreController::initNotificationHandler() &ConnectionController::closeConnection); connect(this, &CoreController::translationsUpdated, m_notificationHandler.get(), &NotificationHandler::onTranslationsUpdated); #endif + + auto* trayHandler = qobject_cast(m_notificationHandler.get()); + connect(this, &CoreController::websiteUrlChanged, trayHandler, &SystemTrayNotificationHandler::updateWebsiteUrl); } void CoreController::updateTranslator(const QLocale &locale) @@ -279,6 +282,7 @@ void CoreController::updateTranslator(const QLocale &locale) m_engine->retranslate(); emit translationsUpdated(); + emit websiteUrlChanged(m_languageModel->getCurrentSiteUrl()); } void CoreController::initErrorMessagesHandler() @@ -335,6 +339,8 @@ void CoreController::initTranslationsUpdatedHandler() connect(m_languageModel.get(), &LanguageModel::updateTranslations, this, &CoreController::updateTranslator); connect(this, &CoreController::translationsUpdated, m_languageModel.get(), &LanguageModel::translationsUpdated); connect(this, &CoreController::translationsUpdated, m_connectionController.get(), &ConnectionController::onTranslationsUpdated); + //auto* trayHandler = qobject_cast(m_notificationHandler.get()); + //connect(this, &CoreController::websiteUrlChanged, trayHandler, &SystemTrayNotificationHandler::updateWebsiteUrl); } void CoreController::initAutoConnectHandler() diff --git a/client/core/controllers/coreController.h b/client/core/controllers/coreController.h index 9ae53562..2b18dca1 100644 --- a/client/core/controllers/coreController.h +++ b/client/core/controllers/coreController.h @@ -5,6 +5,8 @@ #include #include +#include "ui/systemtray_notificationhandler.h" + #include "ui/controllers/api/apiConfigsController.h" #include "ui/controllers/api/apiSettingsController.h" #include "ui/controllers/api/apiPremV1MigrationController.h" @@ -61,6 +63,7 @@ public: signals: void translationsUpdated(); + void websiteUrlChanged(const QString &newUrl); private: void initModels(); diff --git a/client/ui/systemtray_notificationhandler.cpp b/client/ui/systemtray_notificationhandler.cpp index e1361302..edb65530 100644 --- a/client/ui/systemtray_notificationhandler.cpp +++ b/client/ui/systemtray_notificationhandler.cpp @@ -35,7 +35,7 @@ SystemTrayNotificationHandler::SystemTrayNotificationHandler(QObject* parent) : m_menu.addSeparator(); m_trayActionVisitWebSite = m_menu.addAction(QIcon(":/images/tray/link.png"), tr("Visit Website"), [&](){ - QDesktopServices::openUrl(QUrl("https://amnezia.org")); + QDesktopServices::openUrl(QUrl(websiteUrl)); }); m_trayActionQuit = m_menu.addAction(QIcon(":/images/tray/cancel.png"), tr("Quit") + " " + APPLICATION_NAME, this, [&](){ @@ -64,6 +64,11 @@ void SystemTrayNotificationHandler::onTranslationsUpdated() m_trayActionQuit->setText(tr("Quit")+ " " + APPLICATION_NAME); } +void SystemTrayNotificationHandler::updateWebsiteUrl(const QString &newWebsiteUrl) { + qDebug() << "Updated website URL:" << newWebsiteUrl; + websiteUrl = newWebsiteUrl; +} + void SystemTrayNotificationHandler::setTrayIcon(const QString &iconPath) { QIcon trayIconMask(QPixmap(iconPath).scaled(128,128)); diff --git a/client/ui/systemtray_notificationhandler.h b/client/ui/systemtray_notificationhandler.h index 60bf0b35..d1458021 100644 --- a/client/ui/systemtray_notificationhandler.h +++ b/client/ui/systemtray_notificationhandler.h @@ -21,6 +21,9 @@ public: void onTranslationsUpdated() override; +public slots: + void updateWebsiteUrl(const QString &newWebsiteUrl); + protected: virtual void notify(Message type, const QString& title, const QString& message, int timerMsec) override; @@ -48,6 +51,7 @@ private: const QString ConnectedTrayIconName = "active.png"; const QString DisconnectedTrayIconName = "default.png"; const QString ErrorTrayIconName = "error.png"; + QString websiteUrl = "https://amnezia.org"; }; #endif // SYSTEMTRAY_NOTIFICATIONHANDLER_H