#include "gtl_gui_meas_widget.h" #include "ui_gtl_gui_meas_widget.h" namespace gtl { namespace gui { meas_widget::meas_widget(QWidget *parent, QAbstractItemModel* model, QStyledItemDelegate *delegate) : QWidget(parent), ui(new Ui::meas_widget), _model(model), _delegate(delegate), _edited_column_count(2) { ui->setupUi(this); _tableView = new QTableView; _tableView->horizontalHeader()->setStretchLastSection(true); ui->verticalLayout->addWidget(_tableView); if(_model && _delegate) { _tableView->setModel(_model); _tableView->setItemDelegateForColumn(0, _delegate); _tableView->setItemDelegateForColumn(1, _delegate); _tableView->setSelectionBehavior(QAbstractItemView::SelectRows); _tableView->setContentsMargins(0,0,0,0); connect(ui->addButton, &QPushButton::clicked, this, &meas_widget::add); connect(ui->removeButton, &QPushButton::clicked, this, &meas_widget::remove); } this->hide(); } meas_widget::~meas_widget() { delete ui; } void meas_widget::add() { if(_tableView && _model) { int row = _model->rowCount(); _model->insertRows(row, 1, QModelIndex()); for(int c = 0; c < _edited_column_count; ++c) { QModelIndex index = _model->index(row, c, QModelIndex()); _tableView->openPersistentEditor(index); } } } void meas_widget::remove() { if(_tableView && _model) { for(int r = 0; r < _model->rowCount(); ++r) for(int c = 0; c < _edited_column_count; ++c) { QModelIndex index = _model->index(r, c, QModelIndex()); _tableView->closePersistentEditor(index); } int row = _tableView->currentIndex().row(); _model->removeRows(row, 1, QModelIndex()); for(int r = 0; r < _model->rowCount(); ++r) for(int c = 0; c < _edited_column_count; ++c) { QModelIndex index = _model->index(r, c, QModelIndex()); _tableView->openPersistentEditor(index); } } } } // namespace gui } // namespace gtl