1 #ifndef QUAZIP_QT_COMPAT_H
2 #define QUAZIP_QT_COMPAT_H
17 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
18 # include <QtCore5Compat/QTextCodec>
20 # include <QtCore/QTextCodec>
26 #if (QT_VERSION >= 0x050100)
27 #include <QtCore/QSaveFile>
28 inline bool quazip_close(QIODevice *device) {
29 QSaveFile *file = qobject_cast<QSaveFile*>(device);
30 if (file !=
nullptr) {
32 return file->commit();
39 inline bool quazip_close(QIODevice *device) {
46 #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
47 using Qt::SkipEmptyParts;
50 const auto SkipEmptyParts = QString::SplitBehavior::SkipEmptyParts;
55 #if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0))
57 template<
typename T,
typename C>
58 inline void quazip_sort(T begin, T end, C comparator) {
59 std::sort(begin, end, comparator);
62 #include <QtAlgorithms>
63 template<
typename T,
typename C>
64 inline void quazip_sort(T begin, T end, C comparator) {
65 qSort(begin, end, comparator);
72 #if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
73 inline QDateTime quazip_ctime(
const QFileInfo &fi) {
74 return fi.birthTime();
77 inline QDateTime quazip_ctime(
const QFileInfo &fi) {
84 #if (QT_VERSION >= 0x040700)
85 inline quint64 quazip_ntfs_ticks(
const QDateTime &time,
int fineTicks) {
86 QDateTime base(QDate(1601, 1, 1), QTime(0, 0), Qt::UTC);
87 return base.msecsTo(time) * 10000 + fineTicks;
90 inline quint64 quazip_ntfs_ticks(
const QDateTime &time,
int fineTicks) {
91 QDateTime base(QDate(1601, 1, 1), QTime(0, 0), Qt::UTC);
92 QDateTime utc = time.toUTC();
93 return (
static_cast<qint64
>(base.date().daysTo(utc.date()))
95 +
static_cast<qint64
>(base.time().msecsTo(utc.time())))
96 * Q_INT64_C(10000) + fineTicks;
102 #if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) // Yay! Finally a way to get time as qint64!
103 inline qint64 quazip_to_time64_t(
const QDateTime &time) {
104 return time.toSecsSinceEpoch();
107 inline qint64 quazip_to_time64_t(
const QDateTime &time) {
108 return static_cast<qint64
>(time.toTime_t());
112 #include <QTextStream>
114 #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
115 const auto quazip_endl = Qt::endl;
117 const auto quazip_endl = endl;
120 #endif // QUAZIP_QT_COMPAT_H