#include "folderman.h"
#include "iconjob.h"
#include "accessmanager.h"
+#include "owncloudgui.h"
#include "ActivityData.h"
#include "ActivityListModel.h"
}
}
-void ActivityListModel::triggerDefaultAction(int activityIndex) const
+void ActivityListModel::triggerDefaultAction(int activityIndex)
{
if (activityIndex < 0 || activityIndex >= _finalList.size()) {
qCWarning(lcActivity) << "Couldn't trigger default action at index" << activityIndex << "/ final list size:" << _finalList.size();
const auto baseName = QFileInfo(basePath).fileName();
- ConflictDialog dialog;
- dialog.setBaseFilename(baseName);
- dialog.setLocalVersionFilename(conflictedPath);
- dialog.setRemoteVersionFilename(basePath);
- if (dialog.exec() == ConflictDialog::Accepted) {
- folder->scheduleThisFolderSoon();
+ if (!_currentConflictDialog.isNull()) {
+ _currentConflictDialog->close();
}
+ _currentConflictDialog = new ConflictDialog;
+ _currentConflictDialog->setBaseFilename(baseName);
+ _currentConflictDialog->setLocalVersionFilename(conflictedPath);
+ _currentConflictDialog->setRemoteVersionFilename(basePath);
+ _currentConflictDialog->setAttribute(Qt::WA_DeleteOnClose);
+ connect(_currentConflictDialog, &ConflictDialog::accepted, folder, [folder]() {
+ folder->scheduleThisFolderSoon();
+ });
+ _currentConflictDialog->open();
+ ownCloudGui::raiseDialog(_currentConflictDialog);
return;
}
Q_DECLARE_LOGGING_CATEGORY(lcActivity)
class AccountState;
+class ConflictDialog;
/**
* @brief The ActivityListModel
void removeActivityFromActivityList(int row);
void removeActivityFromActivityList(Activity activity);
- Q_INVOKABLE void triggerDefaultAction(int activityIndex) const;
+ Q_INVOKABLE void triggerDefaultAction(int activityIndex);
Q_INVOKABLE void triggerAction(int activityIndex, int actionIndex);
public slots:
int _maxActivities = 100;
int _maxActivitiesDays = 30;
bool _showMoreActivitiesAvailableEntry = false;
+
+ QPointer<ConflictDialog> _currentConflictDialog;
};
}