summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2014-07-08 08:21:31 -0500
committerSlávek Banko <slavek.banko@axis.cz>2016-08-24 09:37:36 +0200
commite1eb33f8856247d4ac1fd865f5773c98c6a00291 (patch)
treefe81cf3c035a2b02d30875ca20748e26d26c9e29
parentd0aa14e620b908a2b53c3f2659f73d7a065644c8 (diff)
downloadtdetoys-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.cpp24
-rw-r--r--kteatime/toplevel.h4
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;