From a73fc4d7e66fe0824313aa4e9a650c4cddef6e9f Mon Sep 17 00:00:00 2001 From: tpearson Date: Tue, 11 May 2010 04:33:55 +0000 Subject: Honor system tray icon resizing requests git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdetoys@1125266 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kteatime/toplevel.cpp | 28 ++++++++++++++++++---------- kteatime/toplevel.h | 1 + 2 files changed, 19 insertions(+), 10 deletions(-) (limited to 'kteatime') diff --git a/kteatime/toplevel.cpp b/kteatime/toplevel.cpp index 1cf0c96..39ca159 100644 --- a/kteatime/toplevel.cpp +++ b/kteatime/toplevel.cpp @@ -171,10 +171,10 @@ TopLevel::TopLevel() : KSystemTray() action = config->readEntry("Action"); useTrayVis = config->readBoolEntry("UseTrayVis", true); - mugPixmap = loadIcon("mug"); - teaNotReadyPixmap = loadIcon("tea_not_ready"); - teaAnim1Pixmap = loadIcon("tea_anim1"); - teaAnim2Pixmap = loadIcon("tea_anim2"); + mugPixmap = loadSizedIcon("mug", width()); + teaNotReadyPixmap = loadSizedIcon("tea_not_ready", width()); + teaAnim1Pixmap = loadSizedIcon("tea_anim1", width()); + teaAnim2Pixmap = loadSizedIcon("tea_anim2", width()); confdlg = 0L; anondlg = 0L; @@ -201,6 +201,14 @@ TopLevel::~TopLevel() // FIXME: must delete more (like all the QWidgets in config-window)? } +void TopLevel::resizeEvent ( QResizeEvent * ) +{ + mugPixmap = loadSizedIcon("mug", width()); + teaNotReadyPixmap = loadSizedIcon("tea_not_ready", width()); + teaAnim1Pixmap = loadSizedIcon("tea_anim1", width()); + teaAnim2Pixmap = loadSizedIcon("tea_anim2", width()); + repaint(); +} /** Handle mousePressEvent */ void TopLevel::mousePressEvent(QMouseEvent *event) @@ -248,8 +256,8 @@ void TopLevel::paintEvent(QPaintEvent *) QPainter pm(&mask); pm.setBrush(Qt::color1); // fill with "foreground-colour" pm.setPen(Qt::NoPen); // no border needed/wanted - pm.drawPie(0+1, 9+1, 11, 11, 90*16, -360*16); // full circle of small size - pm.drawPie(0, 9, 13, 13, 90*16, percentDone*16); // pie part of big size + pm.drawPie(0+1, ((float) width()/(float) 2.44444444444)+1, (width()/2), (width()/2), 90*16, -360*16); // full circle of small size + pm.drawPie(0, ((float) width()/(float) 2.44444444444), ((float) width()/(float) 1.69230769231), ((float) width()/(float) 1.69230769231), 90*16, percentDone*16); // pie part of big size pm.end(); base.setMask(mask); @@ -257,10 +265,10 @@ void TopLevel::paintEvent(QPaintEvent *) QPainter px(&base); px.setPen(QPen(Qt::black, 0)); // black border px.setBrush(QColor(192, 0, 0)); // red fill colour for small circle - px.drawPie(0+1, 9+1, 11, 11, 90*16, -360*16); + px.drawPie(0+1, ((float) width()/(float) 2.44444444444)+1, (width()/2), (width()/2), 90*16, -360*16); px.setBrush(QColor(0, 192, 0)); // green fill colour for pie part - px.drawPie(0, 9, 13, 13, 90*16, percentDone*16); + px.drawPie(0, ((float) width()/(float) 2.44444444444), ((float) width()/(float) 1.69230769231), ((float) width()/(float) 1.69230769231), 90*16, percentDone*16); px.end(); } // FIXME: over-emphasize first and last few percent? (for better visibility) @@ -269,8 +277,8 @@ void TopLevel::paintEvent(QPaintEvent *) // set new tray icon QPainter p(this); - int x = 1 + (12 - pm->width()/2); - int y = 1 + (12 - pm->height()/2); + int x = 1 + (((float) width()/(float) 1.83333333333) - pm->width()/2); + int y = 1 + (((float) width()/(float) 1.83333333333) - pm->height()/2); p.drawPixmap(x, y, base); p.end(); } diff --git a/kteatime/toplevel.h b/kteatime/toplevel.h index a172189..e8a4e83 100644 --- a/kteatime/toplevel.h +++ b/kteatime/toplevel.h @@ -54,6 +54,7 @@ protected: void paintEvent(QPaintEvent *); void mousePressEvent(QMouseEvent *); void timerEvent(QTimerEvent *); + void resizeEvent(QResizeEvent *); private slots: -- cgit v1.2.1