##// END OF EJS Templates
TableModel for events
TableModel for events

File last commit:

r1130:da2e9b24ace3
r1130:da2e9b24ace3
Show More
CatalogueEventsWidget.cpp
86 lines | 2.8 KiB | text/x-c | CppLexer
/ gui / src / Catalogue / CatalogueEventsWidget.cpp
Sub widget classes
r1095 #include "Catalogue/CatalogueEventsWidget.h"
#include "ui_CatalogueEventsWidget.h"
Display catalogues and events with CatalogueAPI
r1129 #include <Catalogue/CatalogueController.h>
TableModel for events
r1130 #include <Catalogue/CatalogueEventsTableModel.h>
Display catalogues and events with CatalogueAPI
r1129 #include <CatalogueDao.h>
#include <DBCatalogue.h>
#include <SqpApplication.h>
/// Format of the dates appearing in the label of a cursor
const auto DATETIME_FORMAT = QStringLiteral("yyyy/MM/dd hh:mm:ss");
Skeleton to fill the inspector with the selection
r1105
Events
r1101 struct CatalogueEventsWidget::CatalogueEventsWidgetPrivate {
TableModel for events
r1130 CatalogueEventsTableModel *m_Model = nullptr;
Events
r1101 };
Sub widget classes
r1095 CatalogueEventsWidget::CatalogueEventsWidget(QWidget *parent)
Events
r1101 : QWidget(parent),
ui(new Ui::CatalogueEventsWidget),
impl{spimpl::make_unique_impl<CatalogueEventsWidgetPrivate>()}
Sub widget classes
r1095 {
ui->setupUi(this);
Events
r1101
TableModel for events
r1130 impl->m_Model = new CatalogueEventsTableModel(this);
ui->tableView->setModel(impl->m_Model);
ui->tableView->setSortingEnabled(true);
Events
r1101 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);
}
});
TableModel for events
r1130 connect(ui->tableView, &QTableView::clicked, [this](auto index) {
auto event = impl->m_Model->getEvent(index.row());
Skeleton to fill the inspector with the selection
r1105 emit this->eventSelected(event);
});
TableModel for events
r1130 connect(ui->tableView->selectionModel(), &QItemSelectionModel::currentChanged,
Skeleton to fill the inspector with the selection
r1105 [this](auto current, auto previous) {
TableModel for events
r1130 if (current.isValid() && current.row() >= 0) {
auto event = impl->m_Model->getEvent(current.row());
Skeleton to fill the inspector with the selection
r1105 emit this->eventSelected(event);
}
});
TableModel for events
r1130 connect(ui->tableView->selectionModel(), &QItemSelectionModel::selectionChanged, [this]() {
auto isNotMultiSelection = ui->tableView->selectionModel()->selectedRows().count() <= 1;
Fixes
r1106 ui->btnChart->setEnabled(isNotMultiSelection);
ui->btnTime->setEnabled(isNotMultiSelection);
Skeleton to fill the inspector with the selection
r1105 });
Basic interactions
r1103
TableModel for events
r1130 ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
ui->tableView->horizontalHeader()->setSortIndicatorShown(true);
Sub widget classes
r1095 }
CatalogueEventsWidget::~CatalogueEventsWidget()
{
delete ui;
}
Events
r1101
Display catalogues and events with CatalogueAPI
r1129 void CatalogueEventsWidget::populateWithCatalogue(const DBCatalogue &catalogue)
Basic interactions
r1103 {
Display catalogues and events with CatalogueAPI
r1129 auto &dao = sqpApp->catalogueController().getDao();
auto events = dao.getCatalogueEvents(catalogue);
TableModel for events
r1130 QVector<DBEvent> eventVector;
Display catalogues and events with CatalogueAPI
r1129 for (auto event : events) {
TableModel for events
r1130 eventVector << event;
Display catalogues and events with CatalogueAPI
r1129 }
Basic interactions
r1103
TableModel for events
r1130 ui->tableView->setSortingEnabled(false);
impl->m_Model->setEvents(eventVector);
ui->tableView->setSortingEnabled(true);
Events
r1101 }