From 33f24ab7be28465f4cf72ed4ecd00fdb106dbc30 Mon Sep 17 00:00:00 2001 From: Martin Brodbeck Date: Wed, 18 Jul 2018 14:36:53 +0200 Subject: [PATCH] Now we can decide to make only-delete-changes in the db --- src/core/database.cpp | 6 +++--- src/core/database.h | 2 +- src/core/marketplace.cpp | 4 ++-- src/core/marketplace.h | 2 +- src/gui/sellermodel.cpp | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/core/database.cpp b/src/core/database.cpp index 1a0d483..bd0e247 100644 --- a/src/core/database.cpp +++ b/src/core/database.cpp @@ -172,7 +172,7 @@ void Database::beginTransaction() { exec("BEGIN TRANSACTION"); } void Database::endTransaction() { exec("END TRANSACTION"); } -unsigned int Database::storeSellers(std::vector>& sellers) +unsigned int Database::storeSellers(std::vector>& sellers, bool onlyDelete) { int retCode{}; int count{}; @@ -181,7 +181,7 @@ unsigned int Database::storeSellers(std::vector>& seller beginTransaction(); for (auto& seller : sellers) { - if (seller->getState() == Seller::State::NEW) { + if (seller->getState() == Seller::State::NEW && !onlyDelete) { retCode = sqlite3_prepare_v2( db_, "INSERT INTO sellers" @@ -214,7 +214,7 @@ unsigned int Database::storeSellers(std::vector>& seller } ++count; sqlite3_finalize(stmt); - } else if (seller->getState() == Seller::State::UPDATE) { + } else if (seller->getState() == Seller::State::UPDATE && !onlyDelete) { retCode = sqlite3_prepare_v2( db_, "UPDATE sellers SET" diff --git a/src/core/database.h b/src/core/database.h index 6e91f91..baf03ac 100644 --- a/src/core/database.h +++ b/src/core/database.h @@ -16,7 +16,7 @@ class Database Database(const Database&) = delete; Database& operator=(const Database&) = delete; void exec(const std::string& sql); - unsigned int storeSellers(std::vector>& sellers); + unsigned int storeSellers(std::vector>& sellers, bool onlyDelete = false); unsigned int loadSellers(std::vector>& sellers); private: diff --git a/src/core/marketplace.cpp b/src/core/marketplace.cpp index 76efc43..9136358 100644 --- a/src/core/marketplace.cpp +++ b/src/core/marketplace.cpp @@ -10,10 +10,10 @@ Marketplace::Marketplace() sellers_.push_back(std::move(seller)); } -void Marketplace::storeToDb() +void Marketplace::storeToDb(bool onlyDelete) { Database db; - db.storeSellers(sellers_); + db.storeSellers(sellers_, onlyDelete); } void Marketplace::loadFromDb() diff --git a/src/core/marketplace.h b/src/core/marketplace.h index 2eb6492..8e11605 100644 --- a/src/core/marketplace.h +++ b/src/core/marketplace.h @@ -11,7 +11,7 @@ class Marketplace { public: Marketplace(); - void storeToDb(); + void storeToDb(bool onlyDelete = false); void loadFromDb(); std::vector>& getSellers(); int getNextSellerNo(); diff --git a/src/gui/sellermodel.cpp b/src/gui/sellermodel.cpp index a21decd..663c8b6 100644 --- a/src/gui/sellermodel.cpp +++ b/src/gui/sellermodel.cpp @@ -149,7 +149,7 @@ bool SellerModel::removeRows(int row, int count, const QModelIndex& parent) } else { emit beginRemoveRows(parent, row, row + count - 1); seller->setState(Seller::State::DELETE); - marketplace_->storeToDb(); + marketplace_->storeToDb(true); emit endRemoveRows(); }