Project/ProjectSourcesBrowser.py

changeset 12
1d8dd9706f46
parent 0
de9c2efb9d02
child 13
1af94a91f439
equal deleted inserted replaced
11:b0996e4a289e 12:1d8dd9706f46
27 from Graphics.UMLClassDiagram import UMLClassDiagram 27 from Graphics.UMLClassDiagram import UMLClassDiagram
28 from Graphics.ImportsDiagram import ImportsDiagram 28 from Graphics.ImportsDiagram import ImportsDiagram
29 from Graphics.ApplicationDiagram import ApplicationDiagram 29 from Graphics.ApplicationDiagram import ApplicationDiagram
30 from Graphics.PackageDiagram import PackageDiagram 30 from Graphics.PackageDiagram import PackageDiagram
31 31
32 from ProjectBrowserModel import ProjectBrowserFileItem, \ 32 from .ProjectBrowserModel import ProjectBrowserFileItem, \
33 ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \ 33 ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \
34 ProjectBrowserSourceType 34 ProjectBrowserSourceType
35 from ProjectBaseBrowser import ProjectBaseBrowser 35 from .ProjectBaseBrowser import ProjectBaseBrowser
36 from NewPythonPackageDialog import NewPythonPackageDialog 36 from .NewPythonPackageDialog import NewPythonPackageDialog
37 37
38 import Utilities 38 import Utilities
39 39
40 class ProjectSourcesBrowser(ProjectBaseBrowser): 40 class ProjectSourcesBrowser(ProjectBaseBrowser):
41 """ 41 """
394 categories = self.getSelectedItemsCountCategorized(\ 394 categories = self.getSelectedItemsCountCategorized(\
395 [ProjectBrowserFileItem, BrowserClassItem, 395 [ProjectBrowserFileItem, BrowserClassItem,
396 BrowserMethodItem, ProjectBrowserSimpleDirectoryItem]) 396 BrowserMethodItem, ProjectBrowserSimpleDirectoryItem])
397 cnt = categories["sum"] 397 cnt = categories["sum"]
398 398
399 bfcnt = categories[unicode(ProjectBrowserFileItem)] 399 bfcnt = categories[str(ProjectBrowserFileItem)]
400 cmcnt = categories[unicode(BrowserClassItem)] + \ 400 cmcnt = categories[str(BrowserClassItem)] + \
401 categories[unicode(BrowserMethodItem)] 401 categories[str(BrowserMethodItem)]
402 sdcnt = categories[unicode(ProjectBrowserSimpleDirectoryItem)] 402 sdcnt = categories[str(ProjectBrowserSimpleDirectoryItem)]
403 if cnt > 1 and cnt == bfcnt: 403 if cnt > 1 and cnt == bfcnt:
404 self.multiMenu.popup(self.mapToGlobal(coord)) 404 self.multiMenu.popup(self.mapToGlobal(coord))
405 elif cnt > 1 and cnt == sdcnt: 405 elif cnt > 1 and cnt == sdcnt:
406 self.dirMultiMenu.popup(self.mapToGlobal(coord)) 406 self.dirMultiMenu.popup(self.mapToGlobal(coord))
407 else: 407 else:
412 if isinstance(itm, ProjectBrowserFileItem): 412 if isinstance(itm, ProjectBrowserFileItem):
413 fn = itm.fileName() 413 fn = itm.fileName()
414 if self.project.pdata["PROGLANGUAGE"][0] in \ 414 if self.project.pdata["PROGLANGUAGE"][0] in \
415 ["Python", "Python3"]: 415 ["Python", "Python3"]:
416 if fn.endswith('.ptl'): 416 if fn.endswith('.ptl'):
417 for act in self.sourceMenuActions.values(): 417 for act in list(self.sourceMenuActions.values()):
418 act.setEnabled(False) 418 act.setEnabled(False)
419 self.classDiagramAction.setEnabled(True) 419 self.classDiagramAction.setEnabled(True)
420 self.importsDiagramAction.setEnabled(True) 420 self.importsDiagramAction.setEnabled(True)
421 self.unittestAction.setEnabled(False) 421 self.unittestAction.setEnabled(False)
422 self.checksMenu.menuAction().setEnabled(False) 422 self.checksMenu.menuAction().setEnabled(False)
423 elif fn.endswith('.rb'): # entry for mixed mode programs 423 elif fn.endswith('.rb'): # entry for mixed mode programs
424 for act in self.sourceMenuActions.values(): 424 for act in list(self.sourceMenuActions.values()):
425 act.setEnabled(False) 425 act.setEnabled(False)
426 self.classDiagramAction.setEnabled(True) 426 self.classDiagramAction.setEnabled(True)
427 self.importsDiagramAction.setEnabled(False) 427 self.importsDiagramAction.setEnabled(False)
428 self.unittestAction.setEnabled(False) 428 self.unittestAction.setEnabled(False)
429 self.checksMenu.menuAction().setEnabled(False) 429 self.checksMenu.menuAction().setEnabled(False)
430 else: # assume the source file is a Python file 430 else: # assume the source file is a Python file
431 for act in self.sourceMenuActions.values(): 431 for act in list(self.sourceMenuActions.values()):
432 act.setEnabled(True) 432 act.setEnabled(True)
433 self.classDiagramAction.setEnabled(True) 433 self.classDiagramAction.setEnabled(True)
434 self.importsDiagramAction.setEnabled(True) 434 self.importsDiagramAction.setEnabled(True)
435 self.unittestAction.setEnabled(True) 435 self.unittestAction.setEnabled(True)
436 self.checksMenu.menuAction().setEnabled(True) 436 self.checksMenu.menuAction().setEnabled(True)
581 for name in nameParts: 581 for name in nameParts:
582 packagePath = os.path.join(packagePath, name) 582 packagePath = os.path.join(packagePath, name)
583 if not os.path.exists(packagePath): 583 if not os.path.exists(packagePath):
584 try: 584 try:
585 os.mkdir(packagePath) 585 os.mkdir(packagePath)
586 except IOError, err: 586 except IOError as err:
587 QMessageBox.critical(None, 587 QMessageBox.critical(None,
588 self.trUtf8("Add new Python package"), 588 self.trUtf8("Add new Python package"),
589 self.trUtf8("""<p>The package directory <b>{0}</b> could""" 589 self.trUtf8("""<p>The package directory <b>{0}</b> could"""
590 """ not be created. Aborting...</p>""" 590 """ not be created. Aborting...</p>"""
591 """<p>Reason: {1}</p>""")\ 591 """<p>Reason: {1}</p>""")\
592 .format(packagePath, unicode(err)), 592 .format(packagePath, str(err)),
593 QMessageBox.StandardButtons(\ 593 QMessageBox.StandardButtons(\
594 QMessageBox.Ok)) 594 QMessageBox.Ok))
595 return 595 return
596 packageFile = os.path.join(packagePath, "__init__.py") 596 packageFile = os.path.join(packagePath, "__init__.py")
597 if not os.path.exists(packageFile): 597 if not os.path.exists(packageFile):
598 try: 598 try:
599 f = open(packageFile, "wb") 599 f = open(packageFile, "w")
600 f.close() 600 f.close()
601 except IOError, err: 601 except IOError as err:
602 QMessageBox.critical(None, 602 QMessageBox.critical(None,
603 self.trUtf8("Add new Python package"), 603 self.trUtf8("Add new Python package"),
604 self.trUtf8("""<p>The package file <b>{0}</b> could""" 604 self.trUtf8("""<p>The package file <b>{0}</b> could"""
605 """ not be created. Aborting...</p>""" 605 """ not be created. Aborting...</p>"""
606 """<p>Reason: {1}</p>""")\ 606 """<p>Reason: {1}</p>""")\
607 .format(packageFile, unicode(err)), 607 .format(packageFile, str(err)),
608 QMessageBox.StandardButtons(\ 608 QMessageBox.StandardButtons(\
609 QMessageBox.Ok)) 609 QMessageBox.Ok))
610 return 610 return
611 self.project.appendFile(packageFile) 611 self.project.appendFile(packageFile)
612 if packageFile: 612 if packageFile:

eric ide

mercurial