mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-23 10:22:55 +00:00
reset the step of the internal date and time box when the locale does not contain seconds
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
66e7f9491f
commit
8b541fff1c
2 changed files with 15 additions and 11 deletions
|
@ -37,11 +37,11 @@ const int getTime_t(const QTime &value)
|
|||
return QDateTime(QDATETIMEEDIT_DATE_INITIAL, value).toTime_t();
|
||||
}
|
||||
|
||||
QDateTimeBox::QDateTimeBox(QWidget *parent)
|
||||
: QSpinBox(parent)
|
||||
QDateTimeBox::QDateTimeBox(QDateTimeEdit *parent)
|
||||
: QSpinBox(parent),
|
||||
m_datetimeedit(parent)
|
||||
{
|
||||
const QDateTimeEdit* datetimeedit = qobject_cast<QDateTimeEdit*>(parent);
|
||||
updateLocale(datetimeedit->locale());
|
||||
updateLocale(m_datetimeedit->locale());
|
||||
}
|
||||
|
||||
void QDateTimeBox::updateLocale(const QLocale &locale)
|
||||
|
@ -49,13 +49,14 @@ void QDateTimeBox::updateLocale(const QLocale &locale)
|
|||
const QString timeformat = locale.timeFormat(QLocale::ShortFormat);
|
||||
if (!timeformat.contains(QLatin1String("ss"))) {
|
||||
setSingleStep(60);
|
||||
} else {
|
||||
setSingleStep(1);
|
||||
}
|
||||
}
|
||||
|
||||
QValidator::State QDateTimeBox::validate(QString &input, int &pos) const
|
||||
{
|
||||
const QDateTimeEdit* datetimeedit = qobject_cast<QDateTimeEdit*>(parent());
|
||||
const QTime time = datetimeedit->locale().toTime(input, QLocale::ShortFormat);
|
||||
const QTime time = m_datetimeedit->locale().toTime(input, QLocale::ShortFormat);
|
||||
if (!time.isValid()) {
|
||||
return QValidator::Invalid;
|
||||
}
|
||||
|
@ -64,14 +65,12 @@ QValidator::State QDateTimeBox::validate(QString &input, int &pos) const
|
|||
|
||||
int QDateTimeBox::valueFromText(const QString &text) const
|
||||
{
|
||||
const QDateTimeEdit* datetimeedit = qobject_cast<QDateTimeEdit*>(parent());
|
||||
return getTime_t(datetimeedit->locale().toTime(text, QLocale::ShortFormat));
|
||||
return getTime_t(m_datetimeedit->locale().toTime(text, QLocale::ShortFormat));
|
||||
}
|
||||
|
||||
QString QDateTimeBox::textFromValue(int value) const
|
||||
{
|
||||
const QDateTimeEdit* datetimeedit = qobject_cast<QDateTimeEdit*>(parent());
|
||||
return datetimeedit->locale().toString(getTime(value), QLocale::ShortFormat);
|
||||
return m_datetimeedit->locale().toString(getTime(value), QLocale::ShortFormat);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -683,5 +682,6 @@ QDateEdit::QDateEdit(const QDate &date, QWidget *parent)
|
|||
QT_END_NAMESPACE
|
||||
|
||||
#include "moc_qdatetimeedit.h"
|
||||
#include "moc_qdatetimeedit_p.h"
|
||||
|
||||
#endif // QT_NO_DATETIMEEDIT
|
||||
|
|
|
@ -47,8 +47,9 @@ QT_BEGIN_NAMESPACE
|
|||
|
||||
class QDateTimeBox : public QSpinBox
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QDateTimeBox(QWidget *parent);
|
||||
QDateTimeBox(QDateTimeEdit *parent);
|
||||
|
||||
void updateLocale(const QLocale &locale);
|
||||
|
||||
|
@ -56,6 +57,9 @@ protected:
|
|||
QValidator::State validate(QString &input, int &pos) const final;
|
||||
int valueFromText(const QString &text) const final;
|
||||
QString textFromValue(int value) const final;
|
||||
|
||||
private:
|
||||
const QDateTimeEdit* m_datetimeedit;
|
||||
};
|
||||
|
||||
class QDateTimeEditPrivate : public QWidgetPrivate
|
||||
|
|
Loading…
Add table
Reference in a new issue