summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-08-08 12:51:40 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-08-08 12:51:40 +0300
commit8d3ef470f9b40c891f700626a5adb7efa7602994 (patch)
tree527b8deaa7ce3c223bf71ebf431ef4529e5c24eb /src
parentAdd flatpak installation (diff)
downloadnheko-8d3ef470f9b40c891f700626a5adb7efa7602994.tar.xz
Remove hardcoded colors from the typing display
Diffstat (limited to 'src')
-rw-r--r--src/TypingDisplay.cpp39
-rw-r--r--src/TypingDisplay.h7
2 files changed, 26 insertions, 20 deletions
diff --git a/src/TypingDisplay.cpp b/src/TypingDisplay.cpp

index da9c1679..30ba0652 100644 --- a/src/TypingDisplay.cpp +++ b/src/TypingDisplay.cpp
@@ -3,24 +3,30 @@ #include "Config.h" #include "TypingDisplay.h" +#include "ui/Painter.h" + +constexpr int LEFT_PADDING = 24; TypingDisplay::TypingDisplay(QWidget *parent) : QWidget(parent) - , leftPadding_{24} { - QFont font; - font.setPixelSize(conf::typingNotificationFontSize); + QFont f; + f.setPixelSize(conf::typingNotificationFontSize); + + setFont(f); - setFixedHeight(QFontMetrics(font).height() + 2); + setFixedHeight(QFontMetrics(font()).height() + 2); } void TypingDisplay::setUsers(const QStringList &uid) { - if (uid.isEmpty()) + if (uid.isEmpty()) { text_.clear(); - else - text_ = uid.join(", "); + return; + } + + text_ = uid.join(", "); if (uid.size() == 1) text_ += tr(" is typing"); @@ -33,22 +39,17 @@ TypingDisplay::setUsers(const QStringList &uid) void TypingDisplay::paintEvent(QPaintEvent *) { - QPen pen(QColor("#898989")); - - QFont font("Open Sans Bold"); - font.setPixelSize(conf::typingNotificationFontSize); - font.setItalic(true); + Painter p(this); + PainterHighQualityEnabler hq(p); - QPainter p(this); - p.setRenderHint(QPainter::Antialiasing); - p.setFont(font); - p.setPen(pen); + p.setFont(font()); + p.setPen(QPen(textColor())); QRect region = rect(); - region.translate(leftPadding_, 0); + region.translate(LEFT_PADDING, 0); - QFontMetrics fm(font); - text_ = fm.elidedText(text_, Qt::ElideRight, width() - 3 * leftPadding_); + QFontMetrics fm(font()); + text_ = fm.elidedText(text_, Qt::ElideRight, width() - 3 * LEFT_PADDING); p.drawText(region, Qt::AlignVCenter, text_); } diff --git a/src/TypingDisplay.h b/src/TypingDisplay.h
index db8a9519..d5e2f29c 100644 --- a/src/TypingDisplay.h +++ b/src/TypingDisplay.h
@@ -7,15 +7,20 @@ class TypingDisplay : public QWidget { Q_OBJECT + Q_PROPERTY(QColor textColor WRITE setTextColor READ textColor) + public: TypingDisplay(QWidget *parent = nullptr); void setUsers(const QStringList &user_ids); + void setTextColor(const QColor &color) { textColor_ = color; }; + QColor textColor() const { return textColor_; }; + protected: void paintEvent(QPaintEvent *event) override; private: + QColor textColor_; QString text_; - int leftPadding_; };