55# Acknowledgements: based on code by Graeme Winter and Martin Noble.
66#
77
8+ import platform
9+
810from PySide2 import QtGui , QtWidgets , QtCore
911
1012from qtgui .CCP4TaskWidget import CTaskWidget
@@ -27,25 +29,34 @@ def drawContents(self):
2729
2830 # Input data
2931 self .openFolder (folderFunction = "inputData" )
30- self .createLine (
31- [
32- "tip" ,
33- "Provide either the parent directory of the "
34- "dataset(s), or pick one image from each" ,
35- "subtitle" ,
36- "Locate datasets" ,
37- ]
38- )
39- self .openSubFrame (frame = True )
40-
41- self .createLine (
42- ["widget" , "-title" , "Choose one image from each dataset..." , "IMAGE_FILE" ]
43- )
44- self .createLine (
45- ["advice" , "...Or let xia2 find datasets under a parent directory" ]
46- )
47- self .createLine (["widget" , "IMAGE_DIRECTORY" ])
48- self .closeSubFrame ()
32+ # Python 3.9 xia2 only supports directories on Windows
33+ # This check should be removed when a newer version of xia2 is available
34+ if platform .system () == "Windows" :
35+ self .createLine (["subtitle" , "Locate datasets" ])
36+ self .openSubFrame (frame = True )
37+ self .createLine (["advice" , "Let xia2 find datasets under a parent directory" ])
38+ self .createLine (["widget" , "IMAGE_DIRECTORY" ])
39+ self .closeSubFrame ()
40+ else :
41+ self .createLine (
42+ [
43+ "tip" ,
44+ "Provide either the parent directory of the "
45+ "dataset(s), or pick one image from each" ,
46+ "subtitle" ,
47+ "Locate datasets" ,
48+ ]
49+ )
50+ self .openSubFrame (frame = True )
51+ self .createLine (
52+ ["widget" , "-title" , "Choose one image from each dataset..." , "IMAGE_FILE" ]
53+ )
54+ self .connectDataChanged ("IMAGE_FILE" , self .handleImageFile )
55+ self .createLine (
56+ ["advice" , "...Or let xia2 find datasets under a parent directory" ]
57+ )
58+ self .createLine (["widget" , "IMAGE_DIRECTORY" ])
59+ self .closeSubFrame ()
4960
5061 # Basic parameters
5162 self .createLine (
@@ -62,7 +73,6 @@ def drawContents(self):
6273 drawFolder = self .drawAdvanced ,
6374 )
6475
65- self .connectDataChanged ("IMAGE_FILE" , self .handleImageFile )
6676 self .connectDataChanged ("IMAGE_DIRECTORY" , self .handleImageDirectory )
6777 self .connectDataChanged ("dials__index__method" , self .handleIndexMethod )
6878 self .handleImageFile ()
@@ -88,7 +98,10 @@ def handleImageDirectory(self):
8898 self .container .inputData .IMAGE_FILE .setQualifiers ({"listMinLength" : 0 })
8999 else :
90100 self .container .inputData .IMAGE_FILE .setQualifiers ({"listMinLength" : 1 })
91- self .getWidget ("IMAGE_FILE" ).validate ()
101+ # Python 3.9 xia2 only supports directories on Windows
102+ # This check should be removed when a newer version of xia2 is available
103+ if platform .system () != "Windows" :
104+ self .getWidget ("IMAGE_FILE" ).validate ()
92105
93106 @QtCore .Slot ()
94107 def handleIndexMethod (self ):
0 commit comments