diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2014-07-08 08:21:31 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2016-08-24 09:37:36 +0200 |
commit | e1eb33f8856247d4ac1fd865f5773c98c6a00291 (patch) | |
tree | fe81cf3c035a2b02d30875ca20748e26d26c9e29 | |
parent | d0aa14e620b908a2b53c3f2659f73d7a065644c8 (diff) | |
download | tdetoys-e1eb33f8856247d4ac1fd865f5773c98c6a00291.tar.gz tdetoys-e1eb33f8856247d4ac1fd865f5773c98c6a00291.zip |
Avoid excessively long startup time due to oversized tray icon creation when icon widget has not yet been shown
(cherry picked from commit da2a24089061c8dd04f718ec5a5294b4a85276db)
-rw-r--r-- | kteatime/toplevel.cpp | 24 | ||||
-rw-r--r-- | kteatime/toplevel.h | 4 |
2 files changed, 22 insertions, 6 deletions
diff --git a/kteatime/toplevel.cpp b/kteatime/toplevel.cpp index 5deb404..174ec63 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 = loadSizedIcon("mug", width()); - teaNotReadyPixmap = loadSizedIcon("tea_not_ready", width()); - teaAnim1Pixmap = loadSizedIcon("tea_anim1", width()); - teaAnim2Pixmap = loadSizedIcon("tea_anim2", width()); + mugPixmap = loadIcon("mug"); + teaNotReadyPixmap = loadIcon("tea_not_ready"); + teaAnim1Pixmap = loadIcon("tea_anim1"); + teaAnim2Pixmap = loadIcon("tea_anim2"); confdlg = 0L; anondlg = 0L; @@ -201,8 +201,8 @@ TopLevel::~TopLevel() // FIXME: must delete more (like all the TQWidgets in config-window)? } -void TopLevel::resizeEvent ( TQResizeEvent * ) -{ +void TopLevel::resizeTrayIcon () { + // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes mugPixmap = loadSizedIcon("mug", width()); teaNotReadyPixmap = loadSizedIcon("tea_not_ready", width()); teaAnim1Pixmap = loadSizedIcon("tea_anim1", width()); @@ -210,6 +210,18 @@ void TopLevel::resizeEvent ( TQResizeEvent * ) repaint(); } +void TopLevel::resizeEvent ( TQResizeEvent * ) +{ + // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes + resizeTrayIcon(); +} + +void TopLevel::showEvent ( TQShowEvent * ) +{ + // Honor Free Desktop specifications that allow for arbitrary system tray icon sizes + resizeTrayIcon(); +} + /** Handle mousePressEvent */ void TopLevel::mousePressEvent(TQMouseEvent *event) { diff --git a/kteatime/toplevel.h b/kteatime/toplevel.h index 4ad443e..f795225 100644 --- a/kteatime/toplevel.h +++ b/kteatime/toplevel.h @@ -56,6 +56,7 @@ protected: void mousePressEvent(TQMouseEvent *); void timerEvent(TQTimerEvent *); void resizeEvent(TQResizeEvent *); + void showEvent(TQShowEvent *); private slots: @@ -84,6 +85,9 @@ private slots: void actionEnableToggled(bool on); private: + void resizeTrayIcon(); + +private: static const int DEFAULT_TEA_TIME; |