Merge pull request #2948 from nextcloud/bugfix/conflict-dialog-issue

Fix crash when opening conflict dialog
This commit is contained in:
Felix Weilbach 2021-03-05 14:31:59 +01:00 committed by GitHub
commit f17c52dccd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 6 deletions

View File

@ -413,6 +413,21 @@ void User::slotAddError(const QString &folderAlias, const QString &message, Erro
} }
} }
bool User::isValueableActivity(const Folder *folder, const SyncFileItemPtr &item) const
{
// Ignore activity from a different account
if (folder->accountState() != _account.data()) {
return false;
}
// We just care about conflict issues that we are able to resolve
if (item->_status == SyncFileItem::Conflict && !Utility::isConflictFile(item->_file)) {
return false;
}
return true;
}
void User::slotItemCompleted(const QString &folder, const SyncFileItemPtr &item) void User::slotItemCompleted(const QString &folder, const SyncFileItemPtr &item)
{ {
auto folderInstance = FolderMan::instance()->folder(folder); auto folderInstance = FolderMan::instance()->folder(folder);
@ -420,8 +435,7 @@ void User::slotItemCompleted(const QString &folder, const SyncFileItemPtr &item)
if (!folderInstance) if (!folderInstance)
return; return;
// check if we are adding it to the right account and if it is useful information (protocol errors) if (isValueableActivity(folderInstance, item)) {
if (folderInstance->accountState() == _account.data()) {
qCWarning(lcActivity) << "Item " << item->_file << " retrieved resulted in " << item->_errorString; qCWarning(lcActivity) << "Item " << item->_file << " retrieved resulted in " << item->_errorString;
Activity activity; Activity activity;

View File

@ -80,6 +80,8 @@ private:
void connectPushNotifications() const; void connectPushNotifications() const;
bool checkPushNotificationsAreReady() const; bool checkPushNotificationsAreReady() const;
bool isValueableActivity(const Folder *folder, const SyncFileItemPtr &item) const;
private: private:
AccountStatePtr _account; AccountStatePtr _account;
bool _isCurrentUser; bool _isCurrentUser;

View File

@ -742,13 +742,12 @@ bool OwncloudPropagator::createConflict(const SyncFileItemPtr &item,
conflictItem->_size = item->_previousSize; conflictItem->_size = item->_previousSize;
emit newItem(conflictItem); emit newItem(conflictItem);
composite->appendTask(conflictItem); composite->appendTask(conflictItem);
} else {
// Directories we can't process in one go. The next sync run
// will take care of uploading the conflict dir contents.
_anotherSyncNeeded = true;
} }
} }
// Need a new sync to detect the created copy of the conflicting file
_anotherSyncNeeded = true;
return true; return true;
} }