removing unneeded semicolons after Qt macros - making Quassel compile on Solaris...
[quassel.git] / src / uisupport / uistyle.h
index 43f248a..2aae59b 100644 (file)
@@ -22,6 +22,7 @@
 #define _UISTYLE_H_
 
 #include <QDataStream>
+#include <QFontMetricsF>
 #include <QTextCharFormat>
 #include <QTextLayout>
 #include <QUrl>
@@ -30,7 +31,7 @@
 #include "settings.h"
 
 class UiStyle {
-  Q_DECLARE_TR_FUNCTIONS (UiStyle);
+  Q_DECLARE_TR_FUNCTIONS (UiStyle)
 
   public:
     UiStyle(const QString &settingsKey);
@@ -129,24 +130,31 @@ class UiStyle {
 
     StyledString styleString(const QString &);
     StyledMessage styleMessage(const Message &);
+    QString mircToInternal(const QString &) const;
 
     void setFormat(FormatType, QTextCharFormat, Settings::Mode mode/* = Settings::Custom*/);
     QTextCharFormat format(FormatType, Settings::Mode mode = Settings::Custom) const;
     QTextCharFormat mergedFormat(quint32 formatType);
+    QFontMetricsF *fontMetrics(quint32 formatType);
 
     FormatType formatType(const QString &code) const;
     QString formatCode(FormatType) const;
 
+    inline QFont defaultFont() const { return _defaultFont; }
+
+    QList<QTextLayout::FormatRange> toTextLayoutList(const FormatList &, int textLength);
+
   protected:
 
 
   private:
-    QString mircToInternal(const QString &);
 
+    QFont _defaultFont;
     QTextCharFormat _defaultPlainFormat;
     QHash<FormatType, QTextCharFormat> _defaultFormats;
     QHash<FormatType, QTextCharFormat> _customFormats;
     QHash<quint32, QTextCharFormat> _cachedFormats;
+    QHash<quint32, QFontMetricsF *> _cachedFontMetrics;
     QHash<QString, FormatType> _formatCodes;
 
     QString _settingsKey;
@@ -155,6 +163,6 @@ class UiStyle {
 QDataStream &operator<<(QDataStream &out, const UiStyle::FormatList &formatList);
 QDataStream &operator>>(QDataStream &in, UiStyle::FormatList &formatList);
 
-Q_DECLARE_METATYPE(UiStyle::FormatList);
+Q_DECLARE_METATYPE(UiStyle::FormatList)
 
 #endif