diff options
author | dac <qt-info@nokia.com> | 2010-10-28 09:06:47 +1000 |
---|---|---|
committer | dac <qt-info@nokia.com> | 2010-10-28 09:06:47 +1000 |
commit | 14c81d973499c0c475b6a5f57d48b768567883b0 (patch) | |
tree | 947bd7f3a70a1e7fffcf841143db62e146b85f11 /plugins/qtuitest_widgets/qtwidgets/testdatetimeedit.cpp | |
parent | 8d722390188b843ee60b65d80b13c9ee351c1a94 (diff) |
Handle am/pm and text months correctly. Workaround FORTIFY_SOURCE issue.
Diffstat (limited to 'plugins/qtuitest_widgets/qtwidgets/testdatetimeedit.cpp')
-rw-r--r-- | plugins/qtuitest_widgets/qtwidgets/testdatetimeedit.cpp | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/plugins/qtuitest_widgets/qtwidgets/testdatetimeedit.cpp b/plugins/qtuitest_widgets/qtwidgets/testdatetimeedit.cpp index a1f6a56..f456424 100644 --- a/plugins/qtuitest_widgets/qtwidgets/testdatetimeedit.cpp +++ b/plugins/qtuitest_widgets/qtwidgets/testdatetimeedit.cpp @@ -56,7 +56,7 @@ TestDateTimeEdit::TestDateTimeEdit(QObject* _q) this, SLOT(onDateTimeChanged(QDateTime))); } -void TestDateTimeEdit::onDateTimeChanged(QDateTime const& dt) +void TestDateTimeEdit::onDateTimeChanged(const QDateTime& dt) { emit entered(dt); } QString TestDateTimeEdit::text() const @@ -70,7 +70,7 @@ QVariant TestDateTimeEdit::value() const return q->dateTime(); } -QRegExp dateFormatToRegExp(QString const& format) +QRegExp dateFormatToRegExp(const QString& format) { QString re; QString fmt = format; @@ -125,7 +125,7 @@ QRegExp dateFormatToRegExp(QString const& format) return QRegExp(re); } -bool TestDateTimeEdit::canEnter(QVariant const& item) const +bool TestDateTimeEdit::canEnter(const QVariant& item) const { QString text; if (item.canConvert<QDateTime>()) { @@ -149,7 +149,7 @@ bool TestDateTimeEdit::canEnter(QVariant const& item) const return ret; } -QPoint TestDateTimeEdit::nextClick( QStringList const& cap, +QPoint TestDateTimeEdit::nextClick( const QStringList& cap, QMap<QDateTimeEdit::Section,int> const& capMap, bool *final, bool *ok) { @@ -161,6 +161,7 @@ QPoint TestDateTimeEdit::nextClick( QStringList const& cap, int activeSection = -1; int moveUpDown = 0; int sectionsNeedingChanges = 0; + bool ampm = q->displayedSections() & QDateTimeEdit::AmPmSection; /* Sections, from most to least significant. * It is necessary to edit most significant first because that can affect @@ -194,10 +195,23 @@ QPoint TestDateTimeEdit::nextClick( QStringList const& cap, if (-1 == activeSection) { bool is_int = false; int src = text.toInt(&is_int); - if (!is_int) return ret; int dest = cap.at(cap_i).toInt(&is_int); - if (!is_int) return ret; - moveUpDown = (dest - src); + if (!is_int && section == QDateTimeEdit::MonthSection) { + if (q->displayFormat().contains("MMMM")) { + moveUpDown = QDate::fromString(cap.at(cap_i), "MMMM").month() - QDate::fromString(text, "MMMM").month(); + } else if (q->displayFormat().contains("MMM")) { + moveUpDown = QDate::fromString(cap.at(cap_i), "MMM").month() - QDate::fromString(text, "MMM").month(); + } + } else if (section == QDateTimeEdit::AmPmSection) { + if (text.toUpper() == "PM") + moveUpDown = -1; + else + moveUpDown = 1; + } else if (section == QDateTimeEdit::HourSection && ampm && dest == 12) { + moveUpDown = (src - dest); + } else { + moveUpDown = (dest - src); + } activeSection = cap_i; } } @@ -263,7 +277,7 @@ QPoint TestDateTimeEdit::nextClick( QStringList const& cap, return ret; } -bool TestDateTimeEdit::enterByMouse(QString const& format, QDateTime const& dt) +bool TestDateTimeEdit::enterByMouse(const QString& format, const QDateTime& dt) { bool final = false; bool ok = true; @@ -302,7 +316,7 @@ bool TestDateTimeEdit::enterByMouse(QString const& format, QDateTime const& dt) return ok; } -bool TestDateTimeEdit::enterByKeys(QString const& format, QDateTime const& dt, bool noCommit) +bool TestDateTimeEdit::enterByKeys(const QString& format, const QDateTime& dt, bool noCommit) { if (!hasEditFocus() && !setEditFocus(true)) return false; TestWidgetsLog() << "got focus"; @@ -317,7 +331,7 @@ bool TestDateTimeEdit::enterByKeys(QString const& format, QDateTime const& dt, b return setEditFocus(false); } -bool TestDateTimeEdit::enter(QVariant const& item, bool noCommit) +bool TestDateTimeEdit::enter(const QVariant& item, bool noCommit) { QString text; QDateTime dt; @@ -359,7 +373,7 @@ bool TestDateTimeEdit::enter(QVariant const& item, bool noCommit) } bool TestDateTimeEdit::enterSectionByKeys(QDateTimeEdit::Section section, - QString const& fmt, QDateTime const& dt) + const QString& fmt, const QDateTime& dt) { using namespace QtUiTest; @@ -448,7 +462,7 @@ bool TestDateTimeEdit::enterSectionByKeys(QDateTimeEdit::Section section, TestWidgetsLog() << "Going to enter" << text << "in section" << section; - foreach (QChar const& c, text) { + foreach (const QChar& c, text) { if (!keyClick(q, asciiToKey(c.toLatin1()))) { return false; } |