mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-10-30 09:30:47 +03:00
Try to make windows notifications prettier
This commit is contained in:
parent
791cb660b5
commit
4142703990
5 changed files with 35 additions and 12 deletions
|
@ -15,7 +15,7 @@ echo %DATE%
|
|||
|
||||
|
||||
call "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Auxiliary/Build/vcvarsall.bat" x64
|
||||
cmake -G "Visual Studio 17 2022" -A x64 -S. -Bbuild -DHUNTER_ROOT="C:\hunter" -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON -DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release
|
||||
cmake -G "Visual Studio 17 2022" -A x64 -S. -Bbuild -DHUNTER_ROOT="C:\hunter" -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_KDSINGLEAPPLICATION=ON -DKDSingleApplication_STATIC=ON -DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release
|
||||
cmake --build build --config Release
|
||||
|
||||
|
||||
|
|
|
@ -647,14 +647,14 @@ if(APPLE)
|
|||
endif()
|
||||
elseif(WIN32)
|
||||
file(DOWNLOAD
|
||||
"https://raw.githubusercontent.com/mohabouje/WinToast/41ed1c58d5dce0ee9c01dbdeac05be45358d4f57/src/wintoastlib.cpp"
|
||||
"https://raw.githubusercontent.com/mohabouje/WinToast/v1.3.0/src/wintoastlib.cpp"
|
||||
${PROJECT_SOURCE_DIR}/src/wintoastlib.cpp
|
||||
EXPECTED_HASH SHA256=1A1A7CE41C1052B12946798F4A6C67CE1FAD209C967F5ED4D720B173527E2073)
|
||||
EXPECTED_HASH SHA256=1ddf8ee2604e1757d383a2f60d4d597c4f5d9496369e6a22586cedf4af77ca8f)
|
||||
|
||||
file(DOWNLOAD
|
||||
"https://raw.githubusercontent.com/mohabouje/WinToast/41ed1c58d5dce0ee9c01dbdeac05be45358d4f57/src/wintoastlib.h"
|
||||
"https://raw.githubusercontent.com/mohabouje/WinToast/v1.3.0/include/wintoastlib.h"
|
||||
${PROJECT_SOURCE_DIR}/src/wintoastlib.h
|
||||
EXPECTED_HASH SHA256=b4481023c5782733795838be22bf1a75f45d87458cd4d9a5a75f664a146eea11)
|
||||
EXPECTED_HASH SHA256=08cb30d28db9c851d3d4259ae6108ce7dafa966957df6735a06cd55e0716fded)
|
||||
|
||||
set(SRC_FILES ${SRC_FILES} src/notifications/ManagerWin.cpp src/wintoastlib.cpp src/wintoastlib.h)
|
||||
else()
|
||||
|
|
|
@ -93,8 +93,10 @@ public:
|
|||
|
||||
#if defined(Q_OS_WINDOWS)
|
||||
private:
|
||||
void
|
||||
systemPostNotification(const QString &line1, const QString &line2, const QString &iconPath);
|
||||
void systemPostNotification(const QString &line1,
|
||||
const QString &line2,
|
||||
const QString &iconPath,
|
||||
const QString &bodyImagePath);
|
||||
#endif
|
||||
|
||||
// these slots are platform specific (D-Bus only)
|
||||
|
|
|
@ -114,7 +114,8 @@ NotificationsManager::postNotification(const mtx::responses::Notification ¬if
|
|||
|
||||
if (hasMarkup_) {
|
||||
if (hasImages_ &&
|
||||
mtx::accessors::msg_type(notification.event) == mtx::events::MessageType::Image) {
|
||||
(mtx::accessors::msg_type(notification.event) == mtx::events::MessageType::Image ||
|
||||
mtx::accessors::msg_type(notification.event) == mtx::events::MessageType::Image)) {
|
||||
MxcImageProvider::download(
|
||||
QString::fromStdString(mtx::accessors::url(notification.event))
|
||||
.remove(QStringLiteral("mxc://")),
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include "Cache.h"
|
||||
#include "EventAccessors.h"
|
||||
#include "MxcImageProvider.h"
|
||||
#include "Utils.h"
|
||||
|
||||
using namespace WinToastLib;
|
||||
|
@ -34,9 +35,9 @@ init()
|
|||
{
|
||||
isInitialized = true;
|
||||
|
||||
WinToast::instance()->setAppName(L"Nheko");
|
||||
WinToast::instance()->setAppUserModelId(
|
||||
WinToast::configureAUMI(L"NhekoReborn", L"in.nheko.Nheko"));
|
||||
WinToast::instance()->setAppName(L"Nheko");
|
||||
if (!WinToast::instance()->initialize())
|
||||
std::wcout << "Your system is not compatible with toast notifications\n";
|
||||
}
|
||||
|
@ -61,20 +62,35 @@ NotificationsManager::postNotification(const mtx::responses::Notification ¬if
|
|||
}
|
||||
|
||||
return template_.arg(utils::stripReplyFallbacks(notification.event, {}, {}).quoted_body);
|
||||
};
|
||||
}();
|
||||
|
||||
auto iconPath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + room_name +
|
||||
"-room-avatar.png";
|
||||
if (!icon.save(iconPath))
|
||||
iconPath.clear();
|
||||
|
||||
systemPostNotification(room_name, formatNotification(), iconPath);
|
||||
if (mtx::accessors::msg_type(notification.event) == mtx::events::MessageType::Image ||
|
||||
mtx::accessors::msg_type(notification.event) == mtx::events::MessageType::Image) {
|
||||
MxcImageProvider::download(
|
||||
QString::fromStdString(mtx::accessors::url(notification.event))
|
||||
.remove(QStringLiteral("mxc://")),
|
||||
QSize(200, 80),
|
||||
[this, room_name, formatNotification, iconPath](QString, QSize, QImage, QString imgPath) {
|
||||
if (imgPath.isEmpty())
|
||||
systemPostNotification(room_name, formatNotification, iconPath, "");
|
||||
else
|
||||
systemPostNotification(room_name, formatNotification, iconPath, imgPath);
|
||||
});
|
||||
} else {
|
||||
systemPostNotification(room_name, formatNotification, iconPath, "");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
NotificationsManager::systemPostNotification(const QString &line1,
|
||||
const QString &line2,
|
||||
const QString &iconPath)
|
||||
const QString &iconPath,
|
||||
const QString &bodyImagePath)
|
||||
{
|
||||
if (!isInitialized)
|
||||
init();
|
||||
|
@ -85,6 +101,10 @@ NotificationsManager::systemPostNotification(const QString &line1,
|
|||
|
||||
if (!iconPath.isNull())
|
||||
templ.setImagePath(iconPath.toStdWString());
|
||||
if (!bodyImagePath.isNull())
|
||||
templ.setHeroImagePath(bodyImagePath.toStdWString(), true);
|
||||
|
||||
templ.setAudioPath(WinToastTemplate::IM);
|
||||
|
||||
WinToast::instance()->showToast(templ, new CustomHandler());
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue