From: Marcus Eggenberger Date: Tue, 11 Mar 2008 00:04:50 +0000 (+0000) Subject: Fixed a bug in the new topic widget where no repaint event was triggered if only... X-Git-Tag: 0.2.0-alpha3~14 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=fb6f5bcbdebd8660f355a558dd7cc47f6df45965 Fixed a bug in the new topic widget where no repaint event was triggered if only the color did change --- diff --git a/src/qtui/topicbutton.cpp b/src/qtui/topicbutton.cpp index ee91ad59..a83779ea 100644 --- a/src/qtui/topicbutton.cpp +++ b/src/qtui/topicbutton.cpp @@ -57,8 +57,11 @@ void TopicButton::paintEvent(QPaintEvent *event) { } void TopicButton::setAndStyleText(const QString &text) { + if(QAbstractButton::text() == text) + return; + setText(text); // this triggers a repaint event + styledText = QtUi::style()->styleString(Message::mircToInternal(text)); - setText(styledText.text); int height = 1; foreach(QTextLayout::FormatRange fr, styledText.formats) { height = qMax(height, QFontMetrics(fr.format.font()).height()); diff --git a/src/qtui/topicwidget.cpp b/src/qtui/topicwidget.cpp index ede4a71e..511d2752 100644 --- a/src/qtui/topicwidget.cpp +++ b/src/qtui/topicwidget.cpp @@ -32,6 +32,10 @@ TopicWidget::TopicWidget(QWidget *parent) } void TopicWidget::setTopic(const QString &newtopic) { + if(_topic == newtopic) + return; + + _topic = newtopic; ui.topicButton->setAndStyleText(newtopic); ui.topicLineEdit->setText(newtopic); switchPlain(); @@ -65,6 +69,7 @@ bool TopicWidget::eventFilter(QObject *obj, QEvent *event) { if(keyEvent->key() == Qt::Key_Escape) { switchPlain(); + ui.topicLineEdit->setText(_topic); return true; } diff --git a/src/qtui/topicwidget.h b/src/qtui/topicwidget.h index 9492d847..c1bae921 100644 --- a/src/qtui/topicwidget.h +++ b/src/qtui/topicwidget.h @@ -48,6 +48,8 @@ private slots: private: Ui::TopicWidget ui; + + QString _topic; };