##// END OF EJS Templates
Adds read compatibility for local AMDA server...
Adds read compatibility for local AMDA server The local AMDA server uses another regex than the default server to read the units in x. We manage the compatibility by adding in the parser the possibility of testing several regexes to read a property

File last commit:

r1106:00ce9b74612e
r1121:98220c931c83
Show More
CatalogueEventsWidget.cpp
100 lines | 3.8 KiB | text/x-c | CppLexer
/ gui / src / Catalogue / CatalogueEventsWidget.cpp
#include "Catalogue/CatalogueEventsWidget.h"
#include "ui_CatalogueEventsWidget.h"
#include <QtDebug>
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),
impl{spimpl::make_unique_impl<CatalogueEventsWidgetPrivate>()}
{
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);
}
});
connect(ui->tableWidget, &QTableWidget::cellClicked, [this](auto row, auto column) {
auto event = ui->tableWidget->item(row, 0)->text();
emit this->eventSelected(event);
});
connect(ui->tableWidget, &QTableWidget::currentItemChanged,
[this](auto current, auto previous) {
if (current && current->row() >= 0) {
auto event = ui->tableWidget->item(current->row(), 0)->text();
emit this->eventSelected(event);
}
});
connect(ui->tableWidget, &QTableWidget::itemSelectionChanged, [this]() {
auto selection = ui->tableWidget->selectedRanges();
auto isNotMultiSelection
= selection.isEmpty() || (selection.count() == 1 && selection.first().rowCount() == 1);
ui->btnChart->setEnabled(isNotMultiSelection);
ui->btnTime->setEnabled(isNotMultiSelection);
});
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);
}
CatalogueEventsWidget::~CatalogueEventsWidget()
{
delete ui;
}
void CatalogueEventsWidget::populateWithCatalogue(const QString &catalogue)
{
ui->tableWidget->clearContents();
ui->tableWidget->setRowCount(0);
// TODO
impl->addEventItem(
{catalogue + " - Event 1", "12/12/2012 12:12", "12/12/2042 12:52", "cloud", "mfi/b_gse42"},
ui->tableWidget);
impl->addEventItem(
{catalogue + " - Event 2", "12/12/2012 12:10", "12/12/2042 12:42", "Acloud", "mfi/b_gse1"},
ui->tableWidget);
impl->addEventItem(
{catalogue + " - Event 3", "12/12/2012 12:22", "12/12/2042 12:12", "Gcloud", "mfi/b_gse2"},
ui->tableWidget);
impl->addEventItem(
{catalogue + " - Event 4", "12/12/2012 12:00", "12/12/2042 12:62", "Bcloud", "mfi/b_gse3"},
ui->tableWidget);
}
void CatalogueEventsWidget::CatalogueEventsWidgetPrivate::addEventItem(const QStringList &data,
QTableWidget *tableWidget)
{
tableWidget->setSortingEnabled(false);
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);
}
tableWidget->setSortingEnabled(true);
}