-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy patheventwidget.cpp
More file actions
94 lines (66 loc) · 3.31 KB
/
Copy patheventwidget.cpp
File metadata and controls
94 lines (66 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include "eventwidget.h"
#include <QDate>
#include <QDebug>
#include <QLabel>
#include <QFont>
#include <utility>
const int padding = 10;
const double factor_04 = 0.4;
const double factor_06 = 0.6;
EventWidget::EventWidget(QWidget *parent) : QWidget(parent)
{
this->eventWidget = new QWidget(this);
this->eventWidget->setObjectName("eventContainer");
this->label_eventName = new QLabel(eventWidget);
this->label_eventCountdown = new QLabel(eventWidget);
this->label_eventName->setText("None");
this->label_eventCountdown->setText("NaN");
}
void EventWidget::setEventDate(QString _eventDate){
this->eventDate = std::move(_eventDate);
}
void EventWidget::setEventName(QString _eventName){
this->eventName = std::move(_eventName);
}
void EventWidget::setEvent(_Event _event){
this->event = _event;
this->eventDate = _event.eventDate;
this->eventName = _event.eventName;
QString _ = "eventContainer";
QString __ = QString::number(this->event.eventId);
this->setObjectName(_+__);
this->eventWidget->setProperty("special",true);
}
void EventWidget::updateEventCountdown(){
QDate nowDate = QDate::currentDate();
QDate targetDate = QDate::fromString(this->eventDate,"yyyy-MM-dd");
this->countdown = nowDate.daysTo(targetDate);
qDebug() << this->eventName << nowDate << targetDate << this->countdown;
this->label_eventName->setText(this->eventName);
this->label_eventCountdown->setText(QString::number(this->countdown));
this->label_eventName->setAlignment(Qt::Alignment(Qt::AlignmentFlag::AlignHCenter | Qt::AlignmentFlag::AlignVCenter));
this->label_eventCountdown->setAlignment(Qt::Alignment(Qt::AlignmentFlag::AlignHCenter | Qt::AlignmentFlag::AlignVCenter));
QRect t = this->geometry();
this->eventWidget->setGeometry(0,0,t.width(),t.height());
this->label_eventName->setGeometry(padding,padding,t.width()-(padding<<1),int(t.height()*factor_04)-padding);
this->label_eventCountdown->setGeometry(padding,int(t.height()*factor_04),t.width()-(padding << 1),int(t.height()*factor_06)-padding);
this->label_eventName->setFont(this->event.font_eventName);
this->label_eventCountdown->setFont(this->event.font_eventCountdown);
QPalette pt_eventName = palette();
QPalette pt_eventCountdown = palette();
pt_eventName.setColor(QPalette::WindowText,this->event.color_eventName);
pt_eventCountdown.setColor(QPalette::WindowText,this->event.color_eventCountdown);
this->label_eventName->setPalette(pt_eventName);
this->label_eventCountdown->setPalette(pt_eventCountdown);
QString stylesheet = QString("QWidget[special=\"true\"]{background-color:%1; border: %2; border-radius: 10px; %3}").arg(event.backgroundColor.name(QColor::HexArgb)).arg(event.widget_border).arg(event.otherStylesheet);
qDebug() << stylesheet;
this->eventWidget->setStyleSheet(stylesheet);
// QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
// shadow->setEnabled(this->event.shadow_enabled);
// shadow->setBlurRadius(this->event.shadow_blur_radius);
// shadow->setXOffset(this->event.shadow_offset_x);
// shadow->setYOffset(this->event.shadow_offset_y);
// shadow->setColor(this->event.shadow_color);
// this->eventWidget->setGraphicsEffect(shadow);
// this->eventWidget->setContentsMargins(1,1,1,1);
}