Add solid background in TypingDisplay

This commit is contained in:
Konstantinos Sideris 2018-08-10 10:58:46 +03:00
parent d0b3254d10
commit a339f5062f
5 changed files with 15 additions and 2 deletions

View File

@ -50,6 +50,7 @@ RoomList > * {
TypingDisplay {
qproperty-textColor: #caccd1;
qproperty-backgroundColor: #202228;
}
#roomlist_area {

View File

@ -35,6 +35,7 @@ InfoMessage {
TypingDisplay {
qproperty-textColor: #333;
qproperty-backgroundColor: white;
}
SuggestionsPopup {

View File

@ -33,6 +33,7 @@ QuickSwitcher {
TypingDisplay {
qproperty-textColor: palette(text);
qproperty-backgroundColor: palette(window);
}
InfoMessage {

View File

@ -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_);
}

View File

@ -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_;
};