From: Matthieu Gallien Date: Wed, 3 May 2023 16:40:15 +0000 (+0200) Subject: plug models into the dialog X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~10^2~44^2~18 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=789ca7230a522e6b7cf4cc38bf6846286c4a3cb6;p=nextcloud-desktop.git plug models into the dialog Signed-off-by: Matthieu Gallien --- diff --git a/src/gui/ConflictDelegate.qml b/src/gui/ConflictDelegate.qml index 7d386404b..66adb571d 100644 --- a/src/gui/ConflictDelegate.qml +++ b/src/gui/ConflictDelegate.qml @@ -24,7 +24,6 @@ Item { id: root required property string existingFileName - required property string conflictFileName required property string existingSize required property string conflictSize required property string existingDate diff --git a/src/gui/ResolveConflictsDialog.qml b/src/gui/ResolveConflictsDialog.qml index 38adcea71..4228c7514 100644 --- a/src/gui/ResolveConflictsDialog.qml +++ b/src/gui/ResolveConflictsDialog.qml @@ -59,7 +59,7 @@ Window { z: 2 EnforcedPlainTextLabel { - text: qsTr("%1 files in conflict").arg(12) + text: qsTr("%1 files in conflict").arg(delegateModel.count) font.bold: true font.pixelSize: 20 Layout.fillWidth: true @@ -129,6 +129,8 @@ Window { id: conflictListView model: DelegateModel { + id: delegateModel + model: realModel delegate: ConflictDelegate { diff --git a/src/gui/tray/SyncStatus.qml b/src/gui/tray/SyncStatus.qml index b973361c9..799d4d3e0 100644 --- a/src/gui/tray/SyncStatus.qml +++ b/src/gui/tray/SyncStatus.qml @@ -152,7 +152,7 @@ RowLayout { NC.UserModel.currentUser.isConnected enabled: visible onClicked: { - NC.Systray.createResolveConflictsDialog(); + NC.Systray.createResolveConflictsDialog(activityModel.allConflicts); } } } diff --git a/src/gui/tray/activitylistmodel.cpp b/src/gui/tray/activitylistmodel.cpp index 3630bccad..507f4da42 100644 --- a/src/gui/tray/activitylistmodel.cpp +++ b/src/gui/tray/activitylistmodel.cpp @@ -428,6 +428,8 @@ void ActivityListModel::startFetchJob() void ActivityListModel::setFinalList(const ActivityList &finalList) { _finalList = finalList; + + emit allConflictsChanged(); } const ActivityList &ActivityListModel::finalList() const @@ -912,4 +914,17 @@ bool ActivityListModel::hasManySyncConflicts() const return _hasManySyncConflicts; } +ActivityList ActivityListModel::allConflicts() const +{ + auto result = ActivityList{}; + + for(const auto &activity : _finalList) { + if (activity._syncFileItemStatus == SyncFileItem::Conflict) { + result.push_back(activity); + } + } + + return result; +} + } diff --git a/src/gui/tray/activitylistmodel.h b/src/gui/tray/activitylistmodel.h index 17e22eaea..b6864d81c 100644 --- a/src/gui/tray/activitylistmodel.h +++ b/src/gui/tray/activitylistmodel.h @@ -43,6 +43,7 @@ class ActivityListModel : public QAbstractListModel Q_PROPERTY(quint32 maxActionButtons READ maxActionButtons CONSTANT) Q_PROPERTY(AccountState *accountState READ accountState WRITE setAccountState NOTIFY accountStateChanged) Q_PROPERTY(bool hasManySyncConflicts READ hasManySyncConflicts NOTIFY hasManySyncConflictsChanged) + Q_PROPERTY(OCC::ActivityList allConflicts READ allConflicts NOTIFY allConflictsChanged) public: enum DataRole { @@ -108,6 +109,8 @@ public: [[nodiscard]] bool hasManySyncConflicts() const; + [[nodiscard]] OCC::ActivityList allConflicts() const; + public slots: void slotRefreshActivity(); void slotRefreshActivityInitial(); @@ -130,6 +133,7 @@ public slots: signals: void accountStateChanged(); void hasManySyncConflictsChanged(); + void allConflictsChanged(); void activityJobStatusCode(int statusCode); void sendNotificationRequest(const QString &accountName, const QString &link, const QByteArray &verb, int row);