diff --git a/iso/iso.cpp b/iso/iso.cpp --- a/iso/iso.cpp +++ b/iso/iso.cpp @@ -39,6 +39,7 @@ #include "kiso.h" #include "kisofile.h" #include "kisodirectory.h" +#include "../krusader/compat.h" using namespace KIO; extern "C" @@ -185,30 +186,30 @@ void kio_isoProtocol::createUDSEntry(const KArchiveEntry * isoEntry, UDSEntry & entry) { entry.clear(); - entry.insert(UDSEntry::UDS_NAME, isoEntry->name()); - entry.insert(UDSEntry::UDS_FILE_TYPE, isoEntry->permissions() & S_IFMT); // keep file type only - entry.insert(UDSEntry::UDS_ACCESS, isoEntry->permissions() & 07777); // keep permissions only + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_NAME, isoEntry->name()); + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_FILE_TYPE, isoEntry->permissions() & S_IFMT); // keep file type only + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_ACCESS, isoEntry->permissions() & 07777); // keep permissions only if (isoEntry->isFile()) { long long si = ((KIsoFile *)isoEntry)->realsize(); if (!si) si = ((KIsoFile *)isoEntry)->size(); - entry.insert(UDSEntry::UDS_SIZE, si); + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_SIZE, si); } else { - entry.insert(UDSEntry::UDS_SIZE, 0L); + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_SIZE, 0L); } - entry.insert(UDSEntry::UDS_USER, isoEntry->user()); - entry.insert(UDSEntry::UDS_GROUP, isoEntry->group()); - entry.insert((uint)UDSEntry::UDS_MODIFICATION_TIME, isoEntry->date().toTime_t()); - entry.insert(UDSEntry::UDS_ACCESS_TIME, + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_USER, isoEntry->user()); + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_GROUP, isoEntry->group()); + entry.UDS_ENTRY_INSERT((uint)UDSEntry::UDS_MODIFICATION_TIME, isoEntry->date().toTime_t()); + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_ACCESS_TIME, isoEntry->isFile() ? ((KIsoFile *)isoEntry)->adate() : ((KIsoDirectory *)isoEntry)->adate()); - entry.insert(UDSEntry::UDS_CREATION_TIME, + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_CREATION_TIME, isoEntry->isFile() ? ((KIsoFile *)isoEntry)->cdate() : ((KIsoDirectory *)isoEntry)->cdate()); - entry.insert(UDSEntry::UDS_LINK_DEST, isoEntry->symLinkTarget()); + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_LINK_DEST, isoEntry->symLinkTarget()); } void kio_isoProtocol::listDir(const QUrl &url) @@ -305,10 +306,10 @@ return; } // Real directory. Return just enough information for KRun to work - entry.insert(UDSEntry::UDS_NAME, url.fileName()); + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_NAME, url.fileName()); //qDebug() << "kio_isoProtocol::stat returning name=" << url.fileName() << endl; - entry.insert(UDSEntry::UDS_FILE_TYPE, buff.st_mode & S_IFMT); + entry.UDS_ENTRY_INSERT(UDSEntry::UDS_FILE_TYPE, buff.st_mode & S_IFMT); statEntry(entry); diff --git a/krArc/krarc.cpp b/krArc/krarc.cpp --- a/krArc/krarc.cpp +++ b/krArc/krarc.cpp @@ -44,6 +44,7 @@ #include #include +#include "../krusader/compat.h" #define MAX_IPC_SIZE (1024*32) #define TRIES_WITH_PASSWORDS 3 @@ -1022,10 +1023,10 @@ dirDict.insert(DIR_SEPARATOR, root); // and the "/" UDSEntry UDSEntry entry; - entry.insert(KIO::UDSEntry::UDS_NAME, "."); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_NAME, "."); mode_t mode = parsePermString("drwxr-xr-x"); - entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, mode & S_IFMT); // keep file type only - entry.insert(KIO::UDSEntry::UDS_ACCESS, mode & 07777); // keep permissions only + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_FILE_TYPE, mode & S_IFMT); // keep file type only + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_ACCESS, mode & 07777); // keep permissions only root->append(entry); @@ -1203,12 +1204,12 @@ } UDSEntry entry; - entry.insert(KIO::UDSEntry::UDS_NAME, name); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_NAME, name); mode_t mode = parsePermString("drwxr-xr-x"); - entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, mode & S_IFMT); // keep file type only - entry.insert(KIO::UDSEntry::UDS_ACCESS, mode & 07777); // keep permissions only - entry.insert(KIO::UDSEntry::UDS_SIZE, 0); - entry.insert(KIO::UDSEntry::UDS_MODIFICATION_TIME, arcFile->time(KFileItem::ModificationTime).toTime_t()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_FILE_TYPE, mode & S_IFMT); // keep file type only + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_ACCESS, mode & 07777); // keep permissions only + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_SIZE, 0); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_MODIFICATION_TIME, arcFile->time(KFileItem::ModificationTime).toTime_t()); dir->append(entry); @@ -1485,18 +1486,18 @@ QString name = fullName.mid(fullName.lastIndexOf(DIR_SEPARATOR) + 1); // file name - entry.insert(KIO::UDSEntry::UDS_NAME, name); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_NAME, name); // file type - entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, mode & S_IFMT); // keep file type only + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_FILE_TYPE, mode & S_IFMT); // keep file type only // file permissions - entry.insert(KIO::UDSEntry::UDS_ACCESS, mode & 07777); // keep permissions only + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_ACCESS, mode & 07777); // keep permissions only // file size - entry.insert(KIO::UDSEntry::UDS_SIZE, size); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_SIZE, size); // modification time - entry.insert(KIO::UDSEntry::UDS_MODIFICATION_TIME, time); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_MODIFICATION_TIME, time); // link destination if (!symlinkDest.isEmpty()) { - entry.insert(KIO::UDSEntry::UDS_LINK_DEST, symlinkDest); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_LINK_DEST, symlinkDest); } if (S_ISDIR(mode)) { fullName = fullName + DIR_SEPARATOR; @@ -1509,8 +1510,8 @@ for (entryIt = dir->begin(); entryIt != dir->end(); ++entryIt) { if (entryIt->contains(KIO::UDSEntry::UDS_NAME) && entryIt->stringValue(KIO::UDSEntry::UDS_NAME) == name) { - entryIt->insert(KIO::UDSEntry::UDS_MODIFICATION_TIME, time); - entryIt->insert(KIO::UDSEntry::UDS_ACCESS, mode); + entryIt->UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_MODIFICATION_TIME, time); + entryIt->UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_ACCESS, mode); return; } } diff --git a/krusader/FileSystem/fileitem.cpp b/krusader/FileSystem/fileitem.cpp --- a/krusader/FileSystem/fileitem.cpp +++ b/krusader/FileSystem/fileitem.cpp @@ -30,6 +30,7 @@ #include "krpermhandler.h" #include "filesystemprovider.h" +#include "../compat.h" bool FileItem::userDefinedFolderIcons = true; @@ -200,30 +201,30 @@ { KIO::UDSEntry entry; - entry.insert(KIO::UDSEntry::UDS_NAME, getName()); - entry.insert(KIO::UDSEntry::UDS_SIZE, getSize()); - entry.insert(KIO::UDSEntry::UDS_MODIFICATION_TIME, getTime_t()); - entry.insert(KIO::UDSEntry::UDS_CREATION_TIME, getChangedTime()); - entry.insert(KIO::UDSEntry::UDS_ACCESS_TIME, getAccessTime()); - entry.insert(KIO::UDSEntry::UDS_USER, getOwner()); - entry.insert(KIO::UDSEntry::UDS_GROUP, getGroup()); - entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, getMime()); - entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, getMode() & S_IFMT); - entry.insert(KIO::UDSEntry::UDS_ACCESS, getMode() & 07777); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_NAME, getName()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_SIZE, getSize()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_MODIFICATION_TIME, getTime_t()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_CREATION_TIME, getChangedTime()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_ACCESS_TIME, getAccessTime()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_USER, getOwner()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_GROUP, getGroup()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_MIME_TYPE, getMime()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_FILE_TYPE, getMode() & S_IFMT); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_ACCESS, getMode() & 07777); if (isSymLink()) - entry.insert(KIO::UDSEntry::UDS_LINK_DEST, getSymDest()); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_LINK_DEST, getSymDest()); if (!m_AclLoaded) loadACL(); if (!m_acl.isNull() || !m_defaulfAcl.isNull()) { - entry.insert(KIO::UDSEntry::UDS_EXTENDED_ACL, 1); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_EXTENDED_ACL, 1); if (!m_acl.isNull()) - entry.insert(KIO::UDSEntry::UDS_ACL_STRING, m_acl); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_ACL_STRING, m_acl); if (!m_defaulfAcl.isNull()) - entry.insert(KIO::UDSEntry::UDS_DEFAULT_ACL_STRING, m_defaulfAcl); + entry.UDS_ENTRY_INSERT(KIO::UDSEntry::UDS_DEFAULT_ACL_STRING, m_defaulfAcl); } return entry; diff --git a/krusader/compat.h b/krusader/compat.h new file mode 100644 --- /dev/null +++ b/krusader/compat.h @@ -0,0 +1,31 @@ +/***************************************************************************** + * Copyright (C) 2019 Krusader Krew [https://krusader.org] * + * * + * This file is part of Krusader [https://krusader.org]. * + * * + * Krusader is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * Krusader is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with Krusader. If not, see [http://www.gnu.org/licenses/]. * + *****************************************************************************/ + +#ifndef _COMPAT_H_ +#define _COMPAT_H_ + +#include + +#if KIO_VERSION >= QT_VERSION_CHECK(5, 48, 0) + #define UDS_ENTRY_INSERT(A, B) UDSEntry::fastInsert((A), (B)); +#else + #define UDS_ENTRY_INSERT(A, B) UDSEntry::insert((A), (B)); +#endif + +#endif