Project/Project.py

changeset 2034
8de0fc1f7fef
parent 2031
c36c2eb62a75
child 2040
4cefd094353b
--- a/Project/Project.py	Sun Sep 09 19:38:07 2012 +0200
+++ b/Project/Project.py	Mon Sep 10 18:42:28 2012 +0200
@@ -233,6 +233,7 @@
         self.codecoverage = None
         self.profiledata = None
         self.applicationDiagram = None
+        self.loadedDiagram = None
         
     def __initProjectTypes(self):
         """
@@ -2494,6 +2495,7 @@
         self.codecoverage       and self.codecoverage.close()
         self.profiledata        and self.profiledata.close()
         self.applicationDiagram and self.applicationDiagram.close()
+        self.loadedDiagram      and self.loadedDiagram.close()
         
     def closeProject(self, reopen=False, noSave=False):
         """
@@ -3251,9 +3253,11 @@
         self.codeProfileAct.triggered[()].connect(self.__showProfileData)
         self.actions.append(self.codeProfileAct)
 
+        self.graphicsGrp = createActionGroup(self)
+
         self.applicationDiagramAct = E5Action(self.trUtf8('Application Diagram'),
                 self.trUtf8('&Application Diagram...'), 0, 0,
-                self.chkGrp, 'project_application_diagram')
+                self.graphicsGrp, 'project_application_diagram')
         self.applicationDiagramAct.setStatusTip(
             self.trUtf8('Show a diagram of the project.'))
         self.applicationDiagramAct.setWhatsThis(self.trUtf8(
@@ -3263,6 +3267,18 @@
         self.applicationDiagramAct.triggered[()].connect(self.handleApplicationDiagram)
         self.actions.append(self.applicationDiagramAct)
 
+        self.loadDiagramAct = E5Action(self.trUtf8('Load Diagram'),
+                self.trUtf8('&Load Diagram...'), 0, 0,
+                self.graphicsGrp, 'project_load_diagram')
+        self.loadDiagramAct.setStatusTip(
+            self.trUtf8('Load a diagram from file.'))
+        self.loadDiagramAct.setWhatsThis(self.trUtf8(
+            """<b>Load Diagram...</b>"""
+            """<p>This loads a diagram from file.</p>"""
+        ))
+        self.loadDiagramAct.triggered[()].connect(self.__loadDiagram)
+        self.actions.append(self.loadDiagramAct)
+
         self.pluginGrp = createActionGroup(self)
 
         self.pluginPkgListAct = E5Action(self.trUtf8('Create Package List'),
@@ -3378,6 +3394,8 @@
         # build the diagrams menu
         self.graphicsMenu.setTearOffEnabled(True)
         self.graphicsMenu.addAction(self.applicationDiagramAct)
+        self.graphicsMenu.addSeparator()
+        self.graphicsMenu.addAction(self.loadDiagramAct)
         
         # build the session menu
         self.sessionMenu.setTearOffEnabled(True)
@@ -3988,6 +4006,16 @@
                                             self.parent(), noModules=not res)
         self.applicationDiagram.show()
     
+    def __loadDiagram(self):
+        """
+        Private slot to load a diagram from file.
+        """
+        self.loadedDiagram = None
+        loadedDiagram = UMLDialog(UMLDialog.NoDiagram, self, parent=self.parent())
+        if loadedDiagram.load():
+            self.loadedDiagram = loadedDiagram
+            self.loadedDiagram.show(fromFile=True)
+    
     #########################################################################
     ## Below is the interface to the VCS monitor thread
     #########################################################################

eric ide

mercurial