From 0905bf78e2584bbdff05a15826bdaba4170579d6 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 30 Nov 2021 12:46:50 +0200 Subject: Avoid using deprecated APIs in Qt5 and Qt6 Note that support for QLinkedList can be enabled with the ODB_QT_FORCE_QLINKEDLIST macro. --- odb/qt/containers/qlinked-list-traits.hxx | 9 +++++++++ odb/qt/date-time/sqlite/qdate-time-traits.hxx | 16 +++++++++++++++- odb/qt/date-time/sqlite/qdate-traits.hxx | 20 +++++++++++++++++--- 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/odb/qt/containers/qlinked-list-traits.hxx b/odb/qt/containers/qlinked-list-traits.hxx index 378a472..3bfc9e9 100644 --- a/odb/qt/containers/qlinked-list-traits.hxx +++ b/odb/qt/containers/qlinked-list-traits.hxx @@ -6,6 +6,13 @@ #include +#include // QT_VERSION + +// QLinkedList is deprecated since Qt5 5.15 and in Qt6 it has been moved to a +// separate library. +// +#if (QT_VERSION < 0x050F00) || ODB_QT_FORCE_QLINKEDLIST + #include #include @@ -68,6 +75,8 @@ namespace odb }; } +#endif + #include #endif // ODB_QT_CONTAINER_QLINKED_LIST_TRAITS_HXX diff --git a/odb/qt/date-time/sqlite/qdate-time-traits.hxx b/odb/qt/date-time/sqlite/qdate-time-traits.hxx index 143b0f4..db561fc 100644 --- a/odb/qt/date-time/sqlite/qdate-time-traits.hxx +++ b/odb/qt/date-time/sqlite/qdate-time-traits.hxx @@ -10,6 +10,8 @@ #include // std::size_t #include // std::memcpy +#include // QT_VERSION + #include #include @@ -90,7 +92,14 @@ namespace odb else { v.setTimeSpec (Qt::UTC); - v.setTime_t (static_cast (i)); + + // *Time_t() functions are deprecated in favor of *SecsSinceEpoch(). + // +#if QT_VERSION < 0x060000 + v.setTime_t (static_cast (i)); +#else + v.setSecsSinceEpoch (static_cast (i)); +#endif } } @@ -106,7 +115,12 @@ namespace odb else { is_null = false; + +#if QT_VERSION < 0x060000 i = static_cast (v.toTime_t ()); +#else + i = static_cast (v.toSecsSinceEpoch ()); +#endif } } }; diff --git a/odb/qt/date-time/sqlite/qdate-traits.hxx b/odb/qt/date-time/sqlite/qdate-traits.hxx index 2810d02..52721b7 100644 --- a/odb/qt/date-time/sqlite/qdate-traits.hxx +++ b/odb/qt/date-time/sqlite/qdate-traits.hxx @@ -10,7 +10,10 @@ #include // std::size_t #include // std::memcpy +#include // QT_VERSION + #include +#include #include #include @@ -92,8 +95,14 @@ namespace odb { QDateTime dt; dt.setTimeSpec (Qt::UTC); - dt.setTime_t (static_cast (i)); + // *Time_t() functions are deprecated in favor of *SecsSinceEpoch(). + // +#if QT_VERSION < 0x060000 + dt.setTime_t (static_cast (i)); +#else + dt.setSecsSinceEpoch (static_cast (i)); +#endif v = dt.date (); } } @@ -108,8 +117,13 @@ namespace odb else { is_null = false; - i = static_cast ( - QDateTime (v, QTime (0, 0, 0), Qt::UTC).toTime_t ()); + const QDateTime dt (v, QTime (0, 0, 0), Qt::UTC); + +#if QT_VERSION < 0x060000 + i = static_cast (dt.toTime_t ()); +#else + i = static_cast (dt.toSecsSinceEpoch ()); +#endif } } }; -- cgit v1.1