diff --git a/src/TypingDisplay.cpp b/src/TypingDisplay.cpp
index cd405a7a..6b731740 100644
--- a/src/TypingDisplay.cpp
+++ b/src/TypingDisplay.cpp
@@ -8,6 +8,7 @@
#include "ui/Painter.h"
constexpr int LEFT_PADDING = 24;
+constexpr int RECT_PADDING = 2;
TypingDisplay::TypingDisplay(QWidget *parent)
: OverlayWidget(parent)
@@ -17,7 +18,7 @@ TypingDisplay::TypingDisplay(QWidget *parent)
f.setPixelSize(conf::typingNotificationFontSize);
setFont(f);
- setFixedHeight(QFontMetrics(font()).height() + 2);
+ setFixedHeight(QFontMetrics(font()).height() + RECT_PADDING);
setAttribute(Qt::WA_TransparentForMouseEvents);
}
@@ -66,7 +67,11 @@ TypingDisplay::paintEvent(QPaintEvent *)
region.translate(LEFT_PADDING, 0);
QFontMetrics fm(font());
- text_ = fm.elidedText(text_, Qt::ElideRight, width() - 3 * LEFT_PADDING);
+ text_ = fm.elidedText(text_, Qt::ElideRight, (double)(width() * 0.75));
+ QPainterPath path;
+ path.addRoundedRect(QRectF(0, 0, fm.width(text_) + 2 * LEFT_PADDING, height()), 3, 3);
+
+ p.fillPath(path, backgroundColor());
p.drawText(region, Qt::AlignVCenter, text_);
}
diff --git a/src/TypingDisplay.h b/src/TypingDisplay.h
index c4e6c357..332d9c66 100644
--- a/src/TypingDisplay.h
+++ b/src/TypingDisplay.h
@@ -9,6 +9,7 @@ class TypingDisplay : public OverlayWidget
Q_OBJECT
Q_PROPERTY(QColor textColor WRITE setTextColor READ textColor)
+ Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor)
public:
TypingDisplay(QWidget *parent = nullptr);
@@ -18,6 +19,9 @@ public:
void setTextColor(const QColor &color) { textColor_ = color; };
QColor textColor() const { return textColor_; };
+ void setBackgroundColor(const QColor &color) { bgColor_ = color; };
+ QColor backgroundColor() const { return bgColor_; };
+
public slots:
void setOffset(int margin);
@@ -27,5 +31,6 @@ protected:
private:
int offset_;
QColor textColor_;
+ QColor bgColor_;
QString text_;
};
|