Procházet zdrojové kódy

Adding copy directory button

Andrej Studen před 7 roky
rodič
revize
d127610bb7

+ 8 - 0
labkeySlicerPythonExtension/labkeySlicerPythonExtension.py

@@ -124,6 +124,11 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
 
     fileDialogFormLayout.addRow("Action :",loadFileButton)
 
+    loadDirButton=qt.QPushButton("Load directory")
+    loadDirButton.toolTip="Load directory"
+    loadDirButton.clicked.connect(self.onLoadDirButtonClicked)
+
+    fileDialogFormLayout.addRow("Action :",loadDirButton)
 
   def populateFileList(self,items):
       self.fileList.clear()
@@ -269,6 +274,9 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
       self.network.loadNodeFromFile(self.selectedFile.text,
             self.fileTypeSelector.currentText, properties)
 
+  def onLoadDirButtonClicked(self):
+    self.network.loadDir(self.selectedFile.text)
+
 #
 # labkeySlicerPythonExtensionLogic
 #

+ 13 - 1
labkeySlicerPythonExtension/slicerNetwork.py

@@ -92,7 +92,7 @@ class labkeyURIHandler(slicer.vtkURIHandler):
                 os.remove(localPath)
         except:
             pass
-        
+
 
     def loadVolume(self,filename, properties={}, returnNode=False):
         filetype = 'VolumeFile'
@@ -190,6 +190,18 @@ class labkeyURIHandler(slicer.vtkURIHandler):
         f=self.get(dirUrl)
         return StringIO.StringIO(f.read())
 
+    def loadDir(self, path):
+        #dirURL=serverUrl+"/labkey/_webdav/"+path
+        files=self.listDir(path)
+        for f in files:
+            #returns local path
+            try:
+                self.GetFile(f)
+            except:
+                #fails if there is a subdirectory; go recursively
+                self.readDir(f)
+
+
 class propfindRequest(urllib2.Request):
     """
     This request subclass allows explicit specification of