From 54887c51b14c7707178d43d39413bf1bc7a17472 Mon Sep 17 00:00:00 2001 From: tpearson Date: Mon, 10 May 2010 03:05:08 +0000 Subject: [PATCH] Part of batch commit to enable true tasktray resize support for Trinity applications git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1124759 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- knotes/knotesapp.cpp | 15 ++++++++++++++- knotes/knotesapp.h | 1 + korganizer/korgac/alarmdockwindow.cpp | 15 +++++++++++++-- korganizer/korgac/alarmdockwindow.h | 1 + 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/knotes/knotesapp.cpp b/knotes/knotesapp.cpp index 80bf1f08..1a1bdde8 100644 --- a/knotes/knotesapp.cpp +++ b/knotes/knotesapp.cpp @@ -105,7 +105,7 @@ KNotesApp::KNotesApp() KWin::setSystemTrayWindowFor( winId(), qt_xrootwin() ); QToolTip::add( this, i18n( "KNotes: Sticky notes for KDE" ) ); setBackgroundMode( X11ParentRelative ); - setPixmap( KSystemTray::loadIcon( "knotes" ) ); + setPixmap( KSystemTray::loadSizedIcon( "knotes", QWidget::width() ) ); // set the initial style KNote::setStyle( KNotesGlobalConfig::style() ); @@ -210,6 +210,19 @@ KNotesApp::KNotesApp() updateNoteActions(); } +void KNotesApp::resizeEvent ( QResizeEvent * ) +{ + // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes + QPixmap origpixmap; + QPixmap scaledpixmap; + QImage newIcon; + origpixmap = KSystemTray::loadSizedIcon( "knotes", QWidget::width() ); + newIcon = origpixmap; + newIcon = newIcon.smoothScale(QWidget::width(), QWidget::height()); + scaledpixmap = newIcon; + setPixmap(scaledpixmap); +} + KNotesApp::~KNotesApp() { saveNotes(); diff --git a/knotes/knotesapp.h b/knotes/knotesapp.h index f0cf8551..9cfa5ad3 100644 --- a/knotes/knotesapp.h +++ b/knotes/knotesapp.h @@ -102,6 +102,7 @@ public slots: protected: void mousePressEvent( QMouseEvent* ); + void resizeEvent ( QResizeEvent * ); protected slots: void slotShowNote(); diff --git a/korganizer/korgac/alarmdockwindow.cpp b/korganizer/korgac/alarmdockwindow.cpp index 5f2c419c..074ee920 100644 --- a/korganizer/korgac/alarmdockwindow.cpp +++ b/korganizer/korgac/alarmdockwindow.cpp @@ -58,8 +58,8 @@ AlarmDockWindow::AlarmDockWindow( const char *name ) // Set up icons KGlobal::iconLoader()->addAppDir( "korgac" ); - mPixmapEnabled = loadIcon( "korgac" ); - mPixmapDisabled = loadIcon( "korgac_disabled" ); + mPixmapEnabled = loadSizedIcon( "korgac", width() ); + mPixmapDisabled = loadSizedIcon( "korgac_disabled", width() ); setPixmap( alarmsEnabled ? mPixmapEnabled : mPixmapDisabled ); @@ -104,6 +104,17 @@ AlarmDockWindow::~AlarmDockWindow() { } +void AlarmDockWindow::resizeEvent ( QResizeEvent * ) +{ + // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes + mPixmapEnabled = loadSizedIcon( "korgac", width() ); + mPixmapDisabled = loadSizedIcon( "korgac_disabled", width() ); + + KConfig *config = kapp->config(); + bool alarmsEnabled = config->readBoolEntry( "Enabled", true ); + setPixmap( alarmsEnabled ? mPixmapEnabled : mPixmapDisabled ); +} + void AlarmDockWindow::slotUpdate( int reminders ) { QToolTip::remove( this ); diff --git a/korganizer/korgac/alarmdockwindow.h b/korganizer/korgac/alarmdockwindow.h index 5671b92f..f26b6d8c 100644 --- a/korganizer/korgac/alarmdockwindow.h +++ b/korganizer/korgac/alarmdockwindow.h @@ -50,6 +50,7 @@ class AlarmDockWindow : public KSystemTray protected: void mousePressEvent( QMouseEvent * ); // void closeEvent( QCloseEvent * ); + void resizeEvent ( QResizeEvent * ); protected slots: void slotQuit();