Project/Project.py

changeset 1874
7d5589d8699a
parent 1871
15376fad2097
child 1875
bbdd75d18412
equal deleted inserted replaced
1873:6959e221f837 1874:7d5589d8699a
325 self.name = "" 325 self.name = ""
326 self.opened = False 326 self.opened = False
327 self.subdirs = [""] # record the project dir as a relative path (i.e. empty path) 327 self.subdirs = [""] # record the project dir as a relative path (i.e. empty path)
328 self.otherssubdirs = [] 328 self.otherssubdirs = []
329 self.vcs = None 329 self.vcs = None
330 self.vcsRequested = False
330 self.dbgCmdline = '' 331 self.dbgCmdline = ''
331 self.dbgWd = '' 332 self.dbgWd = ''
332 self.dbgEnv = '' 333 self.dbgEnv = ''
333 self.dbgReportExceptions = True 334 self.dbgReportExceptions = True
334 self.dbgExcList = [] 335 self.dbgExcList = []
1925 if os.path.exists(os.path.join(self.ppath, indicator)): 1926 if os.path.exists(os.path.join(self.ppath, indicator)):
1926 if len(vcsData) > 1: 1927 if len(vcsData) > 1:
1927 vcsList = [] 1928 vcsList = []
1928 for vcsSystemStr, vcsSystemDisplay in vcsData: 1929 for vcsSystemStr, vcsSystemDisplay in vcsData:
1929 vcsList.append(vcsSystemDisplay) 1930 vcsList.append(vcsSystemDisplay)
1930 # TODO: only give the selection if there is more than one entry
1931 res, vcs_ok = QInputDialog.getItem( 1931 res, vcs_ok = QInputDialog.getItem(
1932 None, 1932 None,
1933 self.trUtf8("New Project"), 1933 self.trUtf8("New Project"),
1934 self.trUtf8("Select Version Control System"), 1934 self.trUtf8("Select Version Control System"),
1935 vcsList, 1935 vcsList,
1972 self.pdata["VCS"] = ['None'] 1972 self.pdata["VCS"] = ['None']
1973 self.saveProject() 1973 self.saveProject()
1974 break 1974 break
1975 1975
1976 # put the project under VCS control 1976 # put the project under VCS control
1977 if self.vcs is None: 1977 if self.vcs is None and self.vcsSoftwareAvailable() and self.vcsRequested:
1978 # TODO: only follow this path, if a VCS is available and user wants
1979 # a versioned project
1980 vcsSystemsDict = e5App().getObject("PluginManager")\ 1978 vcsSystemsDict = e5App().getObject("PluginManager")\
1981 .getPluginDisplayStrings("version_control") 1979 .getPluginDisplayStrings("version_control")
1982 vcsSystemsDisplay = [self.trUtf8("None")] 1980 vcsSystemsDisplay = [self.trUtf8("None")]
1983 keys = sorted(vcsSystemsDict.keys()) 1981 keys = sorted(vcsSystemsDict.keys())
1984 for key in keys: 1982 for key in keys:
3310 menu = QMenu(self.trUtf8('&Project'), self.parent()) 3308 menu = QMenu(self.trUtf8('&Project'), self.parent())
3311 self.recentMenu = QMenu(self.trUtf8('Open &Recent Projects'), menu) 3309 self.recentMenu = QMenu(self.trUtf8('Open &Recent Projects'), menu)
3312 self.vcsMenu = QMenu(self.trUtf8('&Version Control'), menu) 3310 self.vcsMenu = QMenu(self.trUtf8('&Version Control'), menu)
3313 self.vcsMenu.setTearOffEnabled(True) 3311 self.vcsMenu.setTearOffEnabled(True)
3314 self.vcsProjectHelper.initMenu(self.vcsMenu) 3312 self.vcsProjectHelper.initMenu(self.vcsMenu)
3313 self.vcsMenu.setEnabled(self.vcsSoftwareAvailable())
3315 self.checksMenu = QMenu(self.trUtf8('Chec&k'), menu) 3314 self.checksMenu = QMenu(self.trUtf8('Chec&k'), menu)
3316 self.checksMenu.setTearOffEnabled(True) 3315 self.checksMenu.setTearOffEnabled(True)
3317 self.menuShow = QMenu(self.trUtf8('Sho&w'), menu) 3316 self.menuShow = QMenu(self.trUtf8('Sho&w'), menu)
3318 self.graphicsMenu = QMenu(self.trUtf8('&Diagrams'), menu) 3317 self.graphicsMenu = QMenu(self.trUtf8('&Diagrams'), menu)
3319 self.sessionMenu = QMenu(self.trUtf8('Session'), menu) 3318 self.sessionMenu = QMenu(self.trUtf8('Session'), menu)
3760 self.vcsBasicHelper = True 3759 self.vcsBasicHelper = True
3761 else: 3760 else:
3762 self.vcsProjectHelper = vcs.vcsGetProjectHelper(self) 3761 self.vcsProjectHelper = vcs.vcsGetProjectHelper(self)
3763 self.vcsBasicHelper = False 3762 self.vcsBasicHelper = False
3764 if self.vcsMenu is not None: 3763 if self.vcsMenu is not None:
3765 # TODO: disable menu if no VCS is available
3766 self.vcsProjectHelper.initMenu(self.vcsMenu) 3764 self.vcsProjectHelper.initMenu(self.vcsMenu)
3765 self.vcsMenu.setEnabled(self.vcsSoftwareAvailable())
3767 return vcs 3766 return vcs
3768 3767
3769 def __showContextMenuVCS(self): 3768 def __showContextMenuVCS(self):
3770 """ 3769 """
3771 Private slot called before the vcs menu is shown. 3770 Private slot called before the vcs menu is shown.
3772 """ 3771 """
3773 self.vcsProjectHelper.showMenu() 3772 self.vcsProjectHelper.showMenu()
3774 if self.vcsBasicHelper: 3773 if self.vcsBasicHelper:
3775 self.showMenu.emit("VCS", self.vcsMenu) 3774 self.showMenu.emit("VCS", self.vcsMenu)
3775
3776 def vcsSoftwareAvailable(self):
3777 """
3778 Public method to check, if some supported VCS software is available
3779 to the IDE.
3780
3781 @return flag indicating availability of VCS software (boolean)
3782 """
3783 vcsSystemsDict = e5App().getObject("PluginManager")\
3784 .getPluginDisplayStrings("version_control")
3785 return len(vcsSystemsDict) != 0
3776 3786
3777 ######################################################################### 3787 #########################################################################
3778 ## Below is the interface to the checker tools 3788 ## Below is the interface to the checker tools
3779 ######################################################################### 3789 #########################################################################
3780 3790

eric ide

mercurial