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> 28 inline bool quazip_close(QIODevice *device) {
29 QSaveFile *file = qobject_cast<QSaveFile*>(device);
30 if (file !=
nullptr) {
32 return file->commit();
38 inline bool quazip_close(QIODevice *device) {
45 #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) 46 using Qt::SkipEmptyParts;
48 #include <QtCore/QString> 49 const auto SkipEmptyParts = QString::SplitBehavior::SkipEmptyParts;
53 #include <QtCore/QList> 54 #if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)) 56 template<
typename T,
typename C>
57 inline void quazip_sort(T begin, T end, C comparator) {
58 std::sort(begin, end, comparator);
61 #include <QtCore/QtAlgorithms> 62 template<
typename T,
typename C>
63 inline void quazip_sort(T begin, T end, C comparator) {
64 qSort(begin, end, comparator);
69 #include <QtCore/QDateTime> 70 #include <QtCore/QFileInfo> 71 #if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)) 72 inline QDateTime quazip_ctime(
const QFileInfo &fi) {
73 return fi.birthTime();
76 inline QDateTime quazip_ctime(
const QFileInfo &fi) {
82 #include <QtCore/QFileInfo> 83 #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)) 84 inline bool quazip_is_symlink(
const QFileInfo &fi) {
85 return fi.isSymbolicLink();
88 inline bool quazip_is_symlink(
const QFileInfo &fi) {
90 return fi.isSymLink();
95 #include <QtCore/QFileInfo> 96 #if (QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)) 97 inline QString quazip_symlink_target(
const QFileInfo &fi) {
98 return fi.symLinkTarget();
101 inline QString quazip_symlink_target(
const QFileInfo &fi) {
102 return fi.readLink();
107 #if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) 108 #include <QtCore/QTimeZone> 109 inline QDateTime quazip_since_epoch() {
110 return QDateTime(QDate(1970, 1, 1), QTime(0, 0), QTimeZone::utc());
113 inline QDateTime quazip_since_epoch_ntfs() {
114 return QDateTime(QDate(1601, 1, 1), QTime(0, 0), QTimeZone::utc());
117 inline QDateTime quazip_since_epoch() {
118 return QDateTime(QDate(1970, 1, 1), QTime(0, 0), Qt::UTC);
121 inline QDateTime quazip_since_epoch_ntfs() {
122 return QDateTime(QDate(1601, 1, 1), QTime(0, 0), Qt::UTC);
127 #include <QtCore/QDateTime> 128 #if (QT_VERSION >= 0x040700) 129 inline quint64 quazip_ntfs_ticks(
const QDateTime &time,
int fineTicks) {
130 QDateTime base = quazip_since_epoch_ntfs();
131 return base.msecsTo(time) * 10000 + fineTicks;
134 inline quint64 quazip_ntfs_ticks(
const QDateTime &time,
int fineTicks) {
135 QDateTime base = quazip_since_epoch_ntfs();
136 QDateTime utc = time.toUTC();
137 return (static_cast<qint64>(base.date().daysTo(utc.date()))
138 * Q_INT64_C(86400000)
139 +
static_cast<qint64
>(base.time().msecsTo(utc.time())))
140 * Q_INT64_C(10000) + fineTicks;
145 #include <QtCore/QDateTime> 146 #if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) // Yay! Finally a way to get time as qint64! 147 inline qint64 quazip_to_time64_t(
const QDateTime &time) {
148 return time.toSecsSinceEpoch();
151 inline qint64 quazip_to_time64_t(
const QDateTime &time) {
152 return static_cast<qint64
>(time.toTime_t());
156 #include <QtCore/QTextStream> 158 #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) 159 const auto quazip_endl = Qt::endl;
161 const auto quazip_endl = endl;
164 #endif // QUAZIP_QT_COMPAT_H