1#ifndef QUAZIP_QT_COMPAT_H
2#define QUAZIP_QT_COMPAT_H
13#include <QtCore/QtGlobal>
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>
28inline bool quazip_close(QIODevice *device) {
29 QSaveFile *file = qobject_cast<QSaveFile*>(device);
30 if (file !=
nullptr) {
32 return file->commit();
39inline bool quazip_close(QIODevice *device) {
46#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
47using Qt::SkipEmptyParts;
49#include <QtCore/QString>
50const auto SkipEmptyParts = QString::SplitBehavior::SkipEmptyParts;
54#include <QtCore/QList>
55#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0))
57template<
typename T,
typename C>
58inline void quazip_sort(T begin, T end, C comparator) {
59 std::sort(begin, end, comparator);
62#include <QtCore/QtAlgorithms>
63template<
typename T,
typename C>
64inline void quazip_sort(T begin, T end, C comparator) {
65 qSort(begin, end, comparator);
70#include <QtCore/QDateTime>
71#include <QtCore/QFileInfo>
72#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
73inline QDateTime quazip_ctime(
const QFileInfo &fi) {
74 return fi.birthTime();
77inline QDateTime quazip_ctime(
const QFileInfo &fi) {
83#include <QtCore/QFileInfo>
84#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
85inline bool quazip_is_symlink(
const QFileInfo &fi) {
86 return fi.isSymbolicLink();
89inline bool quazip_is_symlink(
const QFileInfo &fi) {
91 return fi.isSymLink();
96#include <QtCore/QFileInfo>
97#if (QT_VERSION >= QT_VERSION_CHECK(5, 13, 0))
98inline QString quazip_symlink_target(
const QFileInfo &fi) {
99 return fi.symLinkTarget();
102inline QString quazip_symlink_target(
const QFileInfo &fi) {
103 return fi.readLink();
108#include <QtCore/QDateTime>
109#if (QT_VERSION >= 0x040700)
110inline quint64 quazip_ntfs_ticks(
const QDateTime &time,
int fineTicks) {
111 QDateTime base(QDate(1601, 1, 1), QTime(0, 0), Qt::UTC);
112 return base.msecsTo(time) * 10000 + fineTicks;
115inline quint64 quazip_ntfs_ticks(
const QDateTime &time,
int fineTicks) {
116 QDateTime base(QDate(1601, 1, 1), QTime(0, 0), Qt::UTC);
117 QDateTime utc = time.toUTC();
118 return (
static_cast<qint64
>(base.date().daysTo(utc.date()))
119 * Q_INT64_C(86400000)
120 +
static_cast<qint64
>(base.time().msecsTo(utc.time())))
121 * Q_INT64_C(10000) + fineTicks;
126#include <QtCore/QDateTime>
127#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)
128inline qint64 quazip_to_time64_t(
const QDateTime &time) {
129 return time.toSecsSinceEpoch();
132inline qint64 quazip_to_time64_t(
const QDateTime &time) {
133 return static_cast<qint64
>(time.toTime_t());
137#include <QtCore/QTextStream>
139#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
140const auto quazip_endl = Qt::endl;
142const auto quazip_endl = endl;