diff --git a/src/qwt_date.cpp b/src/qwt_date.cpp index a9920c9..0699325 100644 --- a/src/qwt_date.cpp +++ b/src/qwt_date.cpp @@ -132,7 +132,7 @@ static inline void qwtFloorTime( const Qt::TimeSpec timeSpec = dt.timeSpec(); if ( timeSpec == Qt::LocalTime ) - dt = dt.toTimeSpec( Qt::UTC ); + dt = dt.toTimeZone(QTimeZone::UTC); const QTime t = dt.time(); switch( intervalType ) @@ -157,13 +157,13 @@ static inline void qwtFloorTime( } if ( timeSpec == Qt::LocalTime ) - dt = dt.toTimeSpec( Qt::LocalTime ); + dt = dt.toTimeZone( QTimeZone::LocalTime ); } static inline QDateTime qwtToTimeSpec( - const QDateTime& dt, Qt::TimeSpec spec ) + const QDateTime& dt, QTimeZone spec ) { - if ( dt.timeSpec() == spec ) + if ( dt.timeZone() == spec ) return dt; const qint64 jd = dt.date().toJulianDay(); @@ -175,11 +175,12 @@ static inline QDateTime qwtToTimeSpec( // for those dates QDateTime dt2 = dt; - dt2.setTimeSpec( spec ); + dt2.setTimeZone( spec ); return dt2; } - - return dt.toTimeSpec( spec ); + QDateTime dt_copy = dt; + dt_copy.setTimeZone( spec ); + return dt_copy; } #if 0 @@ -258,7 +259,7 @@ static inline QDate qwtToDate( int year, int month = 1, int day = 1 ) \sa toDouble(), QDateTime::setMSecsSinceEpoch() \note The return datetime for Qt::OffsetFromUTC will be Qt::UTC */ -QDateTime QwtDate::toDateTime( double value, Qt::TimeSpec timeSpec ) +QDateTime QwtDate::toDateTime( double value, QTimeZone timeSpec ) { const int msecsPerDay = 86400000; @@ -277,9 +278,9 @@ QDateTime QwtDate::toDateTime( double value, Qt::TimeSpec timeSpec ) static const QTime timeNull( 0, 0, 0, 0 ); - QDateTime dt( d, timeNull.addMSecs( msecs ), Qt::UTC ); + QDateTime dt( d, timeNull.addMSecs( msecs ), QTimeZone::UTC ); - if ( timeSpec == Qt::LocalTime ) + if ( timeSpec == QTimeZone::LocalTime ) dt = qwtToTimeSpec( dt, timeSpec ); return dt; @@ -299,7 +300,7 @@ double QwtDate::toDouble( const QDateTime& dateTime ) { const int msecsPerDay = 86400000; - const QDateTime dt = qwtToTimeSpec( dateTime, Qt::UTC ); + const QDateTime dt = qwtToTimeSpec( dateTime, QTimeZone::UTC ); const double days = dt.date().toJulianDay() - QwtDate::JulianDayForEpoch; @@ -653,7 +654,7 @@ int QwtDate::utcOffset( const QDateTime& dateTime ) } default: { - const QDateTime dt1( dateTime.date(), dateTime.time(), Qt::UTC ); + const QDateTime dt1( dateTime.date(), dateTime.time(), QTimeZone::UTC ); seconds = dateTime.secsTo( dt1 ); } } diff --git a/src/qwt_date.h b/src/qwt_date.h index 49a1f0d..9954ca6 100644 --- a/src/qwt_date.h +++ b/src/qwt_date.h @@ -12,6 +12,7 @@ #include "qwt_global.h" #include +#include /*! \brief A collection of methods around date/time values @@ -109,7 +110,7 @@ class QWT_EXPORT QwtDate static QDate maxDate(); static QDateTime toDateTime( double value, - Qt::TimeSpec = Qt::UTC ); + QTimeZone = QTimeZone::UTC ); static double toDouble( const QDateTime& ); diff --git a/src/qwt_date_scale_draw.cpp b/src/qwt_date_scale_draw.cpp index 57af0fd..fc5eb7e 100644 --- a/src/qwt_date_scale_draw.cpp +++ b/src/qwt_date_scale_draw.cpp @@ -13,8 +13,8 @@ class QwtDateScaleDraw::PrivateData { public: - explicit PrivateData( Qt::TimeSpec spec ) - : timeSpec( spec ) + explicit PrivateData( QTimeZone zone ) + : timeZone( zone ) , utcOffset( 0 ) , week0Type( QwtDate::FirstThursday ) { @@ -28,7 +28,7 @@ class QwtDateScaleDraw::PrivateData dateFormats[ QwtDate::Year ] = "yyyy"; } - Qt::TimeSpec timeSpec; + QTimeZone timeZone; int utcOffset; QwtDate::Week0Type week0Type; QString dateFormats[ QwtDate::Year + 1 ]; @@ -45,9 +45,9 @@ class QwtDateScaleDraw::PrivateData \sa setTimeSpec(), setWeek0Type() */ -QwtDateScaleDraw::QwtDateScaleDraw( Qt::TimeSpec timeSpec ) +QwtDateScaleDraw::QwtDateScaleDraw( QTimeZone timeZone ) { - m_data = new PrivateData( timeSpec ); + m_data = new PrivateData( timeZone ); } //! Destructor @@ -62,18 +62,18 @@ QwtDateScaleDraw::~QwtDateScaleDraw() \param timeSpec Time specification \sa timeSpec(), setUtcOffset(), toDateTime() */ -void QwtDateScaleDraw::setTimeSpec( Qt::TimeSpec timeSpec ) +void QwtDateScaleDraw::setTimeZone( QTimeZone timeZone ) { - m_data->timeSpec = timeSpec; + m_data->timeZone = timeZone; } /*! \return Time specification used for the tick labels \sa setTimeSpec(), utcOffset(), toDateTime() */ -Qt::TimeSpec QwtDateScaleDraw::timeSpec() const +QTimeZone QwtDateScaleDraw::timeZone() const { - return m_data->timeSpec; + return m_data->timeZone; } /*! @@ -268,11 +268,13 @@ QwtDate::IntervalType QwtDateScaleDraw::intervalType( */ QDateTime QwtDateScaleDraw::toDateTime( double value ) const { - QDateTime dt = QwtDate::toDateTime( value, m_data->timeSpec ); - if ( m_data->timeSpec == Qt::OffsetFromUTC ) + QDateTime dt = QwtDate::toDateTime( value, m_data->timeZone ); + if ( m_data->timeZone == QTimeZone::LocalTime ) { dt = dt.addSecs( m_data->utcOffset ); -#if QT_VERSION >= 0x050200 +#if QT_VERSION >= 0x060000 + dt.setTimeZone( QTimeZone(m_data->utcOffset) ); +#elif QT_VERSION >= 0x050200 dt.setOffsetFromUtc( m_data->utcOffset ); #else dt.setUtcOffset( m_data->utcOffset ); diff --git a/src/qwt_date_scale_draw.h b/src/qwt_date_scale_draw.h index c49fd1e..c8a0f22 100644 --- a/src/qwt_date_scale_draw.h +++ b/src/qwt_date_scale_draw.h @@ -52,14 +52,14 @@ class QWT_EXPORT QwtDateScaleDraw : public QwtScaleDraw { public: - explicit QwtDateScaleDraw( Qt::TimeSpec = Qt::LocalTime ); + explicit QwtDateScaleDraw( QTimeZone timeZone = QTimeZone::LocalTime ); virtual ~QwtDateScaleDraw(); void setDateFormat( QwtDate::IntervalType, const QString& ); QString dateFormat( QwtDate::IntervalType ) const; - void setTimeSpec( Qt::TimeSpec ); - Qt::TimeSpec timeSpec() const; + void setTimeZone( QTimeZone ); + QTimeZone timeZone() const; void setUtcOffset( int seconds ); int utcOffset() const; diff --git a/src/qwt_date_scale_engine.cpp b/src/qwt_date_scale_engine.cpp index fce6f6f..5267eea 100644 --- a/src/qwt_date_scale_engine.cpp +++ b/src/qwt_date_scale_engine.cpp @@ -717,15 +717,15 @@ static QwtScaleDiv qwtDivideToYears( class QwtDateScaleEngine::PrivateData { public: - explicit PrivateData( Qt::TimeSpec spec ) - : timeSpec( spec ) + explicit PrivateData( QTimeZone zone ) + : timeZone( zone ) , utcOffset( 0 ) , week0Type( QwtDate::FirstThursday ) , maxWeeks( 4 ) { } - Qt::TimeSpec timeSpec; + QTimeZone timeZone; int utcOffset; QwtDate::Week0Type week0Type; int maxWeeks; @@ -744,10 +744,10 @@ class QwtDateScaleEngine::PrivateData \sa setTimeSpec(), setMaxWeeks(), setWeek0Type() */ -QwtDateScaleEngine::QwtDateScaleEngine( Qt::TimeSpec timeSpec ) +QwtDateScaleEngine::QwtDateScaleEngine( QTimeZone timeZone ) : QwtLinearScaleEngine( 10 ) { - m_data = new PrivateData( timeSpec ); + m_data = new PrivateData( timeZone ); } //! Destructor @@ -762,18 +762,18 @@ QwtDateScaleEngine::~QwtDateScaleEngine() \param timeSpec Time specification \sa timeSpec(), setUtcOffset(), toDateTime() */ -void QwtDateScaleEngine::setTimeSpec( Qt::TimeSpec timeSpec ) +void QwtDateScaleEngine::setTimeZone( QTimeZone timeZone ) { - m_data->timeSpec = timeSpec; + m_data->timeZone = timeZone; } /*! \return Time specification used by the engine \sa setTimeSpec(), utcOffset(), toDateTime() */ -Qt::TimeSpec QwtDateScaleEngine::timeSpec() const +QTimeZone QwtDateScaleEngine::timeZone() const { - return m_data->timeSpec; + return m_data->timeZone; } /*! @@ -1116,7 +1116,7 @@ QDateTime QwtDateScaleEngine::alignDate( if ( dateTime.timeSpec() == Qt::OffsetFromUTC ) { #if QT_VERSION >= 0x050200 - dt.setOffsetFromUtc( 0 ); + dt.setTimeZone( QTimeZone::UTC ); #else dt.setUtcOffset( 0 ); #endif @@ -1277,7 +1277,9 @@ QDateTime QwtDateScaleEngine::alignDate( if ( dateTime.timeSpec() == Qt::OffsetFromUTC ) { -#if QT_VERSION >= 0x050200 +#if QT_VERSION >= 0x060000 + dt.setTimeZone( QTimeZone(dateTime.offsetFromUtc()) ); +#elif QT_VERSION >= 0x050200 dt.setOffsetFromUtc( dateTime.offsetFromUtc() ); #else dt.setUtcOffset( dateTime.utcOffset() ); @@ -1297,19 +1299,22 @@ QDateTime QwtDateScaleEngine::alignDate( */ QDateTime QwtDateScaleEngine::toDateTime( double value ) const { - QDateTime dt = QwtDate::toDateTime( value, m_data->timeSpec ); + QDateTime dt = QwtDate::toDateTime( value, m_data->timeZone ); if ( !dt.isValid() ) { const QDate date = ( value <= 0.0 ) ? QwtDate::minDate() : QwtDate::maxDate(); - dt = QDateTime( date, QTime( 0, 0 ), m_data->timeSpec ); + dt = QDateTime( date, QTime( 0, 0 ), m_data->timeZone ); } - if ( m_data->timeSpec == Qt::OffsetFromUTC ) + if ( m_data->timeZone == QTimeZone::LocalTime ) { dt = dt.addSecs( m_data->utcOffset ); -#if QT_VERSION >= 0x050200 + +#if QT_VERSION >= 0x060000 + dt.setTimeZone( QTimeZone(m_data->utcOffset) ); +#elif QT_VERSION >= 0x050200 dt.setOffsetFromUtc( m_data->utcOffset ); #else dt.setUtcOffset( m_data->utcOffset ); diff --git a/src/qwt_date_scale_engine.h b/src/qwt_date_scale_engine.h index 6e5f68b..366a074 100644 --- a/src/qwt_date_scale_engine.h +++ b/src/qwt_date_scale_engine.h @@ -42,11 +42,11 @@ class QWT_EXPORT QwtDateScaleEngine : public QwtLinearScaleEngine { public: - explicit QwtDateScaleEngine( Qt::TimeSpec = Qt::LocalTime ); + explicit QwtDateScaleEngine( QTimeZone = QTimeZone::LocalTime ); virtual ~QwtDateScaleEngine(); - void setTimeSpec( Qt::TimeSpec ); - Qt::TimeSpec timeSpec() const; + void setTimeZone( QTimeZone ); + QTimeZone timeZone() const; void setUtcOffset( int seconds ); int utcOffset() const;