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

Reverted changes regarding ID handling. ID is no longer stored within the private
implementation but as property again.
Overwrote ID getters and setter where this was necessary.

Andreas Fetzer пре 10 година
родитељ
комит
e3f7614317

+ 2 - 4
Libs/XNAT/Core/ctkXnatObject.cpp

@@ -68,15 +68,13 @@ ctkXnatObject::~ctkXnatObject()
 //----------------------------------------------------------------------------
 QString ctkXnatObject::id() const
 {
-  Q_D(const ctkXnatObject);
-  return d->id;
+  return property(ctkXnatObjectFields::ID);
 }
 
 //----------------------------------------------------------------------------
 void ctkXnatObject::setId(const QString& id)
 {
-  Q_D(ctkXnatObject);
-  d->id = id;
+  setProperty(ctkXnatObjectFields::ID, id);
 }
 
 //----------------------------------------------------------------------------

+ 2 - 1
Libs/XNAT/Core/ctkXnatObject.h

@@ -48,10 +48,11 @@ public:
   /// Destructs the ctkXnatObject.
   virtual ~ctkXnatObject();
 
-  /// Gets the ID of the object.
+  /// Gets the global ID of the object.
   QString id() const;
 
   /// Sets the ID of the object.
+  /// @warning You must not change the ID of an existing object
   void setId(const QString& id);
 
   /// Gets the resource URI of the object that can be used to access it through

+ 1 - 1
Libs/XNAT/Core/ctkXnatObjectPrivate.h

@@ -49,7 +49,7 @@ private:
 
   QList<ctkXnatObject*> children;
 
-  QString id;
+  // Description of the object that can be used e.g. as tooltip
   QString description;
 
   QDateTime lastModifiedTime;

+ 12 - 0
Libs/XNAT/Core/ctkXnatResource.cpp

@@ -56,6 +56,18 @@ QString ctkXnatResource::resourceUri() const
 }
 
 //----------------------------------------------------------------------------
+QString ctkXnatResource::id() const
+{
+  return property(ctkXnatObjectFields::ABSTRACT_RESOURCE_ID);
+}
+
+//----------------------------------------------------------------------------
+void ctkXnatResource::setId(const QString &id)
+{
+  setProperty(ctkXnatObjectFields::ABSTRACT_RESOURCE_ID, id);
+}
+
+//----------------------------------------------------------------------------
 QString ctkXnatResource::name() const
 {
   return property(ctkXnatObjectFields::LABEL);

+ 3 - 0
Libs/XNAT/Core/ctkXnatResource.h

@@ -44,6 +44,9 @@ public:
 
   QString resourceUri() const;
 
+  QString id() const;
+  void setId(const QString &id);
+
   QString name() const;
   void setName(const QString &name);
 

+ 1 - 12
Libs/XNAT/Core/ctkXnatSession.cpp

@@ -287,18 +287,7 @@ QList<ctkXnatObject*> ctkXnatSessionPrivate::results(qRestResult* restResult, QS
       QString  str = it.key().toLatin1().data();
       QVariant var = it.value();
 
-      // Do not store IDs as properties. IDs are read only and
-      // incase a xnatObject is uploaded, all properties will be uploaded
-      // as well.
-      if (str.compare(ctkXnatObjectFields::ID) == 0 ||
-          str.compare(ctkXnatObjectFields::ABSTRACT_RESOURCE_ID) == 0)
-      {
-        object->setId(var.toString());
-      }
-      else
-      {
-        object->setProperty(str, var);
-      }
+      object->setProperty(str, var);
       description.append (str + QString ("\t::\t") + var.toString() + "\n");
     }