Added a useful popup to the topic bar. Should probably be beautified though...
[quassel.git] / src / qtui / topicbutton.cpp
index ee91ad5..4c26bfc 100644 (file)
@@ -35,6 +35,8 @@
 TopicButton::TopicButton(QWidget *parent)
   : QAbstractButton(parent)
 {
+  setFixedHeight(QFontMetrics(qApp->font()).height());
+  setToolTip(tr("Click to edit!"));
 }
 
 void TopicButton::paintEvent(QPaintEvent *event) {
@@ -57,11 +59,24 @@ 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());
   }
+
+  // ensure the button is editable (height != 1) if there is no text to show
+  if(text.isEmpty())
+    height = QFontMetrics(qApp->font()).height();
+  
   setFixedHeight(height);
+  
+  // show topic in tooltip
+  setToolTip(tr("%1\n\nClick to edit!").arg(QAbstractButton::text()));
 }
+