diff options
Diffstat (limited to 'src/safewritefile.cpp')
| -rw-r--r-- | src/safewritefile.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/safewritefile.cpp b/src/safewritefile.cpp index 6df8c2b8..626413dd 100644 --- a/src/safewritefile.cpp +++ b/src/safewritefile.cpp @@ -46,3 +46,23 @@ void SafeWriteFile::commit() { m_TempFile.setAutoRemove(false);
m_TempFile.close();
}
+
+bool SafeWriteFile::commitIfDifferent(uint &inHash) {
+ uint newHash = hash();
+ if (newHash != inHash) {
+ commit();
+ inHash = newHash;
+ return true;
+ } else {
+ return false;
+ }
+}
+
+uint SafeWriteFile::hash()
+{
+ qint64 pos = m_TempFile.pos();
+ m_TempFile.seek(0);
+ QByteArray data = m_TempFile.readAll();
+ m_TempFile.seek(pos);
+ return qHash(data);
+}
|
