digiKam
Loading...
Searching...
No Matches
ddatepicker.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 1997-04-21
7 * Description : A date selection widget.
8 *
9 * SPDX-FileCopyrightText: 2011-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 1997 by Tim D. Gilman <tdgilman at best dot org>
11 * SPDX-FileCopyrightText: 1998-2001 by Mirko Boehm <mirko at kde dot org>
12 * SPDX-FileCopyrightText: 2007 by John Layt <john at layt dot net>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20// Qt includes
21
22#include <QDateTime>
23#include <QFrame>
24
25// Local includes
26
27#include "digikam_export.h"
28
29class QLineEdit;
30
31namespace Digikam
32{
33
34class DDateTable;
35
39class DIGIKAM_GUI_EXPORT DDatePicker : public QFrame
40{
41 Q_OBJECT
42 Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged USER true)
43 Q_PROPERTY(bool closeButton READ hasCloseButton WRITE setCloseButton)
44 Q_PROPERTY(int fontSize READ fontSize WRITE setFontSize)
45
46public:
47
51 explicit DDatePicker(QWidget* const parent = nullptr);
52
56 explicit DDatePicker(const QDate& dt, QWidget* const parent = nullptr);
57
61 ~DDatePicker() override;
62
70 QSize sizeHint() const override;
71
77 bool setDate(const QDate& date);
78
82 const QDate& date() const;
83
88 DDateTable* dateTable() const;
89
93 void setFontSize(int);
94
98 int fontSize() const;
99
108 void setCloseButton(bool enable);
109
114 bool hasCloseButton() const;
115
116protected:
117
119 bool eventFilter(QObject*, QEvent*) override;
120
122 void resizeEvent(QResizeEvent*) override;
123 void changeEvent(QEvent*) override;
124
125protected Q_SLOTS:
126
127 void dateChangedSlot(const QDate& date);
128 void tableClickedSlot();
129 void monthForwardClicked();
130 void monthBackwardClicked();
131 void yearForwardClicked();
132 void yearBackwardClicked();
133 void selectMonthClicked();
134 void selectYearClicked();
135 void uncheckYearSelector();
136 void lineEnterPressed();
137 void todayButtonClicked();
138 void weekSelected(int);
139
140Q_SIGNALS:
141
149 void dateChanged(const QDate& date);
150
157 void dateSelected(const QDate& date);
158
165 void dateEntered(const QDate& date);
166
171 void tableClicked();
172
173private:
174
175 void initWidget(const QDate& date);
176
177private:
178
179 class Private;
180 Private* const d = nullptr;
181
182 friend class Private;
183};
184
185} // namespace Digikam
Definition ddatepicker_p.h:89
Definition ddatepicker.h:40
Definition ddatetable.h:40
Definition datefolderview.cpp:34