diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 8b03e70..ed90180 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -6,19 +6,14 @@ #include +#include + constexpr int STATUSBAR_TIMEOUT = 5000; MainWindow::MainWindow() { ui_.setupUi(this); - connect(ui_.actionQuit, &QAction::triggered, qApp, QApplication::quit); - connect(ui_.actionEditSeller, &QAction::triggered, this, - &MainWindow::on_actionEditSeller_triggered); - connect(ui_.sellerNoEdit, &QLineEdit::returnPressed, this, - &MainWindow::on_sellerNoEdit_checkSellerNo); - connect(ui_.paidButton, &QPushButton::clicked, this, &MainWindow::on_paidButton_triggered); - marketplace_ = std::make_unique(); marketplace_->loadFromDb(); statusBar()->showMessage("Gespeicherte Daten wurden geladen.", STATUSBAR_TIMEOUT); @@ -26,6 +21,16 @@ MainWindow::MainWindow() BasketModel* model = new BasketModel(getMarketplace(), ui_.basketView); ui_.basketView->setModel(model); ui_.basketView->setColumnHidden(0, true); // hide the uuid + + connect(ui_.actionQuit, &QAction::triggered, qApp, QApplication::quit); + connect(ui_.actionEditSeller, &QAction::triggered, this, + &MainWindow::on_actionEditSeller_triggered); + connect(ui_.sellerNoEdit, &QLineEdit::returnPressed, this, + &MainWindow::on_sellerNoEdit_checkSellerNo); + connect(ui_.paidButton, &QPushButton::clicked, this, &MainWindow::on_paidButton_triggered); + + connect(ui_.basketView->selectionModel(), &QItemSelectionModel::selectionChanged, this, + &MainWindow::onBasketViewSelectionChanged); } void MainWindow::on_actionEditSeller_triggered() @@ -85,4 +90,14 @@ void MainWindow::on_sellerNoEdit_checkSellerNo() } ui_.sellerNoEdit->clear(); +} + +void MainWindow::onBasketViewSelectionChanged(const QItemSelection& selected, + [[maybe_unused]] const QItemSelection& deselected) +{ + if (selected.size() > 0) { + ui_.cancelArticleButton->setEnabled(true); + } else { + ui_.cancelArticleButton->setEnabled(false); + } } \ No newline at end of file diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index 598129c..34e4334 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -17,6 +17,10 @@ class MainWindow : public QMainWindow MainWindow(); Marketplace* getMarketplace() { return marketplace_.get(); } + private slots: + void onBasketViewSelectionChanged(const QItemSelection& selected, + const QItemSelection& deselected); + private: void on_actionEditSeller_triggered(); void on_sellerNoEdit_checkSellerNo(); diff --git a/src/gui/mainwindow.ui b/src/gui/mainwindow.ui index 8e3c4c4..379b942 100644 --- a/src/gui/mainwindow.ui +++ b/src/gui/mainwindow.ui @@ -194,7 +194,7 @@ - + false @@ -204,9 +204,9 @@ - + - false + true Alles stornieren diff --git a/src/gui/sellerdialog.cpp b/src/gui/sellerdialog.cpp index b2a284e..63f2461 100644 --- a/src/gui/sellerdialog.cpp +++ b/src/gui/sellerdialog.cpp @@ -8,6 +8,7 @@ SellerDialog::SellerDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f) { ui_.setupUi(this); + ui_.editButton->setVisible(false); SellerModel* model = new SellerModel(dynamic_cast(parent)->getMarketplace(), ui_.tableView); ui_.tableView->setModel(model); @@ -16,6 +17,8 @@ SellerDialog::SellerDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, connect(ui_.deleteButton, &QPushButton::clicked, this, &SellerDialog::on_deleteButton_clicked); connect(model, &SellerModel::duplicateSellerNo, this, &SellerDialog::on_model_duplicateSellerNo); + connect(ui_.tableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, + &SellerDialog::onSellerViewSelectionChanged); } void SellerDialog::on_newButton_clicked() @@ -72,4 +75,14 @@ void SellerDialog::accept() } } QDialog::accept(); +} + +void SellerDialog::onSellerViewSelectionChanged(const QItemSelection& selected, + [[maybe_unused]] const QItemSelection& deselected) +{ + if (selected.size() > 0) { + ui_.deleteButton->setEnabled(true); + } else { + ui_.deleteButton->setEnabled(false); + } } \ No newline at end of file diff --git a/src/gui/sellerdialog.h b/src/gui/sellerdialog.h index 4276630..d48556b 100644 --- a/src/gui/sellerdialog.h +++ b/src/gui/sellerdialog.h @@ -15,6 +15,10 @@ class SellerDialog : public QDialog SellerDialog(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowTitleHint | Qt::WindowSystemMenuHint); + private slots: + void onSellerViewSelectionChanged(const QItemSelection& selected, + const QItemSelection& deselected); + private: void on_newButton_clicked(); void on_deleteButton_clicked(); diff --git a/src/gui/sellerdialog.ui b/src/gui/sellerdialog.ui index 7f5916e..1938c47 100644 --- a/src/gui/sellerdialog.ui +++ b/src/gui/sellerdialog.ui @@ -65,6 +65,9 @@ + + false + Löschen