summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kdeui/ksystemtray.cpp18
-rw-r--r--kdeui/ksystemtray.h13
2 files changed, 25 insertions, 6 deletions
diff --git a/kdeui/ksystemtray.cpp b/kdeui/ksystemtray.cpp
index 593bc6bc0..33d7f3506 100644
--- a/kdeui/ksystemtray.cpp
+++ b/kdeui/ksystemtray.cpp
@@ -29,9 +29,9 @@
#include "kaboutdata.h"
#ifdef Q_WS_X11
-#include <kwin.h>
-#include <kwinmodule.h>
-#include <qxembed.h>
+#include <kwin.h>
+#include <kwinmodule.h>
+#include <qxembed.h>
#endif
#include <kiconloader.h>
@@ -62,7 +62,7 @@ KSystemTray::KSystemTray( QWidget* parent, const char* name )
#ifdef Q_WS_X11
QXEmbed::initialize();
#endif
-
+
d = new KSystemTrayPrivate;
d->actionCollection = new KActionCollection(this);
@@ -95,6 +95,9 @@ KSystemTray::KSystemTray( QWidget* parent, const char* name )
}
setCaption( KGlobal::instance()->aboutData()->programName());
setAlignment( alignment() | Qt::AlignVCenter | Qt::AlignHCenter );
+
+ // Handle the possibility that the requested system tray size is something other than 22x22 pixels, per the Free Desktop specifications
+ setScaledContents(true);
}
KSystemTray::~KSystemTray()
@@ -306,7 +309,7 @@ KActionCollection* KSystemTray::actionCollection()
{
return d->actionCollection;
}
-
+
QPixmap KSystemTray::loadIcon( const QString &icon, KInstance *instance )
{
KConfig *appCfg = kapp->config();
@@ -315,6 +318,11 @@ QPixmap KSystemTray::loadIcon( const QString &icon, KInstance *instance )
return instance->iconLoader()->loadIcon( icon, KIcon::Panel, iconWidth );
}
+QPixmap KSystemTray::loadSizedIcon( const QString &icon, int iconWidth, KInstance *instance )
+{
+ return instance->iconLoader()->loadIcon( icon, KIcon::Panel, iconWidth );
+}
+
void KSystemTray::setPixmap( const QPixmap& p )
{
QLabel::setPixmap( p );
diff --git a/kdeui/ksystemtray.h b/kdeui/ksystemtray.h
index 04dce718a..b0dab69b6 100644
--- a/kdeui/ksystemtray.h
+++ b/kdeui/ksystemtray.h
@@ -108,7 +108,7 @@ public:
* configuration dialog). The default value is KAboutData::programName().
*/
virtual void setCaption( const QString& title );
-
+
/**
* Loads an icon @p icon using the icon loader class of the given instance @p instance.
* The icon is applied the panel effect as it should only be used to be shown in the
@@ -119,6 +119,17 @@ public:
*/
static QPixmap loadIcon( const QString &icon, KInstance *instance=KGlobal::instance() );
+ /**
+ * Loads an icon @p icon using the icon loader class of the given instance @p instance.
+ * The icon is applied the panel effect as it should only be used to be shown in the
+ * system tray.
+ * It's commonly used in the form : systray->setPixmap( systray->loadIcon( "mysystray", iconWidth ) );
+ * This is essentially the same as loadIcon(), but with a forced icon size
+ *
+ * @since 3.5.12
+ */
+ static QPixmap loadSizedIcon( const QString &icon, int iconWidth, KInstance *instance=KGlobal::instance() );
+
signals:
/**
* Emitted when quit is selected in the menu. If you want to perform any other