Using QDataWidgetMapper in ItemDetailMapper to work with the model data (current index of the TableView).
This commit is contained in:
@ -4,8 +4,9 @@
|
||||
|
||||
#include "../views/itemdetailmapper.h"
|
||||
|
||||
EditItemDialog::EditItemDialog(QWidget* parent)
|
||||
: AbstractDialog(parent) {}
|
||||
EditItemDialog::EditItemDialog(QTableView* tableView, QWidget* parent)
|
||||
: AbstractDialog(parent)
|
||||
, m_tableView(tableView) {}
|
||||
|
||||
void EditItemDialog::createContent() {
|
||||
if (m_contentContainer) {
|
||||
@ -14,7 +15,18 @@ void EditItemDialog::createContent() {
|
||||
|
||||
setWindowTitle(tr("Edit item..."));
|
||||
|
||||
m_contentContainer = new ItemDetailMapper(this);
|
||||
m_detailMapper = new ItemDetailMapper(this);
|
||||
m_detailMapper->setModelMappings(m_tableView);
|
||||
m_contentContainer = m_detailMapper;
|
||||
|
||||
m_outerLayout->insertWidget(0, m_contentContainer);
|
||||
|
||||
void EditItemDialog::accept() {
|
||||
m_detailMapper->submit();
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
void EditItemDialog::reject() {
|
||||
m_detailMapper->revert();
|
||||
QDialog::reject();
|
||||
}
|
||||
|
||||
@ -7,16 +7,26 @@ class QDoubleSpinBox;
|
||||
class QLineEdit;
|
||||
class QSpinBox;
|
||||
class QLabel;
|
||||
class QTableView;
|
||||
|
||||
class ItemDetailMapper;
|
||||
|
||||
class EditItemDialog : public AbstractDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
EditItemDialog(QWidget* parent = nullptr);
|
||||
EditItemDialog(QTableView* tableView, QWidget* parent = nullptr);
|
||||
|
||||
/// AbstractDialog interface
|
||||
void createContent() override;
|
||||
|
||||
public slots:
|
||||
void accept() override;
|
||||
void reject() override;
|
||||
|
||||
private:
|
||||
QTableView* m_tableView = nullptr;
|
||||
ItemDetailMapper* m_detailMapper;
|
||||
|
||||
QLabel* m_nameLabel = nullptr;
|
||||
QLineEdit* m_nameEdit = nullptr;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user