From a130fa33c2b09c5b11bbe3d2a7c4757e5546447c Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Fri, 27 Jul 2018 10:34:27 +0200 Subject: [PATCH] use unique_ptr for model --- src/gui/sellerdialog.cpp | 12 +++--------- src/gui/sellerdialog.h | 4 +++- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/gui/sellerdialog.cpp b/src/gui/sellerdialog.cpp index 110244c..ac06122 100644 --- a/src/gui/sellerdialog.cpp +++ b/src/gui/sellerdialog.cpp @@ -10,23 +10,17 @@ SellerDialog::SellerDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, ui_.setupUi(this); ui_.editButton->setVisible(false); market_ = dynamic_cast(parent)->getMarketplace(); - SellerModel* model = - new SellerModel(market_, ui_.tableView); - ui_.tableView->setModel(model); + model_ = std::make_unique(market_, ui_.tableView); + ui_.tableView->setModel(model_.get()); ui_.tableView->setColumnHidden(0, true); // hide the uuid connect(ui_.newButton, &QPushButton::clicked, this, &SellerDialog::on_newButton_clicked); connect(ui_.deleteButton, &QPushButton::clicked, this, &SellerDialog::on_deleteButton_clicked); - connect(model, &SellerModel::duplicateSellerNo, this, + connect(model_.get(), &SellerModel::duplicateSellerNo, this, &SellerDialog::on_model_duplicateSellerNo); connect(ui_.tableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &SellerDialog::onSellerViewSelectionChanged); } -SellerDialog::~SellerDialog() -{ - delete ui_.tableView->model(); -} - void SellerDialog::on_newButton_clicked() { ui_.tableView->reset(); diff --git a/src/gui/sellerdialog.h b/src/gui/sellerdialog.h index dbf6257..63e53fb 100644 --- a/src/gui/sellerdialog.h +++ b/src/gui/sellerdialog.h @@ -5,6 +5,8 @@ #include "sellermodel.h" +#include + #include class SellerDialog : public QDialog @@ -14,7 +16,6 @@ class SellerDialog : public QDialog public: SellerDialog(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowTitleHint | Qt::WindowSystemMenuHint); - ~SellerDialog(); private slots: void onSellerViewSelectionChanged(const QItemSelection& selected, @@ -27,6 +28,7 @@ class SellerDialog : public QDialog virtual void accept() override; Ui::SellerDialog ui_; Marketplace* market_; + std::unique_ptr model_; }; #endif \ No newline at end of file