From 4eda6cd04be861765e14a2b8bde80f1dfe26b2b1 Mon Sep 17 00:00:00 2001 From: Herwig Birke Date: Wed, 23 May 2018 12:46:12 +0200 Subject: [PATCH] Added function to delete objects --- cobject.cpp | 28 ++++++++++++++++++++++++++-- cobject.h | 16 ++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/cobject.cpp b/cobject.cpp index 2c9edcc..6723261 100644 --- a/cobject.cpp +++ b/cobject.cpp @@ -16,7 +16,8 @@ cObject::cObject(qint32 iID, QObject *parent) : m_iID(iID), m_szName(""), m_szType(""), - m_lpDescription(0) + m_lpDescription(0), + m_bDeleted(false) { } @@ -60,6 +61,16 @@ cTextDocument* cObject::description() return(m_lpDescription); } +void cObject::setDeleted(bool bDeleted) +{ + m_bDeleted = bDeleted; +} + +bool cObject::deleted() +{ + return(m_bDeleted); +} + void cObject::addImage(cImage* lpImage, cTextDocument* lpDescription) { m_imageList.append(new cImageDescription(lpImage, lpDescription)); @@ -170,10 +181,12 @@ bool cObjectList::save() QSqlQuery queryUpdate; QSqlQuery queryInsert; QSqlQuery querySelect; + QSqlQuery queryDelete; queryUpdate.prepare("UPDATE object SET name=:name, type=:type, description=:description WHERE id=:id;"); queryInsert.prepare("INSERT INTO object (name, type, description) VALUES (:name, :type, :description);"); querySelect.prepare("SELECT id FROM object WHERE _rowid_=(SELECT MAX(_rowid_) FROM object);"); + queryDelete.prepare("DELETE FROM object WHERE id=:id;"); QSqlQuery imageDelete; QSqlQuery imageAdd; @@ -185,7 +198,18 @@ bool cObjectList::save() { cObject* lpObject = at(x); - if(lpObject->id() != -1) + if(lpObject->deleted()) + { + queryDelete.bindValue(":id", lpObject->id()); + + if(!queryDelete.exec()) + { + myDebug << queryDelete.lastError().text(); + return(false); + } + this->removeOne(lpObject); + } + else if(lpObject->id() != -1) { queryUpdate.bindValue(":id", lpObject->id()); queryUpdate.bindValue(":name", lpObject->name()); diff --git a/cobject.h b/cobject.h index 66890c1..01f83ef 100644 --- a/cobject.h +++ b/cobject.h @@ -110,12 +110,28 @@ public: */ QList images(); + /*! + \brief + + \fn setDeleted + \param bDeleted + */ + void setDeleted(bool bDeleted); + /*! + \brief + + \fn deleted + \return bool + */ + bool deleted(); + private: qint32 m_iID; /*!< TODO: describe */ QString m_szName; /*!< TODO: describe */ QString m_szType; /*!< TODO: describe */ cTextDocument* m_lpDescription; /*!< TODO: describe */ QList m_imageList; /*!< TODO: describe */ + bool m_bDeleted; /*!< TODO: describe */ signals: