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 |