Defer closing until batch cancellation and cleanup finish

This commit is contained in:
evgeny committed 2026-10-10 09:38:35 +02:00
1 parent 4a6765c49a
commit 973c734226
2 files changed
+14 -2

No files matched your search

@@ -401,6 +401,18 @@ private slots:
QApplication::sendEvent(tree->viewport(), &move);
QTest::mouseRelease(tree->viewport(), Qt::LeftButton, Qt::NoModifier, point + QPoint(40, 0));
QVERIFY(received); QCOMPARE(transfers.size(), 4); transferStarted = {};
if (dragStatus == MF_CANCELLED) {
QPointer<MemberFileBrowser> closing = new MemberFileBrowser(&db);
closing->setChannel("42", 11); closing->show();
auto* closingTree = closing->findChild<QTreeWidget*>();
auto* closingItem = new QTreeWidgetItem(closingTree, {"pending.txt"});
closingItem->setData(0, Qt::UserRole, "pending.txt"); closingItem->setData(0, Qt::UserRole + 1, MF_FILE);
closingItem->setData(0, Qt::UserRole + 2, QByteArray(16, '\7')); closingTree->setCurrentItem(closingItem);
closing->findChild<QAction*>("memberFilesCopy")->trigger(); QTRY_COMPARE(transfers.size(), 5);
auto pending = transfers.last(); QString temporary = QFileInfo(QString::fromUtf8(pending.local)).absolutePath();
closing->close(); QVERIFY(closing); QVERIFY(cancelled.contains(pending.id));
complete(*closing, pending, MF_CANCELLED); QTRY_VERIFY(closing.isNull()); QVERIFY(!QFileInfo::exists(temporary));
}
}
QVERIFY(QFile::exists(exported)); // Закрытие Group files не ломает локальный URI.
db.setDb(nullptr); QCOMPARE(sqlite3_close(sql), SQLITE_OK);