浏览代码

Merge to remote head

Andrej Studen 7 年之前
父节点
当前提交
6a64979c88

+ 8 - 2
labkeySlicerPythonExtension/labkeySlicerPythonExtension.py

@@ -53,7 +53,13 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
 
     connectionFormLayout.addRow("Server: ", self.serverURL)
 
-    self.startDir=os.environ['HOME']+"/temp/crt"
+    try:
+      self.startDir=os.path.join(os.environ['HOME'],"temp/crt")
+    except:
+      fhome=os.environ['HOMEDRIVE']+os.environ['HOMEPATH']
+      self.startDir=os.path.join(fhome,"temp")
+      
+
     self.userCertButton=qt.QPushButton("Load")
     self.userCertButton.toolTip="Load user certificate (crt)"
     self.userCertButton.connect('clicked(bool)',self.onUserCertButtonClicked)
@@ -197,7 +203,7 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
 
   def onCaCertButtonClicked(self):
       filename=qt.QFileDialog.getOpenFileName(None,'Open authority certificate',
-               self.startDir, filter='*.crt')
+               self.startDir, '*.crt')
       if not(filename) :
          print "No file selected"
          return

+ 20 - 5
labkeySlicerPythonExtension/slicerNetwork.py

@@ -20,7 +20,13 @@ class labkeyURIHandler(slicer.vtkURIHandler):
         slicer.vtkURIHandler.__init__(self)
         self.className="labkeyURIHandler"
         slicer.mrmlScene.AddURIHandler(self)
-        self.localCacheDirectory=os.path.join(os.environ["HOME"],"labkeyCache")
+        try:
+	   self.localCacheDirectory=os.path.join(
+	     os.environ["HOME"],"labkeyCache")
+	except:
+	   #in windows, the variable is called HOMEPATH
+	   fhome=os.environ['HOMEDRIVE']+os.environ['HOMEPATH']
+	   self.localCacheDirectory=os.path.join(fhome,"labkeyCache")
 
     def CanHandleURI(self,uri):
         print "labkeyURIHandler::CanHandleURI({0})".format(uri)
@@ -45,7 +51,9 @@ class labkeyURIHandler(slicer.vtkURIHandler):
 
     def GetLocalPath(self,source):
         relativePath=re.sub('labkey://','',source)
-        relativePath=re.sub('/',os.sep,relativePath)
+	sp=os.sep.encode('string-escape')
+        print "Substituting / with {0} in {1}".format(sp,relativePath)
+	relativePath=re.sub('/',sp,relativePath)
         return os.path.join(self.localCacheDirectory,relativePath)
 
     def GetFile(self,source):
@@ -65,13 +73,20 @@ class labkeyURIHandler(slicer.vtkURIHandler):
         path=os.path.dirname(dest)
         try:
             os.makedirs(path)
-        except OSError:
+        except:
             if not os.path.isdir(path):
                 raise
-        local=open(dest,'w')
+        local=open(dest,'wb')
         #make sure we are at the begining of the file
-        remote.seek(0)
+        
+	#check file size
+	remote.seek(0,2)
+	sz=remote.tell()
+	print "Remote size: {0}".format(sz)
+	
+	remote.seek(0)
         shutil.copyfileobj(remote,local)
+	print "Local size: {0}".format(local.tell())
         local.close()
 
     def StageFileWrite(self,source,dest):