Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
b484344
started moving folder management functions
modSpike Apr 13, 2026
d1ea3ff
Merge branch 'master' into refactor/dc-257
modSpike Apr 13, 2026
122da1d
fix windows build
modSpike Apr 13, 2026
87c88f8
more windows fixes
modSpike Apr 13, 2026
1663fb8
Merge branch 'master' into refactor/dc-257
modSpike Apr 13, 2026
7a9dd1d
hopefully finished with the local folder precheck
modSpike Apr 14, 2026
c0a6900
fix windows
modSpike Apr 14, 2026
da59845
fixed some docs to be more specific
modSpike Apr 15, 2026
166545d
fixed the tests
modSpike Apr 15, 2026
2a46fe3
Merge branch 'master' into refactor/dc-257
modSpike Apr 15, 2026
925235e
Merge branch 'master' into refactor/dc-257
modSpike Apr 15, 2026
1ad82bd
Merge branch 'master' into refactor/dc-257
modSpike Apr 16, 2026
891dc94
Merge branch 'master' into refactor/dc-257
modSpike Apr 16, 2026
3273f13
builder now creates vfs and journal
modSpike Apr 16, 2026
f8625f8
attempting to kill the shared pointer around vfs
modSpike Apr 17, 2026
64c6555
Merge branch 'master' into refactor/dc-257
modSpike Apr 17, 2026
8c2833e
hoping the tests build now for win
modSpike Apr 17, 2026
a43a49f
this is a temporary fix - the core issue is that the tests are way ou…
modSpike Apr 20, 2026
7b57f2a
Merge branch 'master' into refactor/dc-257
modSpike Apr 20, 2026
65c7fea
fixing new tests crash on mac after fix on win
modSpike Apr 20, 2026
9327c11
Merge branch 'master' into refactor/dc-257
modSpike Apr 21, 2026
dcea22a
start preparing to eliminate the SyncOptions
modSpike Apr 21, 2026
2f17917
Merge branch 'refactor/dc-257' of https://github.com/owncloud/client …
modSpike Apr 21, 2026
955fa61
more
modSpike Apr 21, 2026
5b13af3
continuing to update various deps inside the SyncEngine
modSpike Apr 23, 2026
8edb868
another incremental commit to check build results
modSpike Apr 23, 2026
9454fd8
put the sync engine back in VfsSetupParams to support winvfs
modSpike Apr 23, 2026
4c278d6
fix the squish tests?
modSpike Apr 23, 2026
57e9570
hopefully fix win build
modSpike Apr 23, 2026
84ec990
possible fix for linux tests
modSpike Apr 23, 2026
9709c06
removed the last of the smart pointers from SyncEngine
modSpike Apr 23, 2026
d60a693
eliminated strange getters that returned refs instead of pointers
modSpike Apr 23, 2026
37c2e0a
try to make win tests build
modSpike Apr 24, 2026
ffef8d0
more wintest fixes
modSpike Apr 24, 2026
18c34f2
it never ends
modSpike Apr 24, 2026
546a373
Merge branch 'master' into refactor/dc-257
modSpike Apr 24, 2026
3ec2418
another try to build winvfs tests
modSpike Apr 29, 2026
a7785b1
Merge branch 'master' into refactor/dc-257
modSpike Apr 29, 2026
0944f9f
disable the databaseError test for now
modSpike Apr 29, 2026
fa5051e
encapsulated SyncFileStatusTracker within SyncEngine
modSpike Apr 30, 2026
89b3a4e
further tightening of SyncEngine and SyncFileStatusTrackerand Sy
modSpike Apr 30, 2026
0a3330b
Merge branch 'master' into refactor/dc-257
modSpike Apr 30, 2026
dc359cd
update FolderBuilder::buildEngine
modSpike May 4, 2026
c2df7bf
make the webDavUrl consistent
modSpike May 4, 2026
e510cb2
updated FolderMan to handle moveToTrash more like ignoreHiddenFiles
modSpike May 4, 2026
fefcbf9
Merge branch 'master' into refactor/dc-257
modSpike May 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ jobs:
useSonarCloud:
testOptions:
name: ${{ matrix.name }}

#let the other builds run even if one fails
continue-on-error: true
runs-on: ${{ matrix.os }}

env:
Expand Down
1 change: 1 addition & 0 deletions src/common/chronoelapsedtimer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ void ChronoElapsedTimer::reset()

void ChronoElapsedTimer::stop()
{
// this assert is hit on pause sync
Q_ASSERT(_end == std::chrono::steady_clock::time_point {});
_end = std::chrono::steady_clock::now();
}
Expand Down
11 changes: 1 addition & 10 deletions src/common/filesystembase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,16 +141,7 @@ void FileSystem::setFileReadOnly(const QString &filename, bool readonly)
file.setPermissions(permissions);
}

void FileSystem::setFolderMinimumPermissions(const QString &filename)
{
#ifdef Q_OS_MAC
QFile::Permissions perm = QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner;
QFile file(filename);
file.setPermissions(perm);
#else
Q_UNUSED(filename);
#endif
}
void FileSystem::setFolderMinimumPermissions(const QString &filename) { }


