@@ -54,13 +54,15 @@ void QgsWinNative::initializeMainWindow( QWindow *window,
54
54
version.toStdWString () ) );
55
55
if ( WinToastLib::WinToast::instance ()->initialize () )
56
56
{
57
+ mWinToastInitialized = true ;
57
58
mCapabilities = mCapabilities | NativeDesktopNotifications;
58
59
}
59
60
}
60
61
61
62
void QgsWinNative::cleanup ()
62
63
{
63
- WinToastLib::WinToast::instance ()->clear ();
64
+ if ( mWinToastInitialized )
65
+ WinToastLib::WinToast::instance ()->clear ();
64
66
}
65
67
66
68
void QgsWinNative::openFileExplorerAndSelectFile ( const QString &path )
@@ -126,13 +128,20 @@ class NotificationHandler : public WinToastLib::IWinToastHandler
126
128
127
129
QgsNative::NotificationResult QgsWinNative::showDesktopNotification ( const QString &summary, const QString &body, const QgsNative::NotificationSettings &settings )
128
130
{
131
+ NotificationResult result;
132
+ if ( !mWinToastInitialized )
133
+ {
134
+ result.successful = false ;
135
+ return result;
136
+ }
137
+
129
138
WinToastLib::WinToastTemplate templ = WinToastLib::WinToastTemplate ( WinToastLib::WinToastTemplate::ImageAndText02 );
130
139
templ.setImagePath ( settings.pngAppIconPath .toStdWString () );
131
140
templ.setTextField ( summary.toStdWString (), WinToastLib::WinToastTemplate::FirstLine );
132
141
templ.setTextField ( body.toStdWString (), WinToastLib::WinToastTemplate::SecondLine );
133
142
templ.setDuration ( WinToastLib::WinToastTemplate::Short );
134
143
135
- NotificationResult result;
144
+
136
145
if ( WinToastLib::WinToast::instance ()->showToast ( templ, new NotificationHandler ) < 0 )
137
146
result.successful = false ;
138
147
else
0 commit comments