78 lines
2.6 KiB
C++
78 lines
2.6 KiB
C++
#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
|