File indexing completed on 2024-05-05 03:50:46
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2017 Spencer Brown <spencerbrown991@gmail.com> 0004 // 0005 0006 #ifndef NOTESITEM_H 0007 #define NOTESITEM_H 0008 0009 #include "AbstractDataPluginItem.h" 0010 #include <QPixmap> 0011 #include <QLabel> 0012 #include <QDateTime> 0013 0014 class Comment 0015 { 0016 public: 0017 Comment(); 0018 Comment(const QDateTime &date, const QString &text, const QString &user, int uid); 0019 QDateTime date() const; 0020 QString text() const; 0021 QString user() const; 0022 int uid() const; 0023 0024 private: 0025 QDateTime m_date; 0026 QString m_text; 0027 QString m_user; 0028 int m_uid; 0029 }; 0030 0031 namespace Marble 0032 { 0033 0034 class NotesItem : public AbstractDataPluginItem 0035 { 0036 Q_OBJECT 0037 0038 public: 0039 explicit NotesItem(QObject* parent); 0040 0041 ~NotesItem() override; 0042 0043 bool initialized() const override; 0044 0045 void paint(QPainter *painter) override; 0046 0047 bool operator<(const AbstractDataPluginItem *other) const override; 0048 0049 void setAuthor(const QString &author); 0050 0051 void setDateCreated(const QDateTime& dateCreated); 0052 0053 void setNoteStatus(const QString& noteStatus); 0054 0055 void setDateClosed(const QDateTime& dataClosed); 0056 0057 void addComment(const Comment& comment); 0058 0059 private: 0060 QPixmap m_pixmap_open; 0061 QPixmap m_pixmap_closed; 0062 QVector<Comment> m_commentsList; 0063 QDateTime m_dateCreated; 0064 QString m_noteStatus; 0065 QDateTime m_dateClosed; 0066 QString m_labelText; 0067 0068 static const QFont s_font; 0069 static const int s_labelOutlineWidth; 0070 }; 0071 } 0072 #endif // NOTESITEM_H