diff --git a/gui/include/Catalogue/CatalogueEventsWidget.h b/gui/include/Catalogue/CatalogueEventsWidget.h index 721001e..87495c7 100644 --- a/gui/include/Catalogue/CatalogueEventsWidget.h +++ b/gui/include/Catalogue/CatalogueEventsWidget.h @@ -1,6 +1,7 @@ -#ifndef CATALOGUEEVENTSWIDGET_H -#define CATALOGUEEVENTSWIDGET_H +#ifndef SCIQLOP_CATALOGUEEVENTSWIDGET_H +#define SCIQLOP_CATALOGUEEVENTSWIDGET_H +#include #include namespace Ui { @@ -12,10 +13,13 @@ class CatalogueEventsWidget : public QWidget { public: explicit CatalogueEventsWidget(QWidget *parent = 0); - ~CatalogueEventsWidget(); + virtual ~CatalogueEventsWidget(); private: Ui::CatalogueEventsWidget *ui; + + class CatalogueEventsWidgetPrivate; + spimpl::unique_impl_ptr impl; }; -#endif // CATALOGUEEVENTSWIDGET_H +#endif // SCIQLOP_CATALOGUEEVENTSWIDGET_H diff --git a/gui/src/Catalogue/CatalogueEventsWidget.cpp b/gui/src/Catalogue/CatalogueEventsWidget.cpp index 0ee7227..e845a64 100644 --- a/gui/src/Catalogue/CatalogueEventsWidget.cpp +++ b/gui/src/Catalogue/CatalogueEventsWidget.cpp @@ -1,13 +1,66 @@ #include "Catalogue/CatalogueEventsWidget.h" #include "ui_CatalogueEventsWidget.h" +struct CatalogueEventsWidget::CatalogueEventsWidgetPrivate { + void addEventItem(const QStringList &data, QTableWidget *tableWidget); + + enum class Column { Event, TStart, TEnd, Tags, Product, NbColumn }; + QStringList columnNames() { return QStringList{"Event", "TStart", "TEnd", "Tags", "Product"}; } +}; + + CatalogueEventsWidget::CatalogueEventsWidget(QWidget *parent) - : QWidget(parent), ui(new Ui::CatalogueEventsWidget) + : QWidget(parent), + ui(new Ui::CatalogueEventsWidget), + impl{spimpl::make_unique_impl()} { ui->setupUi(this); + + connect(ui->btnTime, &QToolButton::clicked, [this](auto checked) { + if (checked) { + ui->btnChart->setChecked(false); + } + }); + + connect(ui->btnChart, &QToolButton::clicked, [this](auto checked) { + if (checked) { + ui->btnTime->setChecked(false); + } + }); + + Q_ASSERT(impl->columnNames().count() == (int)CatalogueEventsWidgetPrivate::Column::NbColumn); + ui->tableWidget->setColumnCount((int)CatalogueEventsWidgetPrivate::Column::NbColumn); + ui->tableWidget->setHorizontalHeaderLabels(impl->columnNames()); + ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); + ui->tableWidget->horizontalHeader()->setSortIndicatorShown(true); + + + // test + impl->addEventItem({"Event 1", "12/12/2012 12:12", "12/12/2042 12:42", "cloud", "mfi/b_gse"}, + ui->tableWidget); + impl->addEventItem({"Event 2", "12/12/2012 12:12", "12/12/2042 12:42", "cloud", "mfi/b_gse"}, + ui->tableWidget); + impl->addEventItem({"Event 3", "12/12/2012 12:12", "12/12/2042 12:42", "cloud", "mfi/b_gse"}, + ui->tableWidget); + impl->addEventItem({"Event 4", "12/12/2012 12:12", "12/12/2042 12:42", "cloud", "mfi/b_gse"}, + ui->tableWidget); } CatalogueEventsWidget::~CatalogueEventsWidget() { delete ui; } + +void CatalogueEventsWidget::CatalogueEventsWidgetPrivate::addEventItem(const QStringList &data, + QTableWidget *tableWidget) +{ + auto row = tableWidget->rowCount(); + tableWidget->setRowCount(row + 1); + + for (auto i = 0; i < (int)Column::NbColumn; ++i) { + auto item = new QTableWidgetItem(data.value(i)); + item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); + tableWidget->setItem(row, i, item); + } +} diff --git a/gui/ui/Catalogue/CatalogueEventsWidget.ui b/gui/ui/Catalogue/CatalogueEventsWidget.ui index d845242..171698e 100644 --- a/gui/ui/Catalogue/CatalogueEventsWidget.ui +++ b/gui/ui/Catalogue/CatalogueEventsWidget.ui @@ -14,6 +14,18 @@ Form + + 0 + + + 0 + + + 0 + + + 0 + @@ -22,7 +34,7 @@ + - + :/icones/add.png:/icones/add.png @@ -36,7 +48,7 @@ - - + :/icones/remove.png:/icones/remove.png @@ -57,7 +69,7 @@ T - + :/icones/time.png:/icones/time.png @@ -74,7 +86,7 @@ G - + :/icones/chart.png:/icones/chart.png @@ -102,13 +114,26 @@ - + + + true + + + QAbstractItemView::SelectRows + + + false + + + false + + + 25 + + - - - - +