Replace private API QZipWriter with KArchive
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
This commit is contained in:
parent
b7b374c442
commit
9a0753dabb
|
@ -67,7 +67,7 @@
|
|||
#define getuid() 0
|
||||
#define geteuid() 0
|
||||
#elif defined(_WIN32)
|
||||
#define mode_t int
|
||||
typedef int mode_t;
|
||||
#else
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
project(gui)
|
||||
find_package(Qt5 REQUIRED COMPONENTS Widgets Svg Qml Quick QuickControls2 Xml Network)
|
||||
find_package(KF5Archive REQUIRED)
|
||||
|
||||
if(QUICK_COMPILER)
|
||||
find_package(Qt5QuickCompiler)
|
||||
|
@ -566,6 +567,7 @@ target_link_libraries(nextcloudCore
|
|||
Qt5::Qml
|
||||
Qt5::Quick
|
||||
Qt5::QuickControls2
|
||||
KF5::Archive
|
||||
)
|
||||
|
||||
add_subdirectory(socketapi)
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
#include <QScopedValueRollback>
|
||||
#include <QMessageBox>
|
||||
|
||||
#include <private/qzipwriter_p.h>
|
||||
#include <KZip>
|
||||
|
||||
#define QTLEGACY (QT_VERSION < QT_VERSION_CHECK(5,9,0))
|
||||
|
||||
|
@ -81,7 +81,7 @@ ZipEntry syncFolderToZipEntry(OCC::Folder *f)
|
|||
return fileInfoToZipEntry(journalInfo);
|
||||
}
|
||||
|
||||
QVector<ZipEntry> createFileList()
|
||||
QVector<ZipEntry> createDebugArchiveFileList()
|
||||
{
|
||||
auto list = QVector<ZipEntry>();
|
||||
OCC::ConfigFile cfg;
|
||||
|
@ -91,8 +91,6 @@ QVector<ZipEntry> createFileList()
|
|||
const auto logger = OCC::Logger::instance();
|
||||
|
||||
if (!logger->logDir().isEmpty()) {
|
||||
list.append({QString(), QStringLiteral("logs")});
|
||||
|
||||
QDir dir(logger->logDir());
|
||||
const auto infoList = dir.entryInfoList(QDir::Files);
|
||||
std::transform(std::cbegin(infoList), std::cend(infoList),
|
||||
|
@ -112,27 +110,24 @@ QVector<ZipEntry> createFileList()
|
|||
|
||||
void createDebugArchive(const QString &filename)
|
||||
{
|
||||
const auto entries = createFileList();
|
||||
const auto entries = createDebugArchiveFileList();
|
||||
|
||||
KZip zip(filename);
|
||||
zip.open(QIODevice::WriteOnly);
|
||||
|
||||
// TODO: Port away from this private API (best to port to KArchive)
|
||||
QZipWriter zip(filename);
|
||||
zip.setCreationPermissions(zip.creationPermissions() | QFile::ReadOther);
|
||||
for (const auto &entry : entries) {
|
||||
if (entry.localFilename.isEmpty()) {
|
||||
zip.addDirectory(entry.zipFilename);
|
||||
} else {
|
||||
QFile file(entry.localFilename);
|
||||
if (!file.open(QFile::ReadOnly)) {
|
||||
continue;
|
||||
}
|
||||
zip.addFile(entry.zipFilename, &file);
|
||||
}
|
||||
zip.addLocalFile(entry.localFilename, entry.zipFilename);
|
||||
}
|
||||
|
||||
zip.addFile("__nextcloud_client_parameters.txt", QCoreApplication::arguments().join(' ').toUtf8());
|
||||
const auto clientParameters = QCoreApplication::arguments().join(' ').toUtf8();
|
||||
zip.prepareWriting("__nextcloud_client_parameters.txt", {}, {}, clientParameters.size());
|
||||
zip.writeData(clientParameters, clientParameters.size());
|
||||
zip.finishWriting(clientParameters.size());
|
||||
|
||||
const auto buildInfo = QString(OCC::Theme::instance()->about() + "\n\n" + OCC::Theme::instance()->aboutDetails());
|
||||
zip.addFile("__nextcloud_client_buildinfo.txt", buildInfo.toUtf8());
|
||||
const auto buildInfo = QString(OCC::Theme::instance()->about() + "\n\n" + OCC::Theme::instance()->aboutDetails()).toUtf8();
|
||||
zip.prepareWriting("__nextcloud_client_buildinfo.txt", {}, {}, buildInfo.size());
|
||||
zip.writeData(buildInfo, buildInfo.size());
|
||||
zip.finishWriting(buildInfo.size());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue