/***************************************************************************
- * Copyright (C) 2005-09 by the Quassel Project *
+ * Copyright (C) 2005-2019 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef CHATLINEMODELITEM_H_
-#define CHATLINEMODELITEM_H_
+#pragma once
#include "messagemodel.h"
-
#include "uistyle.h"
-class ChatLineModelItem : public MessageModelItem {
+class ChatLineModelItem : public MessageModelItem
+{
public:
- ChatLineModelItem(const Message &);
+ ChatLineModelItem(const Message&);
+
+ QVariant data(int column, int role) const override;
+ bool setData(int column, const QVariant& value, int role) override;
- virtual QVariant data(int column, int role) const;
+ inline const Message& message() const override { return _styledMsg; }
+ inline const QDateTime& timestamp() const override { return _styledMsg.timestamp(); }
+ inline const MsgId& msgId() const override { return _styledMsg.msgId(); }
+ inline const BufferId& bufferId() const override { return _styledMsg.bufferId(); }
+ inline void setBufferId(BufferId bufferId) override { _styledMsg.setBufferId(bufferId); }
+ inline Message::Type msgType() const override { return _styledMsg.type(); }
+ inline Message::Flags msgFlags() const override { return _styledMsg.flags(); }
- virtual inline const Message &message() const { return _styledMsg; }
- virtual inline const QDateTime ×tamp() const { return _styledMsg.timestamp(); }
- virtual inline const MsgId &msgId() const { return _styledMsg.msgId(); }
- virtual inline const BufferId &bufferId() const { return _styledMsg.bufferId(); }
- virtual inline void setBufferId(BufferId bufferId) { _styledMsg.setBufferId(bufferId); }
- virtual inline Message::Type msgType() const { return _styledMsg.type(); }
- virtual inline Message::Flags msgFlags() const { return _styledMsg.flags(); }
+ virtual inline void invalidateWrapList() { _wrapList.clear(); }
- /// Used to store information about words to be used for wrapping
- struct Word {
- quint16 start;
- qreal endX;
- qreal width;
- qreal trailing;
- };
- typedef QVector<Word> WrapList;
+ /// Used to store information about words to be used for wrapping
+ struct Word
+ {
+ quint16 start;
+ qreal endX;
+ qreal width;
+ qreal trailing;
+ };
+ using WrapList = QVector<Word>;
private:
- QVariant timestampData(int role) const;
- QVariant senderData(int role) const;
- QVariant contentsData(int role) const;
+ QVariant timestampData(int role) const;
+ QVariant senderData(int role) const;
+ QVariant contentsData(int role) const;
- QVariant backgroundBrush(UiStyle::FormatType subelement, bool selected = false) const;
- quint32 messageLabel() const;
+ QVariant backgroundBrush(UiStyle::FormatType subelement, bool selected = false) const;
+ UiStyle::MessageLabel messageLabel() const;
- void computeWrapList() const;
+ void computeWrapList() const;
- mutable WrapList _wrapList;
- UiStyle::StyledMessage _styledMsg;
+ mutable WrapList _wrapList;
+ UiStyle::StyledMessage _styledMsg;
- static unsigned char *TextBoundaryFinderBuffer;
- static int TextBoundaryFinderBufferSize;
+ static unsigned char* TextBoundaryFinderBuffer;
+ static int TextBoundaryFinderBufferSize;
};
-
-#endif