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 |