Преглед на файлове

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
 QString ctkXnatObject::id() const
 {
 {
-  Q_D(const ctkXnatObject);
-  return d->id;
+  return property(ctkXnatObjectFields::ID);
 }
 }
 
 
 //----------------------------------------------------------------------------
 //----------------------------------------------------------------------------
 void ctkXnatObject::setId(const QString& 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.
   /// Destructs the ctkXnatObject.
   virtual ~ctkXnatObject();
   virtual ~ctkXnatObject();
 
 
-  /// Gets the ID of the object.
+  /// Gets the global ID of the object.
   QString id() const;
   QString id() const;
 
 
   /// Sets the ID of the object.
   /// Sets the ID of the object.
+  /// @warning You must not change the ID of an existing object
   void setId(const QString& id);
   void setId(const QString& id);
 
 
   /// Gets the resource URI of the object that can be used to access it through
   /// 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;
   QList<ctkXnatObject*> children;
 
 
-  QString id;
+  // Description of the object that can be used e.g. as tooltip
   QString description;
   QString description;
 
 
   QDateTime lastModifiedTime;
   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
 QString ctkXnatResource::name() const
 {
 {
   return property(ctkXnatObjectFields::LABEL);
   return property(ctkXnatObjectFields::LABEL);

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

@@ -44,6 +44,9 @@ public:
 
 
   QString resourceUri() const;
   QString resourceUri() const;
 
 
+  QString id() const;
+  void setId(const QString &id);
+
   QString name() const;
   QString name() const;
   void setName(const QString &name);
   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();
       QString  str = it.key().toLatin1().data();
       QVariant var = it.value();
       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");
       description.append (str + QString ("\t::\t") + var.toString() + "\n");
     }
     }