Added function to delete objects

This commit is contained in:
Herwig Birke
2018-05-23 12:46:12 +02:00
parent bc9a5e33f0
commit 4eda6cd04b
2 changed files with 42 additions and 2 deletions
+26 -2
View File
@@ -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());
+16
View File
@@ -110,12 +110,28 @@ public:
*/
QList<cImageDescription*> 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<cImageDescription*> m_imageList; /*!< TODO: describe */
bool m_bDeleted; /*!< TODO: describe */
signals: