##// END OF EJS Templates
Discard an added event remove it now.
perrinel -
r1260:575bb1a5728f
parent child
Show More
@@ -49,7 +49,7 public:
49 49 // void trashEvent(std::shared_ptr<DBEvent> event);
50 50 // void restore(std::shared_ptr<DBEvent> event);
51 51 void saveEvent(std::shared_ptr<DBEvent> event);
52 void discardEvent(std::shared_ptr<DBEvent> event);
52 void discardEvent(std::shared_ptr<DBEvent> event, bool &removed);
53 53 bool eventHasChanges(std::shared_ptr<DBEvent> event) const;
54 54
55 55 // Catalogue
@@ -183,6 +183,23 void CatalogueController::addEvent(std::shared_ptr<DBEvent> event)
183 183
184 184 impl->m_CatalogueDao.updateEvent(eventTemp);
185 185 }
186
187
188 // update event parameter
189 auto uniqIdPredicate = std::make_shared<ComparaisonPredicate>(
190 QString{"uniqId"}, event->getUniqId(), ComparaisonOperation::EQUALEQUAL);
191
192 auto workRepositoryPredicate = std::make_shared<ComparaisonPredicate>(
193 QString{"repository"}, impl->toWorkRepository(event->getRepository()),
194 ComparaisonOperation::EQUALEQUAL);
195
196 auto workPred = std::make_shared<CompoundPredicate>(CompoundOperation::AND);
197 workPred->AddRequestPredicate(uniqIdPredicate);
198 workPred->AddRequestPredicate(workRepositoryPredicate);
199
200
201 auto workEvent = impl->m_CatalogueDao.getEvent(workPred);
202 *event = workEvent;
186 203 }
187 204
188 205 void CatalogueController::saveEvent(std::shared_ptr<DBEvent> event)
@@ -191,7 +208,7 void CatalogueController::saveEvent(std::shared_ptr<DBEvent> event)
191 208 impl->m_EventKeysWithChanges.remove(impl->eventUniqueKey(event));
192 209 }
193 210
194 void CatalogueController::discardEvent(std::shared_ptr<DBEvent> event)
211 void CatalogueController::discardEvent(std::shared_ptr<DBEvent> event, bool &removed)
195 212 {
196 213 auto uniqIdPredicate = std::make_shared<ComparaisonPredicate>(
197 214 QString{"uniqId"}, event->getUniqId(), ComparaisonOperation::EQUALEQUAL);
@@ -215,11 +232,21 void CatalogueController::discardEvent(std::shared_ptr<DBEvent> event)
215 232
216 233
217 234 auto syncEvent = impl->m_CatalogueDao.getEvent(syncPred);
218 impl->m_CatalogueDao.copyEvent(syncEvent, impl->toWorkRepository(event->getRepository()), true);
219
220 auto workEvent = impl->m_CatalogueDao.getEvent(workPred);
221 *event = workEvent;
222 impl->m_EventKeysWithChanges.remove(impl->eventUniqueKey(event));
235 if (!syncEvent.getUniqId().isNull()) {
236 removed = false;
237 impl->m_CatalogueDao.copyEvent(syncEvent, impl->toWorkRepository(event->getRepository()),
238 true);
239
240 auto workEvent = impl->m_CatalogueDao.getEvent(workPred);
241 *event = workEvent;
242 impl->m_EventKeysWithChanges.remove(impl->eventUniqueKey(event));
243 }
244 else {
245 removed = true;
246 // Since the element wasn't in sync repository. Discard it means remove it
247 event->setRepository(impl->toWorkRepository(event->getRepository()));
248 impl->m_CatalogueDao.removeEvent(*event);
249 }
223 250 }
224 251
225 252 bool CatalogueController::eventHasChanges(std::shared_ptr<DBEvent> event) const
@@ -357,9 +357,15 void CatalogueEventsWidget::setEventChanges(const std::shared_ptr<DBEvent> &even
357 357 setEventChanges(event, false);
358 358 },
359 359 [this, event]() {
360 sqpApp->catalogueController().discardEvent(event);
361 setEventChanges(event, false);
362 impl->m_Model->refreshEvent(event, true);
360 bool removed = false;
361 sqpApp->catalogueController().discardEvent(event, removed);
362 if (removed) {
363 impl->m_Model->removeEvent(event);
364 }
365 else {
366 setEventChanges(event, false);
367 impl->m_Model->refreshEvent(event, true);
368 }
363 369 emitSelection();
364 370 });
365 371 ui->treeView->setIndexWidget(validationIndex, widget);
@@ -64,7 +64,7 void CatalogueInspectorWidget::CatalogueInspectorWidgetPrivate::connectEventUpda
64 64 });
65 65
66 66 connect(ui->leEventTags, &QLineEdit::editingFinished, [ui, inspector, this]() {
67 auto tags = ui->leEventTags->text().split(QRegExp("\\s+"));
67 auto tags = ui->leEventTags->text().split(QRegExp("\\s+"), QString::SkipEmptyParts);
68 68 std::list<QString> tagNames;
69 69 for (auto tag : tags) {
70 70 tagNames.push_back(tag);
General Comments 0
You need to be logged in to leave comments. Login now