14 |
14 |
15 from E5Gui import E5MessageBox |
15 from E5Gui import E5MessageBox |
16 |
16 |
17 from UI.BrowserModel import BrowserFileItem, BrowserClassItem, BrowserMethodItem, \ |
17 from UI.BrowserModel import BrowserFileItem, BrowserClassItem, BrowserMethodItem, \ |
18 BrowserClassAttributeItem |
18 BrowserClassAttributeItem |
19 from UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog |
|
20 |
|
21 from DataViews.CodeMetricsDialog import CodeMetricsDialog |
|
22 from DataViews.PyCoverageDialog import PyCoverageDialog |
|
23 from DataViews.PyProfileDialog import PyProfileDialog |
|
24 |
|
25 from Graphics.UMLDialog import UMLDialog |
|
26 |
19 |
27 from .ProjectBrowserModel import ProjectBrowserFileItem, \ |
20 from .ProjectBrowserModel import ProjectBrowserFileItem, \ |
28 ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \ |
21 ProjectBrowserSimpleDirectoryItem, ProjectBrowserDirectoryItem, \ |
29 ProjectBrowserSourceType |
22 ProjectBrowserSourceType |
30 from .ProjectBaseBrowser import ProjectBaseBrowser |
23 from .ProjectBaseBrowser import ProjectBaseBrowser |
31 from .NewPythonPackageDialog import NewPythonPackageDialog |
|
32 |
24 |
33 import Utilities |
25 import Utilities |
34 import UI.PixmapCache |
26 import UI.PixmapCache |
35 |
27 |
36 |
28 |
619 dn = "" |
611 dn = "" |
620 |
612 |
621 dn = self.project.getRelativePath(dn) |
613 dn = self.project.getRelativePath(dn) |
622 if dn.startswith(os.sep): |
614 if dn.startswith(os.sep): |
623 dn = dn[1:] |
615 dn = dn[1:] |
|
616 from .NewPythonPackageDialog import NewPythonPackageDialog |
624 dlg = NewPythonPackageDialog(dn, self) |
617 dlg = NewPythonPackageDialog(dn, self) |
625 if dlg.exec_() == QDialog.Accepted: |
618 if dlg.exec_() == QDialog.Accepted: |
626 packageName = dlg.getData() |
619 packageName = dlg.getData() |
627 nameParts = packageName.split(".") |
620 nameParts = packageName.split(".") |
628 packagePath = self.project.ppath |
621 packagePath = self.project.ppath |
701 fn2 = itm.fileName() |
694 fn2 = itm.fileName() |
702 fullNames.append(fn2) |
695 fullNames.append(fn2) |
703 fn = self.project.getRelativePath(fn2) |
696 fn = self.project.getRelativePath(fn2) |
704 files.append(fn) |
697 files.append(fn) |
705 |
698 |
|
699 from UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog |
706 dlg = DeleteFilesConfirmationDialog(self.parent(), |
700 dlg = DeleteFilesConfirmationDialog(self.parent(), |
707 self.trUtf8("Delete files"), |
701 self.trUtf8("Delete files"), |
708 self.trUtf8("Do you really want to delete these files from the project?"), |
702 self.trUtf8("Do you really want to delete these files from the project?"), |
709 files) |
703 files) |
710 |
704 |
732 Private method to handle the code metrics context menu action. |
726 Private method to handle the code metrics context menu action. |
733 """ |
727 """ |
734 itm = self.model().item(self.currentIndex()) |
728 itm = self.model().item(self.currentIndex()) |
735 fn = itm.fileName() |
729 fn = itm.fileName() |
736 |
730 |
|
731 from DataViews.CodeMetricsDialog import CodeMetricsDialog |
737 self.codemetrics = CodeMetricsDialog() |
732 self.codemetrics = CodeMetricsDialog() |
738 self.codemetrics.show() |
733 self.codemetrics.show() |
739 self.codemetrics.start(fn) |
734 self.codemetrics.start(fn) |
740 |
735 |
741 def __showCodeCoverage(self): |
736 def __showCodeCoverage(self): |
785 else: |
780 else: |
786 pfn = files[0] |
781 pfn = files[0] |
787 else: |
782 else: |
788 return |
783 return |
789 |
784 |
|
785 from DataViews.PyCoverageDialog import PyCoverageDialog |
790 self.codecoverage = PyCoverageDialog() |
786 self.codecoverage = PyCoverageDialog() |
791 self.codecoverage.show() |
787 self.codecoverage.show() |
792 self.codecoverage.start(pfn, fn) |
788 self.codecoverage.start(pfn, fn) |
793 |
789 |
794 def __showProfileData(self): |
790 def __showProfileData(self): |
838 else: |
834 else: |
839 pfn = files[0] |
835 pfn = files[0] |
840 else: |
836 else: |
841 return |
837 return |
842 |
838 |
|
839 from DataViews.PyProfileDialog import PyProfileDialog |
843 self.profiledata = PyProfileDialog() |
840 self.profiledata = PyProfileDialog() |
844 self.profiledata.show() |
841 self.profiledata.show() |
845 self.profiledata.start(pfn, fn) |
842 self.profiledata.start(pfn, fn) |
846 |
843 |
847 ############################################################################ |
844 ############################################################################ |
865 fn = itm.dirName() |
862 fn = itm.dirName() |
866 res = E5MessageBox.yesNo(self, |
863 res = E5MessageBox.yesNo(self, |
867 self.trUtf8("Class Diagram"), |
864 self.trUtf8("Class Diagram"), |
868 self.trUtf8("""Include class attributes?"""), |
865 self.trUtf8("""Include class attributes?"""), |
869 yesDefault=True) |
866 yesDefault=True) |
|
867 from Graphics.UMLDialog import UMLDialog |
870 self.classDiagram = UMLDialog(UMLDialog.ClassDiagram, self.project, fn, |
868 self.classDiagram = UMLDialog(UMLDialog.ClassDiagram, self.project, fn, |
871 self, noAttrs=not res) |
869 self, noAttrs=not res) |
872 self.classDiagram.show() |
870 self.classDiagram.show() |
873 |
871 |
874 def __showImportsDiagram(self): |
872 def __showImportsDiagram(self): |
882 fn = itm.dirName() |
880 fn = itm.dirName() |
883 package = os.path.isdir(fn) and fn or os.path.dirname(fn) |
881 package = os.path.isdir(fn) and fn or os.path.dirname(fn) |
884 res = E5MessageBox.yesNo(self, |
882 res = E5MessageBox.yesNo(self, |
885 self.trUtf8("Imports Diagram"), |
883 self.trUtf8("Imports Diagram"), |
886 self.trUtf8("""Include imports from external modules?""")) |
884 self.trUtf8("""Include imports from external modules?""")) |
|
885 from Graphics.UMLDialog import UMLDialog |
887 self.importsDiagram = UMLDialog(UMLDialog.ImportsDiagram, self.project, package, |
886 self.importsDiagram = UMLDialog(UMLDialog.ImportsDiagram, self.project, package, |
888 self, showExternalImports=res) |
887 self, showExternalImports=res) |
889 self.importsDiagram.show() |
888 self.importsDiagram.show() |
890 |
889 |
891 def __showPackageDiagram(self): |
890 def __showPackageDiagram(self): |
900 package = os.path.isdir(fn) and fn or os.path.dirname(fn) |
899 package = os.path.isdir(fn) and fn or os.path.dirname(fn) |
901 res = E5MessageBox.yesNo(self, |
900 res = E5MessageBox.yesNo(self, |
902 self.trUtf8("Package Diagram"), |
901 self.trUtf8("Package Diagram"), |
903 self.trUtf8("""Include class attributes?"""), |
902 self.trUtf8("""Include class attributes?"""), |
904 yesDefault=True) |
903 yesDefault=True) |
|
904 from Graphics.UMLDialog import UMLDialog |
905 self.packageDiagram = UMLDialog(UMLDialog.PackageDiagram, self.project, package, |
905 self.packageDiagram = UMLDialog(UMLDialog.PackageDiagram, self.project, package, |
906 self, noAttrs=not res) |
906 self, noAttrs=not res) |
907 self.packageDiagram.show() |
907 self.packageDiagram.show() |
908 |
908 |
909 def __showApplicationDiagram(self): |
909 def __showApplicationDiagram(self): |
912 """ |
912 """ |
913 res = E5MessageBox.yesNo(self, |
913 res = E5MessageBox.yesNo(self, |
914 self.trUtf8("Application Diagram"), |
914 self.trUtf8("Application Diagram"), |
915 self.trUtf8("""Include module names?"""), |
915 self.trUtf8("""Include module names?"""), |
916 yesDefault=True) |
916 yesDefault=True) |
|
917 from Graphics.UMLDialog import UMLDialog |
917 self.applicationDiagram = UMLDialog(UMLDialog.ApplicationDiagram, self.project, |
918 self.applicationDiagram = UMLDialog(UMLDialog.ApplicationDiagram, self.project, |
918 self, noModules=not res) |
919 self, noModules=not res) |
919 self.applicationDiagram.show() |
920 self.applicationDiagram.show() |
920 |
921 |
921 def __loadDiagram(self): |
922 def __loadDiagram(self): |
922 """ |
923 """ |
923 Private slot to load a diagram from file. |
924 Private slot to load a diagram from file. |
924 """ |
925 """ |
|
926 from Graphics.UMLDialog import UMLDialog |
925 self.loadedDiagram = None |
927 self.loadedDiagram = None |
926 loadedDiagram = UMLDialog(UMLDialog.NoDiagram, self.project, parent=self) |
928 loadedDiagram = UMLDialog(UMLDialog.NoDiagram, self.project, parent=self) |
927 if loadedDiagram.load(): |
929 if loadedDiagram.load(): |
928 self.loadedDiagram = loadedDiagram |
930 self.loadedDiagram = loadedDiagram |
929 self.loadedDiagram.show(fromFile=True) |
931 self.loadedDiagram.show(fromFile=True) |