6 #include "selectdatewidget.h" 7 #include "sievedatespinbox.h" 9 #include <KDateComboBox> 10 #include <KLocalizedString> 11 #include <KTimeComboBox> 12 #include <Libkdepim/LineEditCatchReturnKey> 16 #include "libksieve_debug.h" 17 #include <QHBoxLayout> 19 #include <QStackedWidget> 23 SelectDateWidget::SelectDateWidget(
QWidget *parent)
29 SelectDateWidget::~SelectDateWidget()
33 void SelectDateWidget::initialize()
36 lay->setContentsMargins({});
39 connect(mDateType, QOverload<int>::of(&
QComboBox::activated),
this, &SelectDateWidget::slotDateTypeActivated);
53 lay->addWidget(mDateType);
63 mStackWidget->addWidget(mDateLineEdit);
66 mDateValue =
new SieveDateSpinBox(
this);
67 mStackWidget->addWidget(mDateValue);
71 mStackWidget->addWidget(mDateEdit);
75 mStackWidget->addWidget(mTimeEdit);
78 mStackWidget->setCurrentWidget(mDateValue);
81 void SelectDateWidget::slotDateTypeActivated(
int index)
83 const auto type = mDateType->itemData(index).value<KSieveUi::SelectDateWidget::DateType>();
92 mDateValue->setType(type);
93 mStackWidget->setCurrentWidget(mDateValue);
96 mStackWidget->setCurrentWidget(mDateEdit);
99 mStackWidget->setCurrentWidget(mDateLineEdit);
102 mStackWidget->setCurrentWidget(mTimeEdit);
105 mStackWidget->setCurrentWidget(mDateLineEdit);
108 mStackWidget->setCurrentWidget(mDateLineEdit);
111 mStackWidget->setCurrentWidget(mDateLineEdit);
114 Q_EMIT valueChanged();
117 QString SelectDateWidget::dateValue(SelectDateWidget::DateType type)
const 128 str = mDateValue->code();
153 SelectDateWidget::DateType SelectDateWidget::dateTypeFromString(
const QString &str)
182 qCDebug(LIBKSIEVE_LOG) <<
" date type unknown :" << str;
187 QString SelectDateWidget::dateType(SelectDateWidget::DateType type)
const 192 str = QStringLiteral(
"year");
195 str = QStringLiteral(
"month");
198 str = QStringLiteral(
"day");
201 str = QStringLiteral(
"date");
204 str = QStringLiteral(
"julian");
207 str = QStringLiteral(
"hour");
210 str = QStringLiteral(
"minute");
213 str = QStringLiteral(
"second");
216 str = QStringLiteral(
"time");
219 str = QStringLiteral(
"iso8601");
222 str = QStringLiteral(
"std11");
225 str = QStringLiteral(
"zone");
228 str = QStringLiteral(
"weekday");
234 QString SelectDateWidget::code()
const 236 const auto type = mDateType->itemData(mDateType->currentIndex()).value<KSieveUi::SelectDateWidget::DateType>();
237 return QStringLiteral(
"\"%1\" \"%2\"").
arg(dateType(type), dateValue(type));
240 void SelectDateWidget::setCode(
const QString &type,
const QString &value)
242 const int index = dateTypeFromString(type);
244 mDateType->setCurrentIndex(index);
246 mDateType->setCurrentIndex(0);
248 const auto dateType = mDateType->itemData(index).value<KSieveUi::SelectDateWidget::DateType>();
257 mStackWidget->setCurrentWidget(mDateValue);
258 mDateValue->setType(dateType);
259 mDateValue->setCode(value);
262 mStackWidget->setCurrentWidget(mDateEdit);
263 mDateEdit->setDate(
QLocale::c().toDate(value));
266 mStackWidget->setCurrentWidget(mDateLineEdit);
267 mDateLineEdit->setText(value);
270 mStackWidget->setCurrentWidget(mTimeEdit);
271 mTimeEdit->setTime(
QLocale::c().toTime(value));
276 mStackWidget->setCurrentWidget(mDateLineEdit);
277 mDateLineEdit->setText(value);
QString toString(qlonglong i) const const
KCRASH_EXPORT void initialize()
void textChanged(const QString &text)
void activated(int index)
void dateChanged(const QDate &date)
void timeChanged(const QTime &time)
QVariant fromValue(const T &value)
QString i18n(const char *text, const TYPE &arg...)
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const