summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qtimezoneprivate_p.h
diff options
context:
space:
mode:
authorJohn Layt <jlayt@kde.org>2013-01-30 16:04:23 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-22 22:21:19 +0200
commit9c2cbee2b1adedf53fa86a1c7a86f561747ab962 (patch)
treeeb67c1edec8712454272c0e972074f25270449d6 /src/corelib/tools/qtimezoneprivate_p.h
parent48e2c3ac3318d4e3b504aadad5f56dc33be8f50d (diff)
QTimeZone - Add ICU support
Add ICU backend for QTimeZone Change-Id: I92e53a848477e366591102064b093e936f0b49d2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools/qtimezoneprivate_p.h')
-rw-r--r--src/corelib/tools/qtimezoneprivate_p.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/corelib/tools/qtimezoneprivate_p.h b/src/corelib/tools/qtimezoneprivate_p.h
index 94fb49026f..1ecb60a0b2 100644
--- a/src/corelib/tools/qtimezoneprivate_p.h
+++ b/src/corelib/tools/qtimezoneprivate_p.h
@@ -57,6 +57,10 @@
#include "qtimezone.h"
#include "qlocale_p.h"
+#ifdef QT_USE_ICU
+#include <unicode/ucal.h>
+#endif // QT_USE_ICU
+
QT_BEGIN_NAMESPACE
class Q_CORE_EXPORT QTimeZonePrivate : public QSharedData
@@ -193,6 +197,49 @@ private:
QString m_comment;
};
+#ifdef QT_USE_ICU
+class Q_AUTOTEST_EXPORT QIcuTimeZonePrivate Q_DECL_FINAL : public QTimeZonePrivate
+{
+public:
+ // Create default time zone
+ QIcuTimeZonePrivate();
+ // Create named time zone
+ QIcuTimeZonePrivate(const QByteArray &olsenId);
+ QIcuTimeZonePrivate(const QIcuTimeZonePrivate &other);
+ ~QIcuTimeZonePrivate();
+
+ QTimeZonePrivate *clone();
+
+ QString displayName(QTimeZone::TimeType timeType, QTimeZone::NameType nameType,
+ const QLocale &locale) const Q_DECL_OVERRIDE;
+ QString abbreviation(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ int offsetFromUtc(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+ int standardTimeOffset(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+ int daylightTimeOffset(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ bool hasDaylightTime() const Q_DECL_OVERRIDE;
+ bool isDaylightTime(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ Data data(qint64 forMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ bool hasTransitions() const Q_DECL_OVERRIDE;
+ Data nextTransition(qint64 afterMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+ Data previousTransition(qint64 beforeMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ QByteArray systemTimeZoneId() const Q_DECL_OVERRIDE;
+
+ QSet<QByteArray> availableTimeZoneIds() const Q_DECL_OVERRIDE;
+ QSet<QByteArray> availableTimeZoneIds(QLocale::Country country) const Q_DECL_OVERRIDE;
+ QSet<QByteArray> availableTimeZoneIds(int offsetFromUtc) const Q_DECL_OVERRIDE;
+
+private:
+ void init(const QByteArray &olsenId);
+
+ UCalendar *m_ucal;
+};
+#endif // QT_USE_ICU
+
QT_END_NAMESPACE
#endif // QTIMEZONEPRIVATE_P_H