Make the new style engine compile and maybe even work. (Cached) format data is now
[quassel.git] / src / qtui / topicbutton.cpp
index ee91ad5..2030a54 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) {
@@ -43,6 +45,8 @@ void TopicButton::paintEvent(QPaintEvent *event) {
   QPainter painter(this);
   painter.setBackgroundMode(Qt::OpaqueMode);
 
+  // FIXME re-enable topic painting
+#ifndef SPUTDEV
   QRect drawRect = rect();
   QRect brect;
   QString textPart;
@@ -54,14 +58,29 @@ void TopicButton::paintEvent(QPaintEvent *event) {
     painter.drawText(drawRect, Qt::AlignLeft|Qt::TextSingleLine, textPart, &brect);
     drawRect.setLeft(brect.right());
   }
+#endif
 }
 
 void TopicButton::setAndStyleText(const QString &text) {
+  if(QAbstractButton::text() == text)
+    return;
+
+  setText(text); // this triggers a repaint event
+
+#ifndef SPUTDEV
   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);
+#endif  
+  // show topic in tooltip
+  setToolTip(tr("%1\n\nClick to edit!").arg(QAbstractButton::text()));
 }
+