Project/Project.py

changeset 1874
7d5589d8699a
parent 1871
15376fad2097
child 1875
bbdd75d18412
--- a/Project/Project.py	Mon May 21 19:18:38 2012 +0200
+++ b/Project/Project.py	Mon May 21 19:59:31 2012 +0200
@@ -327,6 +327,7 @@
         self.subdirs = [""]  # record the project dir as a relative path (i.e. empty path)
         self.otherssubdirs = []
         self.vcs = None
+        self.vcsRequested = False
         self.dbgCmdline = ''
         self.dbgWd = ''
         self.dbgEnv = ''
@@ -1927,7 +1928,6 @@
                             vcsList = []
                             for vcsSystemStr, vcsSystemDisplay in vcsData:
                                 vcsList.append(vcsSystemDisplay)
-                            # TODO: only give the selection if there is more than one entry
                             res, vcs_ok = QInputDialog.getItem(
                                 None,
                                 self.trUtf8("New Project"),
@@ -1974,9 +1974,7 @@
                         break
             
             # put the project under VCS control
-            if self.vcs is None:
-                # TODO: only follow this path, if a VCS is available and user wants
-                #       a versioned project
+            if self.vcs is None and self.vcsSoftwareAvailable() and self.vcsRequested:
                 vcsSystemsDict = e5App().getObject("PluginManager")\
                     .getPluginDisplayStrings("version_control")
                 vcsSystemsDisplay = [self.trUtf8("None")]
@@ -3312,6 +3310,7 @@
         self.vcsMenu = QMenu(self.trUtf8('&Version Control'), menu)
         self.vcsMenu.setTearOffEnabled(True)
         self.vcsProjectHelper.initMenu(self.vcsMenu)
+        self.vcsMenu.setEnabled(self.vcsSoftwareAvailable())
         self.checksMenu = QMenu(self.trUtf8('Chec&k'), menu)
         self.checksMenu.setTearOffEnabled(True)
         self.menuShow = QMenu(self.trUtf8('Sho&w'), menu)
@@ -3762,8 +3761,8 @@
             self.vcsProjectHelper = vcs.vcsGetProjectHelper(self)
             self.vcsBasicHelper = False
         if self.vcsMenu is not None:
-            # TODO: disable menu if no VCS is available
             self.vcsProjectHelper.initMenu(self.vcsMenu)
+            self.vcsMenu.setEnabled(self.vcsSoftwareAvailable())
         return vcs
         
     def __showContextMenuVCS(self):
@@ -3774,6 +3773,17 @@
         if self.vcsBasicHelper:
             self.showMenu.emit("VCS", self.vcsMenu)
     
+    def vcsSoftwareAvailable(self):
+        """
+        Public method to check, if some supported VCS software is available
+        to the IDE.
+        
+        @return flag indicating availability of VCS software (boolean)
+        """
+        vcsSystemsDict = e5App().getObject("PluginManager")\
+            .getPluginDisplayStrings("version_control")
+        return len(vcsSystemsDict) != 0
+    
     #########################################################################
     ## Below is the interface to the checker tools
     #########################################################################

eric ide

mercurial