From 04e73a66bcbd5f36b384d27695d6582bf5ae4def Mon Sep 17 00:00:00 2001
From: Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
Date: Fri, 15 Jan 2016 17:52:10 -0500
Subject: [PATCH] TextRecording: do not save if nothing changed

Prevent an unnecessary write to disk if the setData function didn't
change anything.

Change-Id: I3e101afddd29cc1117e8b3f65a63c8b781a70ab6
Tuleap: #203
---
 src/media/textrecording.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/media/textrecording.cpp b/src/media/textrecording.cpp
index c4f04a39..da7317bd 100644
--- a/src/media/textrecording.cpp
+++ b/src/media/textrecording.cpp
@@ -697,6 +697,8 @@ bool InstantMessagingModel::setData(const QModelIndex& idx, const QVariant &valu
     if (idx.column() || !idx.isValid())
         return false;
 
+    bool changed = false;
+
     ::TextMessageNode* n = m_pRecording->d_ptr->m_lNodes[idx.row()];
     switch (role) {
         case (int)Media::TextRecording::Role::IsRead               :
@@ -707,6 +709,7 @@ bool InstantMessagingModel::setData(const QModelIndex& idx, const QVariant &valu
                     emit n->m_pContactMethod->changed();
                 }
                 emit dataChanged(idx,idx);
+                changed = true;
             }
             break;
         default:
@@ -714,7 +717,8 @@ bool InstantMessagingModel::setData(const QModelIndex& idx, const QVariant &valu
     }
 
     //Save the conversation
-    m_pRecording->save();
+    if (changed)
+        m_pRecording->save();
     return true;
 }
 
-- 
GitLab