mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-12 00:02:25 -04:00
[mac] display icon in notification (#7734)
there is 2 icons in notifications, one from the app itself and one set from the notification the icon application seems not to be set correctly on mac for now only the windon icon is set in main.cpp with myApp.setWindowIcon the icon defined in application plist does not seem to be correctly set ...so in this PR we set the notification icon to be the QGIS one, so it looks nicer
This commit is contained in:
parent
5c7f13b3a4
commit
2810c92f01
@ -115,7 +115,9 @@ QgsGui::~QgsGui()
|
||||
QgsGui::QgsGui()
|
||||
{
|
||||
#ifdef Q_OS_MAC
|
||||
mNative = new QgsMacNative();
|
||||
QgsMacNative *macNative = new QgsMacNative();
|
||||
macNative->setIconPath( QgsApplication::iconsPath() + QStringLiteral( "qgis-icon-macos.png" ) );
|
||||
mNative = macNative;
|
||||
#elif defined (Q_OS_WIN)
|
||||
mNative = new QgsWinNative();
|
||||
#elif defined(Q_OS_LINUX)
|
||||
|
@ -29,6 +29,9 @@ class NATIVE_EXPORT QgsMacNative : public QgsNative
|
||||
explicit QgsMacNative();
|
||||
~QgsMacNative() override;
|
||||
|
||||
//! reset the application icon used in the notification
|
||||
void setIconPath( const QString &iconPath = QString() );
|
||||
|
||||
virtual const char *currentAppLocalizedName();
|
||||
void currentAppActivateIgnoringOtherApps() override;
|
||||
void openFileExplorerAndSelectFile( const QString &path ) override;
|
||||
|
@ -42,6 +42,7 @@ class QgsMacNative::QgsUserNotificationCenter
|
||||
{
|
||||
public:
|
||||
QgsUserNotificationCenterDelegate *_qgsUserNotificationCenter;
|
||||
NSImage *_qgisIcon;
|
||||
};
|
||||
|
||||
QgsMacNative::QgsMacNative()
|
||||
@ -57,6 +58,11 @@ QgsMacNative::~QgsMacNative()
|
||||
delete mQgsUserNotificationCenter;
|
||||
}
|
||||
|
||||
void QgsMacNative::setIconPath( const QString &iconPath )
|
||||
{
|
||||
mQgsUserNotificationCenter->_qgisIcon = QtMac::toNSImage( QPixmap( iconPath ) );
|
||||
}
|
||||
|
||||
const char *QgsMacNative::currentAppLocalizedName()
|
||||
{
|
||||
return [[[NSRunningApplication currentApplication] localizedName] UTF8String];
|
||||
@ -92,7 +98,10 @@ QgsNative::NotificationResult QgsMacNative::showDesktopNotification( const QStri
|
||||
NSImage *image = nil;
|
||||
if ( settings.image.isNull() )
|
||||
{
|
||||
image = [[NSImage imageNamed:@"NSApplicationIcon"] retain];
|
||||
// image application (qgis.icns) seems not to be set for now, although present in the plist
|
||||
// whenever fixed, try following line (and remove corresponding code in QgsMacNative::QgsUserNotificationCenter)
|
||||
// image = [[NSImage imageNamed:@"NSApplicationIcon"] retain]
|
||||
image = mQgsUserNotificationCenter->_qgisIcon;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user