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( |