src/eric7/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py

branch
eric7
changeset 9212
1c5cf2022c7e
parent 9209
b99e7fd55fd3
child 9221
bf71ee032bb4
equal deleted inserted replaced
9211:99eb1cb030a5 9212:1c5cf2022c7e
37 @param parent parent widget of this dialog 37 @param parent parent widget of this dialog
38 """ 38 """
39 super().__init__(parent) 39 super().__init__(parent)
40 self.setupUi(self) 40 self.setupUi(self)
41 41
42 self.startDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
43 self.startDirPicker.setDefaultDirectory(project.getProjectPath())
44
42 self.outputFilePicker.setMode(EricPathPickerModes.SAVE_FILE_MODE) 45 self.outputFilePicker.setMode(EricPathPickerModes.SAVE_FILE_MODE)
43 self.outputFilePicker.setDefaultDirectory(project.getProjectPath()) 46 self.outputFilePicker.setDefaultDirectory(project.getProjectPath())
44 self.outputFilePicker.setFilters(self.tr( 47 self.outputFilePicker.setFilters(self.tr(
45 "API files (*.api);;All files (*)")) 48 "API files (*.api);;All files (*)"))
46 49
62 self.parameters = copy.deepcopy(self.defaults) 65 self.parameters = copy.deepcopy(self.defaults)
63 66
64 # combine it with the values of parms 67 # combine it with the values of parms
65 if parms is not None: 68 if parms is not None:
66 self.parameters.update(parms) 69 self.parameters.update(parms)
70 self.parameters["startDirectory"] = Utilities.toNativeSeparators(
71 self.parameters['startDirectory']
72 )
67 self.parameters['outputFile'] = Utilities.toNativeSeparators( 73 self.parameters['outputFile'] = Utilities.toNativeSeparators(
68 self.parameters['outputFile']) 74 self.parameters['outputFile'])
69 75
70 self.recursionCheckBox.setChecked(self.parameters['useRecursion']) 76 self.recursionCheckBox.setChecked(self.parameters['useRecursion'])
71 self.includePrivateCheckBox.setChecked( 77 self.includePrivateCheckBox.setChecked(
72 self.parameters['includePrivate']) 78 self.parameters['includePrivate'])
79 self.startDirPicker.setText(self.parameters['startDirectory'])
73 self.outputFilePicker.setText(self.parameters['outputFile']) 80 self.outputFilePicker.setText(self.parameters['outputFile'])
74 self.baseEdit.setText(self.parameters['basePackage']) 81 self.baseEdit.setText(self.parameters['basePackage'])
75 self.ignoreDirsList.clear() 82 self.ignoreDirsList.clear()
76 for d in self.parameters['ignoreDirectories']: 83 for d in self.parameters['ignoreDirectories']:
77 self.ignoreDirsList.addItem(d) 84 self.ignoreDirsList.addItem(d)
95 parameters. 102 parameters.
96 """ 103 """
97 self.defaults = { 104 self.defaults = {
98 'useRecursion': False, 105 'useRecursion': False,
99 'includePrivate': False, 106 'includePrivate': False,
107 'startDirectory': '',
100 'outputFile': '', 108 'outputFile': '',
101 'basePackage': '', 109 'basePackage': '',
102 'ignoreDirectories': [], 110 'ignoreDirectories': [],
103 'ignoreFilePatterns': [], 111 'ignoreFilePatterns': [],
104 'sourceExtensions': [], 112 'sourceExtensions': [],
118 to set the QProcess arguments for the ericapi call and 126 to set the QProcess arguments for the ericapi call and
119 a dictionary containing the non default parameters. This 127 a dictionary containing the non default parameters. This
120 dictionary can be passed back upon object generation to overwrite 128 dictionary can be passed back upon object generation to overwrite
121 the default settings. 129 the default settings.
122 130
123 @return a tuple of the commandline parameters and non default 131 @return a tuple containing the commandline parameters, non default
124 parameters (list of strings, dictionary) 132 parameters and the start directory
133 @rtype tuple of (list of str, dict, str)
125 """ 134 """
126 parms = {} 135 parms = {}
127 args = [] 136 args = []
128 137
129 # 1. the program name 138 # 1. the program name
130 args.append(Globals.getPythonExecutable()) 139 args.append(Globals.getPythonExecutable())
131 args.append( 140 args.append(
132 Utilities.normabsjoinpath(getConfig('ericDir'), "eric7_api.py")) 141 Utilities.normabsjoinpath(getConfig('ericDir'), "eric7_api.py"))
133 142
134 # 2. the commandline options 143 # 2. the commandline options
144 if self.parameters['startDirectory'] != self.defaults['startDirectory']:
145 parms['startDirectory'] = self.project.getRelativeUniversalPath(
146 self.parameters['startDirectory']
147 )
148 else:
149 self.parameters['startDirectory'] = self.defaults['startDirectory']
150 parms['startDirectory'] = self.parameters['startDirectory']
135 if self.parameters['outputFile'] != self.defaults['outputFile']: 151 if self.parameters['outputFile'] != self.defaults['outputFile']:
136 parms['outputFile'] = Utilities.fromNativeSeparators( 152 parms['outputFile'] = self.project.getRelativeUniversalPath(
137 self.project.getRelativePath(self.parameters['outputFile'])) 153 self.parameters['outputFile']
154 )
138 args.append('-o') 155 args.append('-o')
139 if os.path.isabs(self.parameters['outputFile']): 156 args.append(
140 args.append(self.parameters['outputFile']) 157 self.project.getAbsolutePath(self.parameters['outputFile'])
141 else: 158 )
142 args.append(
143 os.path.join(self.ppath, self.parameters['outputFile']))
144 else: 159 else:
145 self.parameters['outputFile'] = self.defaults['outputFile'] 160 self.parameters['outputFile'] = self.defaults['outputFile']
146 if self.parameters['basePackage'] != self.defaults['basePackage']: 161 if self.parameters['basePackage'] != self.defaults['basePackage']:
147 parms['basePackage'] = self.parameters['basePackage'] 162 parms['basePackage'] = self.parameters['basePackage']
148 args.append('-b') 163 args.append('-b')
185 args.append('-p') 200 args.append('-p')
186 parms['languages'] = self.parameters['languages'][:] 201 parms['languages'] = self.parameters['languages'][:]
187 for lang in self.parameters['languages']: 202 for lang in self.parameters['languages']:
188 args.append('--language={0}'.format(lang)) 203 args.append('--language={0}'.format(lang))
189 204
190 return (args, parms) 205 startDir = (
191 206 self.project.getAbsolutePath(self.parameters['startDirectory'])
207 if self.parameters['startDirectory'] else
208 ""
209 )
210 return args, parms, startDir
211
212 @pyqtSlot(str)
213 def on_startDirPicker_pathSelected(self, path):
214 """
215 Private slot handling the selection of a start directory.
216
217 @param path path of the start directory
218 @type str
219 """
220 # make it relative, if it is in a subdirectory of the project path
221 dn = self.project.getRelativePath(path)
222 while dn.endswith(os.sep):
223 dn = dn[:-1]
224 self.startDirPicker.setText(dn)
225
192 @pyqtSlot() 226 @pyqtSlot()
193 def on_outputFilePicker_aboutToShowPathPickerDialog(self): 227 def on_outputFilePicker_aboutToShowPathPickerDialog(self):
194 """ 228 """
195 Private slot called before the file selection dialog is shown. 229 Private slot called before the file selection dialog is shown.
196 """ 230 """
263 """ 297 """
264 self.parameters['useRecursion'] = self.recursionCheckBox.isChecked() 298 self.parameters['useRecursion'] = self.recursionCheckBox.isChecked()
265 self.parameters['includePrivate'] = ( 299 self.parameters['includePrivate'] = (
266 self.includePrivateCheckBox.isChecked() 300 self.includePrivateCheckBox.isChecked()
267 ) 301 )
302
303 startdir = self.startDirPicker.text()
304 if startdir:
305 startdir = os.path.normpath(startdir)
306 if startdir.endswith(os.sep):
307 startdir = startdir[:-1]
308 self.parameters["startDirectory"] = startdir
309
268 outfile = self.outputFilePicker.text() 310 outfile = self.outputFilePicker.text()
269 if outfile != '': 311 if outfile != '':
270 outfile = os.path.normpath(outfile) 312 outfile = os.path.normpath(outfile)
271 self.parameters['outputFile'] = outfile 313 self.parameters['outputFile'] = outfile
314
272 self.parameters['basePackage'] = self.baseEdit.text() 315 self.parameters['basePackage'] = self.baseEdit.text()
273 self.parameters['ignoreDirectories'] = [] 316 self.parameters['ignoreDirectories'] = []
274 for row in range(0, self.ignoreDirsList.count()): 317 for row in range(0, self.ignoreDirsList.count()):
275 itm = self.ignoreDirsList.item(row) 318 itm = self.ignoreDirsList.item(row)
276 self.parameters['ignoreDirectories'].append( 319 self.parameters['ignoreDirectories'].append(

eric ide

mercurial