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