From b6390f556418c44f17af8795e7725bf2e4077165 2017-12-18 13:31:15 From: Thibaud Rabillard Date: 2017-12-18 13:31:15 Subject: [PATCH] Adaptation to last version of catalogue controller --- diff --git a/core/include/Catalogue/CatalogueController.h b/core/include/Catalogue/CatalogueController.h index 7d12271..717037d 100644 --- a/core/include/Catalogue/CatalogueController.h +++ b/core/include/Catalogue/CatalogueController.h @@ -52,7 +52,8 @@ public: // Catalogue // bool createCatalogue(const QString &name, QVector eventList); /// retrieveEvents with empty repository retrieve them from the default repository - std::list > retrieveCatalogues(const QString &repository) const; + std::list > retrieveCatalogues(const QString &repository + = QString()) const; void updateCatalogue(std::shared_ptr catalogue); void removeCatalogue(std::shared_ptr catalogue); void saveCatalogue(std::shared_ptr catalogue); diff --git a/core/src/Catalogue/CatalogueController.cpp b/core/src/Catalogue/CatalogueController.cpp index f06adf5..be76fcf 100644 --- a/core/src/Catalogue/CatalogueController.cpp +++ b/core/src/Catalogue/CatalogueController.cpp @@ -148,7 +148,7 @@ void CatalogueController::removeEvent(std::shared_ptr event) void CatalogueController::addEvent(std::shared_ptr event) { - event->setRepository(impl->toSyncRepository(event->getRepository())); + event->setRepository(impl->toWorkRepository(event->getRepository())); impl->m_CatalogueDao.addEvent(*event); @@ -255,14 +255,23 @@ void CatalogueController::waitForFinish() void CatalogueController::CatalogueControllerPrivate::copyDBtoDB(const QString &dbFrom, const QString &dbTo) { - auto catalogues = m_Q->retrieveCatalogues(dbFrom); - auto events = m_Q->retrieveEvents(dbFrom); - + auto cataloguesShared = std::list >{}; + auto catalogues = m_CatalogueDao.getCatalogues(dbFrom); for (auto catalogue : catalogues) { - m_CatalogueDao.copyCatalogue(*catalogue, dbTo, true); + cataloguesShared.push_back(std::make_shared(catalogue)); } + auto eventsShared = std::list >{}; + auto events = m_CatalogueDao.getEvents(dbFrom); for (auto event : events) { + eventsShared.push_back(std::make_shared(event)); + } + + for (auto catalogue : cataloguesShared) { + m_CatalogueDao.copyCatalogue(*catalogue, dbTo, true); + } + + for (auto event : eventsShared) { m_CatalogueDao.copyEvent(*event, dbTo, true); } } diff --git a/gui/src/Catalogue/CatalogueActionManager.cpp b/gui/src/Catalogue/CatalogueActionManager.cpp index 5b563bb..258ac5d 100644 --- a/gui/src/Catalogue/CatalogueActionManager.cpp +++ b/gui/src/Catalogue/CatalogueActionManager.cpp @@ -47,12 +47,12 @@ struct CatalogueActionManager::CatalogueActionManagerPrivate { event->setEventProducts(productList); - // TODO + sqpApp->catalogueController().addEvent(event); + if (catalogue) { + // TODO // catalogue->addEvent(event); } - else { - } } }; diff --git a/gui/src/Catalogue/CatalogueExplorer.cpp b/gui/src/Catalogue/CatalogueExplorer.cpp index 3b5a6e8..e409089 100644 --- a/gui/src/Catalogue/CatalogueExplorer.cpp +++ b/gui/src/Catalogue/CatalogueExplorer.cpp @@ -2,6 +2,8 @@ #include "ui_CatalogueExplorer.h" #include +#include +#include #include #include @@ -68,11 +70,15 @@ CatalogueExplorer::CatalogueExplorer(QWidget *parent) connect(ui->events, &CatalogueEventsWidget::selectionCleared, [this]() { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); }); - connect(ui->inspector, &CatalogueInspectorWidget::catalogueUpdated, - [this](auto catalogue) { ui->catalogues->setCatalogueChanges(catalogue, true); }); + connect(ui->inspector, &CatalogueInspectorWidget::catalogueUpdated, [this](auto catalogue) { + sqpApp->catalogueController().updateCatalogue(catalogue); + ui->catalogues->setCatalogueChanges(catalogue, true); + }); - connect(ui->inspector, &CatalogueInspectorWidget::eventUpdated, - [this](auto event) { ui->events->setEventChanges(event, true); }); + connect(ui->inspector, &CatalogueInspectorWidget::eventUpdated, [this](auto event) { + sqpApp->catalogueController().updateEvent(event); + ui->events->setEventChanges(event, true); + }); connect(ui->inspector, &CatalogueInspectorWidget::eventProductUpdated, [this](auto event, auto eventProduct) { ui->events->setEventChanges(event, true); }); diff --git a/gui/src/Catalogue/CatalogueSideBarWidget.cpp b/gui/src/Catalogue/CatalogueSideBarWidget.cpp index 0d64db1..e9f5d4e 100644 --- a/gui/src/Catalogue/CatalogueSideBarWidget.cpp +++ b/gui/src/Catalogue/CatalogueSideBarWidget.cpp @@ -176,11 +176,14 @@ void CatalogueSideBarWidget::CatalogueSideBarWidgetPrivate::configureTreeWidget( treeWidget->addTopLevelItem(separatorItem); treeWidget->setItemWidget(separatorItem, 0, separator); - auto db = addDatabaseItem("Default", treeWidget); + auto repositories = sqpApp->catalogueController().getRepositories(); + for (auto dbname : repositories) { + auto db = addDatabaseItem(dbname, treeWidget); - auto catalogues = sqpApp->catalogueController().retrieveCatalogues("Default"); - for (auto catalogue : catalogues) { - addCatalogueItem(catalogue, db); + auto catalogues = sqpApp->catalogueController().retrieveCatalogues(dbname); + for (auto catalogue : catalogues) { + addCatalogueItem(catalogue, db); + } } treeWidget->expandAll(); diff --git a/gui/src/Catalogue/CatalogueTreeWidgetItem.cpp b/gui/src/Catalogue/CatalogueTreeWidgetItem.cpp index 4ce4f2a..92de0ff 100644 --- a/gui/src/Catalogue/CatalogueTreeWidgetItem.cpp +++ b/gui/src/Catalogue/CatalogueTreeWidgetItem.cpp @@ -1,6 +1,9 @@ #include "Catalogue/CatalogueTreeWidgetItem.h" #include +#include +#include + #include #include @@ -47,6 +50,7 @@ void CatalogueTreeWidgetItem::setData(int column, int role, const QVariant &valu if (newName != impl->m_Catalogue->getName()) { setText(0, newName); impl->m_Catalogue->setName(newName); + sqpApp->catalogueController().updateCatalogue(impl->m_Catalogue); setHasChanges(true); } } diff --git a/gui/src/Catalogue/CreateEventDialog.cpp b/gui/src/Catalogue/CreateEventDialog.cpp index 693d430..c3e90c9 100644 --- a/gui/src/Catalogue/CreateEventDialog.cpp +++ b/gui/src/Catalogue/CreateEventDialog.cpp @@ -20,7 +20,7 @@ CreateEventDialog::CreateEventDialog(QWidget *parent) connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); - auto catalogues = sqpApp->catalogueController().getCatalogues("Default"); + auto catalogues = sqpApp->catalogueController().retrieveCatalogues(); for (auto cat : catalogues) { ui->cbCatalogue->addItem(cat->getName()); impl->m_DisplayedCatalogues << cat;