diff options
-rw-r--r-- | src/knemod/interfaceicon.cpp | 17 | ||||
-rw-r--r-- | src/knemod/interfaceicon.h | 5 | ||||
-rw-r--r-- | src/knemod/interfacetray.cpp | 6 | ||||
-rw-r--r-- | src/knemod/interfacetray.h | 2 |
4 files changed, 25 insertions, 5 deletions
diff --git a/src/knemod/interfaceicon.cpp b/src/knemod/interfaceicon.cpp index 4bda3df..f57626a 100644 --- a/src/knemod/interfaceicon.cpp +++ b/src/knemod/interfaceicon.cpp @@ -88,24 +88,24 @@ void InterfaceIcon::updateStatus( int status ) if ( status == Interface::NOT_AVAILABLE || status == Interface::NOT_EXISTING ) { - mTray->setPixmap( mTray->loadIcon( ICON_DISCONNECTED + suffix ) ); + mTray->setPixmap( mTray->loadSizedIcon( ICON_DISCONNECTED + suffix, mTray->width() ) ); } else if ( ( status & Interface::RX_TRAFFIC ) && ( status & Interface::TX_TRAFFIC ) ) { - mTray->setPixmap( mTray->loadIcon( ICON_TRAFFIC + suffix ) ); + mTray->setPixmap( mTray->loadSizedIcon( ICON_TRAFFIC + suffix, mTray->width() ) ); } else if ( status & Interface::RX_TRAFFIC ) { - mTray->setPixmap( mTray->loadIcon( ICON_INCOMING + suffix ) ); + mTray->setPixmap( mTray->loadSizedIcon( ICON_INCOMING + suffix, mTray->width() ) ); } else if ( status & Interface::TX_TRAFFIC ) { - mTray->setPixmap( mTray->loadIcon( ICON_OUTGOING + suffix ) ); + mTray->setPixmap( mTray->loadSizedIcon( ICON_OUTGOING + suffix, mTray->width() ) ); } else { - mTray->setPixmap( mTray->loadIcon( ICON_CONNECTED + suffix ) ); + mTray->setPixmap( mTray->loadSizedIcon( ICON_CONNECTED + suffix, mTray->width() ) ); } } @@ -150,6 +150,11 @@ void InterfaceIcon::updateMenu() } } +void InterfaceIcon::resizeIcon() +{ + updateTrayStatus(0); +} + void InterfaceIcon::updateTrayStatus( int previousState ) { bool interfaceExists = mInterface->getData().existing; @@ -236,6 +241,8 @@ void InterfaceIcon::updateTrayStatus( int previousState ) mInterface, SLOT( showSignalPlotter( bool ) ) ); connect( mTray, SIGNAL( configSelected() ), this, SLOT( showConfigDialog() ) ); + connect( mTray, SIGNAL( iconResized() ), + this, SLOT( resizeIcon() ) ); updateStatus( mInterface->getState() ); updateToolTip(); diff --git a/src/knemod/interfaceicon.h b/src/knemod/interfaceicon.h index 96d320b..6c962ec 100644 --- a/src/knemod/interfaceicon.h +++ b/src/knemod/interfaceicon.h @@ -74,6 +74,11 @@ public slots: */ void updateTrayStatus( int previousState ); + /* + * Resizes the tray icon + */ + void resizeIcon(); + private slots: /* * Called when the user selects 'Configure KNemo' from the context menu diff --git a/src/knemod/interfacetray.cpp b/src/knemod/interfacetray.cpp index 5e2e154..c8ab03a 100644 --- a/src/knemod/interfacetray.cpp +++ b/src/knemod/interfacetray.cpp @@ -65,6 +65,12 @@ InterfaceTray::~InterfaceTray() { } +void InterfaceTray::resizeEvent ( QResizeEvent * ) +{ + // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes + emit iconResized(); +} + void InterfaceTray::mousePressEvent( QMouseEvent* e ) { if ( !rect().contains( e->pos() ) ) diff --git a/src/knemod/interfacetray.h b/src/knemod/interfacetray.h index b783c45..61b442b 100644 --- a/src/knemod/interfacetray.h +++ b/src/knemod/interfacetray.h @@ -54,9 +54,11 @@ signals: void configSelected(); void startCommandSelected(); void stopCommandSelected(); + void iconResized(); protected: void mousePressEvent( QMouseEvent* e ); + void resizeEvent ( QResizeEvent * ); protected slots: /** |