X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fuistyle.h;h=ca411faec8823b93f42fedf4f86a1d7561211264;hb=7a30024fa1fe4e09902f2fd7fc9022b427376dd4;hp=f031085ef894fcfbec172a15432dc3f5fb722d17;hpb=2b5d210cb6e61a25a6a9d0c119aec025322b3b84;p=quassel.git diff --git a/src/uisupport/uistyle.h b/src/uisupport/uistyle.h index f031085e..ca411fae 100644 --- a/src/uisupport/uistyle.h +++ b/src/uisupport/uistyle.h @@ -32,11 +32,11 @@ #include "message.h" #include "settings.h" -class UiStyle { - Q_DECLARE_TR_FUNCTIONS(UiStyle) +class UiStyle : public QObject{ + Q_OBJECT public: - UiStyle(); + UiStyle(QObject *parent = 0); virtual ~UiStyle(); typedef QList > FormatList; @@ -93,7 +93,8 @@ public: enum MessageLabel { OwnMsg = 0x00000001, - Highlight = 0x00000002 + Highlight = 0x00000002, + Selected = 0x00000004 // must be last! }; struct StyledString { @@ -106,6 +107,7 @@ public: static FormatType formatType(Message::Type msgType); static StyledString styleString(const QString &string, quint32 baseFormat = None); static QString mircToInternal(const QString &); + static inline QString timestampFormatString() { return _timestampFormatString; } QTextCharFormat format(quint32 formatType, quint32 messageLabel = 0); QFontMetricsF *fontMetrics(quint32 formatType, quint32 messageLabel = 0); @@ -114,26 +116,32 @@ public: QList toTextLayoutList(const FormatList &, int textLength, quint32 messageLabel = 0); +public slots: + void reload(); + +signals: + void changed(); + protected: void loadStyleSheet(); - - //! Determines the format set to be used for the given hostmask - //int formatSetIndex(const QString &hostmask) const; - //int formatSetIndexForSelf() const; + QString loadStyleSheet(const QString &name, bool shouldExist = false); QTextCharFormat cachedFormat(quint64 key) const; QTextCharFormat cachedFormat(quint32 formatType, quint32 messageLabel = 0) const; void setCachedFormat(const QTextCharFormat &format, quint32 formatType, quint32 messageLabel = 0); - void mergeSubElementFormat(QTextCharFormat &format, quint32 formatType, quint32 messageLabel = 0); + void mergeFormat(QTextCharFormat &format, quint32 formatType, quint64 messageLabel); + void mergeSubElementFormat(QTextCharFormat &format, quint32 formatType, quint64 messageLabel); static FormatType formatType(const QString &code); static QString formatCode(FormatType); + static void setTimestampFormatString(const QString &format); private: QFont _defaultFont; QHash _formatCache; QHash _metricsCache; static QHash _formatCodes; + static QString _timestampFormatString; }; class UiStyle::StyledMessage : public Message { @@ -152,10 +160,8 @@ public: quint8 senderHash() const; protected: - //! Styling is only needed for calls to plainContents() and contentsFormatList() void style() const; - private: mutable StyledString _contents; mutable quint8 _senderHash;