Преглед изворни кода

Added dirty flag to indicate whether a xnat object was modified

Andreas Fetzer пре 10 година
родитељ
комит
b12979fd6f
2 измењених фајлова са 9 додато и 1 уклоњено
  1. 5 1
      Libs/XNAT/Core/ctkXnatObject.cpp
  2. 4 0
      Libs/XNAT/Core/ctkXnatObjectPrivate.h

+ 5 - 1
Libs/XNAT/Core/ctkXnatObject.cpp

@@ -175,7 +175,11 @@ QString ctkXnatObject::property(const QString& name) const
 void ctkXnatObject::setProperty(const QString& name, const QVariant& value)
 {
   Q_D(ctkXnatObject);
-  d->properties.insert(name, value.toString());
+  if (d->properties[name] != value)
+  {
+    d->properties.insert(name, value.toString());
+    d->modified = true; //TODO some internal method for e.g. setting the ID for the first time
+  }
 }
 
 //----------------------------------------------------------------------------

+ 4 - 0
Libs/XNAT/Core/ctkXnatObjectPrivate.h

@@ -56,6 +56,10 @@ private:
 
   bool fetched;
 
+  // Indicates whether a xnatObject is locally modified and not yet
+  // synchronized with its instance on the server
+  bool modified;
+
   ctkXnatObject* parent;
 };