Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorClaudio Cambra <claudio.cambra@gmail.com>2022-07-20 18:23:43 +0300
committerClaudio Cambra <claudio.cambra@gmail.com>2022-09-07 20:10:03 +0300
commit9a0753dabb061b4e3ac753cbdfd272d9bb256212 (patch)
treeea2037a568ad7e258227153108416fbbc81573e7 /src
parentb7b374c4428cde952c7cbcdb40d0f46b71c5a45e (diff)
Replace private API QZipWriter with KArchive
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/csync/std/c_private.h2
-rw-r--r--src/gui/CMakeLists.txt2
-rw-r--r--src/gui/generalsettings.cpp35
3 files changed, 18 insertions, 21 deletions
diff --git a/src/csync/std/c_private.h b/src/csync/std/c_private.h
index aaa41417f..8307859ac 100644
--- a/src/csync/std/c_private.h
+++ b/src/csync/std/c_private.h
@@ -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
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
index 5a1157813..15313219e 100644
--- a/src/gui/CMakeLists.txt
+++ b/src/gui/CMakeLists.txt
@@ -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)
diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp
index 4a7ff307f..8834c3567 100644
--- a/src/gui/generalsettings.cpp
+++ b/src/gui/generalsettings.cpp
@@ -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());
}
}