Fluid
Loading...
Searching...
No Matches
dateselector.h
Go to the documentation of this file.
1/*
2 * This file is part of Fluid.
3 *
4 * Copyright (C) 2018 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
5 *
6 * $BEGIN_LICENSE:MPL2$
7 *
8 * This Source Code Form is subject to the terms of the Mozilla Public
9 * License, v. 2.0. If a copy of the MPL was not distributed with this
10 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
11 *
12 * $END_LICENSE$
13 */
14
15#pragma once
16
17#include <QDate>
18#include <QQuickItem>
19
20class DateSelector : public QQuickItem
21{
22 Q_OBJECT
26 Q_PROPERTY(QLocale locale READ locale WRITE setLocale NOTIFY localeChanged FINAL)
27 Q_PROPERTY(QQuickItem *contentItem READ contentItem CONSTANT FINAL)
28 Q_PROPERTY(QQuickItem *navigator READ navigator WRITE setNavigator NOTIFY navigatorChanged FINAL)
29 Q_PROPERTY(QQuickItem *calendar READ calendar WRITE setCalendar NOTIFY calendarChanged FINAL)
32 Q_PROPERTY(QDate from READ from WRITE setFrom RESET resetFrom NOTIFY fromChanged FINAL)
33 Q_PROPERTY(QDate to READ to WRITE setTo RESET resetTo NOTIFY toChanged FINAL)
34 Q_PROPERTY(QDate selectedDate READ selectedDate WRITE setSelectedDate NOTIFY selectedDateChanged FINAL)
35 QML_ELEMENT
36 Q_DISABLE_COPY(DateSelector)
37public:
38 explicit DateSelector(QQuickItem *parent = nullptr);
39
40 QLocale locale() const;
41 void setLocale(const QLocale &locale);
42
43 QQuickItem *contentItem() const;
44
45 QQuickItem *navigator() const;
46 void setNavigator(QQuickItem *item);
47
48 QQuickItem *calendar() const;
49 void setCalendar(QQuickItem *item);
50
51 bool dayOfWeekRowVisible() const;
52 void setDayOfWeekRowVisible(bool value);
54
55 bool weekNumberVisible() const;
56 void setWeekNumberVisible(bool value);
58
59 QDate from() const;
60 void setFrom(const QDate &date);
61 void resetFrom();
62
63 QDate to() const;
64 void setTo(const QDate &date);
65 void resetTo();
66
67 QDate selectedDate() const;
68 void setSelectedDate(const QDate &date);
69
70Q_SIGNALS:
77 void toChanged();
79
80private:
81 QLocale m_locale;
82 QQuickItem *m_contentItem = nullptr;
83 QQuickItem *m_navigator = nullptr;
84 QQuickItem *m_calendar = nullptr;
85 bool m_dayOfWeekRowVisible = true;
86 bool m_weekNumberVisible = true;
87 QDate m_from;
88 QDate m_to;
89 QDate m_selectedDate;
90
91private Q_SLOTS:
92 void updateLayout();
93};
94
95QML_DECLARE_TYPE(DateSelector)
96
Definition DateSelector.qml:21
QDate to
Definition dateselector.h:33
QQuickItem * contentItem
Definition dateselector.h:27
void setLocale(const QLocale &locale)
Definition dateselector.cpp:35
void setTo(const QDate &date)
Definition dateselector.cpp:149
void resetWeekNumberVisible()
Definition dateselector.cpp:120
void fromChanged()
QDate from
Definition dateselector.h:32
void navigatorChanged()
QQuickItem * calendar
Definition dateselector.h:29
void localeChanged()
void setFrom(const QDate &date)
Definition dateselector.cpp:130
void dayOfWeekRowVisibleChanged()
void setSelectedDate(const QDate &date)
Definition dateselector.cpp:168
void weekNumberVisibleChanged()
void resetDayOfWeekRowVisible()
Definition dateselector.cpp:101
void calendarChanged()
bool dayOfWeekRowVisible
Definition dateselector.h:30
void resetFrom()
Definition dateselector.cpp:139
void resetTo()
Definition dateselector.cpp:158
bool weekNumberVisible
Definition dateselector.h:31
void setDayOfWeekRowVisible(bool value)
Definition dateselector.cpp:92
void selectedDateChanged()
QQuickItem * navigator
Definition dateselector.h:28
void toChanged()
QLocale locale
Definition dateselector.h:26
QDate selectedDate
Definition dateselector.h:34
void setNavigator(QQuickItem *item)
Definition dateselector.cpp:54
void setCalendar(QQuickItem *item)
Definition dateselector.cpp:73
void setWeekNumberVisible(bool value)
Definition dateselector.cpp:111