Project/ProjectTranslationsBrowser.py

branch
Py2 comp.
changeset 3058
0a02c433f52d
parent 3057
10516539f238
parent 3030
4a0a82ddd9d2
child 3060
5883ce99ee12
equal deleted inserted replaced
3057:10516539f238 3058:0a02c433f52d
113 113
114 self.menu = QMenu(self) 114 self.menu = QMenu(self)
115 if self.project.getProjectType() in \ 115 if self.project.getProjectType() in \
116 ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", 116 ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin",
117 "PySide", "PySideC"]: 117 "PySide", "PySideC"]:
118 act = self.menu.addAction(self.trUtf8('Generate translation'), 118 act = self.menu.addAction(
119 self.__generateSelected) 119 self.trUtf8('Generate translation'), self.__generateSelected)
120 self.tsMenuActions.append(act) 120 self.tsMenuActions.append(act)
121 self.tsprocMenuActions.append(act) 121 self.tsprocMenuActions.append(act)
122 act = self.menu.addAction( 122 act = self.menu.addAction(
123 self.trUtf8('Generate translation (with obsolete)'), 123 self.trUtf8('Generate translation (with obsolete)'),
124 self.__generateObsoleteSelected) 124 self.__generateObsoleteSelected)
125 self.tsMenuActions.append(act) 125 self.tsMenuActions.append(act)
126 self.tsprocMenuActions.append(act) 126 self.tsprocMenuActions.append(act)
127 act = self.menu.addAction(self.trUtf8('Generate all translations'), 127 act = self.menu.addAction(
128 self.__generateAll) 128 self.trUtf8('Generate all translations'), self.__generateAll)
129 self.tsprocMenuActions.append(act) 129 self.tsprocMenuActions.append(act)
130 act = self.menu.addAction( 130 act = self.menu.addAction(
131 self.trUtf8('Generate all translations (with obsolete)'), 131 self.trUtf8('Generate all translations (with obsolete)'),
132 self.__generateObsoleteAll) 132 self.__generateObsoleteAll)
133 self.tsprocMenuActions.append(act) 133 self.tsprocMenuActions.append(act)
134 self.menu.addSeparator() 134 self.menu.addSeparator()
135 act = self.menu.addAction(self.trUtf8('Open in Qt-Linguist'), 135 act = self.menu.addAction(
136 self._openItem) 136 self.trUtf8('Open in Qt-Linguist'), self._openItem)
137 self.tsMenuActions.append(act) 137 self.tsMenuActions.append(act)
138 act = self.menu.addAction(self.trUtf8('Open in Editor'), 138 act = self.menu.addAction(
139 self.__openFileInEditor) 139 self.trUtf8('Open in Editor'), self.__openFileInEditor)
140 self.tsMenuActions.append(act) 140 self.tsMenuActions.append(act)
141 self.menu.addSeparator() 141 self.menu.addSeparator()
142 act = self.menu.addAction(self.trUtf8('Release translation'), 142 act = self.menu.addAction(
143 self.__releaseSelected) 143 self.trUtf8('Release translation'), self.__releaseSelected)
144 self.tsMenuActions.append(act) 144 self.tsMenuActions.append(act)
145 self.qmprocMenuActions.append(act) 145 self.qmprocMenuActions.append(act)
146 act = self.menu.addAction(self.trUtf8('Release all translations'), 146 act = self.menu.addAction(
147 self.__releaseAll) 147 self.trUtf8('Release all translations'), self.__releaseAll)
148 self.qmprocMenuActions.append(act) 148 self.qmprocMenuActions.append(act)
149 self.menu.addSeparator() 149 self.menu.addSeparator()
150 act = self.menu.addAction(self.trUtf8('Preview translation'), 150 act = self.menu.addAction(
151 self.__TRPreview) 151 self.trUtf8('Preview translation'), self.__TRPreview)
152 self.qmMenuActions.append(act) 152 self.qmMenuActions.append(act)
153 act = self.menu.addAction(self.trUtf8('Preview all translations'), 153 act = self.menu.addAction(
154 self.__TRPreviewAll) 154 self.trUtf8('Preview all translations'), self.__TRPreviewAll)
155 self.menu.addSeparator() 155 self.menu.addSeparator()
156 else: 156 else:
157 if self.hooks["extractMessages"] is not None: 157 if self.hooks["extractMessages"] is not None:
158 act = self.menu.addAction( 158 act = self.menu.addAction(
159 self.hooksMenuEntries.get("extractMessages", 159 self.hooksMenuEntries.get(
160 "extractMessages",
160 self.trUtf8('Extract messages')), 161 self.trUtf8('Extract messages')),
161 self.__extractMessages) 162 self.__extractMessages)
162 self.menuActions.append(act) 163 self.menuActions.append(act)
163 self.menu.addSeparator() 164 self.menu.addSeparator()
164 if self.hooks["generateSelected"] is not None: 165 if self.hooks["generateSelected"] is not None:
165 act = self.menu.addAction( 166 act = self.menu.addAction(
166 self.hooksMenuEntries.get("generateSelected", 167 self.hooksMenuEntries.get(
168 "generateSelected",
167 self.trUtf8('Generate translation')), 169 self.trUtf8('Generate translation')),
168 self.__generateSelected) 170 self.__generateSelected)
169 self.tsMenuActions.append(act) 171 self.tsMenuActions.append(act)
170 self.tsprocMenuActions.append(act) 172 self.tsprocMenuActions.append(act)
171 if self.hooks["generateSelectedWithObsolete"] is not None: 173 if self.hooks["generateSelectedWithObsolete"] is not None:
172 act = self.menu.addAction( 174 act = self.menu.addAction(
173 self.hooksMenuEntries.get("generateSelectedWithObsolete", 175 self.hooksMenuEntries.get(
176 "generateSelectedWithObsolete",
174 self.trUtf8('Generate translation (with obsolete)')), 177 self.trUtf8('Generate translation (with obsolete)')),
175 self.__generateObsoleteSelected) 178 self.__generateObsoleteSelected)
176 self.tsMenuActions.append(act) 179 self.tsMenuActions.append(act)
177 self.tsprocMenuActions.append(act) 180 self.tsprocMenuActions.append(act)
178 if self.hooks["generateAll"] is not None: 181 if self.hooks["generateAll"] is not None:
179 act = self.menu.addAction( 182 act = self.menu.addAction(
180 self.hooksMenuEntries.get("generateAll", 183 self.hooksMenuEntries.get(
184 "generateAll",
181 self.trUtf8('Generate all translations')), 185 self.trUtf8('Generate all translations')),
182 self.__generateAll) 186 self.__generateAll)
183 self.tsprocMenuActions.append(act) 187 self.tsprocMenuActions.append(act)
184 if self.hooks["generateAllWithObsolete"] is not None: 188 if self.hooks["generateAllWithObsolete"] is not None:
185 act = self.menu.addAction( 189 act = self.menu.addAction(
186 self.hooksMenuEntries.get("generateAllWithObsolete", 190 self.hooksMenuEntries.get(
191 "generateAllWithObsolete",
187 self.trUtf8( 192 self.trUtf8(
188 'Generate all translations (with obsolete)')), 193 'Generate all translations (with obsolete)')),
189 self.__generateObsoleteAll) 194 self.__generateObsoleteAll)
190 self.tsprocMenuActions.append(act) 195 self.tsprocMenuActions.append(act)
191 self.menu.addSeparator() 196 self.menu.addSeparator()
192 if self.hooks["open"] is not None: 197 if self.hooks["open"] is not None:
193 act = self.menu.addAction( 198 act = self.menu.addAction(
194 self.hooksMenuEntries.get("open", 199 self.hooksMenuEntries.get(
195 self.trUtf8('Open')), 200 "open", self.trUtf8('Open')),
196 self._openItem) 201 self._openItem)
197 self.tsMenuActions.append(act) 202 self.tsMenuActions.append(act)
198 act = self.menu.addAction(self.trUtf8('Open in Editor'), 203 act = self.menu.addAction(
199 self.__openFileInEditor) 204 self.trUtf8('Open in Editor'), self.__openFileInEditor)
200 self.tsMenuActions.append(act) 205 self.tsMenuActions.append(act)
201 self.menu.addSeparator() 206 self.menu.addSeparator()
202 if self.hooks["releaseSelected"] is not None: 207 if self.hooks["releaseSelected"] is not None:
203 act = self.menu.addAction( 208 act = self.menu.addAction(
204 self.hooksMenuEntries.get("releaseSelected", 209 self.hooksMenuEntries.get(
210 "releaseSelected",
205 self.trUtf8('Release translation')), 211 self.trUtf8('Release translation')),
206 self.__releaseSelected) 212 self.__releaseSelected)
207 self.tsMenuActions.append(act) 213 self.tsMenuActions.append(act)
208 self.qmprocMenuActions.append(act) 214 self.qmprocMenuActions.append(act)
209 if self.hooks["releaseAll"] is not None: 215 if self.hooks["releaseAll"] is not None:
210 act = self.menu.addAction( 216 act = self.menu.addAction(
211 self.hooksMenuEntries.get("releaseAll", 217 self.hooksMenuEntries.get(
218 "releaseAll",
212 self.trUtf8('Release all translations')), 219 self.trUtf8('Release all translations')),
213 self.__releaseAll) 220 self.__releaseAll)
214 self.qmprocMenuActions.append(act) 221 self.qmprocMenuActions.append(act)
215 self.menu.addSeparator() 222 self.menu.addSeparator()
216 act = self.menu.addAction(self.trUtf8('Remove from project'), 223 act = self.menu.addAction(
217 self.__removeLanguageFile) 224 self.trUtf8('Remove from project'), self.__removeLanguageFile)
218 self.menuActions.append(act) 225 self.menuActions.append(act)
219 act = self.menu.addAction( 226 act = self.menu.addAction(
220 self.trUtf8('Delete'), self.__deleteLanguageFile) 227 self.trUtf8('Delete'), self.__deleteLanguageFile)
221 self.menuActions.append(act) 228 self.menuActions.append(act)
222 self.menu.addSeparator() 229 self.menu.addSeparator()
223 self.__addTranslationAct = self.menu.addAction( 230 self.__addTranslationAct = self.menu.addAction(
224 self.trUtf8('Add translation...'), self.project.addLanguage) 231 self.trUtf8('Add translation...'), self.project.addLanguage)
225 self.menu.addAction(self.trUtf8('Add translation files...'), 232 self.menu.addAction(
233 self.trUtf8('Add translation files...'),
226 self.__addTranslationFiles) 234 self.__addTranslationFiles)
227 self.menu.addSeparator() 235 self.menu.addSeparator()
228 self.menu.addAction(self.trUtf8('Copy Path to Clipboard'), 236 self.menu.addAction(
229 self._copyToClipboard) 237 self.trUtf8('Copy Path to Clipboard'), self._copyToClipboard)
230 self.menu.addSeparator() 238 self.menu.addSeparator()
231 self.menu.addAction(self.trUtf8('Configure...'), self._configure) 239 self.menu.addAction(self.trUtf8('Configure...'), self._configure)
232 240
233 self.backMenu = QMenu(self) 241 self.backMenu = QMenu(self)
234 if self.project.getProjectType() in \ 242 if self.project.getProjectType() in \
251 self.trUtf8('Preview all translations'), 259 self.trUtf8('Preview all translations'),
252 self.__TRPreview) 260 self.__TRPreview)
253 else: 261 else:
254 if self.hooks["extractMessages"] is not None: 262 if self.hooks["extractMessages"] is not None:
255 act = self.backMenu.addAction( 263 act = self.backMenu.addAction(
256 self.hooksMenuEntries.get("extractMessages", 264 self.hooksMenuEntries.get(
265 "extractMessages",
257 self.trUtf8('Extract messages')), 266 self.trUtf8('Extract messages')),
258 self.__extractMessages) 267 self.__extractMessages)
259 self.backMenu.addSeparator() 268 self.backMenu.addSeparator()
260 if self.hooks["generateAll"] is not None: 269 if self.hooks["generateAll"] is not None:
261 act = self.backMenu.addAction( 270 act = self.backMenu.addAction(
262 self.hooksMenuEntries.get("generateAll", 271 self.hooksMenuEntries.get(
272 "generateAll",
263 self.trUtf8('Generate all translations')), 273 self.trUtf8('Generate all translations')),
264 self.__generateAll) 274 self.__generateAll)
265 self.tsprocBackMenuActions.append(act) 275 self.tsprocBackMenuActions.append(act)
266 if self.hooks["generateAllWithObsolete"] is not None: 276 if self.hooks["generateAllWithObsolete"] is not None:
267 act = self.backMenu.addAction( 277 act = self.backMenu.addAction(
268 self.hooksMenuEntries.get("generateAllWithObsolete", 278 self.hooksMenuEntries.get(
279 "generateAllWithObsolete",
269 self.trUtf8( 280 self.trUtf8(
270 'Generate all translations (with obsolete)')), 281 'Generate all translations (with obsolete)')),
271 self.__generateObsoleteAll) 282 self.__generateObsoleteAll)
272 self.tsprocBackMenuActions.append(act) 283 self.tsprocBackMenuActions.append(act)
273 if self.hooks["releaseAll"] is not None: 284 if self.hooks["releaseAll"] is not None:
274 act = self.backMenu.addAction( 285 act = self.backMenu.addAction(
275 self.hooksMenuEntries.get("releaseAll", 286 self.hooksMenuEntries.get(
287 "releaseAll",
276 self.trUtf8('Release all translations')), 288 self.trUtf8('Release all translations')),
277 self.__releaseAll) 289 self.__releaseAll)
278 self.qmprocBackMenuActions.append(act) 290 self.qmprocBackMenuActions.append(act)
279 self.backMenu.addSeparator() 291 self.backMenu.addSeparator()
280 self.__addTranslationBackAct = self.backMenu.addAction( 292 self.__addTranslationBackAct = self.backMenu.addAction(
281 self.trUtf8('Add translation...'), self.project.addLanguage) 293 self.trUtf8('Add translation...'), self.project.addLanguage)
282 self.backMenu.addAction(self.trUtf8('Add translation files...'), 294 self.backMenu.addAction(
295 self.trUtf8('Add translation files...'),
283 self.__addTranslationFiles) 296 self.__addTranslationFiles)
284 self.backMenu.addSeparator() 297 self.backMenu.addSeparator()
285 self.backMenu.addAction(self.trUtf8('Configure...'), self._configure) 298 self.backMenu.addAction(self.trUtf8('Configure...'), self._configure)
286 self.backMenu.setEnabled(False) 299 self.backMenu.setEnabled(False)
287 300
302 self.tsprocMultiMenuActions.append(act) 315 self.tsprocMultiMenuActions.append(act)
303 self.multiMenu.addSeparator() 316 self.multiMenu.addSeparator()
304 act = self.multiMenu.addAction( 317 act = self.multiMenu.addAction(
305 self.trUtf8('Open in Qt-Linguist'), self._openItem) 318 self.trUtf8('Open in Qt-Linguist'), self._openItem)
306 self.tsMultiMenuActions.append(act) 319 self.tsMultiMenuActions.append(act)
307 act = self.multiMenu.addAction(self.trUtf8('Open in Editor'), 320 act = self.multiMenu.addAction(
308 self.__openFileInEditor) 321 self.trUtf8('Open in Editor'), self.__openFileInEditor)
309 self.tsMultiMenuActions.append(act) 322 self.tsMultiMenuActions.append(act)
310 self.multiMenu.addSeparator() 323 self.multiMenu.addSeparator()
311 act = self.multiMenu.addAction(self.trUtf8('Release translations'), 324 act = self.multiMenu.addAction(
312 self.__releaseSelected) 325 self.trUtf8('Release translations'), self.__releaseSelected)
313 self.tsMultiMenuActions.append(act) 326 self.tsMultiMenuActions.append(act)
314 self.qmprocMultiMenuActions.append(act) 327 self.qmprocMultiMenuActions.append(act)
315 self.multiMenu.addSeparator() 328 self.multiMenu.addSeparator()
316 act = self.multiMenu.addAction(self.trUtf8('Preview translations'), 329 act = self.multiMenu.addAction(
317 self.__TRPreview) 330 self.trUtf8('Preview translations'), self.__TRPreview)
318 self.qmMultiMenuActions.append(act) 331 self.qmMultiMenuActions.append(act)
319 else: 332 else:
320 if self.hooks["extractMessages"] is not None: 333 if self.hooks["extractMessages"] is not None:
321 act = self.multiMenu.addAction( 334 act = self.multiMenu.addAction(
322 self.hooksMenuEntries.get("extractMessages", 335 self.hooksMenuEntries.get(
336 "extractMessages",
323 self.trUtf8('Extract messages')), 337 self.trUtf8('Extract messages')),
324 self.__extractMessages) 338 self.__extractMessages)
325 self.multiMenuActions.append(act) 339 self.multiMenuActions.append(act)
326 self.multiMenu.addSeparator() 340 self.multiMenu.addSeparator()
327 if self.hooks["generateSelected"] is not None: 341 if self.hooks["generateSelected"] is not None:
328 act = self.multiMenu.addAction( 342 act = self.multiMenu.addAction(
329 self.hooksMenuEntries.get("generateSelected", 343 self.hooksMenuEntries.get(
344 "generateSelected",
330 self.trUtf8('Generate translations')), 345 self.trUtf8('Generate translations')),
331 self.__generateSelected) 346 self.__generateSelected)
332 self.tsMultiMenuActions.append(act) 347 self.tsMultiMenuActions.append(act)
333 self.tsprocMultiMenuActions.append(act) 348 self.tsprocMultiMenuActions.append(act)
334 if self.hooks["generateSelectedWithObsolete"] is not None: 349 if self.hooks["generateSelectedWithObsolete"] is not None:
335 act = self.multiMenu.addAction( 350 act = self.multiMenu.addAction(
336 self.hooksMenuEntries.get("generateSelectedWithObsolete", 351 self.hooksMenuEntries.get(
352 "generateSelectedWithObsolete",
337 self.trUtf8('Generate translations (with obsolete)')), 353 self.trUtf8('Generate translations (with obsolete)')),
338 self.__generateObsoleteSelected) 354 self.__generateObsoleteSelected)
339 self.tsMultiMenuActions.append(act) 355 self.tsMultiMenuActions.append(act)
340 self.tsprocMultiMenuActions.append(act) 356 self.tsprocMultiMenuActions.append(act)
341 self.multiMenu.addSeparator() 357 self.multiMenu.addSeparator()
342 if self.hooks["open"] is not None: 358 if self.hooks["open"] is not None:
343 act = self.multiMenu.addAction( 359 act = self.multiMenu.addAction(
344 self.hooksMenuEntries.get("open", 360 self.hooksMenuEntries.get(
345 self.trUtf8('Open')), 361 "open", self.trUtf8('Open')),
346 self._openItem) 362 self._openItem)
347 self.tsMultiMenuActions.append(act) 363 self.tsMultiMenuActions.append(act)
348 act = self.multiMenu.addAction(self.trUtf8('Open in Editor'), 364 act = self.multiMenu.addAction(
349 self.__openFileInEditor) 365 self.trUtf8('Open in Editor'), self.__openFileInEditor)
350 self.tsMultiMenuActions.append(act) 366 self.tsMultiMenuActions.append(act)
351 self.multiMenu.addSeparator() 367 self.multiMenu.addSeparator()
352 if self.hooks["releaseSelected"] is not None: 368 if self.hooks["releaseSelected"] is not None:
353 act = self.multiMenu.addAction( 369 act = self.multiMenu.addAction(
354 self.hooksMenuEntries.get("releaseSelected", 370 self.hooksMenuEntries.get(
371 "releaseSelected",
355 self.trUtf8('Release translations')), 372 self.trUtf8('Release translations')),
356 self.__releaseSelected) 373 self.__releaseSelected)
357 self.tsMultiMenuActions.append(act) 374 self.tsMultiMenuActions.append(act)
358 self.qmprocMultiMenuActions.append(act) 375 self.qmprocMultiMenuActions.append(act)
359 self.multiMenu.addSeparator() 376 self.multiMenu.addSeparator()
360 act = self.multiMenu.addAction(self.trUtf8('Remove from project'), 377 act = self.multiMenu.addAction(
361 self.__removeLanguageFile) 378 self.trUtf8('Remove from project'), self.__removeLanguageFile)
362 self.multiMenuActions.append(act) 379 self.multiMenuActions.append(act)
363 act = self.multiMenu.addAction( 380 act = self.multiMenu.addAction(
364 self.trUtf8('Delete'), self.__deleteLanguageFile) 381 self.trUtf8('Delete'), self.__deleteLanguageFile)
365 self.multiMenuActions.append(act) 382 self.multiMenuActions.append(act)
366 self.multiMenu.addSeparator() 383 self.multiMenu.addSeparator()
387 self.trUtf8('Preview all translations'), 404 self.trUtf8('Preview all translations'),
388 self.__TRPreview) 405 self.__TRPreview)
389 else: 406 else:
390 if self.hooks["extractMessages"] is not None: 407 if self.hooks["extractMessages"] is not None:
391 act = self.dirMenu.addAction( 408 act = self.dirMenu.addAction(
392 self.hooksMenuEntries.get("extractMessages", 409 self.hooksMenuEntries.get(
410 "extractMessages",
393 self.trUtf8('Extract messages')), 411 self.trUtf8('Extract messages')),
394 self.__extractMessages) 412 self.__extractMessages)
395 self.dirMenuActions.append(act) 413 self.dirMenuActions.append(act)
396 self.dirMenu.addSeparator() 414 self.dirMenu.addSeparator()
397 if self.hooks["generateAll"] is not None: 415 if self.hooks["generateAll"] is not None:
398 act = self.dirMenu.addAction( 416 act = self.dirMenu.addAction(
399 self.hooksMenuEntries.get("generateAll", 417 self.hooksMenuEntries.get(
418 "generateAll",
400 self.trUtf8('Generate all translations')), 419 self.trUtf8('Generate all translations')),
401 self.__generateAll) 420 self.__generateAll)
402 self.tsprocDirMenuActions.append(act) 421 self.tsprocDirMenuActions.append(act)
403 if self.hooks["generateAllWithObsolete"] is not None: 422 if self.hooks["generateAllWithObsolete"] is not None:
404 act = self.dirMenu.addAction( 423 act = self.dirMenu.addAction(
405 self.hooksMenuEntries.get("generateAllWithObsolete", 424 self.hooksMenuEntries.get(
425 "generateAllWithObsolete",
406 self.trUtf8( 426 self.trUtf8(
407 'Generate all translations (with obsolete)')), 427 'Generate all translations (with obsolete)')),
408 self.__generateObsoleteAll) 428 self.__generateObsoleteAll)
409 self.tsprocDirMenuActions.append(act) 429 self.tsprocDirMenuActions.append(act)
410 if self.hooks["releaseAll"] is not None: 430 if self.hooks["releaseAll"] is not None:
411 act = self.dirMenu.addAction( 431 act = self.dirMenu.addAction(
412 self.hooksMenuEntries.get("releaseAll", 432 self.hooksMenuEntries.get(
433 "releaseAll",
413 self.trUtf8('Release all translations')), 434 self.trUtf8('Release all translations')),
414 self.__releaseAll) 435 self.__releaseAll)
415 self.qmprocDirMenuActions.append(act) 436 self.qmprocDirMenuActions.append(act)
416 self.dirMenu.addSeparator() 437 self.dirMenu.addSeparator()
417 act = self.dirMenu.addAction( 438 act = self.dirMenu.addAction(
418 self.trUtf8('Delete'), self._deleteDirectory) 439 self.trUtf8('Delete'), self._deleteDirectory)
419 self.dirMenuActions.append(act) 440 self.dirMenuActions.append(act)
420 self.dirMenu.addSeparator() 441 self.dirMenu.addSeparator()
421 self.__addTranslationDirAct = self.dirMenu.addAction( 442 self.__addTranslationDirAct = self.dirMenu.addAction(
422 self.trUtf8('Add translation...'), self.project.addLanguage) 443 self.trUtf8('Add translation...'), self.project.addLanguage)
423 self.dirMenu.addAction(self.trUtf8('Add translation files...'), 444 self.dirMenu.addAction(
445 self.trUtf8('Add translation files...'),
424 self.__addTranslationFiles) 446 self.__addTranslationFiles)
425 self.dirMenu.addSeparator() 447 self.dirMenu.addSeparator()
426 self.dirMenu.addAction(self.trUtf8('Copy Path to Clipboard'), 448 self.dirMenu.addAction(
427 self._copyToClipboard) 449 self.trUtf8('Copy Path to Clipboard'), self._copyToClipboard)
428 self.dirMenu.addSeparator() 450 self.dirMenu.addSeparator()
429 self.dirMenu.addAction(self.trUtf8('Configure...'), self._configure) 451 self.dirMenu.addAction(self.trUtf8('Configure...'), self._configure)
430 452
431 self.dirMultiMenu = None 453 self.dirMultiMenu = None
432 454
655 677
656 translationFiles = [itm.fileName() for itm in itmList] 678 translationFiles = [itm.fileName() for itm in itmList]
657 679
658 from UI.DeleteFilesConfirmationDialog import \ 680 from UI.DeleteFilesConfirmationDialog import \
659 DeleteFilesConfirmationDialog 681 DeleteFilesConfirmationDialog
660 dlg = DeleteFilesConfirmationDialog(self.parent(), 682 dlg = DeleteFilesConfirmationDialog(
683 self.parent(),
661 self.trUtf8("Delete translation files"), 684 self.trUtf8("Delete translation files"),
662 self.trUtf8("Do you really want to delete these translation files" 685 self.trUtf8("Do you really want to delete these translation files"
663 " from the project?"), 686 " from the project?"),
664 translationFiles) 687 translationFiles)
665 688
666 if dlg.exec_() == QDialog.Accepted: 689 if dlg.exec_() == QDialog.Accepted:
667 for fn in translationFiles: 690 for fn in translationFiles:
668 self.closeSourceWindow.emit(fn) 691 self.closeSourceWindow.emit(fn)
723 path, ext = os.path.splitext(self.project.pfile) 746 path, ext = os.path.splitext(self.project.pfile)
724 pfile = '{0}_e4x.pro'.format(path) 747 pfile = '{0}_e4x.pro'.format(path)
725 748
726 # only consider files satisfying the filter criteria 749 # only consider files satisfying the filter criteria
727 _sources = [s for s in self.project.pdata["SOURCES"] \ 750 _sources = [s for s in self.project.pdata["SOURCES"] \
728 if os.path.splitext(s)[1] in filter] 751 if os.path.splitext(s)[1] in filter]
729 sources = [] 752 sources = []
730 for s in _sources: 753 for s in _sources:
731 addIt = True 754 addIt = True
732 for transExcept in self.project.pdata["TRANSLATIONEXCEPTIONS"]: 755 for transExcept in self.project.pdata["TRANSLATIONEXCEPTIONS"]:
733 if s.startswith(transExcept): 756 if s.startswith(transExcept):
747 if addIt: 770 if addIt:
748 forms.append(f) 771 forms.append(f)
749 772
750 if langs: 773 if langs:
751 langs = [self.project.getRelativePath(lang.fileName()) \ 774 langs = [self.project.getRelativePath(lang.fileName()) \
752 for lang in langs if lang.fileName().endswith('.ts')] 775 for lang in langs if lang.fileName().endswith('.ts')]
753 else: 776 else:
754 try: 777 try:
755 pattern = self.project.pdata["TRANSLATIONPATTERN"][0]\ 778 pattern = self.project.pdata["TRANSLATIONPATTERN"][0]\
756 .replace("%language%", "*") 779 .replace("%language%", "*")
757 langs = [lang for lang in self.project.pdata["TRANSLATIONS"] \ 780 langs = [lang for lang in self.project.pdata["TRANSLATIONS"] \
758 if fnmatch.fnmatch(lang, pattern)] 781 if fnmatch.fnmatch(lang, pattern)]
759 except IndexError: 782 except IndexError:
760 langs = [] 783 langs = []
761 if not langs: 784 if not langs:
762 E5MessageBox.warning(self, 785 E5MessageBox.warning(
786 self,
763 self.trUtf8("Write temporary project file"), 787 self.trUtf8("Write temporary project file"),
764 self.trUtf8("""No translation files (*.ts) selected.""")) 788 self.trUtf8("""No translation files (*.ts) selected."""))
765 return False 789 return False
766 790
767 # create a prefix relative from the *.ts down to the project path 791 # create a prefix relative from the *.ts down to the project path
772 lst.append(lang) 796 lst.append(lang)
773 langLevel[level] = lst 797 langLevel[level] = lst
774 798
775 for level, langs in langLevel.items(): 799 for level, langs in langLevel.items():
776 prefix = '../' * level 800 prefix = '../' * level
777 sections = [("SOURCES", 801 sections = [
778 [prefix + src for src in sources])] 802 ("SOURCES",
779 sections.append(("FORMS", 803 [prefix + src for src in sources])]
780 [prefix + form for form in forms])) 804 sections.append(
781 sections.append(("TRANSLATIONS", 805 ("FORMS",
782 [prefix + lang for lang in langs])) 806 [prefix + form for form in forms]))
807 sections.append(
808 ("TRANSLATIONS",
809 [prefix + lang for lang in langs]))
783 810
784 dir, name = os.path.split(pfile) 811 dir, name = os.path.split(pfile)
785 outFile = os.path.join(dir, os.path.dirname(langs[0]), name) 812 outFile = os.path.join(dir, os.path.dirname(langs[0]), name)
786 try: 813 try:
787 pf = open(outFile, "w", encoding="utf-8") 814 pf = open(outFile, "w", encoding="utf-8")
802 list[0].replace(os.sep, '/'), "\n", "\n")) 829 list[0].replace(os.sep, '/'), "\n", "\n"))
803 830
804 pf.close() 831 pf.close()
805 self.__tmpProjects.append(outFile) 832 self.__tmpProjects.append(outFile)
806 except IOError: 833 except IOError:
807 E5MessageBox.critical(self, 834 E5MessageBox.critical(
835 self,
808 self.trUtf8("Write temporary project file"), 836 self.trUtf8("Write temporary project file"),
809 self.trUtf8( 837 self.trUtf8(
810 "<p>The temporary project file <b>{0}</b> could not" 838 "<p>The temporary project file <b>{0}</b> could not"
811 " be written.</p>").format(outFile)) 839 " be written.</p>").format(outFile))
812 840
910 @param exitStatus exit status of the process (QProcess.ExitStatus) 938 @param exitStatus exit status of the process (QProcess.ExitStatus)
911 """ 939 """
912 if exitStatus == QProcess.NormalExit and exitCode == 0: 940 if exitStatus == QProcess.NormalExit and exitCode == 0:
913 ui = e5App().getObject("UserInterface") 941 ui = e5App().getObject("UserInterface")
914 if ui.notificationsEnabled(): 942 if ui.notificationsEnabled():
915 ui.showNotification(UI.PixmapCache.getPixmap("linguist48.png"), 943 ui.showNotification(
944 UI.PixmapCache.getPixmap("linguist48.png"),
916 self.trUtf8("Translation file generation"), 945 self.trUtf8("Translation file generation"),
917 self.trUtf8( 946 self.trUtf8(
918 "The generation of the translation files (*.ts)" 947 "The generation of the translation files (*.ts)"
919 " was successful.")) 948 " was successful."))
920 else: 949 else:
921 E5MessageBox.information(self, 950 E5MessageBox.information(
951 self,
922 self.trUtf8("Translation file generation"), 952 self.trUtf8("Translation file generation"),
923 self.trUtf8( 953 self.trUtf8(
924 "The generation of the translation files (*.ts)" 954 "The generation of the translation files (*.ts)"
925 " was successful.")) 955 " was successful."))
926 else: 956 else:
927 E5MessageBox.critical(self, 957 E5MessageBox.critical(
958 self,
928 self.trUtf8("Translation file generation"), 959 self.trUtf8("Translation file generation"),
929 self.trUtf8( 960 self.trUtf8(
930 "The generation of the translation files (*.ts) has" 961 "The generation of the translation files (*.ts) has"
931 " failed.")) 962 " failed."))
932 963
1029 procStarted = proc.waitForStarted() 1060 procStarted = proc.waitForStarted()
1030 if procStarted: 1061 if procStarted:
1031 self.pylupdateProcRunning = True 1062 self.pylupdateProcRunning = True
1032 self.__pylupdateProcesses.append((proc, tempProjectFile)) 1063 self.__pylupdateProcesses.append((proc, tempProjectFile))
1033 else: 1064 else:
1034 E5MessageBox.critical(self, 1065 E5MessageBox.critical(
1066 self,
1035 self.trUtf8('Process Generation Error'), 1067 self.trUtf8('Process Generation Error'),
1036 self.trUtf8( 1068 self.trUtf8(
1037 'Could not start {0}.<br>' 1069 'Could not start {0}.<br>'
1038 'Ensure that it is in the search path.' 1070 'Ensure that it is in the search path.'
1039 ).format(self.pylupdate)) 1071 ).format(self.pylupdate))
1087 Private slot to handle the finished signal of the lrelease process. 1119 Private slot to handle the finished signal of the lrelease process.
1088 1120
1089 @param exitCode exit code of the process (integer) 1121 @param exitCode exit code of the process (integer)
1090 @param exitStatus exit status of the process (QProcess.ExitStatus) 1122 @param exitStatus exit status of the process (QProcess.ExitStatus)
1091 """ 1123 """
1092 self.lreleaseProcRunning = False
1093 if exitStatus == QProcess.NormalExit and exitCode == 0: 1124 if exitStatus == QProcess.NormalExit and exitCode == 0:
1094 ui = e5App().getObject("UserInterface") 1125 ui = e5App().getObject("UserInterface")
1095 if ui.notificationsEnabled(): 1126 if ui.notificationsEnabled():
1096 ui.showNotification(UI.PixmapCache.getPixmap("linguist48.png"), 1127 ui.showNotification(
1128 UI.PixmapCache.getPixmap("linguist48.png"),
1097 self.trUtf8("Translation file release"), 1129 self.trUtf8("Translation file release"),
1098 self.trUtf8("The release of the translation files (*.qm)" 1130 self.trUtf8("The release of the translation files (*.qm)"
1099 " was successful.")) 1131 " was successful."))
1100 else: 1132 else:
1101 E5MessageBox.information(self, 1133 E5MessageBox.information(
1134 self,
1102 self.trUtf8("Translation file release"), 1135 self.trUtf8("Translation file release"),
1103 self.trUtf8("The release of the translation files (*.qm)" 1136 self.trUtf8("The release of the translation files (*.qm)"
1104 " was successful.")) 1137 " was successful."))
1105 if self.project.pdata["TRANSLATIONSBINPATH"]: 1138 if self.project.pdata["TRANSLATIONSBINPATH"] and \
1139 self.project.pdata["TRANSLATIONSBINPATH"][0]:
1106 target = os.path.join( 1140 target = os.path.join(
1107 self.project.ppath, 1141 self.project.ppath,
1108 self.project.pdata["TRANSLATIONSBINPATH"][0]) 1142 self.project.pdata["TRANSLATIONSBINPATH"][0])
1109 for langFile in self.project.pdata["TRANSLATIONS"][:]: 1143 for langFile in self.project.pdata["TRANSLATIONS"][:]:
1110 if langFile.endswith('.ts'): 1144 if langFile.endswith('.ts'):
1111 qmFile = os.path.join(self.project.ppath, 1145 qmFile = os.path.join(self.project.ppath,
1112 langFile.replace('.ts', '.qm')) 1146 langFile.replace('.ts', '.qm'))
1113 if os.path.exists(qmFile): 1147 if os.path.exists(qmFile):
1114 shutil.move(qmFile, target) 1148 shutil.move(qmFile, target)
1115 else: 1149 else:
1116 E5MessageBox.critical(self, 1150 E5MessageBox.critical(
1151 self,
1117 self.trUtf8("Translation file release"), 1152 self.trUtf8("Translation file release"),
1118 self.trUtf8( 1153 self.trUtf8(
1119 "The release of the translation files (*.qm) has failed.")) 1154 "The release of the translation files (*.qm) has failed."))
1120 1155
1121 proc = self.sender() 1156 proc = self.sender()
1196 procStarted = proc.waitForStarted() 1231 procStarted = proc.waitForStarted()
1197 if procStarted: 1232 if procStarted:
1198 self.lreleaseProcRunning = True 1233 self.lreleaseProcRunning = True
1199 self.__lreleaseProcesses.append((proc, tempProjectFile)) 1234 self.__lreleaseProcesses.append((proc, tempProjectFile))
1200 else: 1235 else:
1201 E5MessageBox.critical(self, 1236 E5MessageBox.critical(
1237 self,
1202 self.trUtf8('Process Generation Error'), 1238 self.trUtf8('Process Generation Error'),
1203 self.trUtf8( 1239 self.trUtf8(
1204 '<p>Could not start lrelease.<br>' 1240 '<p>Could not start lrelease.<br>'
1205 'Ensure that it is available as <b>{0}</b>.</p>' 1241 'Ensure that it is available as <b>{0}</b>.</p>'
1206 ).format(lrelease)) 1242 ).format(lrelease))

eric ide

mercurial