summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-09-29 06:14:36 (UTC)
committer ulf69 <ulf69>2004-09-29 06:14:36 (UTC)
commit72b990edf0191c2e86204308ce2cac07120284bf (patch) (side-by-side diff)
tree67840eda5450e7b3bc19fd181b48e5c981df96b3
parentf7810320ed36a03c96d00436f6b589b9b5ca8c30 (diff)
downloadkdepimpi-72b990edf0191c2e86204308ce2cac07120284bf.zip
kdepimpi-72b990edf0191c2e86204308ce2cac07120284bf.tar.gz
kdepimpi-72b990edf0191c2e86204308ce2cac07120284bf.tar.bz2
support for ISODate parsing
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--microkde/kdecore/klocale.cpp42
-rw-r--r--microkde/kdecore/klocale.h1
2 files changed, 33 insertions, 10 deletions
diff --git a/microkde/kdecore/klocale.cpp b/microkde/kdecore/klocale.cpp
index 7bd8a70..17031c7 100644
--- a/microkde/kdecore/klocale.cpp
+++ b/microkde/kdecore/klocale.cpp
@@ -574,28 +574,51 @@ QTime KLocale::readTime(const QString &intstr, bool seconds, bool *ok) const
error:
if (ok) *ok = false;
return QTime(-1, -1, -1); // return invalid date if it didn't work
// This will be removed in the near future, since it gives a warning on stderr.
// The presence of the bool* (since KDE-3.0) removes the need for an invalid QTime.
}
QDateTime KLocale::readDateTime(const QString &intstr,
- bool shortFormat,
- bool includeSeconds,
IntDateFormat intIntDateFormat,
bool* ok) const
{
bool ok1, ok2;
- QDate m_date = readDate(date, &ok1);
- QTime m_time = KGlobal::locale()->readTime(time, &ok2);
+ // AT the moment we can not read any other format then ISODate
+ if ( intIntDateFormat != ISODate )
+ {
+ qDebug("KLocale::readDateTime, only ISODate is supported.");
+ return QDateTime();
+ }
+
+ int pos = intstr.find("T");
+ QString date = intstr.left(pos);
+ QString time = intstr.mid(pos+1);
+
+ QString dformat = dateFormat(intIntDateFormat);
+ QString tformat = timeFormat(intIntDateFormat);
+
+ QDate m_date = readDate(date, dformat, &ok1);
+ QTime m_time = readTime(time, tformat, &ok2);
+
+ if (ok)
+ {
if ((ok1 == false) || (ok2 == false))
- qDebug("Serializer::extractMeta invalid date or time !!!!!!!!!!!!!");
+ *ok = false;
+ else
+ *ok = true;
+ }
+ QDateTime m_dt;
+ m_dt.setDate(m_date);
+ m_dt.setTime(m_time);
+ qDebug("KLocale::readDateTime() transformed %s into %s (%s), %s (%s) : err1=%i, err2=%i", intstr.latin1(), date.latin1(), dformat.latin1(), time.latin1(), tformat.latin1(), ok1, ok2);
+ return m_dt;
}
bool KLocale::use12Clock() const
{
return !mHourF24Format ;;
}
@@ -681,31 +704,30 @@ QString KLocale::country() const
{
return QString::null;
}
QString KLocale::dateFormat(IntDateFormat intIntDateFormat) const
{
const IntDateFormat dformat = (intIntDateFormat == Undefined)?mIntDateFormat:intIntDateFormat;
+ if ( dformat == ISODate )
+ return "%Y-%m-%d";
+
if ( QApplication::desktop()->width() < 480 ) {
if ( dformat == Default )
return "%a %d %b %Y";
else if ( dformat == Format1 )
return "%a %b %d %Y";
- else if ( dformat == ISODate )
- return "%a %Y %b %d";
} else {
-
if ( dformat == Default )
return "%A %d %B %Y";
else if ( dformat == Format1 )
return "%A %B %d %Y";
- else if ( dformat == ISODate )
- return "%A %Y %B %d";
+
}
return mDateFormat ;
}
QString KLocale::dateFormatShort(IntDateFormat intIntDateFormat) const
{
const IntDateFormat dformat = (intIntDateFormat == Undefined)?mIntDateFormat:intIntDateFormat;
diff --git a/microkde/kdecore/klocale.h b/microkde/kdecore/klocale.h
index 153b12a..949301a 100644
--- a/microkde/kdecore/klocale.h
+++ b/microkde/kdecore/klocale.h
@@ -48,16 +48,17 @@ class KLocale
QString formatDateTime(const QDateTime &pDateTime, IntDateFormat intIntDateFormat = Undefined) const;
QString formatDateTime(const QDateTime &pDateTime,
bool shortFormat,
bool includeSecs = false, IntDateFormat intIntDateFormat = Undefined) const;
QDate readDate(const QString &str, bool* ok = 0) const;
QDate readDate( const QString &intstr, const QString &fmt, bool* ok = 0) const;
QTime readTime(const QString &str, bool* ok = 0) const;
+ QDateTime readDateTime(const QString &intstr, IntDateFormat intIntDateFormat, bool* ok) const;
bool use12Clock() const;
bool weekStartsMonday() const;
int weekStartDay() const;
QString weekDayName(int,bool=false) const;
QString monthName(int,bool=false) const;