Add activity for existing folder going over set limit
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 5 Jul 2023 15:35:13 +0000 (23:35 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 4 Aug 2023 09:40:40 +0000 (17:40 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/folder.cpp

index 29c4e901989ecbd12ecadec5aea71aee5a7df1e4..81c63dc561443cf6e4451b7f76b74e7161cd3e8f 100644 (file)
@@ -1259,6 +1259,29 @@ void Folder::slotExistingFolderNowBig(const QString &folderPath)
                                 "Please go into the settings and disable it if you wish to stop synchronising it.")
                                  .arg(QString::number(ConfigFile().newBigFolderSizeLimit().second), folderPath);
         Logger::instance()->postGuiLog(Theme::instance()->appNameGUI(), message);
+
+        auto blacklistActivityLink = ActivityLink();
+        blacklistActivityLink._label = tr("Stop syncing");
+        blacklistActivityLink._primary = true;
+        blacklistActivityLink._verb = "BLACKLIST_FOLDER";
+
+        auto whitelistActivityLink = ActivityLink();
+        whitelistActivityLink._label = tr("Keep syncing");
+        whitelistActivityLink._primary = false;
+        whitelistActivityLink._verb = "WHITELIST_FOLDER";
+
+        auto existingFolderNowBigActivity = Activity();
+        existingFolderNowBigActivity._type = Activity::NotificationType;
+        existingFolderNowBigActivity._dateTime = QDateTime::fromString(QDateTime::currentDateTime().toString(), Qt::ISODate);
+        existingFolderNowBigActivity._subject =
+            tr("The folder %1 has surpassed the set folder size limit of %2MB.").arg(folderPath, QString::number(ConfigFile().newBigFolderSizeLimit().second));
+        existingFolderNowBigActivity._message = tr("Would you like to stop syncing this folder?");
+        existingFolderNowBigActivity._accName = _accountState->account()->displayName();
+        existingFolderNowBigActivity._folder = alias();
+        existingFolderNowBigActivity._links = {blacklistActivityLink, whitelistActivityLink};
+
+        const auto user = UserModel::instance()->findUserForAccount(_accountState.data());
+        user->slotAddNotification(this, existingFolderNowBigActivity);
     }
 }