Fix crash on exit on win7

This commit is contained in:
Nyall Dawson 2018-09-17 09:07:44 +10:00
parent 8790c4c99e
commit 40024255a5
2 changed files with 12 additions and 2 deletions

View File

@ -54,13 +54,15 @@ void QgsWinNative::initializeMainWindow( QWindow *window,
version.toStdWString() ) );
if ( WinToastLib::WinToast::instance()->initialize() )
{
mWinToastInitialized = true;
mCapabilities = mCapabilities | NativeDesktopNotifications;
}
}
void QgsWinNative::cleanup()
{
WinToastLib::WinToast::instance()->clear();
if ( mWinToastInitialized )
WinToastLib::WinToast::instance()->clear();
}
void QgsWinNative::openFileExplorerAndSelectFile( const QString &path )
@ -126,13 +128,20 @@ class NotificationHandler : public WinToastLib::IWinToastHandler
QgsNative::NotificationResult QgsWinNative::showDesktopNotification( const QString &summary, const QString &body, const QgsNative::NotificationSettings &settings )
{
NotificationResult result;
if ( !mWinToastInitialized )
{
result.successful = false;
return result;
}
WinToastLib::WinToastTemplate templ = WinToastLib::WinToastTemplate( WinToastLib::WinToastTemplate::ImageAndText02 );
templ.setImagePath( settings.pngAppIconPath.toStdWString() );
templ.setTextField( summary.toStdWString(), WinToastLib::WinToastTemplate::FirstLine );
templ.setTextField( body.toStdWString(), WinToastLib::WinToastTemplate::SecondLine );
templ.setDuration( WinToastLib::WinToastTemplate::Short );
NotificationResult result;
if ( WinToastLib::WinToast::instance()->showToast( templ, new NotificationHandler ) < 0 )
result.successful = false;
else

View File

@ -46,6 +46,7 @@ class NATIVE_EXPORT QgsWinNative : public QgsNative
private:
Capabilities mCapabilities = nullptr;
bool mWinToastInitialized = false;
QWinTaskbarButton *mTaskButton = nullptr;
QWinTaskbarProgress *mTaskProgress = nullptr;
};