diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 8653f433f6..e2822024ff 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -13,6 +13,7 @@ */ #include "generalsettings.h" +#include "macOS/fileprovider.h" #include "ui_generalsettings.h" #include "theme.h" @@ -31,6 +32,10 @@ #endif #endif +#ifdef BUILD_FILE_PROVIDER_MODULE +#include "macOS/fileprovidersettingscontroller.h" +#endif + #include "ignorelisteditor.h" #include "common/utility.h" #include "logger.h" @@ -113,6 +118,23 @@ QVector createDebugArchiveFileList() std::copy(std::cbegin(newEntries), std::cend(newEntries), std::back_inserter(list)); }); +#ifdef BUILD_FILE_PROVIDER_MODULE + + const auto fileProvider = OCC::Mac::FileProvider::instance(); + if (fileProvider && fileProvider->fileProviderAvailable()) { + const auto tempDir = QTemporaryDir(); + const auto xpc = fileProvider->xpc(); + const auto vfsAccounts = OCC::Mac::FileProviderSettingsController::instance()->vfsEnabledAccounts(); + for (const auto &accountUserIdAtHost : vfsAccounts) { + const auto vfsLogFilename = QStringLiteral("macOS_vfs_%1.log").arg(accountUserIdAtHost); + const auto vfsLogPath = tempDir.filePath(vfsLogFilename); + xpc->createDebugArchiveForExtension(accountUserIdAtHost, vfsLogPath); + list.append(fileInfoToZipEntry(QFileInfo(vfsLogPath))); + } + } + +#endif + return list; }