1 /***************************************************************************
2  * SPDX-FileCopyrightText: 2021 S. MANKOWSKI stephane@mankowski.fr
3  * SPDX-FileCopyrightText: 2021 G. DE BURE support@mankowski.fr
4  * SPDX-License-Identifier: GPL-3.0-or-later
5  ***************************************************************************/
6 /** @file
7  * A date editor with more features.
8  *
9  * @author Stephane MANKOWSKI / Guillaume DE BURE
10  */
11 #include "skgdateedit.h"
12 
13 #include <kdatevalidator.h>
14 #include <qlineedit.h>
15 
16 #include <klocalizedstring.h>
17 
SKGDateEdit(QWidget * iParent,const char * name)18 SKGDateEdit::SKGDateEdit(QWidget* iParent, const char* name)
19     : KPIM::KDateEdit(iParent), m_mode(CURRENT)
20 {
21     setObjectName(name);
22     setMode(CURRENT);
23     setToolTip(i18n("Date of the operation\nup or down to add or remove one day\nCTRL + up or CTRL + down to add or remove one month"));
24 }
25 
26 SKGDateEdit::~SKGDateEdit()
27     = default;
28 
mode() const29 SKGDateEdit::Mode SKGDateEdit::mode() const
30 {
31     return m_mode;
32 }
33 
setMode(Mode iMode)34 void SKGDateEdit::setMode(Mode iMode)
35 {
36     if (iMode != m_mode) {
37         m_mode = iMode;
38 
39         auto* val = qobject_cast<KPIM::KDateValidator*>(const_cast<QValidator*>(validator()));
40         val->setFixupBehavior(m_mode == CURRENT ? KPIM::KDateValidator::FixupCurrent : m_mode == NEXT ? KPIM::KDateValidator::FixupForward : KPIM::KDateValidator::FixupBackward);
41 
42         emit modeChanged();
43     }
44 }
45 
46 
47