Explorar o código

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 %!s(int64=10) %!d(string=hai) anos
pai
achega
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");
     }