summaryrefslogtreecommitdiffstats
path: root/akregator
diff options
context:
space:
mode:
Diffstat (limited to 'akregator')
-rw-r--r--akregator/src/trayicon.cpp35
-rw-r--r--akregator/src/trayicon.h16
2 files changed, 40 insertions, 11 deletions
diff --git a/akregator/src/trayicon.cpp b/akregator/src/trayicon.cpp
index fc26cadeb..240e2d5b5 100644
--- a/akregator/src/trayicon.cpp
+++ b/akregator/src/trayicon.cpp
@@ -123,22 +123,34 @@ TQPixmap TrayIcon::takeScreenshot() const
return shot; // not finalShot?? -fo
}
+void TrayIcon::resizeEvent(TQResizeEvent *)
+{
+ setUnread(m_unread, true);
+}
+
void TrayIcon::slotSetUnread(int unread)
{
- if (unread==m_unread)
+ setUnread(unread, false);
+}
+
+void TrayIcon::setUnread(int unread, bool force)
+{
+ if ((unread==m_unread) && (!force))
+ {
return;
-
+ }
+
m_unread=unread;
-
+
TQToolTip::remove(this);
TQToolTip::add(this, i18n("Akregator - 1 unread article", "Akregator - %n unread articles", unread > 0 ? unread : 0));
-
+
if (unread <= 0)
- {
+ {
setPixmap(m_defaultIcon);
}
else
- {
+ {
// from KMSystemTray
int oldW = pixmap()->size().width();
int oldH = pixmap()->size().height();
@@ -146,6 +158,17 @@ void TrayIcon::slotSetUnread(int unread)
TQString uStr=TQString::number( unread );
TQFont f=TDEGlobalSettings::generalFont();
f.setBold(true);
+
+ // increase the size of the font for the number of unread messages if the
+ // icon size is less than 22 pixels
+ // see bug 1251
+ int realIconHeight = height();
+ if (realIconHeight < 22) {
+ f.setPointSizeFloat( f.pointSizeFloat() * 2.0 );
+ }
+
+ // decrease the size of the font for the number of unread articles if the
+ // number doesn't fit into the available space
float pointSize=f.pointSizeFloat();
TQFontMetrics fm(f);
int w=fm.width(uStr);
diff --git a/akregator/src/trayicon.h b/akregator/src/trayicon.h
index e491fdaca..7c854666e 100644
--- a/akregator/src/trayicon.h
+++ b/akregator/src/trayicon.h
@@ -35,27 +35,33 @@ namespace Akregator
class TrayIcon : public KSystemTray
{
Q_OBJECT
-
+
public:
static TrayIcon* getInstance();
static void setInstance(TrayIcon* trayIcon);
-
+
TrayIcon(TQWidget *parent = 0, const char *name = 0);
~TrayIcon();
-
+
TQPixmap takeScreenshot() const;
virtual void mousePressEvent(TQMouseEvent *);
+
public slots:
void settingsChanged();
void slotSetUnread(int unread);
void viewButtonClicked();
-
+
+ protected:
+ void resizeEvent(TQResizeEvent *);
+
signals:
void showPart();
private:
+ void setUnread(int unread, bool force);
+
static TrayIcon* m_instance;
-
+
TQPixmap m_defaultIcon;
TQImage m_lightIconImage;
int m_unread;