Project/ProjectSourcesBrowser.py

changeset 2408
dc3a7c9d8f6e
parent 2302
f29e9405c851
child 2525
8b507a9a2d40
child 2540
f346433ea963
equal deleted inserted replaced
2407:b98cc8ee1142 2408:dc3a7c9d8f6e
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)

eric ide

mercurial