digiKam
Loading...
Searching...
No Matches
ddatetable.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 : Date selection table.
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 <QLineEdit>
23#include <QDateTime>
24
25class QMenu;
26
27namespace Digikam
28{
29
39class DDateTable : public QWidget
40{
41 Q_OBJECT
42 Q_PROPERTY(QDate date READ date WRITE setDate)
44
45public:
46
53
54public:
55
56 explicit DDateTable(QWidget* const parent = nullptr);
57 explicit DDateTable(const QDate& dt, QWidget* const parent = nullptr);
58 ~DDateTable() override;
59
67 QSize sizeHint() const override;
68
72 void setFontSize(int size);
73
77 bool setDate(const QDate& date);
78
82 const QDate& date() const;
83
90 void setPopupMenuEnabled(bool enable);
91
95 bool popupMenuEnabled() const;
96
101 void setCustomDatePainting(const QDate& date, const QColor& fgColor,
102 BackgroundMode bgMode = NoBgMode,
103 const QColor& bgColor = QColor());
104
108 void unsetCustomDatePainting(const QDate& dt);
109
110protected:
111
116 virtual int posFromDate(const QDate& dt);
117
122 virtual QDate dateFromPos(int pos);
123
124 void paintEvent(QPaintEvent* e) override;
125
129 void mousePressEvent(QMouseEvent* e) override;
130 void wheelEvent(QWheelEvent* e) override;
131 void keyPressEvent(QKeyEvent* e) override;
132 void focusInEvent(QFocusEvent* e) override;
133 void focusOutEvent(QFocusEvent* e) override;
134
138 bool event(QEvent* e) override;
139
140Q_SIGNALS:
141
145 void dateChanged(const QDate& date);
146
153 void dateChanged(const QDate& cur, const QDate& old);
154
159
165 void aboutToShowContextMenu(QMenu* menu, const QDate& dt);
166
167private:
168
169 void initWidget(const QDate& dt);
170 void initAccels();
171 void paintCell(QPainter* painter, int row, int col);
172
173private:
174
175 class Private;
176 Private* const d = nullptr;
177
178 friend class Private;
179
180 Q_DISABLE_COPY(DDateTable)
181};
182
183} // namespace Digikam
Definition ddatetable_p.h:38
Definition ddatetable.h:40
void setFontSize(int size)
Definition ddatetable.cpp:531
void focusInEvent(QFocusEvent *e) override
Definition ddatetable.cpp:753
void setCustomDatePainting(const QDate &date, const QColor &fgColor, BackgroundMode bgMode=NoBgMode, const QColor &bgColor=QColor())
Definition ddatetable.cpp:790
~DDateTable() override
Definition ddatetable.cpp:56
bool popupMenu
Definition ddatetable.h:43
virtual int posFromDate(const QDate &dt)
Definition ddatetable.cpp:126
void focusOutEvent(QFocusEvent *e) override
Definition ddatetable.cpp:758
virtual QDate dateFromPos(int pos)
Definition ddatetable.cpp:142
bool event(QEvent *e) override
Definition ddatetable.cpp:565
void paintEvent(QPaintEvent *e) override
Definition ddatetable.cpp:157
QDate date
Definition ddatetable.h:42
void unsetCustomDatePainting(const QDate &dt)
Definition ddatetable.cpp:809
void dateChanged(const QDate &date)
BackgroundMode
Definition ddatetable.h:48
@ RectangleMode
Definition ddatetable.h:50
@ NoBgMode
Definition ddatetable.h:49
@ CircleMode
Definition ddatetable.h:51
void setPopupMenuEnabled(bool enable)
Definition ddatetable.cpp:780
void wheelEvent(QWheelEvent *e) override
Definition ddatetable.cpp:559
void mousePressEvent(QMouseEvent *e) override
Definition ddatetable.cpp:645
bool setDate(const QDate &date)
Definition ddatetable.cpp:725
void keyPressEvent(QKeyEvent *e) override
Definition ddatetable.cpp:441
bool popupMenuEnabled() const
Definition ddatetable.cpp:785
QSize sizeHint() const override
Definition ddatetable.cpp:763
void dateChanged(const QDate &cur, const QDate &old)
void aboutToShowContextMenu(QMenu *menu, const QDate &dt)
Definition datefolderview.cpp:34