#ifndef SCIQLOP_CATALOGUESIDEBARWIDGET_H #define SCIQLOP_CATALOGUESIDEBARWIDGET_H #include #include #include #include class CatalogueAbstractTreeItem; class DBCatalogue; namespace Ui { class CatalogueSideBarWidget; } Q_DECLARE_LOGGING_CATEGORY(LOG_CatalogueSideBarWidget) class CatalogueSideBarWidget : public QWidget { Q_OBJECT signals: void catalogueSelected(const QVector > &catalogues); void databaseSelected(const QStringList &databases); void allEventsSelected(); void trashSelected(); void selectionCleared(); public: explicit CatalogueSideBarWidget(QWidget *parent = 0); virtual ~CatalogueSideBarWidget(); CatalogueAbstractTreeItem *addCatalogue(const std::shared_ptr &catalogue, const QString &repository); void setCatalogueChanges(const std::shared_ptr &catalogue, bool hasChanges); QVector > getCatalogues(const QString &repository) const; // QWidget interface protected: void keyPressEvent(QKeyEvent *event); private slots: void emitSelection(); private: Ui::CatalogueSideBarWidget *ui; class CatalogueSideBarWidgetPrivate; spimpl::unique_impl_ptr impl; private slots: void onContextMenuRequested(const QPoint &pos); }; #endif // SCIQLOP_CATALOGUESIDEBARWIDGET_H