Use 22x22 icons for Linux system tray. --- a/src/iconshack.cpp +++ b/src/iconshack.cpp @@ -108,6 +108,34 @@ } +#ifdef Q_WS_X11 +QPixmap +IconShack::GetTrayIcon( MooseEnums::UserIconColour eColour ) +{ + if ( !mbIconsLoaded ) + LoadIcons(); + + if ( maTrayIcons[ eColour ].isNull() ) + return QPixmap( 22, 22 ); + else + return maTrayIcons[ eColour ]; +} + + +QPixmap +IconShack::GetDisabledTrayIcon( MooseEnums::UserIconColour eColour ) +{ + if ( !mbIconsLoaded ) + LoadIcons(); + + if ( maDisabledTrayIcons[ eColour ].isNull() ) + return QPixmap( 22, 22 ); + else + return maDisabledTrayIcons[ eColour ]; +} +#endif + + void IconShack::LoadIcons() { @@ -141,6 +169,20 @@ maDisabledIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_disabled.png" ) ); maDisabledIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_disabled.png" ) ); +#ifdef Q_WS_X11 + maTrayIcons[MooseEnums::eRed].load( MooseUtils::dataPath( "icons/user_red22.png" ) ); + maTrayIcons[MooseEnums::eBlue].load( MooseUtils::dataPath( "icons/user_blue22.png" ) ); + maTrayIcons[MooseEnums::eGreen].load( MooseUtils::dataPath( "icons/user_green22.png" ) ); + maTrayIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_orange22.png" ) ); + maTrayIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_black22.png" ) ); + + maDisabledTrayIcons[MooseEnums::eRed].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); + maDisabledTrayIcons[MooseEnums::eBlue].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); + maDisabledTrayIcons[MooseEnums::eGreen].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); + maDisabledTrayIcons[MooseEnums::eOrange].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); + maDisabledTrayIcons[MooseEnums::eBlack].load( MooseUtils::dataPath( "icons/user_disabled22.png" ) ); +#endif + mbIconsLoaded = true; LOG( 4, "Icons loaded\n" ); --- a/src/iconshack.h +++ b/src/iconshack.h @@ -81,6 +81,14 @@ **************************************************************************/ QList GetIpodScrobblingIcons( MooseEnums::UserIconColour eColour ); +#ifdef Q_WS_X11 + QPixmap + GetTrayIcon( MooseEnums::UserIconColour eColour ); + + QPixmap + GetDisabledTrayIcon( MooseEnums::UserIconColour eColour ); +#endif + private: /*********************************************************************/ /** @@ -95,6 +103,10 @@ QPixmap maGoodIconsExpanded[ MooseEnums::eColorMax ]; QPixmap maExclIcons[ MooseEnums::eColorMax ]; QPixmap maDisabledIcons[ MooseEnums::eColorMax ]; +#ifdef Q_WS_X11 + QPixmap maTrayIcons[ MooseEnums::eColorMax ]; + QPixmap maDisabledTrayIcons[ MooseEnums::eColorMax ]; +#endif QList mIpodScrobblingIcons[ MooseEnums::eColorMax ]; /*********************************************************************/ /** --- a/src/systray.cpp +++ b/src/systray.cpp @@ -55,6 +55,8 @@ { #ifdef Q_WS_MAC icon = m_pixmap; + #elif defined(Q_WS_X11) + icon = IconShack::instance().GetTrayIcon( iconColour ); #else icon = IconShack::instance().GetGoodUserIcon( iconColour ); #endif @@ -63,6 +65,8 @@ { #ifdef Q_WS_MAC icon = QIcon( m_pixmap ).pixmap( 19, 12, QIcon::Disabled ); + #elif defined Q_WS_X11 + icon = IconShack::instance().GetDisabledTrayIcon( iconColour ); #else icon = IconShack::instance().GetDisabledUserIcon( iconColour ); #endif