From fdf0baf1b82b5ed38bb128940c62ee540d7662ac 2018-01-08 15:55:18 From: mperrinel Date: 2018-01-08 15:55:18 Subject: [PATCH] Remove Event from Catalogue only unreferenced them --- diff --git a/gui/src/Catalogue/CatalogueEventsWidget.cpp b/gui/src/Catalogue/CatalogueEventsWidget.cpp index 6a70ae8..e28e4b6 100644 --- a/gui/src/Catalogue/CatalogueEventsWidget.cpp +++ b/gui/src/Catalogue/CatalogueEventsWidget.cpp @@ -384,17 +384,30 @@ CatalogueEventsWidget::CatalogueEventsWidget(QWidget *parent) if (!events.isEmpty() && eventProducts.isEmpty()) { - if (QMessageBox::warning(this, tr("Remove Event(s)"), - tr("The selected event(s) will be permanently removed " - "from the repository!\nAre you sure you want to continue?"), - QMessageBox::Yes | QMessageBox::No, QMessageBox::No) - == QMessageBox::Yes) { - + auto canRemoveEvent + = !this->isAllEventsDisplayed() + || (QMessageBox::warning( + this, tr("Remove Event(s)"), + tr("The selected event(s) will be permanently removed " + "from the repository!\nAre you sure you want to continue?"), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No) + == QMessageBox::Yes); + + if (canRemoveEvent) { for (auto event : events) { - sqpApp->catalogueController().removeEvent(event); - impl->removeEvent(event, ui->treeView); + if (this->isAllEventsDisplayed()) { + impl->removeEvent(event, ui->treeView); + } + else { + for (auto catalogue : this->displayedCatalogues()) { + catalogue->removeEvent(event->getUniqId()); + sqpApp->catalogueController().updateCatalogue(catalogue); + } + } + impl->m_Model->removeEvent(event); } + emit this->eventsRemoved(events); } }