Project/ProjectSourcesBrowser.py

branch
Py2 comp.
changeset 3060
5883ce99ee12
parent 3058
0a02c433f52d
parent 3038
7fe9a53280bd
child 3145
a9de05d4a22f
equal deleted inserted replaced
3058:0a02c433f52d 3060:5883ce99ee12
80 80
81 def __closeAllWindows(self): 81 def __closeAllWindows(self):
82 """ 82 """
83 Private method to close all project related windows. 83 Private method to close all project related windows.
84 """ 84 """
85 self.codemetrics and self.codemetrics.close() 85 self.codemetrics and self.codemetrics.close()
86 self.codecoverage and self.codecoverage.close() 86 self.codecoverage and self.codecoverage.close()
87 self.profiledata and self.profiledata.close() 87 self.profiledata and self.profiledata.close()
88 self.classDiagram and self.classDiagram.close() 88 self.classDiagram and self.classDiagram.close()
89 self.importsDiagram and self.importsDiagram.close() 89 self.importsDiagram and self.importsDiagram.close()
90 self.packageDiagram and self.packageDiagram.close() 90 self.packageDiagram and self.packageDiagram.close()
91 self.applicationDiagram and self.applicationDiagram.close() 91 self.applicationDiagram and self.applicationDiagram.close()
92 self.loadedDiagram and self.loadedDiagram.close() 92 self.loadedDiagram and self.loadedDiagram.close()
93 93
94 def _projectClosed(self): 94 def _projectClosed(self):
95 """ 95 """
96 Protected slot to handle the projectClosed signal. 96 Protected slot to handle the projectClosed signal.
97 """ 97 """
104 """ 104 """
105 ProjectBaseBrowser._createPopupMenus(self) 105 ProjectBaseBrowser._createPopupMenus(self)
106 self.sourceMenuActions = {} 106 self.sourceMenuActions = {}
107 107
108 if self.project.pdata["PROGLANGUAGE"][0] in \ 108 if self.project.pdata["PROGLANGUAGE"][0] in \
109 ["Python", "Python2", "Python3"]: 109 ["Python", "Python2", "Python3"]:
110 self.__createPythonPopupMenus() 110 self.__createPythonPopupMenus()
111 elif self.project.pdata["PROGLANGUAGE"][0] == "Ruby": 111 elif self.project.pdata["PROGLANGUAGE"][0] == "Ruby":
112 self.__createRubyPopupMenus() 112 self.__createRubyPopupMenus()
113 113
114 def __createPythonPopupMenus(self): 114 def __createPythonPopupMenus(self):
460 BrowserClassAttributeItem]) 460 BrowserClassAttributeItem])
461 cnt = categories["sum"] 461 cnt = categories["sum"]
462 462
463 bfcnt = categories[str(ProjectBrowserFileItem)] 463 bfcnt = categories[str(ProjectBrowserFileItem)]
464 cmcnt = categories[str(BrowserClassItem)] + \ 464 cmcnt = categories[str(BrowserClassItem)] + \
465 categories[str(BrowserMethodItem)] + \ 465 categories[str(BrowserMethodItem)] + \
466 categories[str(BrowserClassAttributeItem)] 466 categories[str(BrowserClassAttributeItem)]
467 sdcnt = categories[str(ProjectBrowserSimpleDirectoryItem)] 467 sdcnt = categories[str(ProjectBrowserSimpleDirectoryItem)]
468 if cnt > 1 and cnt == bfcnt: 468 if cnt > 1 and cnt == bfcnt:
469 self.multiMenu.popup(self.mapToGlobal(coord)) 469 self.multiMenu.popup(self.mapToGlobal(coord))
470 elif cnt > 1 and cnt == sdcnt: 470 elif cnt > 1 and cnt == sdcnt:
471 self.dirMultiMenu.popup(self.mapToGlobal(coord)) 471 self.dirMultiMenu.popup(self.mapToGlobal(coord))
577 basename = os.path.splitext(fn)[0] 577 basename = os.path.splitext(fn)[0]
578 tbasename = os.path.splitext(tfn)[0] 578 tbasename = os.path.splitext(tfn)[0]
579 prEnable = prEnable or \ 579 prEnable = prEnable or \
580 os.path.isfile("{0}.profile".format(basename)) or \ 580 os.path.isfile("{0}.profile".format(basename)) or \
581 os.path.isfile("{0}.profile".format(tbasename)) 581 os.path.isfile("{0}.profile".format(tbasename))
582 coEnable = (coEnable or \ 582 coEnable = (coEnable or
583 os.path.isfile("{0}.coverage".format(basename)) or \ 583 os.path.isfile("{0}.coverage".format(basename)) or
584 os.path.isfile("{0}.coverage".format(tbasename))) and \ 584 os.path.isfile("{0}.coverage".format(tbasename))) and \
585 self.project.isPy3Project() 585 self.project.isPy3Project()
586 586
587 # now check the selected item 587 # now check the selected item
588 itm = self.model().item(self.currentIndex()) 588 itm = self.model().item(self.currentIndex())
589 fn = itm.fileName() 589 fn = itm.fileName()
590 if fn is not None: 590 if fn is not None:
591 basename = os.path.splitext(fn)[0] 591 basename = os.path.splitext(fn)[0]
592 prEnable = prEnable or \ 592 prEnable = prEnable or \
593 os.path.isfile("{0}.profile".format(basename)) 593 os.path.isfile("{0}.profile".format(basename))
594 coEnable = (coEnable or \ 594 coEnable = (coEnable or
595 os.path.isfile("{0}.coverage".format(basename))) and \ 595 os.path.isfile("{0}.coverage".format(basename))) and \
596 itm.isPython3File() 596 itm.isPython3File()
597 597
598 self.profileMenuAction.setEnabled(prEnable) 598 self.profileMenuAction.setEnabled(prEnable)
599 self.coverageMenuAction.setEnabled(coEnable) 599 self.coverageMenuAction.setEnabled(coEnable)
640 if isinstance(itm, ProjectBrowserFileItem) or \ 640 if isinstance(itm, ProjectBrowserFileItem) or \
641 isinstance(itm, BrowserClassItem) or \ 641 isinstance(itm, BrowserClassItem) or \
642 isinstance(itm, BrowserMethodItem): 642 isinstance(itm, BrowserMethodItem):
643 dn = os.path.dirname(itm.fileName()) 643 dn = os.path.dirname(itm.fileName())
644 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \ 644 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \
645 isinstance(itm, ProjectBrowserDirectoryItem): 645 isinstance(itm, ProjectBrowserDirectoryItem):
646 dn = itm.dirName() 646 dn = itm.dirName()
647 else: 647 else:
648 dn = "" 648 dn = ""
649 649
650 dn = self.project.getRelativePath(dn) 650 dn = self.project.getRelativePath(dn)
667 self, 667 self,
668 self.trUtf8("Add new Python package"), 668 self.trUtf8("Add new Python package"),
669 self.trUtf8( 669 self.trUtf8(
670 """<p>The package directory <b>{0}</b> could""" 670 """<p>The package directory <b>{0}</b> could"""
671 """ not be created. Aborting...</p>""" 671 """ not be created. Aborting...</p>"""
672 """<p>Reason: {1}</p>""")\ 672 """<p>Reason: {1}</p>""")
673 .format(packagePath, str(err))) 673 .format(packagePath, str(err)))
674 return 674 return
675 packageFile = os.path.join(packagePath, "__init__.py") 675 packageFile = os.path.join(packagePath, "__init__.py")
676 if not os.path.exists(packageFile): 676 if not os.path.exists(packageFile):
677 try: 677 try:
678 f = open(packageFile, "w", encoding="utf-8") 678 f = open(packageFile, "w", encoding="utf-8")
682 self, 682 self,
683 self.trUtf8("Add new Python package"), 683 self.trUtf8("Add new Python package"),
684 self.trUtf8( 684 self.trUtf8(
685 """<p>The package file <b>{0}</b> could""" 685 """<p>The package file <b>{0}</b> could"""
686 """ not be created. Aborting...</p>""" 686 """ not be created. Aborting...</p>"""
687 """<p>Reason: {1}</p>""")\ 687 """<p>Reason: {1}</p>""")
688 .format(packageFile, str(err))) 688 .format(packageFile, str(err)))
689 return 689 return
690 self.project.appendFile(packageFile) 690 self.project.appendFile(packageFile)
691 if packageFile: 691 if packageFile:
692 self.sourceFile[str].emit(packageFile) 692 self.sourceFile[str].emit(packageFile)
693 693
699 if isinstance(itm, ProjectBrowserFileItem) or \ 699 if isinstance(itm, ProjectBrowserFileItem) or \
700 isinstance(itm, BrowserClassItem) or \ 700 isinstance(itm, BrowserClassItem) or \
701 isinstance(itm, BrowserMethodItem): 701 isinstance(itm, BrowserMethodItem):
702 dn = os.path.dirname(itm.fileName()) 702 dn = os.path.dirname(itm.fileName())
703 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \ 703 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \
704 isinstance(itm, ProjectBrowserDirectoryItem): 704 isinstance(itm, ProjectBrowserDirectoryItem):
705 dn = itm.dirName() 705 dn = itm.dirName()
706 else: 706 else:
707 dn = None 707 dn = None
708 self.project.addFiles('source', dn) 708 self.project.addFiles('source', dn)
709 709
715 if isinstance(itm, ProjectBrowserFileItem) or \ 715 if isinstance(itm, ProjectBrowserFileItem) or \
716 isinstance(itm, BrowserClassItem) or \ 716 isinstance(itm, BrowserClassItem) or \
717 isinstance(itm, BrowserMethodItem): 717 isinstance(itm, BrowserMethodItem):
718 dn = os.path.dirname(itm.fileName()) 718 dn = os.path.dirname(itm.fileName())
719 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \ 719 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \
720 isinstance(itm, ProjectBrowserDirectoryItem): 720 isinstance(itm, ProjectBrowserDirectoryItem):
721 dn = itm.dirName() 721 dn = itm.dirName()
722 else: 722 else:
723 dn = None 723 dn = None
724 self.project.addDirectory('source', dn) 724 self.project.addDirectory('source', dn)
725 725

eric ide

mercurial