#ifndef SCIQLOP_CATALOGUEINSPECTORWIDGET_H #define SCIQLOP_CATALOGUEINSPECTORWIDGET_H #include #include #include namespace Ui { class CatalogueInspectorWidget; } class DBCatalogue; class DBEvent; class DBEventProduct; class CatalogueInspectorWidget : public QWidget { Q_OBJECT signals: void catalogueUpdated(const std::shared_ptr &catalogue); void eventUpdated(const std::shared_ptr &event); void eventProductUpdated(const std::shared_ptr &event, const std::shared_ptr &eventProduct); public: explicit CatalogueInspectorWidget(QWidget *parent = 0); virtual ~CatalogueInspectorWidget(); /// Enum matching the pages inside the stacked widget enum class Page { Empty, CatalogueProperties, EventProperties }; Page currentPage() const; void setEvent(const std::shared_ptr &event); void setEventProduct(const std::shared_ptr &event, const std::shared_ptr &eventProduct); void setCatalogue(const std::shared_ptr &catalogue); public slots: void showPage(Page page); private: Ui::CatalogueInspectorWidget *ui; class CatalogueInspectorWidgetPrivate; spimpl::unique_impl_ptr impl; }; #endif // SCIQLOP_CATALOGUEINSPECTORWIDGET_H