src/eric7/VirtualEnv/VirtualenvAddEditDialog.py

branch
eric7
changeset 10931
56f41b1e163a
parent 10765
b0632e55ec9a
child 10933
95a15b70f7bb
equal deleted inserted replaced
10930:5a883e68aa35 10931:56f41b1e163a
49 self.setupUi(self) 49 self.setupUi(self)
50 50
51 self.__venvName = "" if metadata is None else metadata.name 51 self.__venvName = "" if metadata is None else metadata.name
52 self.__manager = manager 52 self.__manager = manager
53 self.__editMode = bool(self.__venvName) 53 self.__editMode = bool(self.__venvName)
54 self.__serverInterface = ericApp().getObject("EricServer") 54 try:
55 self.__fsInterface = self.__serverInterface.getServiceInterface("FileSystem") 55 self.__serverInterface = ericApp().getObject("EricServer")
56 self.__fsInterface = self.__serverInterface.getServiceInterface("FileSystem")
57 except KeyError:
58 self.__serverInterface = None
59 self.__fsInterface = None
56 60
57 if self.__editMode: 61 if self.__editMode:
58 self.setWindowTitle(self.tr("Edit Virtual Environment")) 62 self.setWindowTitle(self.tr("Edit Virtual Environment"))
59 else: 63 else:
60 self.setWindowTitle(self.tr("Add Virtual Environment")) 64 self.setWindowTitle(self.tr("Add Virtual Environment"))
61 65
62 self.__envBaseDir = baseDir 66 self.__envBaseDir = baseDir
63 if not self.__envBaseDir: 67 if not self.__envBaseDir:
64 self.__envBaseDir = OSUtilities.getHomeDir() 68 self.__envBaseDir = OSUtilities.getHomeDir()
65 69
66 self.serverRadioButton.setEnabled(self.__serverInterface.isServerConnected()) 70 self.serverRadioButton.setEnabled(
71 self.__serverInterface is not None
72 and self.__serverInterface.isServerConnected()
73 )
67 74
68 self.targetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) 75 self.targetDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
69 self.targetDirectoryPicker.setWindowTitle( 76 self.targetDirectoryPicker.setWindowTitle(
70 self.tr("Virtualenv Target Directory") 77 self.tr("Virtualenv Target Directory")
71 ) 78 )
72 if self.__serverInterface.isServerConnected(): 79 if (
80 self.__serverInterface is not None
81 and self.__serverInterface.isServerConnected()
82 ):
73 self.targetDirectoryPicker.setRemote( 83 self.targetDirectoryPicker.setRemote(
74 metadata.is_eric_server if metadata else False 84 metadata.is_eric_server if metadata else False
75 ) 85 )
76 if metadata is None or (not metadata.is_eric_server and not metadata.is_remote): 86 if metadata is None or (not metadata.is_eric_server and not metadata.is_remote):
77 self.targetDirectoryPicker.setDefaultDirectory(self.__envBaseDir) 87 self.targetDirectoryPicker.setDefaultDirectory(self.__envBaseDir)
78 88
79 self.pythonExecPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) 89 self.pythonExecPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
80 self.pythonExecPicker.setWindowTitle(self.tr("Python Interpreter")) 90 self.pythonExecPicker.setWindowTitle(self.tr("Python Interpreter"))
81 if self.__serverInterface.isServerConnected(): 91 if (
92 self.__serverInterface is not None
93 and self.__serverInterface.isServerConnected()
94 ):
82 self.pythonExecPicker.setRemote( 95 self.pythonExecPicker.setRemote(
83 metadata.is_eric_server if metadata else False 96 metadata.is_eric_server if metadata else False
84 ) 97 )
85 if metadata is None or (not metadata.is_eric_server and not metadata.is_remote): 98 if metadata is None or (not metadata.is_eric_server and not metadata.is_remote):
86 self.pythonExecPicker.setDefaultDirectory( 99 self.pythonExecPicker.setDefaultDirectory(
161 bool(self.targetDirectoryPicker.text()) 174 bool(self.targetDirectoryPicker.text())
162 and self.targetDirectoryPicker.text() != self.__envBaseDir 175 and self.targetDirectoryPicker.text() != self.__envBaseDir
163 and ( 176 and (
164 ( 177 (
165 self.serverRadioButton.isChecked() 178 self.serverRadioButton.isChecked()
179 and self.__fsInterface is not None
166 and self.__fsInterface.exists(self.targetDirectoryPicker.text()) 180 and self.__fsInterface.exists(self.targetDirectoryPicker.text())
167 ) 181 )
168 or ( 182 or (
169 not self.serverRadioButton.isChecked() 183 not self.serverRadioButton.isChecked()
170 and os.path.exists(self.targetDirectoryPicker.text()) 184 and os.path.exists(self.targetDirectoryPicker.text())
175 enable &= self.remoteRadioButton.isChecked() or ( 189 enable &= self.remoteRadioButton.isChecked() or (
176 bool(self.pythonExecPicker.text()) 190 bool(self.pythonExecPicker.text())
177 and ( 191 and (
178 ( 192 (
179 self.serverRadioButton.isChecked() 193 self.serverRadioButton.isChecked()
194 and self.__fsInterface is not None
180 and self.__fsInterface.access( 195 and self.__fsInterface.access(
181 self.pythonExecPicker.text(), "execute" 196 self.pythonExecPicker.text(), "execute"
182 ) 197 )
183 ) 198 )
184 or ( 199 or (
281 Private slot handling a change of the eric-ide server radio button state. 296 Private slot handling a change of the eric-ide server radio button state.
282 297
283 @param checked state of the radio button 298 @param checked state of the radio button
284 @type bool 299 @type bool
285 """ 300 """
286 if self.__serverInterface.isServerConnected(): 301 if (
302 self.__serverInterface is not None
303 and self.__serverInterface.isServerConnected()
304 ):
287 self.targetDirectoryPicker.setRemote(checked) 305 self.targetDirectoryPicker.setRemote(checked)
288 self.pythonExecPicker.setRemote(checked) 306 self.pythonExecPicker.setRemote(checked)
289 self.serverLineEdit.setText( 307 self.serverLineEdit.setText(
290 self.__serverInterface.getHost() if checked else "" 308 self.__serverInterface.getHost() if checked else ""
291 ) 309 )

eric ide

mercurial