#include "Catalogue/CatalogueExplorer.h" #include "ui_CatalogueExplorer.h" #include #include #include struct CatalogueExplorer::CatalogueExplorerPrivate { }; CatalogueExplorer::CatalogueExplorer(QWidget *parent) : QDialog(parent, Qt::Dialog | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint), ui(new Ui::CatalogueExplorer), impl{spimpl::make_unique_impl()} { ui->setupUi(this); connect(ui->catalogues, &CatalogueSideBarWidget::catalogueSelected, [this](auto catalogues) { if (catalogues.count() == 1) { ui->inspector->setCatalogue(catalogues.first()); } else { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); } ui->events->populateWithCatalogues(catalogues); }); connect(ui->catalogues, &CatalogueSideBarWidget::databaseSelected, [this](auto databases) { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); }); connect(ui->catalogues, &CatalogueSideBarWidget::trashSelected, [this]() { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); }); connect(ui->catalogues, &CatalogueSideBarWidget::allEventsSelected, [this]() { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); }); connect(ui->catalogues, &CatalogueSideBarWidget::selectionCleared, [this]() { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); }); connect(ui->events, &CatalogueEventsWidget::eventsSelected, [this](auto events) { if (events.count() == 1) { ui->inspector->setEvent(events.first()); } else { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); } }); connect(ui->events, &CatalogueEventsWidget::eventProductsSelected, [this](auto eventProducts) { if (eventProducts.count() == 1) { ui->inspector->setEventProduct(eventProducts.first().first, eventProducts.first().second); } else { ui->inspector->showPage(CatalogueInspectorWidget::Page::Empty); } }); 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::eventUpdated, [this](auto event) { ui->events->setEventChanges(event, true); }); connect(ui->inspector, &CatalogueInspectorWidget::eventProductUpdated, [this](auto event, auto eventProduct) { ui->events->setEventChanges(event, true); }); } CatalogueExplorer::~CatalogueExplorer() { delete ui; } void CatalogueExplorer::setVisualizationWidget(VisualizationWidget *visualization) { ui->events->setVisualizationWidget(visualization); }