Show weekends in alternate base background color

This commit is contained in:
jordi fita mas 2025-01-20 11:00:11 +01:00
parent ff27ea89d9
commit b9c68f4b76
4 changed files with 24 additions and 1 deletions

View File

@ -213,7 +213,9 @@ Control {
Repeater { Repeater {
delegate: Rectangle { delegate: Rectangle {
color: "transparent" required property bool isWeekend
color: isWeekend ? palette.alternateBase : "transparent"
height: parent.height height: parent.height
width: control.dayWidth width: control.dayWidth

View File

@ -14,7 +14,10 @@ Control {
model: model model: model
delegate: Label { delegate: Label {
id: delegate
required property string display required property string display
required property bool isWeekend
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.top: parent.top anchors.top: parent.top
@ -24,6 +27,10 @@ Control {
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
width: control.dayWidth width: control.dayWidth
background: Rectangle {
color: delegate.isWeekend ? delegate.palette.alternateBase : "transparent"
}
Separator { Separator {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.right: parent.right anchors.right: parent.right

View File

@ -25,11 +25,20 @@ QVariant TimelineDayModel::data(const QModelIndex &index, int role) const
switch (role) { switch (role) {
case Qt::DisplayRole: case Qt::DisplayRole:
return QString::number(date.day()); return QString::number(date.day());
case WeekendRole:
return date.dayOfWeek() > 5;
} }
return {}; return {};
} }
QHash<int, QByteArray> TimelineDayModel::roleNames() const
{
QHash<int, QByteArray> roles = QAbstractListModel::roleNames();
roles[WeekendRole] = "isWeekend";
return roles;
}
QDate TimelineDayModel::fromDate() const QDate TimelineDayModel::fromDate() const
{ {
return m_fromDate; return m_fromDate;

View File

@ -13,10 +13,15 @@ class TimelineDayModel : public QAbstractListModel
Q_PROPERTY(QDate toDate READ toDate WRITE setToDate NOTIFY toDateChanged) Q_PROPERTY(QDate toDate READ toDate WRITE setToDate NOTIFY toDateChanged)
public: public:
enum Role {
WeekendRole = Qt::UserRole,
};
explicit TimelineDayModel(QObject *parent = nullptr); explicit TimelineDayModel(QObject *parent = nullptr);
int rowCount(const QModelIndex &parent = QModelIndex()) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
QHash<int, QByteArray> roleNames() const override;
QDate fromDate() const; QDate fromDate() const;
void setFromDate(QDate date); void setFromDate(QDate date);