update deprecated time feature

update from timespec to timezone
This commit is contained in:
2025-04-05 13:34:44 +02:00
parent 6ec4ad486b
commit 254e7cd03e
6 changed files with 55 additions and 46 deletions

View File

@@ -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 );
}
}

View File

@@ -12,6 +12,7 @@
#include "qwt_global.h"
#include <qdatetime.h>
#include <qtimezone.h>
/*!
\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& );

View File

@@ -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 );

View File

@@ -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;

View File

@@ -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 );

View File

@@ -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;