void FileSystem::setFileReadOnlyWeak(const QString &filename, bool readonly)
Expand Down
3 changes: 1 addition & 2 deletions src/common/filesystembase.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,7 @@ namespace FileSystem {
* List of characters not allowd in filenames on Windows
*/
constexpr_list auto IllegalFilenameCharsWindows = {
QLatin1Char('\\'), QLatin1Char(':'), QLatin1Char('?'), QLatin1Char('*'), QLatin1Char('"'), QLatin1Char('>'), QLatin1Char('<'), QLatin1Char('|')
};
QLatin1Char('\\'), QLatin1Char(':'), QLatin1Char('?'), QLatin1Char('*'), QLatin1Char('"'), QLatin1Char('>'), QLatin1Char('<'), QLatin1Char('|')};

/**
* @brief Mark the file as hidden (only has effects on windows)
Expand Down
2 changes: 1 addition & 1 deletion src/common/syncjournaldb.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class OCSYNC_EXPORT SyncJournalDb : public QObject
{
Q_OBJECT
public:
explicit SyncJournalDb(const QString &dbFilePath, QObject *parent = nullptr);
explicit SyncJournalDb(const QString &dbFilePath, QObject *parent);
~SyncJournalDb() override;

/// Create a journal path for a specific configuration
Expand Down
4 changes: 2 additions & 2 deletions src/common/vfs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ Vfs::Mode OCC::VfsPluginManager::bestAvailableVfsMode() const
return Vfs::Off;
}

std::unique_ptr<Vfs> OCC::VfsPluginManager::createVfsFromPlugin(Vfs::Mode mode) const
Vfs *OCC::VfsPluginManager::createVfsFromPlugin(Vfs::Mode mode, QObject *parent) const
{
auto name = Utility::enumToString(mode);
if (name.isEmpty())
Expand All @@ -261,7 +261,7 @@ std::unique_ptr<Vfs> OCC::VfsPluginManager::createVfsFromPlugin(Vfs::Mode mode)
return nullptr;
}

auto vfs = std::unique_ptr<Vfs>(qobject_cast<Vfs *>(factory->create(nullptr)));
Vfs *vfs = qobject_cast<Vfs *>(factory->create(parent));
if (!vfs) {
qCCritical(lcPlugin) << "Plugin" << loader.fileName() << "does not create a Vfs instance";
return nullptr;
Expand Down
9 changes: 6 additions & 3 deletions src/common/vfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,13 @@ struct OCSYNC_EXPORT VfsSetupParams
return _baseUrl;
}

// sync engine is only used by win vfs impl
SyncEngine *syncEngine() const;

private:
QUrl _baseUrl;
// this should be a QPointer but when I try to make it so, I get compile errors because std::isConvertible<SyncEngine *, QObject *> fails
// no freaking idea but I'll figure it out later
SyncEngine *_syncEngine;
};

Expand Down Expand Up @@ -141,7 +144,7 @@ class OCSYNC_EXPORT Vfs : public QObject
using AvailabilityResult = Result<VfsItemAvailability, AvailabilityError>;

public:
explicit Vfs(QObject* parent = nullptr);
explicit Vfs(QObject *parent);
~Vfs() override;

virtual Mode mode() const = 0;
Expand Down Expand Up @@ -239,7 +242,7 @@ public Q_SLOTS:
* via the vfs plugin. The connection to SyncFileStatusTracker allows both to be based
* on the same data.
*/
virtual void fileStatusChanged(const QString &systemFileName, SyncFileStatus fileStatus) = 0;
virtual void onFileStatusChanged(const QString &systemFileName, SyncFileStatus fileStatus) = 0;

Q_SIGNALS:
/// start complete
Expand Down Expand Up @@ -302,7 +305,7 @@ class OCSYNC_EXPORT VfsPluginManager
Vfs::Mode bestAvailableVfsMode() const;

/// Create a VFS instance for the mode, returns nullptr on failure.
std::unique_ptr<Vfs> createVfsFromPlugin(Vfs::Mode mode) const;
Vfs *createVfsFromPlugin(Vfs::Mode mode, QObject *parent) const;

static const VfsPluginManager &instance();

Expand Down
5 changes: 3 additions & 2 deletions src/csync/csync_exclude.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,9 @@ static CSYNC_EXCLUDE_TYPE _csync_excluded_common(QStringView path)

using namespace OCC;

ExcludedFiles::ExcludedFiles()
: _clientVersion(OCC::Version::version())
ExcludedFiles::ExcludedFiles(QObject *parent)
: QObject(parent)
, _clientVersion(OCC::Version::version())
{
// Windows used to use PathMatchSpec which allows *foo to match abc/deffoo.
_wildcardsMatchSlash = Utility::isWindows();
Expand Down
4 changes: 3 additions & 1 deletion src/csync/csync_exclude.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ class OCSYNC_EXPORT ExcludedFiles : public QObject
{
Q_OBJECT
public:
ExcludedFiles();
// need to allow nullptr as this is also used in the selective sync routine as a straight object instance, so no parent
// is needed
ExcludedFiles(QObject *parent = nullptr);
~ExcludedFiles() override;

/**
Expand Down
1 change: 1 addition & 0 deletions src/gui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ add_subdirectory(newaccountwizard)
add_subdirectory(socketapi)
add_subdirectory(spaces)
add_subdirectory(FoldersGui)
add_subdirectory(foldermanagement)

target_include_directories(owncloudGui PUBLIC
${CMAKE_SOURCE_DIR}/src/3rdparty/QProgressIndicator
Expand Down
Loading
Loading