Storing format length as quint16 rather than int.
[quassel.git] / src / uisupport / uistyle.h
index 59841dc..43f248a 100644 (file)
 #ifndef _UISTYLE_H_
 #define _UISTYLE_H_
 
-#ifndef SPUTDEV
-# include "old-uistyle.h"
-#else
-
+#include <QDataStream>
 #include <QTextCharFormat>
 #include <QTextLayout>
 #include <QUrl>
 #include "settings.h"
 
 class UiStyle {
+  Q_DECLARE_TR_FUNCTIONS (UiStyle);
 
   public:
     UiStyle(const QString &settingsKey);
     virtual ~UiStyle();
 
+    typedef QList<QPair<quint16, quint32> > FormatList;
+
     //! This enumerates the possible formats a text element may have. */
     /** These formats are ordered on increasing importance, in cases where a given property is specified
      *  by multiple active formats.
@@ -117,11 +117,18 @@ class UiStyle {
     };
 
     struct StyledString {
-      QString text;
-      QList<QPair<int, quint32> > formats;  // starting pos, ftypes
+      QString plainText;
+      FormatList formatList;  // starting pos, ftypes
+    };
+
+    struct StyledMessage {
+      StyledString timestamp;
+      StyledString sender;
+      StyledString contents;
     };
 
     StyledString styleString(const QString &);
+    StyledMessage styleMessage(const Message &);
 
     void setFormat(FormatType, QTextCharFormat, Settings::Mode mode/* = Settings::Custom*/);
     QTextCharFormat format(FormatType, Settings::Mode mode = Settings::Custom) const;
@@ -134,6 +141,8 @@ class UiStyle {
 
 
   private:
+    QString mircToInternal(const QString &);
+
     QTextCharFormat _defaultPlainFormat;
     QHash<FormatType, QTextCharFormat> _defaultFormats;
     QHash<FormatType, QTextCharFormat> _customFormats;
@@ -143,5 +152,9 @@ class UiStyle {
     QString _settingsKey;
 };
 
-#endif // SPUTDEV
+QDataStream &operator<<(QDataStream &out, const UiStyle::FormatList &formatList);
+QDataStream &operator>>(QDataStream &in, UiStyle::FormatList &formatList);
+
+Q_DECLARE_METATYPE(UiStyle::FormatList);
+
 #endif