/* * Copyright (c) 2010 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include #include #include "QtChatTheme.h" namespace Swift { class ChatSnippet { public: ChatSnippet(bool appendToPrevious); virtual ~ChatSnippet(); virtual const QString& getContent() const = 0; virtual QString getContinuationElementID() const { return ""; } boost::shared_ptr getContinuationFallbackSnippet() const {return continuationFallback_;} bool getAppendToPrevious() const { return appendToPrevious_; } static QString escape(const QString& original) { QString result(original); result.replace("%message%", "%message%"); result.replace("%sender%", "%sender%"); result.replace("%time%", "%%time%"); result.replace("%shortTime%", "%%shortTime%"); result.replace("%userIconPath%", "%userIconPath%"); return result; } static QString timeToEscapedString(const QDateTime& time); protected: void setContinuationFallbackSnippet(boost::shared_ptr continuationFallback) { continuationFallback_ = continuationFallback; } private: bool appendToPrevious_; boost::shared_ptr continuationFallback_; }; }