summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--akregator/src/trayicon.cpp35
-rw-r--r--akregator/src/trayicon.h16
-rw-r--r--kmail/kmsystemtray.cpp14
-rw-r--r--kmail/kmsystemtray.h1
4 files changed, 54 insertions, 12 deletions
diff --git a/akregator/src/trayicon.cpp b/akregator/src/trayicon.cpp
index fc26cade..240e2d5b 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 e491fdac..7c854666 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;
diff --git a/kmail/kmsystemtray.cpp b/kmail/kmsystemtray.cpp
index 7cb2fb43..dc5cd04f 100644
--- a/kmail/kmsystemtray.cpp
+++ b/kmail/kmsystemtray.cpp
@@ -133,7 +133,6 @@ void KMSystemTray::buildPopupMenu()
action->plug( mPopupMenu );
mPopupMenu->insertSeparator();
- TDEMainWindow *mainWin = ::tqqt_cast<TDEMainWindow*>(kmkernel->getKMMainWidget()->topLevelWidget());
mPopupMenu->insertItem( SmallIcon("exit"), i18n("&Quit"), this, TQT_SLOT(maybeQuit()) );
}
@@ -180,6 +179,11 @@ int KMSystemTray::mode() const
return mMode;
}
+void KMSystemTray::resizeEvent(TQResizeEvent *)
+{
+ updateCount();
+}
+
/**
* Update the count of unread messages. If there are unread messages,
* overlay the count on top of a transparent version of the KMail icon.
@@ -196,6 +200,14 @@ void KMSystemTray::updateCount()
TQFont countFont = TDEGlobalSettings::generalFont();
countFont.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) {
+ countFont.setPointSizeFloat( countFont.pointSizeFloat() * 2.0 );
+ }
+
// decrease the size of the font for the number of unread messages if the
// number doesn't fit into the available space
float countFontSize = countFont.pointSizeFloat();
diff --git a/kmail/kmsystemtray.h b/kmail/kmsystemtray.h
index c63fdd1d..b689def5 100644
--- a/kmail/kmsystemtray.h
+++ b/kmail/kmsystemtray.h
@@ -69,6 +69,7 @@ protected:
void showKMail();
void buildPopupMenu();
void updateCount();
+ void resizeEvent(TQResizeEvent *);
TQString prettyName(KMFolder *);