This obscure "fix" fixes garbled chatwidget fonts for me. I say obscure, because...
[quassel.git] / src / uisupport / uistyle.cpp
index ec7364e..0420a7c 100644 (file)
@@ -25,7 +25,8 @@ UiStyle::UiStyle(const QString &settingsKey) : _settingsKey(settingsKey) {
   // Default format
   QTextCharFormat def;
   def.setForeground(QBrush("#000000"));
-  def.setFont(QFont("Courier", 10));
+  //def.setFont(QFont("Courier", 10));
+  def.font().setStyleHint(QFont::TypeWriter);
   _defaultFormats = QVector<QTextCharFormat>(NumFormatTypes, def);
   _customFormats = QVector<QTextCharFormat>(NumFormatTypes, QTextFormat().toCharFormat());
 
@@ -77,6 +78,9 @@ UiStyle::UiStyle(const QString &settingsKey) : _settingsKey(settingsKey) {
     QTextCharFormat fgf, bgf;
     fgf.setForeground(QBrush(QColor(colors[i]))); setFormat((FormatType)(FgCol00 + i), fgf, Settings::Default);
     bgf.setBackground(QBrush(QColor(colors[i]))); setFormat((FormatType)(BgCol00 + i), bgf, Settings::Default);
+    //FIXME fix the havoc caused by ColorSettingsPage
+    setFormat((FormatType)(FgCol00 + i), fgf, Settings::Custom);
+    setFormat((FormatType)(BgCol00 + i), bgf, Settings::Custom);
   }
 
   // Set a few more standard formats
@@ -126,6 +130,13 @@ QString UiStyle::formatCode(FormatType ftype) const {
 }
 
 UiStyle::StyledText UiStyle::styleString(QString s) {
+  // FIXME
+  // The following two lines fix garbled fonts for me. I have no effing clue how or why.
+  // Without comparing s to something (anything), invalid formats with negative lengths are created...
+  // This smells like a gcc/Qt error or something, but maybe it's my fault somehow.
+  bool flg = (s == "foo");
+  Q_UNUSED(flg);
+
   StyledText result;
   QList<FormatType> fmtList;
   fmtList.append(None);
@@ -133,7 +144,7 @@ UiStyle::StyledText UiStyle::styleString(QString s) {
   curFmtRng.format = format(None);
   curFmtRng.start = 0;
   result.formats.append(curFmtRng);
-  int pos = 0; int length;
+  int pos = 0; int length = 0;
   int fgCol = -1, bgCol = -1;  // marks current mIRC color
   for(;;) {
     pos = s.indexOf('%', pos);