diff options
author | Louie S <louie@example.com> | 2024-02-21 20:15:03 -0500 |
---|---|---|
committer | Louie S <louie@example.com> | 2024-02-21 20:15:03 -0500 |
commit | 5d1fbe2c839aa33d3855a29efc628e49a17b95f4 (patch) | |
tree | e8f85cb80fbd9ed1a76c68d096d69b7577f68f8f /src/entry.cpp | |
parent | 2af22ca34e5120ba69cf20911bf802be57cc18dd (diff) |
Create entry class
Diffstat (limited to 'src/entry.cpp')
-rw-r--r-- | src/entry.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/entry.cpp b/src/entry.cpp new file mode 100644 index 0000000..ed602d0 --- /dev/null +++ b/src/entry.cpp @@ -0,0 +1,82 @@ +#include <QLabel> + +#include "entry.h" + +Entry::Entry(int id, int parent_id, QString desc, QDateTime due, QString due_alt, QUrl link, QString color, QString highlight, bool done, bool hidden) : + id(id), + parent_id(parent_id), + desc(desc), + due(due), + due_alt(due_alt), + link(link), + color(color), + highlight(highlight), + done(done), + hidden(hidden) +{ + QLabel *bullet = new QLabel(); + QLabel *body = new QLabel(); + + // set styling + this->setContentsMargins(2, 2, 2, 2); + + bullet->setFont(QFont("Arial", 11)); + bullet->setMaximumWidth(15); + + body->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse); + body->setFont(QFont("Arial", 11)); + body->setWordWrap(true); + body->setToolTip("Right-Click for actions"); + + // Check rules + // TODO + + // set conditional styling + if(this->done) { + bullet->setText("\u2713"); + bullet->setStyleSheet( + "QLabel {" + " color: green;" + "}" + ); + } + else + bullet->setText("- "); + this->addWidget(bullet); + + if(!this->due.isNull()) + body->setText(this->due.toString("M/d/yyyy")); + else if(!this->due_alt.isEmpty()) + body->setText(this->due_alt + ": "); + + if(!this->link.isEmpty()) { + body->setOpenExternalLinks(true); + body->setText(body->text() + "<a href=\"" + this->link.toString() + "\" " "style=\"color: " + (this->color.isEmpty() ? "default" : this->color ) + ";\">"); + } + body->setText(body->text() + this->desc); + if(!this->link.isEmpty()) { + body->setText(body->text() + "</a>"); + body->setToolTip(this->link.toString()); + } + + if(this->done) { + QFont body_font = body->font(); + body_font.setStrikeOut(true); + body->setFont(body_font); + body->setStyleSheet( + "QLabel {" + " color: green" + "}" + ); + } + else { + body->setStyleSheet( + "QLabel {" + " color: " + (this->color.isEmpty() ? "default" : this->color) + ";" + " background-color: " + (this->highlight.isEmpty() ? "none" : this->highlight) + ";" + " font-weight: " + (this->due.isValid() && this->due <= QDateTime::currentDateTime() ? "bold" : "normal") + ";" + ";" + ); + } + this->addWidget(body); +} |