Andreas Fetzer %!s(int64=11) %!d(string=hai) anos
pai
achega
17389ab819

+ 8 - 3
Libs/XNAT/Core/ctkXnatObject.cpp

@@ -105,12 +105,14 @@ QString ctkXnatObject::childDataType() const
   return "Resources";
 }
 
-QDateTime ctkXnatObject::lastModifiedTime() const
+QDateTime ctkXnatObject::lastModifiedTime()
 {
+  Q_D(ctkXnatObject);
   QUuid queryId = this->session()->httpHead(this->resourceUri());
   QMap<QByteArray, QByteArray> header = this->session()->httpHeadSync(queryId);
   QVariant lastModifiedHeader = header.value("Last-Modified");
   QDateTime lastModifiedTime;
+
   if (lastModifiedHeader.isValid())
   {
     QStringList dateformates;
@@ -133,15 +135,18 @@ QDateTime ctkXnatObject::lastModifiedTime() const
         break;
     }
   }
+
+  if (lastModifiedTime.isValid() && d->lastModifiedTime < lastModifiedTime)
+    this->setLastModifiedTime(lastModifiedTime);
   return lastModifiedTime;
 }
 
 void ctkXnatObject::setLastModifiedTime(const QDateTime &lastModifiedTime)
 {
   Q_D(ctkXnatObject);
-  if (d->lastModifedTime < lastModifiedTime)
+  if (d->lastModifiedTime < lastModifiedTime)
   {
-    d->lastModifedTime = lastModifiedTime;
+    d->lastModifiedTime = lastModifiedTime;
   }
 }
 

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

@@ -77,7 +77,7 @@ public:
   void setProperty(const QString& name, const QVariant& value);
 
   /// Gets the last modification time from the server
-  QDateTime lastModifiedTime() const;
+  QDateTime lastModifiedTime();
 
   /// Sets the last modfication time on the server
   void setLastModifiedTime(const QDateTime& lastModifiedTime);

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

@@ -49,7 +49,7 @@ private:
 
   QList<ctkXnatObject*> children;
 
-  QDateTime lastModifedTime;
+  QDateTime lastModifiedTime;
 
   bool fetched;
 

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

@@ -42,7 +42,6 @@
 #include <QScopedPointer>
 #include <QStringBuilder>
 #include <QNetworkCookie>
-#include <QNetworkRequest>
 
 #include <ctkXnatAPI_p.h>
 #include <qRestResult.h>
@@ -292,7 +291,10 @@ QList<ctkXnatObject*> ctkXnatSessionPrivate::results(qRestResult* restResult, QS
     {
       lastModifiedTime = lastModifiedHeader.toDateTime();
     }
-    object->setProperty("Last-Modified", lastModifiedTime);
+    if (lastModifiedTime.isValid())
+    {
+      object->setLastModifiedTime(lastModifiedTime);
+    }
 
     results.push_back(object);
   }