diff --git a/ark/kerfuffle/archiveinterface.cpp b/ark/kerfuffle/archiveinterface.cpp index 540d1121..41b1fad8 100644 --- a/ark/kerfuffle/archiveinterface.cpp +++ b/ark/kerfuffle/archiveinterface.cpp @@ -168,10 +168,10 @@ bool ReadWriteArchiveInterface::isReadOnly() const { QFileInfo fileInfo(filename()); if (fileInfo.exists()) { - return ! fileInfo.isWritable(); - } else { - return !fileInfo.dir().exists(); // TODO: Should also check if we can create a file in that directory + return !fileInfo.isWritable(); } + // TODO: Should also check if we can create a file in that directory + return !fileInfo.dir().exists(); } } // namespace Kerfuffle diff --git a/ark/plugins/libarchive/libarchivehandler.cpp b/ark/plugins/libarchive/libarchivehandler.cpp index 0d1849ec..1283aeb0 100644 --- a/ark/plugins/libarchive/libarchivehandler.cpp +++ b/ark/plugins/libarchive/libarchivehandler.cpp @@ -236,6 +236,12 @@ bool LibArchiveInterface::deleteFiles(const QVariantList &files) return true; } +bool LibArchiveInterface::isReadOnly() const +{ + KArchive karchive(filename()); + return !karchive.isWritable(); +} + void LibArchiveInterface::emitProgress(const qreal value) { emit progress(value); diff --git a/ark/plugins/libarchive/libarchivehandler.h b/ark/plugins/libarchive/libarchivehandler.h index 04144935..afc5a8bb 100644 --- a/ark/plugins/libarchive/libarchivehandler.h +++ b/ark/plugins/libarchive/libarchivehandler.h @@ -45,6 +45,8 @@ public: bool addFiles(const QStringList& files, const CompressionOptions &options) final; bool deleteFiles(const QVariantList& files) final; + bool isReadOnly() const final; + private Q_SLOTS: void emitProgress(const qreal value); };