diff --git a/include/TopRoomBar.h b/include/TopRoomBar.h
index 2c7af218..87037574 100644
--- a/include/TopRoomBar.h
+++ b/include/TopRoomBar.h
@@ -83,6 +83,9 @@ private:
Avatar *avatar_;
int buttonSize_;
+
+ QString roomName_;
+ QString roomTopic_;
};
inline void
@@ -102,9 +105,7 @@ TopRoomBar::updateRoomAvatar(const QIcon &icon)
inline void
TopRoomBar::updateRoomName(const QString &name)
{
- QString elidedText =
- QFontMetrics(nameLabel_->font()).elidedText(name, Qt::ElideRight, width() * 0.8);
- nameLabel_->setText(elidedText);
+ roomName_ = name;
update();
}
@@ -112,10 +113,6 @@ inline void
TopRoomBar::updateRoomTopic(QString topic)
{
topic.replace(URL_REGEX, URL_HTML);
-
- QString elidedText =
- QFontMetrics(topicLabel_->font()).elidedText(topic, Qt::ElideRight, width() * 0.6);
-
- topicLabel_->setText(topic);
+ roomTopic_ = topic;
update();
}
diff --git a/src/TopRoomBar.cc b/src/TopRoomBar.cc
index 5a1f2d25..8b2e338b 100644
--- a/src/TopRoomBar.cc
+++ b/src/TopRoomBar.cc
@@ -71,9 +71,8 @@ TopRoomBar::TopRoomBar(QWidget *parent)
settingsBtn_->setIconSize(QSize(buttonSize_ / 2, buttonSize_ / 2));
topLayout_->addWidget(avatar_);
- topLayout_->addLayout(textLayout_);
- topLayout_->addStretch(1);
- topLayout_->addWidget(settingsBtn_);
+ topLayout_->addLayout(textLayout_, 1);
+ topLayout_->addWidget(settingsBtn_, 0, Qt::AlignRight);
menu_ = new Menu(this);
@@ -149,6 +148,9 @@ TopRoomBar::reset()
nameLabel_->setText("");
topicLabel_->setText("");
avatar_->setLetter(QChar('?'));
+
+ roomName_.clear();
+ roomTopic_.clear();
}
void
@@ -161,6 +163,14 @@ TopRoomBar::paintEvent(QPaintEvent *event)
QPainter painter(this);
style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, this);
+
+ QString elidedText =
+ QFontMetrics(nameLabel_->font()).elidedText(roomName_, Qt::ElideRight, width());
+ nameLabel_->setText(elidedText);
+
+ elidedText =
+ QFontMetrics(topicLabel_->font()).elidedText(roomTopic_, Qt::ElideRight, width());
+ topicLabel_->setText(elidedText);
}
void
|