fixed #662
This commit is contained in:
parent
136ac3dce6
commit
96c9a8fe09
@ -117,34 +117,35 @@ void SystemTrayIcon::setNumber(int number, bool any_feed_has_new_unread_messages
|
|||||||
tray_painter.setRenderHint(QPainter::RenderHint::SmoothPixmapTransform, true);
|
tray_painter.setRenderHint(QPainter::RenderHint::SmoothPixmapTransform, true);
|
||||||
tray_painter.setRenderHint(QPainter::RenderHint::TextAntialiasing, true);
|
tray_painter.setRenderHint(QPainter::RenderHint::TextAntialiasing, true);
|
||||||
|
|
||||||
// Numbers with more than 2 digits won't be readable, display
|
// Numbers with more than 5 digits won't be readable, display
|
||||||
// infinity symbol in that case.
|
// infinity symbol in that case.
|
||||||
if (number > 999) {
|
QString num_txt;
|
||||||
|
|
||||||
|
if (number > 99999) {
|
||||||
|
num_txt = QChar(8734);
|
||||||
m_font.setPixelSize(background.width() * 0.78);
|
m_font.setPixelSize(background.width() * 0.78);
|
||||||
tray_painter.setFont(m_font);
|
}
|
||||||
tray_painter.drawText(background.rect(), Qt::AlignmentFlag::AlignCenter, QChar(8734));
|
else if (number > 999) {
|
||||||
|
num_txt = QSL("%1k").arg(int(number / 1000));
|
||||||
|
m_font.setPixelSize(background.width() * 0.43);
|
||||||
|
}
|
||||||
|
else if (number > 99) {
|
||||||
|
num_txt = QString::number(number);
|
||||||
|
m_font.setPixelSize(background.width() * 0.43);
|
||||||
|
}
|
||||||
|
else if (number > 9) {
|
||||||
|
num_txt = QString::number(number);
|
||||||
|
m_font.setPixelSize(background.width() * 0.56);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Smaller number if it has 3 digits.
|
num_txt = QString::number(number);
|
||||||
if (number > 99) {
|
m_font.setPixelSize(background.width() * 0.78);
|
||||||
m_font.setPixelSize(background.width() * 0.43);
|
|
||||||
}
|
|
||||||
else if (number > 9) {
|
|
||||||
m_font.setPixelSize(background.width() * 0.56);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Bigger number if it has just one digit.
|
|
||||||
else {
|
|
||||||
m_font.setPixelSize(background.width() * 0.78);
|
|
||||||
}
|
|
||||||
|
|
||||||
tray_painter.setFont(m_font);
|
|
||||||
tray_painter.drawText(background.rect(),
|
|
||||||
Qt::AlignmentFlag::AlignCenter,
|
|
||||||
QString::number(number));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tray_painter.setFont(m_font);
|
||||||
|
tray_painter.drawText(background.rect(), Qt::AlignmentFlag::AlignCenter, num_txt);
|
||||||
tray_painter.end();
|
tray_painter.end();
|
||||||
|
|
||||||
QSystemTrayIcon::setIcon(QIcon(background));
|
QSystemTrayIcon::setIcon(QIcon(background));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -732,7 +732,18 @@ void Application::showMessagesNumber(int unread_messages, bool any_feed_has_new_
|
|||||||
QImage Application::generateOverlayIcon(int number) const {
|
QImage Application::generateOverlayIcon(int number) const {
|
||||||
QImage img(128, 128, QImage::Format::Format_ARGB32);
|
QImage img(128, 128, QImage::Format::Format_ARGB32);
|
||||||
QPainter p;
|
QPainter p;
|
||||||
QString num_txt = number > 999 ? QChar(8734) : QString::number(number);
|
QString num_txt;
|
||||||
|
|
||||||
|
if (number < 1000) {
|
||||||
|
num_txt = QString::number(number);
|
||||||
|
}
|
||||||
|
else if (number < 100000) {
|
||||||
|
num_txt = QSL("%1k").arg(int(number / 1000));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
num_txt = QChar(8734);
|
||||||
|
}
|
||||||
|
|
||||||
QPainterPath rounded_rectangle; rounded_rectangle.addRoundedRect(QRectF(img.rect()), 15, 15);
|
QPainterPath rounded_rectangle; rounded_rectangle.addRoundedRect(QRectF(img.rect()), 15, 15);
|
||||||
QFont fon = font();
|
QFont fon = font();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user