diff --git a/gui/include/Catalogue/CatalogueEventsWidget.h b/gui/include/Catalogue/CatalogueEventsWidget.h index 4bc224e..bfa9371 100644 --- a/gui/include/Catalogue/CatalogueEventsWidget.h +++ b/gui/include/Catalogue/CatalogueEventsWidget.h @@ -42,6 +42,7 @@ public: public slots: void populateWithCatalogues(const QVector > &catalogues); void populateWithAllEvents(); + void clear(); void refresh(); private: diff --git a/gui/src/Catalogue/CatalogueEventsWidget.cpp b/gui/src/Catalogue/CatalogueEventsWidget.cpp index c4ad59e..ef512eb 100644 --- a/gui/src/Catalogue/CatalogueEventsWidget.cpp +++ b/gui/src/Catalogue/CatalogueEventsWidget.cpp @@ -293,6 +293,8 @@ CatalogueEventsWidget::CatalogueEventsWidget(QWidget *parent) setEventChanges(event, impl->m_Model->eventsHasChanges(event)); } }); + + populateWithAllEvents(); } CatalogueEventsWidget::~CatalogueEventsWidget() @@ -345,7 +347,7 @@ QVector > CatalogueEventsWidget::displayedCatalogue bool CatalogueEventsWidget::isAllEventsDisplayed() const { - return impl->m_DisplayedCatalogues.isEmpty(); + return impl->m_DisplayedCatalogues.isEmpty() && !impl->m_Model->events().isEmpty(); } bool CatalogueEventsWidget::isEventDisplayed(const std::shared_ptr &event) const @@ -388,6 +390,12 @@ void CatalogueEventsWidget::populateWithAllEvents() impl->setEvents(events, ui->treeView); } +void CatalogueEventsWidget::clear() +{ + impl->m_DisplayedCatalogues.clear(); + impl->setEvents({}, ui->treeView); +} + void CatalogueEventsWidget::refresh() { if (impl->m_DisplayedCatalogues.isEmpty()) { diff --git a/gui/src/Catalogue/CatalogueExplorer.cpp b/gui/src/Catalogue/CatalogueExplorer.cpp index 2b2107a..e730041 100644 --- a/gui/src/Catalogue/CatalogueExplorer.cpp +++ b/gui/src/Catalogue/CatalogueExplorer.cpp @@ -42,16 +42,29 @@ CatalogueExplorer::CatalogueExplorer(QWidget *parent) ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); }); - connect(ui->catalogues, &CatalogueSideBarWidget::trashSelected, - [this]() { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); }); + connect(ui->catalogues, &CatalogueSideBarWidget::trashSelected, [this]() { + ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); + ui->events->clear(); + }); connect(ui->catalogues, &CatalogueSideBarWidget::allEventsSelected, [this]() { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); ui->events->populateWithAllEvents(); }); - connect(ui->catalogues, &CatalogueSideBarWidget::selectionCleared, - [this]() { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); }); + connect(ui->catalogues, &CatalogueSideBarWidget::databaseSelected, [this](auto databaseList) { + QVector > catalogueList; + for (auto database : databaseList) { + catalogueList.append(ui->catalogues->getCatalogues(database)); + } + ui->events->populateWithCatalogues(catalogueList); + ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); + }); + + connect(ui->catalogues, &CatalogueSideBarWidget::selectionCleared, [this]() { + ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); + ui->events->clear(); + }); connect(ui->events, &CatalogueEventsWidget::eventsSelected, [this](auto events) { if (events.count() == 1) {