Select Git revision
preseteditor.cpp
preseteditor.cpp 1.41 KiB
#include "preseteditor.h"
#include "ui_preseteditor.h"
PresetEditor::PresetEditor(PresetModel *model, QWidget *parent) :
QDialog(parent),
ui(new Ui::PresetEditor)
{
ui->setupUi(this);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
// backup original model (for rejecting changes)
m_model_backup = new QStandardItemModel();
PresetModel::copyItems(model, m_model_backup);
// assign current model and adjust widget sizes based on content
m_model = model;
ui->tableView->setModel(m_model);
ui->tableView->adjustSize();
this->adjustSize();
}
PresetEditor::~PresetEditor()
{
delete ui;
delete m_model_backup;
}
void PresetEditor::accept()
{
m_model->save();
QDialog::accept();
}
void PresetEditor::reject()
{
PresetModel::copyItems(m_model_backup, m_model);
m_model_backup->clear();
QDialog::reject();
}
void PresetEditor::on_btnAdd_clicked(bool checked = false)
{
QList<QStandardItem*> row;
for(int i=0; i < m_model->columnCount(); i++) {
row.append(new QStandardItem(""));
}
m_model->appendRow(row);
ui->tableView->selectRow(m_model->rowCount()-1);
}
void PresetEditor::on_btnDel_clicked(bool checked = false)
{
QModelIndexList selection = ui->tableView->selectionModel()->selectedRows();
for(int i=0; i < selection.length(); i++) {
m_model->removeRow(selection[i].row());
}
}