From ba038cfd22f6abf87d626f253d25d136f84e9ab3 Mon Sep 17 00:00:00 2001
From: Dennis Beier <nanovim@gmail.com>
Date: Thu, 6 Dec 2018 21:34:31 +0100
Subject: [PATCH] introduced delete function and new find position function,
 prep for deletion

---
 container/sortedvector.cpp | 13 +++++++++++++
 container/sortedvector.h   |  1 +
 persistancelayer.cpp       | 15 +++++++++++++++
 persistancelayer.h         |  1 +
 4 files changed, 30 insertions(+)

diff --git a/container/sortedvector.cpp b/container/sortedvector.cpp
index 2b8e6d0..c395076 100644
--- a/container/sortedvector.cpp
+++ b/container/sortedvector.cpp
@@ -69,3 +69,16 @@ int SortedVector<T>::findInsertPosition( const QSharedPointer<T> &pointer ) cons
     return row;
 }
 
+template<typename T>
+int SortedVector<T>::findPosition(const QSharedPointer<T> &pointer) const
+{
+int row = -1;
+    for ( int i = 0; i < this->count(); i++ ) {
+        if(*( *this )[i] == *pointer){
+            row = i;
+            break;
+        }
+    }
+    return row;
+}
+
diff --git a/container/sortedvector.h b/container/sortedvector.h
index e34a15e..e4ce6e8 100644
--- a/container/sortedvector.h
+++ b/container/sortedvector.h
@@ -29,6 +29,7 @@ template<typename T> class SortedVector : public QVector<QSharedPointer<T>>
     public:
         int insertSort( const QSharedPointer<T> & );
         int findInsertPosition( const QSharedPointer<T> & ) const;
+        int findPosition( const QSharedPointer<T> & ) const;
         bool operator =( const QVector<QSharedPointer<T>> &o )
         {
             this->clear();
diff --git a/persistancelayer.cpp b/persistancelayer.cpp
index 9940e83..4558052 100755
--- a/persistancelayer.cpp
+++ b/persistancelayer.cpp
@@ -1408,6 +1408,8 @@ QString PersistanceLayer::getNewImagePath( )
 
 
 
+
+
 PersistanceLayer::~PersistanceLayer()
 {
     mDb.close();
@@ -1499,6 +1501,19 @@ void PersistanceLayer::initQueries()
 
 }
 
+void PersistanceLayer::deleteMessage(const QString id)
+{
+    QSqlQuery deleteMessage(mDb);
+    deleteMessage.prepare("DELETE FROM messages WHERE id=:id;");
+    deleteMessage.bindValue(":id",id);
+    if(!deleteMessage.exec()){
+        qWarning() << "id: " << id;
+        qWarning() << deleteMessage.lastQuery();
+        qWarning() << deleteMessage.executedQuery();
+        qWarning() << deleteMessage.lastError();
+    }
+}
+
 void PersistanceLayer::close()
 {
     persistanceLayer->deleteLater();
diff --git a/persistancelayer.h b/persistancelayer.h
index bf107ed..49852b9 100755
--- a/persistancelayer.h
+++ b/persistancelayer.h
@@ -94,6 +94,7 @@ class PersistanceLayer : public QObject
 
         void init();
         bool mDbReady = false;
+        void deleteMessage(const QString id);
 
     private:
         void commit( void );
-- 
GitLab