Mon, 12 Apr 2010 18:00:42 +0000
Added plugin for Mercurial version control system.
--- a/APIs/Python3/eric5.api Mon Apr 12 17:45:51 2010 +0000 +++ b/APIs/Python3/eric5.api Mon Apr 12 18:00:42 2010 +0000 @@ -2559,6 +2559,34 @@ eric5.Plugins.PluginTabnanny.pyqtApi?7 eric5.Plugins.PluginTabnanny.shortDescription?7 eric5.Plugins.PluginTabnanny.version?7 +eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin.activate?4() +eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin.deactivate?4() +eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin.getConfigPath?4() +eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin.getPreferences?4(key) +eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin.getProjectHelper?4() +eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin.prepareUninstall?4() +eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin.setPreferences?4(key, value) +eric5.Plugins.PluginVcsMercurial.VcsMercurialPlugin?1(ui) +eric5.Plugins.PluginVcsMercurial.author?7 +eric5.Plugins.PluginVcsMercurial.autoactivate?7 +eric5.Plugins.PluginVcsMercurial.className?7 +eric5.Plugins.PluginVcsMercurial.createConfigurationPage?4(configDlg) +eric5.Plugins.PluginVcsMercurial.deactivateable?7 +eric5.Plugins.PluginVcsMercurial.displayString?4() +eric5.Plugins.PluginVcsMercurial.error?7 +eric5.Plugins.PluginVcsMercurial.exeDisplayData?4() +eric5.Plugins.PluginVcsMercurial.getConfigData?4() +eric5.Plugins.PluginVcsMercurial.getVcsSystemIndicator?4() +eric5.Plugins.PluginVcsMercurial.longDescription?7 +eric5.Plugins.PluginVcsMercurial.mercurialCfgPluginObject?7 +eric5.Plugins.PluginVcsMercurial.name?7 +eric5.Plugins.PluginVcsMercurial.packageName?7 +eric5.Plugins.PluginVcsMercurial.pluginType?7 +eric5.Plugins.PluginVcsMercurial.pluginTypename?7 +eric5.Plugins.PluginVcsMercurial.prepareUninstall?4() +eric5.Plugins.PluginVcsMercurial.pyqtApi?7 +eric5.Plugins.PluginVcsMercurial.shortDescription?7 +eric5.Plugins.PluginVcsMercurial.version?7 eric5.Plugins.PluginVcsPySvn.VcsPySvnPlugin.activate?4() eric5.Plugins.PluginVcsPySvn.VcsPySvnPlugin.deactivate?4() eric5.Plugins.PluginVcsPySvn.VcsPySvnPlugin.getConfigPath?4() @@ -2769,6 +2797,179 @@ eric5.Plugins.PluginWizardQRegExp.pyqtApi?7 eric5.Plugins.PluginWizardQRegExp.shortDescription?7 eric5.Plugins.PluginWizardQRegExp.version?7 +eric5.Plugins.VcsPlugins.vcsMercurial.Config.ConfigHgProtocols?7 +eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage.on_configButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage.save?4() +eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.MercurialPage?1(plugin) +eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.HgAnnotateDialog.closeEvent?4(e) +eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.HgAnnotateDialog.keyPressEvent?4(evt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.HgAnnotateDialog.on_buttonBox_clicked?4(button) +eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.HgAnnotateDialog.on_input_returnPressed?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.HgAnnotateDialog.on_passwordCheckBox_toggled?4(isOn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.HgAnnotateDialog.on_sendButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.HgAnnotateDialog.start?4(fn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.HgAnnotateDialog?1(vcs, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.HgCommandDialog.getData?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.HgCommandDialog.on_commandCombo_editTextChanged?4(text) +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.HgCommandDialog?1(argvList, ppath, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.HgCommitDialog.logMessage?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.HgCommitDialog.on_buttonBox_accepted?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.HgCommitDialog.on_buttonBox_clicked?4(button) +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.HgCommitDialog.on_buttonBox_rejected?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.HgCommitDialog.on_recentComboBox_activated?4(txt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.HgCommitDialog.showEvent?4(evt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.HgCommitDialog?1(vcs, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.HgCopyDialog.getData?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.HgCopyDialog.on_dirButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.HgCopyDialog?1(source, parent = None, move = False, force = False) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.hasAddOrDelete?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.keyPressEvent?4(evt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.normalExit?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.normalExitWithoutErrors?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.on_buttonBox_clicked?4(button) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.on_input_returnPressed?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.on_passwordCheckBox_toggled?4(isOn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.on_sendButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog.startProcess?4(args, workingDir = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.HgDialog?1(text, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog.closeEvent?4(e) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog.keyPressEvent?4(evt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog.on_buttonBox_clicked?4(button) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog.on_input_returnPressed?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog.on_passwordCheckBox_toggled?4(isOn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog.on_saveButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog.on_sendButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog.start?4(fn, versions = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.HgDiffDialog?1(vcs, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.closeEvent?4(e) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.keyPressEvent?4(evt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_buttonBox_clicked?4(button) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_clearRxEditButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_diffPreviousButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_diffRevisionsButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_fieldCombo_activated?4(txt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_fromDate_dateChanged?4(date) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_input_returnPressed?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_logTree_currentItemChanged?4(current, previous) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_logTree_itemSelectionChanged?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_nextButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_passwordCheckBox_toggled?4(isOn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_rxEdit_textChanged?4(txt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_sendButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_stopCheckBox_clicked?4(checked) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.on_toDate_dateChanged?4(date) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog.start?4(fn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.HgLogBrowserDialog?1(vcs, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.HgLogDialog.closeEvent?4(e) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.HgLogDialog.keyPressEvent?4(evt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.HgLogDialog.on_input_returnPressed?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.HgLogDialog.on_passwordCheckBox_toggled?4(isOn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.HgLogDialog.on_sendButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.HgLogDialog.start?4(fn, noEntries = 0) +eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.HgLogDialog?1(vcs, mode = "log", parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog.getParameters?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.HgMergeDialog?1(force, tagsList, branchesList, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.HgNewProjectOptionsDialog.getData?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.HgNewProjectOptionsDialog.on_projectDirButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.HgNewProjectOptionsDialog.on_protocolCombo_activated?4(protocol) +eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.HgNewProjectOptionsDialog.on_vcsUrlButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.HgNewProjectOptionsDialog?1(vcs, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.HgOptionsDialog.getData?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.HgOptionsDialog?1(vcs, project, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog.getRevision?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.HgRevisionSelectionDialog?1(tagsList, branchesList, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog.getRevisions?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.HgRevisionsSelectionDialog?1(tagsList, branchesList, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog.closeEvent?4(e) +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog.keyPressEvent?4(evt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog.on_buttonBox_clicked?4(button) +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog.on_input_returnPressed?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog.on_passwordCheckBox_toggled?4(isOn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog.on_refreshButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog.on_sendButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog.start?4(fn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.HgStatusDialog?1(vcs, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.HgStatusMonitorThread._performMonitor?5() +eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.HgStatusMonitorThread?1(interval, projectDir, vcs, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.HgTagBranchListDialog.closeEvent?4(e) +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.HgTagBranchListDialog.keyPressEvent?4(evt) +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.HgTagBranchListDialog.on_buttonBox_clicked?4(button) +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.HgTagBranchListDialog.on_input_returnPressed?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.HgTagBranchListDialog.on_passwordCheckBox_toggled?4(isOn) +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.HgTagBranchListDialog.on_sendButton_clicked?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.HgTagBranchListDialog.start?4(path, tags, tagsList, allTagsList) +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.HgTagBranchListDialog?1(vcs, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.HgTagDialog.CreateBranch?7 +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.HgTagDialog.CreateLocalTag?7 +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.HgTagDialog.CreateRegularTag?7 +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.HgTagDialog.DeleteTag?7 +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.HgTagDialog.getParameters?4() +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.HgTagDialog.on_tagCombo_editTextChanged?4(text) +eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.HgTagDialog?1(taglist, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities.getConfigPath?4() +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper._addVCSMenu?5(mainMenu) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper._addVCSMenuBack?5(mainMenu) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper._addVCSMenuDir?5(mainMenu) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper._addVCSMenuDirMulti?5(mainMenu) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper._addVCSMenuMulti?5(mainMenu) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper.showContextMenu?4(menu, standardItems) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper.showContextMenuDir?4(menu, standardItems) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper.showContextMenuDirMulti?4(menu, standardItems) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper.showContextMenuMulti?4(menu, standardItems) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.HgProjectBrowserHelper?1(vcsObject, browserObject, projectObject, isTranslationsBrowser, parent = None, name = None) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.HgProjectHelper.getActions?4() +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.HgProjectHelper.initActions?4() +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.HgProjectHelper.initMenu?4(menu) +eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.HgProjectHelper?1(vcsObject, projectObject, parent = None, name = None) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg._createStatusMonitorThread?5(interval, project) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.clearStatusCache?4() +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.getPlugin?4() +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgAnnotate?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgBranch?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgCopy?4(name, project) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgExtendedDiff?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgIncoming?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgInfo?4(ppath, mode = "heads") +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgListTagBranch?4(path, tags = True) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgLogBrowser?4(path) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgLogLimited?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgNormalizeURL?4(url) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgOutgoing?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgPull?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgPush?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.hgResolve?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsAdd?4(name, isDir = False, noDialog = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsAddBinary?4(name, isDir = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsAddTree?4(path) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsAllRegisteredStates?4(names, dname, shortcut = True) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsCheckout?4(vcsDataDict, projectDir, noDialog = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsCleanup?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsCommandLine?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsCommit?4(name, message, noDialog = False, closeBranch = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsConvertProject?4(vcsDataDict, project) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsDiff?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsExists?4() +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsExport?4(vcsDataDict, projectDir) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsGetProjectBrowserHelper?4(browser, project, isTranslationsBrowser = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsGetProjectHelper?4(project) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsImport?4(vcsDataDict, projectDir, noDialog = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsInit?4(vcsDir, noDialog = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsLog?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsMerge?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsMove?4(name, project, target = None, noDialog = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsName?4() +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsNewProjectOptionsDialog?4(parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsOptionsDialog?4(project, archive, editable = False, parent = None) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsRegisteredState?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsRemove?4(name, project = False, noDialog = False) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsRepositoryInfos?4(ppath) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsRevert?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsShutdown?4() +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsStatus?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsSwitch?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsTag?4(name) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg.vcsUpdate?4(name, noDialog = False, revision = None) +eric5.Plugins.VcsPlugins.vcsMercurial.hg.Hg?1(plugin, parent=None, name=None) eric5.Plugins.VcsPlugins.vcsPySvn.Config.ConfigSvnProtocols?7 eric5.Plugins.VcsPlugins.vcsPySvn.ConfigurationPage.SubversionPage.SubversionPage.on_configButton_clicked?4() eric5.Plugins.VcsPlugins.vcsPySvn.ConfigurationPage.SubversionPage.SubversionPage.on_serversButton_clicked?4() @@ -4093,6 +4294,7 @@ eric5.Project.ProjectBrowserModel.ProjectBrowserResourceType?7 eric5.Project.ProjectBrowserModel.ProjectBrowserSimpleDirectoryItem.dirName?4() eric5.Project.ProjectBrowserModel.ProjectBrowserSimpleDirectoryItem.lessThan?4(other, column, order) +eric5.Project.ProjectBrowserModel.ProjectBrowserSimpleDirectoryItem.setName?4(dinfo, full = True) eric5.Project.ProjectBrowserModel.ProjectBrowserSimpleDirectoryItem?1(parent, projectType, text, path = "") eric5.Project.ProjectBrowserModel.ProjectBrowserSourceType?7 eric5.Project.ProjectBrowserModel.ProjectBrowserTranslationType?7
--- a/Documentation/Help/source.qhp Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Help/source.qhp Mon Apr 12 18:00:42 2010 +0000 @@ -319,6 +319,33 @@ </section> </section> <section title="eric5.Plugins.VcsPlugins" ref="index-eric5.Plugins.VcsPlugins.html"> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial" ref="index-eric5.Plugins.VcsPlugins.vcsMercurial.html"> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage" ref="index-eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.html"> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html" /> + </section> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.Config" ref="eric5.Plugins.VcsPlugins.vcsMercurial.Config.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html" /> + <section title="eric5.Plugins.VcsPlugins.vcsMercurial.hg" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html" /> + </section> <section title="eric5.Plugins.VcsPlugins.vcsPySvn" ref="index-eric5.Plugins.VcsPlugins.vcsPySvn.html"> <section title="eric5.Plugins.VcsPlugins.vcsPySvn.ConfigurationPage" ref="index-eric5.Plugins.VcsPlugins.vcsPySvn.ConfigurationPage.html"> <section title="eric5.Plugins.VcsPlugins.vcsPySvn.ConfigurationPage.SubversionPage" ref="eric5.Plugins.VcsPlugins.vcsPySvn.ConfigurationPage.SubversionPage.html" /> @@ -432,6 +459,7 @@ <section title="eric5.Plugins.PluginEricdoc" ref="eric5.Plugins.PluginEricdoc.html" /> <section title="eric5.Plugins.PluginSyntaxChecker" ref="eric5.Plugins.PluginSyntaxChecker.html" /> <section title="eric5.Plugins.PluginTabnanny" ref="eric5.Plugins.PluginTabnanny.html" /> + <section title="eric5.Plugins.PluginVcsMercurial" ref="eric5.Plugins.PluginVcsMercurial.html" /> <section title="eric5.Plugins.PluginVcsPySvn" ref="eric5.Plugins.PluginVcsPySvn.html" /> <section title="eric5.Plugins.PluginVcsSubversion" ref="eric5.Plugins.PluginVcsSubversion.html" /> <section title="eric5.Plugins.PluginVmListspace" ref="eric5.Plugins.PluginVmListspace.html" /> @@ -4813,6 +4841,7 @@ <keyword name="ProjectBrowserSimpleDirectoryItem (Constructor)" id="ProjectBrowserSimpleDirectoryItem (Constructor)" ref="eric5.Project.ProjectBrowserModel.html#ProjectBrowserSimpleDirectoryItem.__init__" /> <keyword name="ProjectBrowserSimpleDirectoryItem.dirName" id="ProjectBrowserSimpleDirectoryItem.dirName" ref="eric5.Project.ProjectBrowserModel.html#ProjectBrowserSimpleDirectoryItem.dirName" /> <keyword name="ProjectBrowserSimpleDirectoryItem.lessThan" id="ProjectBrowserSimpleDirectoryItem.lessThan" ref="eric5.Project.ProjectBrowserModel.html#ProjectBrowserSimpleDirectoryItem.lessThan" /> + <keyword name="ProjectBrowserSimpleDirectoryItem.setName" id="ProjectBrowserSimpleDirectoryItem.setName" ref="eric5.Project.ProjectBrowserModel.html#ProjectBrowserSimpleDirectoryItem.setName" /> <keyword name="ProjectInterfacesBrowser (Module)" id="ProjectInterfacesBrowser (Module)" ref="eric5.Project.ProjectInterfacesBrowser.html" /> <keyword name="ProjectInterfacesBrowser" id="ProjectInterfacesBrowser" ref="eric5.Project.ProjectInterfacesBrowser.html#ProjectInterfacesBrowser" /> <keyword name="ProjectInterfacesBrowser (Constructor)" id="ProjectInterfacesBrowser (Constructor)" ref="eric5.Project.ProjectInterfacesBrowser.html#ProjectInterfacesBrowser.__init__" /> @@ -4945,6 +4974,22 @@ <keyword name="VmMdiAreaPlugin (Constructor)" id="VmMdiAreaPlugin (Constructor)" ref="eric5.Plugins.PluginVmMdiArea.html#VmMdiAreaPlugin.__init__" /> <keyword name="VmMdiAreaPlugin.activate" id="VmMdiAreaPlugin.activate" ref="eric5.Plugins.PluginVmMdiArea.html#VmMdiAreaPlugin.activate" /> <keyword name="VmMdiAreaPlugin.deactivate" id="VmMdiAreaPlugin.deactivate" ref="eric5.Plugins.PluginVmMdiArea.html#VmMdiAreaPlugin.deactivate" /> + <keyword name="PluginVcsMercurial (Module)" id="PluginVcsMercurial (Module)" ref="eric5.Plugins.PluginVcsMercurial.html" /> + <keyword name="VcsMercurialPlugin" id="VcsMercurialPlugin" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin" /> + <keyword name="createConfigurationPage" id="createConfigurationPage" ref="eric5.Plugins.PluginVcsMercurial.html#createConfigurationPage" /> + <keyword name="displayString" id="displayString" ref="eric5.Plugins.PluginVcsMercurial.html#displayString" /> + <keyword name="exeDisplayData" id="exeDisplayData" ref="eric5.Plugins.PluginVcsMercurial.html#exeDisplayData" /> + <keyword name="getConfigData" id="getConfigData" ref="eric5.Plugins.PluginVcsMercurial.html#getConfigData" /> + <keyword name="getVcsSystemIndicator" id="getVcsSystemIndicator" ref="eric5.Plugins.PluginVcsMercurial.html#getVcsSystemIndicator" /> + <keyword name="prepareUninstall" id="prepareUninstall" ref="eric5.Plugins.PluginVcsMercurial.html#prepareUninstall" /> + <keyword name="VcsMercurialPlugin (Constructor)" id="VcsMercurialPlugin (Constructor)" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin.__init__" /> + <keyword name="VcsMercurialPlugin.activate" id="VcsMercurialPlugin.activate" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin.activate" /> + <keyword name="VcsMercurialPlugin.deactivate" id="VcsMercurialPlugin.deactivate" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin.deactivate" /> + <keyword name="VcsMercurialPlugin.getConfigPath" id="VcsMercurialPlugin.getConfigPath" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin.getConfigPath" /> + <keyword name="VcsMercurialPlugin.getPreferences" id="VcsMercurialPlugin.getPreferences" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin.getPreferences" /> + <keyword name="VcsMercurialPlugin.getProjectHelper" id="VcsMercurialPlugin.getProjectHelper" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin.getProjectHelper" /> + <keyword name="VcsMercurialPlugin.prepareUninstall" id="VcsMercurialPlugin.prepareUninstall" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin.prepareUninstall" /> + <keyword name="VcsMercurialPlugin.setPreferences" id="VcsMercurialPlugin.setPreferences" ref="eric5.Plugins.PluginVcsMercurial.html#VcsMercurialPlugin.setPreferences" /> <keyword name="PluginWizardQColorDialog (Module)" id="PluginWizardQColorDialog (Module)" ref="eric5.Plugins.PluginWizardQColorDialog.html" /> <keyword name="ColorDialogWizard" id="ColorDialogWizard" ref="eric5.Plugins.PluginWizardQColorDialog.html#ColorDialogWizard" /> <keyword name="ColorDialogWizard (Constructor)" id="ColorDialogWizard (Constructor)" ref="eric5.Plugins.PluginWizardQColorDialog.html#ColorDialogWizard.__init__" /> @@ -7695,6 +7740,294 @@ <keyword name="ViewManagerPlugins (Package)" id="ViewManagerPlugins (Package)" ref="index-eric5.Plugins.ViewManagerPlugins.html" /> <keyword name="WizardPlugins (Package)" id="WizardPlugins (Package)" ref="index-eric5.Plugins.WizardPlugins.html" /> <keyword name="DocumentationPlugins (Package)" id="DocumentationPlugins (Package)" ref="index-eric5.Plugins.DocumentationPlugins.html" /> + <keyword name="vcsMercurial (Package)" id="vcsMercurial (Package)" ref="index-eric5.Plugins.VcsPlugins.vcsMercurial.html" /> + <keyword name="HgCopyDialog (Module)" id="HgCopyDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html" /> + <keyword name="HgCopyDialog" id="HgCopyDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html#HgCopyDialog" /> + <keyword name="HgCopyDialog (Constructor)" id="HgCopyDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html#HgCopyDialog.__init__" /> + <keyword name="HgCopyDialog.getData" id="HgCopyDialog.getData" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html#HgCopyDialog.getData" /> + <keyword name="HgCopyDialog.on_dirButton_clicked" id="HgCopyDialog.on_dirButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html#HgCopyDialog.on_dirButton_clicked" /> + <keyword name="HgStatusMonitorThread (Module)" id="HgStatusMonitorThread (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.html" /> + <keyword name="HgStatusMonitorThread" id="HgStatusMonitorThread" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.html#HgStatusMonitorThread" /> + <keyword name="HgStatusMonitorThread (Constructor)" id="HgStatusMonitorThread (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.html#HgStatusMonitorThread.__init__" /> + <keyword name="HgStatusMonitorThread._performMonitor" id="HgStatusMonitorThread._performMonitor" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.html#HgStatusMonitorThread._performMonitor" /> + <keyword name="HgStatusDialog (Module)" id="HgStatusDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html" /> + <keyword name="HgStatusDialog" id="HgStatusDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog" /> + <keyword name="HgStatusDialog (Constructor)" id="HgStatusDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__init__" /> + <keyword name="HgStatusDialog.__add" id="HgStatusDialog.__add" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__add" /> + <keyword name="HgStatusDialog.__commit" id="HgStatusDialog.__commit" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__commit" /> + <keyword name="HgStatusDialog.__committed" id="HgStatusDialog.__committed" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__committed" /> + <keyword name="HgStatusDialog.__finish" id="HgStatusDialog.__finish" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__finish" /> + <keyword name="HgStatusDialog.__generateItem" id="HgStatusDialog.__generateItem" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__generateItem" /> + <keyword name="HgStatusDialog.__getModifiedItems" id="HgStatusDialog.__getModifiedItems" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__getModifiedItems" /> + <keyword name="HgStatusDialog.__getUnversionedItems" id="HgStatusDialog.__getUnversionedItems" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__getUnversionedItems" /> + <keyword name="HgStatusDialog.__procFinished" id="HgStatusDialog.__procFinished" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__procFinished" /> + <keyword name="HgStatusDialog.__readStderr" id="HgStatusDialog.__readStderr" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__readStderr" /> + <keyword name="HgStatusDialog.__readStdout" id="HgStatusDialog.__readStdout" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__readStdout" /> + <keyword name="HgStatusDialog.__resizeColumns" id="HgStatusDialog.__resizeColumns" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__resizeColumns" /> + <keyword name="HgStatusDialog.__resort" id="HgStatusDialog.__resort" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__resort" /> + <keyword name="HgStatusDialog.__revert" id="HgStatusDialog.__revert" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__revert" /> + <keyword name="HgStatusDialog.__showContextMenu" id="HgStatusDialog.__showContextMenu" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__showContextMenu" /> + <keyword name="HgStatusDialog.closeEvent" id="HgStatusDialog.closeEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.closeEvent" /> + <keyword name="HgStatusDialog.keyPressEvent" id="HgStatusDialog.keyPressEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.keyPressEvent" /> + <keyword name="HgStatusDialog.on_buttonBox_clicked" id="HgStatusDialog.on_buttonBox_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.on_buttonBox_clicked" /> + <keyword name="HgStatusDialog.on_input_returnPressed" id="HgStatusDialog.on_input_returnPressed" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.on_input_returnPressed" /> + <keyword name="HgStatusDialog.on_passwordCheckBox_toggled" id="HgStatusDialog.on_passwordCheckBox_toggled" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.on_passwordCheckBox_toggled" /> + <keyword name="HgStatusDialog.on_refreshButton_clicked" id="HgStatusDialog.on_refreshButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.on_refreshButton_clicked" /> + <keyword name="HgStatusDialog.on_sendButton_clicked" id="HgStatusDialog.on_sendButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.on_sendButton_clicked" /> + <keyword name="HgStatusDialog.start" id="HgStatusDialog.start" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.start" /> + <keyword name="hg (Module)" id="hg (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html" /> + <keyword name="Hg" id="Hg" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg" /> + <keyword name="Hg (Constructor)" id="Hg (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.__init__" /> + <keyword name="Hg.__hgURL" id="Hg.__hgURL" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.__hgURL" /> + <keyword name="Hg.__vcsCommit_Step2" id="Hg.__vcsCommit_Step2" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.__vcsCommit_Step2" /> + <keyword name="Hg._createStatusMonitorThread" id="Hg._createStatusMonitorThread" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg._createStatusMonitorThread" /> + <keyword name="Hg.clearStatusCache" id="Hg.clearStatusCache" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.clearStatusCache" /> + <keyword name="Hg.getPlugin" id="Hg.getPlugin" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.getPlugin" /> + <keyword name="Hg.hgAnnotate" id="Hg.hgAnnotate" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgAnnotate" /> + <keyword name="Hg.hgBranch" id="Hg.hgBranch" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgBranch" /> + <keyword name="Hg.hgCopy" id="Hg.hgCopy" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgCopy" /> + <keyword name="Hg.hgExtendedDiff" id="Hg.hgExtendedDiff" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgExtendedDiff" /> + <keyword name="Hg.hgIncoming" id="Hg.hgIncoming" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgIncoming" /> + <keyword name="Hg.hgInfo" id="Hg.hgInfo" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgInfo" /> + <keyword name="Hg.hgListTagBranch" id="Hg.hgListTagBranch" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgListTagBranch" /> + <keyword name="Hg.hgLogBrowser" id="Hg.hgLogBrowser" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgLogBrowser" /> + <keyword name="Hg.hgLogLimited" id="Hg.hgLogLimited" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgLogLimited" /> + <keyword name="Hg.hgNormalizeURL" id="Hg.hgNormalizeURL" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgNormalizeURL" /> + <keyword name="Hg.hgOutgoing" id="Hg.hgOutgoing" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgOutgoing" /> + <keyword name="Hg.hgPull" id="Hg.hgPull" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgPull" /> + <keyword name="Hg.hgPush" id="Hg.hgPush" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgPush" /> + <keyword name="Hg.hgResolve" id="Hg.hgResolve" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.hgResolve" /> + <keyword name="Hg.vcsAdd" id="Hg.vcsAdd" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsAdd" /> + <keyword name="Hg.vcsAddBinary" id="Hg.vcsAddBinary" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsAddBinary" /> + <keyword name="Hg.vcsAddTree" id="Hg.vcsAddTree" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsAddTree" /> + <keyword name="Hg.vcsAllRegisteredStates" id="Hg.vcsAllRegisteredStates" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsAllRegisteredStates" /> + <keyword name="Hg.vcsCheckout" id="Hg.vcsCheckout" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsCheckout" /> + <keyword name="Hg.vcsCleanup" id="Hg.vcsCleanup" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsCleanup" /> + <keyword name="Hg.vcsCommandLine" id="Hg.vcsCommandLine" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsCommandLine" /> + <keyword name="Hg.vcsCommit" id="Hg.vcsCommit" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsCommit" /> + <keyword name="Hg.vcsConvertProject" id="Hg.vcsConvertProject" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsConvertProject" /> + <keyword name="Hg.vcsDiff" id="Hg.vcsDiff" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsDiff" /> + <keyword name="Hg.vcsExists" id="Hg.vcsExists" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsExists" /> + <keyword name="Hg.vcsExport" id="Hg.vcsExport" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsExport" /> + <keyword name="Hg.vcsGetProjectBrowserHelper" id="Hg.vcsGetProjectBrowserHelper" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsGetProjectBrowserHelper" /> + <keyword name="Hg.vcsGetProjectHelper" id="Hg.vcsGetProjectHelper" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsGetProjectHelper" /> + <keyword name="Hg.vcsImport" id="Hg.vcsImport" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsImport" /> + <keyword name="Hg.vcsInit" id="Hg.vcsInit" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsInit" /> + <keyword name="Hg.vcsLog" id="Hg.vcsLog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsLog" /> + <keyword name="Hg.vcsMerge" id="Hg.vcsMerge" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsMerge" /> + <keyword name="Hg.vcsMove" id="Hg.vcsMove" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsMove" /> + <keyword name="Hg.vcsName" id="Hg.vcsName" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsName" /> + <keyword name="Hg.vcsNewProjectOptionsDialog" id="Hg.vcsNewProjectOptionsDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsNewProjectOptionsDialog" /> + <keyword name="Hg.vcsOptionsDialog" id="Hg.vcsOptionsDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsOptionsDialog" /> + <keyword name="Hg.vcsRegisteredState" id="Hg.vcsRegisteredState" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsRegisteredState" /> + <keyword name="Hg.vcsRemove" id="Hg.vcsRemove" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsRemove" /> + <keyword name="Hg.vcsRepositoryInfos" id="Hg.vcsRepositoryInfos" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsRepositoryInfos" /> + <keyword name="Hg.vcsRevert" id="Hg.vcsRevert" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsRevert" /> + <keyword name="Hg.vcsShutdown" id="Hg.vcsShutdown" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsShutdown" /> + <keyword name="Hg.vcsStatus" id="Hg.vcsStatus" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsStatus" /> + <keyword name="Hg.vcsSwitch" id="Hg.vcsSwitch" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsSwitch" /> + <keyword name="Hg.vcsTag" id="Hg.vcsTag" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsTag" /> + <keyword name="Hg.vcsUpdate" id="Hg.vcsUpdate" ref="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html#Hg.vcsUpdate" /> + <keyword name="HgTagDialog (Module)" id="HgTagDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html" /> + <keyword name="HgTagDialog" id="HgTagDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html#HgTagDialog" /> + <keyword name="HgTagDialog (Constructor)" id="HgTagDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html#HgTagDialog.__init__" /> + <keyword name="HgTagDialog.getParameters" id="HgTagDialog.getParameters" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html#HgTagDialog.getParameters" /> + <keyword name="HgTagDialog.on_tagCombo_editTextChanged" id="HgTagDialog.on_tagCombo_editTextChanged" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html#HgTagDialog.on_tagCombo_editTextChanged" /> + <keyword name="HgCommitDialog (Module)" id="HgCommitDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html" /> + <keyword name="HgCommitDialog" id="HgCommitDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html#HgCommitDialog" /> + <keyword name="HgCommitDialog (Constructor)" id="HgCommitDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html#HgCommitDialog.__init__" /> + <keyword name="HgCommitDialog.logMessage" id="HgCommitDialog.logMessage" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html#HgCommitDialog.logMessage" /> + <keyword name="HgCommitDialog.on_buttonBox_accepted" id="HgCommitDialog.on_buttonBox_accepted" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html#HgCommitDialog.on_buttonBox_accepted" /> + <keyword name="HgCommitDialog.on_buttonBox_clicked" id="HgCommitDialog.on_buttonBox_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html#HgCommitDialog.on_buttonBox_clicked" /> + <keyword name="HgCommitDialog.on_buttonBox_rejected" id="HgCommitDialog.on_buttonBox_rejected" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html#HgCommitDialog.on_buttonBox_rejected" /> + <keyword name="HgCommitDialog.on_recentComboBox_activated" id="HgCommitDialog.on_recentComboBox_activated" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html#HgCommitDialog.on_recentComboBox_activated" /> + <keyword name="HgCommitDialog.showEvent" id="HgCommitDialog.showEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html#HgCommitDialog.showEvent" /> + <keyword name="HgNewProjectOptionsDialog (Module)" id="HgNewProjectOptionsDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html" /> + <keyword name="HgNewProjectOptionsDialog" id="HgNewProjectOptionsDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html#HgNewProjectOptionsDialog" /> + <keyword name="HgNewProjectOptionsDialog (Constructor)" id="HgNewProjectOptionsDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html#HgNewProjectOptionsDialog.__init__" /> + <keyword name="HgNewProjectOptionsDialog.getData" id="HgNewProjectOptionsDialog.getData" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html#HgNewProjectOptionsDialog.getData" /> + <keyword name="HgNewProjectOptionsDialog.on_projectDirButton_clicked" id="HgNewProjectOptionsDialog.on_projectDirButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html#HgNewProjectOptionsDialog.on_projectDirButton_clicked" /> + <keyword name="HgNewProjectOptionsDialog.on_protocolCombo_activated" id="HgNewProjectOptionsDialog.on_protocolCombo_activated" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html#HgNewProjectOptionsDialog.on_protocolCombo_activated" /> + <keyword name="HgNewProjectOptionsDialog.on_vcsUrlButton_clicked" id="HgNewProjectOptionsDialog.on_vcsUrlButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html#HgNewProjectOptionsDialog.on_vcsUrlButton_clicked" /> + <keyword name="ProjectHelper (Module)" id="ProjectHelper (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html" /> + <keyword name="HgProjectHelper" id="HgProjectHelper" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper" /> + <keyword name="HgProjectHelper (Constructor)" id="HgProjectHelper (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__init__" /> + <keyword name="HgProjectHelper.__hgBranch" id="HgProjectHelper.__hgBranch" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgBranch" /> + <keyword name="HgProjectHelper.__hgBranchList" id="HgProjectHelper.__hgBranchList" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgBranchList" /> + <keyword name="HgProjectHelper.__hgCloseBranch" id="HgProjectHelper.__hgCloseBranch" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgCloseBranch" /> + <keyword name="HgProjectHelper.__hgConfigure" id="HgProjectHelper.__hgConfigure" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgConfigure" /> + <keyword name="HgProjectHelper.__hgExtendedDiff" id="HgProjectHelper.__hgExtendedDiff" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgExtendedDiff" /> + <keyword name="HgProjectHelper.__hgHeads" id="HgProjectHelper.__hgHeads" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgHeads" /> + <keyword name="HgProjectHelper.__hgIncoming" id="HgProjectHelper.__hgIncoming" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgIncoming" /> + <keyword name="HgProjectHelper.__hgLogBrowser" id="HgProjectHelper.__hgLogBrowser" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgLogBrowser" /> + <keyword name="HgProjectHelper.__hgLogLimited" id="HgProjectHelper.__hgLogLimited" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgLogLimited" /> + <keyword name="HgProjectHelper.__hgOutgoing" id="HgProjectHelper.__hgOutgoing" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgOutgoing" /> + <keyword name="HgProjectHelper.__hgParents" id="HgProjectHelper.__hgParents" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgParents" /> + <keyword name="HgProjectHelper.__hgPull" id="HgProjectHelper.__hgPull" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgPull" /> + <keyword name="HgProjectHelper.__hgPush" id="HgProjectHelper.__hgPush" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgPush" /> + <keyword name="HgProjectHelper.__hgResolve" id="HgProjectHelper.__hgResolve" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgResolve" /> + <keyword name="HgProjectHelper.__hgTagList" id="HgProjectHelper.__hgTagList" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgTagList" /> + <keyword name="HgProjectHelper.__hgTip" id="HgProjectHelper.__hgTip" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.__hgTip" /> + <keyword name="HgProjectHelper.getActions" id="HgProjectHelper.getActions" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.getActions" /> + <keyword name="HgProjectHelper.initActions" id="HgProjectHelper.initActions" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.initActions" /> + <keyword name="HgProjectHelper.initMenu" id="HgProjectHelper.initMenu" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html#HgProjectHelper.initMenu" /> + <keyword name="HgAnnotateDialog (Module)" id="HgAnnotateDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html" /> + <keyword name="HgAnnotateDialog" id="HgAnnotateDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog" /> + <keyword name="HgAnnotateDialog (Constructor)" id="HgAnnotateDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.__init__" /> + <keyword name="HgAnnotateDialog.__finish" id="HgAnnotateDialog.__finish" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.__finish" /> + <keyword name="HgAnnotateDialog.__generateItem" id="HgAnnotateDialog.__generateItem" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.__generateItem" /> + <keyword name="HgAnnotateDialog.__procFinished" id="HgAnnotateDialog.__procFinished" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.__procFinished" /> + <keyword name="HgAnnotateDialog.__readStderr" id="HgAnnotateDialog.__readStderr" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.__readStderr" /> + <keyword name="HgAnnotateDialog.__readStdout" id="HgAnnotateDialog.__readStdout" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.__readStdout" /> + <keyword name="HgAnnotateDialog.__resizeColumns" id="HgAnnotateDialog.__resizeColumns" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.__resizeColumns" /> + <keyword name="HgAnnotateDialog.closeEvent" id="HgAnnotateDialog.closeEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.closeEvent" /> + <keyword name="HgAnnotateDialog.keyPressEvent" id="HgAnnotateDialog.keyPressEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.keyPressEvent" /> + <keyword name="HgAnnotateDialog.on_buttonBox_clicked" id="HgAnnotateDialog.on_buttonBox_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.on_buttonBox_clicked" /> + <keyword name="HgAnnotateDialog.on_input_returnPressed" id="HgAnnotateDialog.on_input_returnPressed" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.on_input_returnPressed" /> + <keyword name="HgAnnotateDialog.on_passwordCheckBox_toggled" id="HgAnnotateDialog.on_passwordCheckBox_toggled" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.on_passwordCheckBox_toggled" /> + <keyword name="HgAnnotateDialog.on_sendButton_clicked" id="HgAnnotateDialog.on_sendButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.on_sendButton_clicked" /> + <keyword name="HgAnnotateDialog.start" id="HgAnnotateDialog.start" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html#HgAnnotateDialog.start" /> + <keyword name="HgMergeDialog (Module)" id="HgMergeDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html" /> + <keyword name="HgMergeDialog" id="HgMergeDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog" /> + <keyword name="HgMergeDialog (Constructor)" id="HgMergeDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.__init__" /> + <keyword name="HgMergeDialog.getParameters" id="HgMergeDialog.getParameters" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html#HgMergeDialog.getParameters" /> + <keyword name="HgCommandDialog (Module)" id="HgCommandDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html" /> + <keyword name="HgCommandDialog" id="HgCommandDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html#HgCommandDialog" /> + <keyword name="HgCommandDialog (Constructor)" id="HgCommandDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html#HgCommandDialog.__init__" /> + <keyword name="HgCommandDialog.getData" id="HgCommandDialog.getData" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html#HgCommandDialog.getData" /> + <keyword name="HgCommandDialog.on_commandCombo_editTextChanged" id="HgCommandDialog.on_commandCombo_editTextChanged" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html#HgCommandDialog.on_commandCombo_editTextChanged" /> + <keyword name="ProjectBrowserHelper (Module)" id="ProjectBrowserHelper (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html" /> + <keyword name="HgProjectBrowserHelper" id="HgProjectBrowserHelper" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper" /> + <keyword name="HgProjectBrowserHelper (Constructor)" id="HgProjectBrowserHelper (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.__init__" /> + <keyword name="HgProjectBrowserHelper.__HgAnnotate" id="HgProjectBrowserHelper.__HgAnnotate" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.__HgAnnotate" /> + <keyword name="HgProjectBrowserHelper.__HgCopy" id="HgProjectBrowserHelper.__HgCopy" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.__HgCopy" /> + <keyword name="HgProjectBrowserHelper.__HgExtendedDiff" id="HgProjectBrowserHelper.__HgExtendedDiff" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.__HgExtendedDiff" /> + <keyword name="HgProjectBrowserHelper.__HgLogBrowser" id="HgProjectBrowserHelper.__HgLogBrowser" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.__HgLogBrowser" /> + <keyword name="HgProjectBrowserHelper.__HgLogLimited" id="HgProjectBrowserHelper.__HgLogLimited" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.__HgLogLimited" /> + <keyword name="HgProjectBrowserHelper.__HgMove" id="HgProjectBrowserHelper.__HgMove" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.__HgMove" /> + <keyword name="HgProjectBrowserHelper.__HgResolve" id="HgProjectBrowserHelper.__HgResolve" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.__HgResolve" /> + <keyword name="HgProjectBrowserHelper._addVCSMenu" id="HgProjectBrowserHelper._addVCSMenu" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper._addVCSMenu" /> + <keyword name="HgProjectBrowserHelper._addVCSMenuBack" id="HgProjectBrowserHelper._addVCSMenuBack" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper._addVCSMenuBack" /> + <keyword name="HgProjectBrowserHelper._addVCSMenuDir" id="HgProjectBrowserHelper._addVCSMenuDir" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper._addVCSMenuDir" /> + <keyword name="HgProjectBrowserHelper._addVCSMenuDirMulti" id="HgProjectBrowserHelper._addVCSMenuDirMulti" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper._addVCSMenuDirMulti" /> + <keyword name="HgProjectBrowserHelper._addVCSMenuMulti" id="HgProjectBrowserHelper._addVCSMenuMulti" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper._addVCSMenuMulti" /> + <keyword name="HgProjectBrowserHelper.showContextMenu" id="HgProjectBrowserHelper.showContextMenu" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.showContextMenu" /> + <keyword name="HgProjectBrowserHelper.showContextMenuDir" id="HgProjectBrowserHelper.showContextMenuDir" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.showContextMenuDir" /> + <keyword name="HgProjectBrowserHelper.showContextMenuDirMulti" id="HgProjectBrowserHelper.showContextMenuDirMulti" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.showContextMenuDirMulti" /> + <keyword name="HgProjectBrowserHelper.showContextMenuMulti" id="HgProjectBrowserHelper.showContextMenuMulti" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html#HgProjectBrowserHelper.showContextMenuMulti" /> + <keyword name="HgRevisionsSelectionDialog (Module)" id="HgRevisionsSelectionDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html" /> + <keyword name="HgRevisionsSelectionDialog" id="HgRevisionsSelectionDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog" /> + <keyword name="HgRevisionsSelectionDialog (Constructor)" id="HgRevisionsSelectionDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.__init__" /> + <keyword name="HgRevisionsSelectionDialog.__getRevision" id="HgRevisionsSelectionDialog.__getRevision" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.__getRevision" /> + <keyword name="HgRevisionsSelectionDialog.getRevisions" id="HgRevisionsSelectionDialog.getRevisions" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html#HgRevisionsSelectionDialog.getRevisions" /> + <keyword name="HgUtilities (Module)" id="HgUtilities (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities.html" /> + <keyword name="getConfigPath" id="getConfigPath" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities.html#getConfigPath" /> + <keyword name="HgLogDialog (Module)" id="HgLogDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html" /> + <keyword name="HgLogDialog" id="HgLogDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog" /> + <keyword name="HgLogDialog (Constructor)" id="HgLogDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.__init__" /> + <keyword name="HgLogDialog.__procFinished" id="HgLogDialog.__procFinished" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.__procFinished" /> + <keyword name="HgLogDialog.__readStderr" id="HgLogDialog.__readStderr" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.__readStderr" /> + <keyword name="HgLogDialog.__readStdout" id="HgLogDialog.__readStdout" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.__readStdout" /> + <keyword name="HgLogDialog.__sourceChanged" id="HgLogDialog.__sourceChanged" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.__sourceChanged" /> + <keyword name="HgLogDialog.closeEvent" id="HgLogDialog.closeEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.closeEvent" /> + <keyword name="HgLogDialog.keyPressEvent" id="HgLogDialog.keyPressEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.keyPressEvent" /> + <keyword name="HgLogDialog.on_input_returnPressed" id="HgLogDialog.on_input_returnPressed" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.on_input_returnPressed" /> + <keyword name="HgLogDialog.on_passwordCheckBox_toggled" id="HgLogDialog.on_passwordCheckBox_toggled" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.on_passwordCheckBox_toggled" /> + <keyword name="HgLogDialog.on_sendButton_clicked" id="HgLogDialog.on_sendButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.on_sendButton_clicked" /> + <keyword name="HgLogDialog.start" id="HgLogDialog.start" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html#HgLogDialog.start" /> + <keyword name="HgOptionsDialog (Module)" id="HgOptionsDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.html" /> + <keyword name="HgOptionsDialog" id="HgOptionsDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.html#HgOptionsDialog" /> + <keyword name="HgOptionsDialog (Constructor)" id="HgOptionsDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.html#HgOptionsDialog.__init__" /> + <keyword name="HgOptionsDialog.getData" id="HgOptionsDialog.getData" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.html#HgOptionsDialog.getData" /> + <keyword name="HgRevisionSelectionDialog (Module)" id="HgRevisionSelectionDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html" /> + <keyword name="HgRevisionSelectionDialog" id="HgRevisionSelectionDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog" /> + <keyword name="HgRevisionSelectionDialog (Constructor)" id="HgRevisionSelectionDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.__init__" /> + <keyword name="HgRevisionSelectionDialog.getRevision" id="HgRevisionSelectionDialog.getRevision" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html#HgRevisionSelectionDialog.getRevision" /> + <keyword name="Config (Module)" id="Config (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.Config.html" /> + <keyword name="HgDialog (Module)" id="HgDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html" /> + <keyword name="HgDialog" id="HgDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog" /> + <keyword name="HgDialog (Constructor)" id="HgDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.__init__" /> + <keyword name="HgDialog.__finish" id="HgDialog.__finish" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.__finish" /> + <keyword name="HgDialog.__procFinished" id="HgDialog.__procFinished" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.__procFinished" /> + <keyword name="HgDialog.__readStderr" id="HgDialog.__readStderr" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.__readStderr" /> + <keyword name="HgDialog.__readStdout" id="HgDialog.__readStdout" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.__readStdout" /> + <keyword name="HgDialog.hasAddOrDelete" id="HgDialog.hasAddOrDelete" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.hasAddOrDelete" /> + <keyword name="HgDialog.keyPressEvent" id="HgDialog.keyPressEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.keyPressEvent" /> + <keyword name="HgDialog.normalExit" id="HgDialog.normalExit" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.normalExit" /> + <keyword name="HgDialog.normalExitWithoutErrors" id="HgDialog.normalExitWithoutErrors" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.normalExitWithoutErrors" /> + <keyword name="HgDialog.on_buttonBox_clicked" id="HgDialog.on_buttonBox_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.on_buttonBox_clicked" /> + <keyword name="HgDialog.on_input_returnPressed" id="HgDialog.on_input_returnPressed" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.on_input_returnPressed" /> + <keyword name="HgDialog.on_passwordCheckBox_toggled" id="HgDialog.on_passwordCheckBox_toggled" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.on_passwordCheckBox_toggled" /> + <keyword name="HgDialog.on_sendButton_clicked" id="HgDialog.on_sendButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.on_sendButton_clicked" /> + <keyword name="HgDialog.startProcess" id="HgDialog.startProcess" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html#HgDialog.startProcess" /> + <keyword name="HgLogBrowserDialog (Module)" id="HgLogBrowserDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html" /> + <keyword name="HgLogBrowserDialog" id="HgLogBrowserDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog" /> + <keyword name="HgLogBrowserDialog (Constructor)" id="HgLogBrowserDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__init__" /> + <keyword name="HgLogBrowserDialog.__diffRevisions" id="HgLogBrowserDialog.__diffRevisions" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__diffRevisions" /> + <keyword name="HgLogBrowserDialog.__filterLogs" id="HgLogBrowserDialog.__filterLogs" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__filterLogs" /> + <keyword name="HgLogBrowserDialog.__finish" id="HgLogBrowserDialog.__finish" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__finish" /> + <keyword name="HgLogBrowserDialog.__generateFileItem" id="HgLogBrowserDialog.__generateFileItem" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__generateFileItem" /> + <keyword name="HgLogBrowserDialog.__generateLogItem" id="HgLogBrowserDialog.__generateLogItem" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__generateLogItem" /> + <keyword name="HgLogBrowserDialog.__getLogEntries" id="HgLogBrowserDialog.__getLogEntries" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__getLogEntries" /> + <keyword name="HgLogBrowserDialog.__procFinished" id="HgLogBrowserDialog.__procFinished" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__procFinished" /> + <keyword name="HgLogBrowserDialog.__processBuffer" id="HgLogBrowserDialog.__processBuffer" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__processBuffer" /> + <keyword name="HgLogBrowserDialog.__readStderr" id="HgLogBrowserDialog.__readStderr" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__readStderr" /> + <keyword name="HgLogBrowserDialog.__readStdout" id="HgLogBrowserDialog.__readStdout" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__readStdout" /> + <keyword name="HgLogBrowserDialog.__resizeColumnsFiles" id="HgLogBrowserDialog.__resizeColumnsFiles" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__resizeColumnsFiles" /> + <keyword name="HgLogBrowserDialog.__resizeColumnsLog" id="HgLogBrowserDialog.__resizeColumnsLog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__resizeColumnsLog" /> + <keyword name="HgLogBrowserDialog.__resortFiles" id="HgLogBrowserDialog.__resortFiles" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__resortFiles" /> + <keyword name="HgLogBrowserDialog.__resortLog" id="HgLogBrowserDialog.__resortLog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__resortLog" /> + <keyword name="HgLogBrowserDialog.closeEvent" id="HgLogBrowserDialog.closeEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.closeEvent" /> + <keyword name="HgLogBrowserDialog.keyPressEvent" id="HgLogBrowserDialog.keyPressEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.keyPressEvent" /> + <keyword name="HgLogBrowserDialog.on_buttonBox_clicked" id="HgLogBrowserDialog.on_buttonBox_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_buttonBox_clicked" /> + <keyword name="HgLogBrowserDialog.on_clearRxEditButton_clicked" id="HgLogBrowserDialog.on_clearRxEditButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_clearRxEditButton_clicked" /> + <keyword name="HgLogBrowserDialog.on_diffPreviousButton_clicked" id="HgLogBrowserDialog.on_diffPreviousButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_diffPreviousButton_clicked" /> + <keyword name="HgLogBrowserDialog.on_diffRevisionsButton_clicked" id="HgLogBrowserDialog.on_diffRevisionsButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_diffRevisionsButton_clicked" /> + <keyword name="HgLogBrowserDialog.on_fieldCombo_activated" id="HgLogBrowserDialog.on_fieldCombo_activated" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_fieldCombo_activated" /> + <keyword name="HgLogBrowserDialog.on_fromDate_dateChanged" id="HgLogBrowserDialog.on_fromDate_dateChanged" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_fromDate_dateChanged" /> + <keyword name="HgLogBrowserDialog.on_input_returnPressed" id="HgLogBrowserDialog.on_input_returnPressed" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_input_returnPressed" /> + <keyword name="HgLogBrowserDialog.on_logTree_currentItemChanged" id="HgLogBrowserDialog.on_logTree_currentItemChanged" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_logTree_currentItemChanged" /> + <keyword name="HgLogBrowserDialog.on_logTree_itemSelectionChanged" id="HgLogBrowserDialog.on_logTree_itemSelectionChanged" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_logTree_itemSelectionChanged" /> + <keyword name="HgLogBrowserDialog.on_nextButton_clicked" id="HgLogBrowserDialog.on_nextButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_nextButton_clicked" /> + <keyword name="HgLogBrowserDialog.on_passwordCheckBox_toggled" id="HgLogBrowserDialog.on_passwordCheckBox_toggled" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_passwordCheckBox_toggled" /> + <keyword name="HgLogBrowserDialog.on_rxEdit_textChanged" id="HgLogBrowserDialog.on_rxEdit_textChanged" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_rxEdit_textChanged" /> + <keyword name="HgLogBrowserDialog.on_sendButton_clicked" id="HgLogBrowserDialog.on_sendButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_sendButton_clicked" /> + <keyword name="HgLogBrowserDialog.on_stopCheckBox_clicked" id="HgLogBrowserDialog.on_stopCheckBox_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_stopCheckBox_clicked" /> + <keyword name="HgLogBrowserDialog.on_toDate_dateChanged" id="HgLogBrowserDialog.on_toDate_dateChanged" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.on_toDate_dateChanged" /> + <keyword name="HgLogBrowserDialog.start" id="HgLogBrowserDialog.start" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.start" /> + <keyword name="HgTagBranchListDialog (Module)" id="HgTagBranchListDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html" /> + <keyword name="HgTagBranchListDialog" id="HgTagBranchListDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog" /> + <keyword name="HgTagBranchListDialog (Constructor)" id="HgTagBranchListDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.__init__" /> + <keyword name="HgTagBranchListDialog.__finish" id="HgTagBranchListDialog.__finish" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.__finish" /> + <keyword name="HgTagBranchListDialog.__generateItem" id="HgTagBranchListDialog.__generateItem" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.__generateItem" /> + <keyword name="HgTagBranchListDialog.__procFinished" id="HgTagBranchListDialog.__procFinished" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.__procFinished" /> + <keyword name="HgTagBranchListDialog.__readStderr" id="HgTagBranchListDialog.__readStderr" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.__readStderr" /> + <keyword name="HgTagBranchListDialog.__readStdout" id="HgTagBranchListDialog.__readStdout" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.__readStdout" /> + <keyword name="HgTagBranchListDialog.__resizeColumns" id="HgTagBranchListDialog.__resizeColumns" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.__resizeColumns" /> + <keyword name="HgTagBranchListDialog.__resort" id="HgTagBranchListDialog.__resort" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.__resort" /> + <keyword name="HgTagBranchListDialog.closeEvent" id="HgTagBranchListDialog.closeEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.closeEvent" /> + <keyword name="HgTagBranchListDialog.keyPressEvent" id="HgTagBranchListDialog.keyPressEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.keyPressEvent" /> + <keyword name="HgTagBranchListDialog.on_buttonBox_clicked" id="HgTagBranchListDialog.on_buttonBox_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.on_buttonBox_clicked" /> + <keyword name="HgTagBranchListDialog.on_input_returnPressed" id="HgTagBranchListDialog.on_input_returnPressed" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.on_input_returnPressed" /> + <keyword name="HgTagBranchListDialog.on_passwordCheckBox_toggled" id="HgTagBranchListDialog.on_passwordCheckBox_toggled" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.on_passwordCheckBox_toggled" /> + <keyword name="HgTagBranchListDialog.on_sendButton_clicked" id="HgTagBranchListDialog.on_sendButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.on_sendButton_clicked" /> + <keyword name="HgTagBranchListDialog.start" id="HgTagBranchListDialog.start" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html#HgTagBranchListDialog.start" /> + <keyword name="HgDiffDialog (Module)" id="HgDiffDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html" /> + <keyword name="HgDiffDialog" id="HgDiffDialog" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog" /> + <keyword name="HgDiffDialog (Constructor)" id="HgDiffDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.__init__" /> + <keyword name="HgDiffDialog.__appendText" id="HgDiffDialog.__appendText" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.__appendText" /> + <keyword name="HgDiffDialog.__getVersionArg" id="HgDiffDialog.__getVersionArg" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.__getVersionArg" /> + <keyword name="HgDiffDialog.__procFinished" id="HgDiffDialog.__procFinished" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.__procFinished" /> + <keyword name="HgDiffDialog.__readStderr" id="HgDiffDialog.__readStderr" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.__readStderr" /> + <keyword name="HgDiffDialog.__readStdout" id="HgDiffDialog.__readStdout" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.__readStdout" /> + <keyword name="HgDiffDialog.closeEvent" id="HgDiffDialog.closeEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.closeEvent" /> + <keyword name="HgDiffDialog.keyPressEvent" id="HgDiffDialog.keyPressEvent" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.keyPressEvent" /> + <keyword name="HgDiffDialog.on_buttonBox_clicked" id="HgDiffDialog.on_buttonBox_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.on_buttonBox_clicked" /> + <keyword name="HgDiffDialog.on_input_returnPressed" id="HgDiffDialog.on_input_returnPressed" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.on_input_returnPressed" /> + <keyword name="HgDiffDialog.on_passwordCheckBox_toggled" id="HgDiffDialog.on_passwordCheckBox_toggled" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.on_passwordCheckBox_toggled" /> + <keyword name="HgDiffDialog.on_saveButton_clicked" id="HgDiffDialog.on_saveButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.on_saveButton_clicked" /> + <keyword name="HgDiffDialog.on_sendButton_clicked" id="HgDiffDialog.on_sendButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.on_sendButton_clicked" /> + <keyword name="HgDiffDialog.start" id="HgDiffDialog.start" ref="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html#HgDiffDialog.start" /> <keyword name="vcsSubversion (Package)" id="vcsSubversion (Package)" ref="index-eric5.Plugins.VcsPlugins.vcsSubversion.html" /> <keyword name="SvnRelocateDialog (Module)" id="SvnRelocateDialog (Module)" ref="eric5.Plugins.VcsPlugins.vcsSubversion.SvnRelocateDialog.html" /> <keyword name="SvnRelocateDialog" id="SvnRelocateDialog" ref="eric5.Plugins.VcsPlugins.vcsSubversion.SvnRelocateDialog.html#SvnRelocateDialog" /> @@ -8419,6 +8752,12 @@ <keyword name="SvnSwitchDialog (Constructor)" id="SvnSwitchDialog (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsPySvn.SvnSwitchDialog.html#SvnSwitchDialog.__init__" /> <keyword name="SvnSwitchDialog.getParameters" id="SvnSwitchDialog.getParameters" ref="eric5.Plugins.VcsPlugins.vcsPySvn.SvnSwitchDialog.html#SvnSwitchDialog.getParameters" /> <keyword name="SvnConst (Module)" id="SvnConst (Module)" ref="eric5.Plugins.VcsPlugins.vcsPySvn.SvnConst.html" /> + <keyword name="ConfigurationPage (Package)" id="ConfigurationPage (Package)" ref="index-eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.html" /> + <keyword name="MercurialPage (Module)" id="MercurialPage (Module)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html" /> + <keyword name="MercurialPage" id="MercurialPage" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage" /> + <keyword name="MercurialPage (Constructor)" id="MercurialPage (Constructor)" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.__init__" /> + <keyword name="MercurialPage.on_configButton_clicked" id="MercurialPage.on_configButton_clicked" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.on_configButton_clicked" /> + <keyword name="MercurialPage.save" id="MercurialPage.save" ref="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html#MercurialPage.save" /> <keyword name="ConfigurationPage (Package)" id="ConfigurationPage (Package)" ref="index-eric5.Plugins.VcsPlugins.vcsSubversion.ConfigurationPage.html" /> <keyword name="SubversionPage (Module)" id="SubversionPage (Module)" ref="eric5.Plugins.VcsPlugins.vcsSubversion.ConfigurationPage.SubversionPage.html" /> <keyword name="SubversionPage" id="SubversionPage" ref="eric5.Plugins.VcsPlugins.vcsSubversion.ConfigurationPage.SubversionPage.html#SubversionPage" /> @@ -9406,6 +9745,7 @@ <file>eric5.Plugins.PluginEricdoc.html</file> <file>eric5.Plugins.PluginSyntaxChecker.html</file> <file>eric5.Plugins.PluginTabnanny.html</file> + <file>eric5.Plugins.PluginVcsMercurial.html</file> <file>eric5.Plugins.PluginVcsPySvn.html</file> <file>eric5.Plugins.PluginVcsSubversion.html</file> <file>eric5.Plugins.PluginVmListspace.html</file> @@ -9418,6 +9758,29 @@ <file>eric5.Plugins.PluginWizardQInputDialog.html</file> <file>eric5.Plugins.PluginWizardQMessageBox.html</file> <file>eric5.Plugins.PluginWizardQRegExp.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.Config.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html</file> + <file>eric5.Plugins.VcsPlugins.vcsMercurial.hg.html</file> <file>eric5.Plugins.VcsPlugins.vcsPySvn.Config.html</file> <file>eric5.Plugins.VcsPlugins.vcsPySvn.ConfigurationPage.SubversionPage.html</file> <file>eric5.Plugins.VcsPlugins.vcsPySvn.ProjectBrowserHelper.html</file> @@ -9749,6 +10112,8 @@ <file>index-eric5.Plugins.DocumentationPlugins.Ericdoc.html</file> <file>index-eric5.Plugins.DocumentationPlugins.html</file> <file>index-eric5.Plugins.VcsPlugins.html</file> + <file>index-eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.html</file> + <file>index-eric5.Plugins.VcsPlugins.vcsMercurial.html</file> <file>index-eric5.Plugins.VcsPlugins.vcsPySvn.ConfigurationPage.html</file> <file>index-eric5.Plugins.VcsPlugins.vcsPySvn.html</file> <file>index-eric5.Plugins.VcsPlugins.vcsSubversion.ConfigurationPage.html</file>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.PluginVcsMercurial.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,257 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.PluginVcsMercurial</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.PluginVcsMercurial</h1> +<p> +Module implementing the Mercurial version control plugin. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>mercurialCfgPluginObject</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#VcsMercurialPlugin">VcsMercurialPlugin</a></td> +<td>Class implementing the Mercurial version control plugin.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr> +<td><a href="#createConfigurationPage">createConfigurationPage</a></td> +<td>Module function to create the configuration page.</td> +</tr><tr> +<td><a href="#displayString">displayString</a></td> +<td>Public function to get the display string.</td> +</tr><tr> +<td><a href="#exeDisplayData">exeDisplayData</a></td> +<td>Public method to support the display of some executable info.</td> +</tr><tr> +<td><a href="#getConfigData">getConfigData</a></td> +<td>Module function returning data as required by the configuration dialog.</td> +</tr><tr> +<td><a href="#getVcsSystemIndicator">getVcsSystemIndicator</a></td> +<td>Public function to get the indicators for this version control system.</td> +</tr><tr> +<td><a href="#prepareUninstall">prepareUninstall</a></td> +<td>Module function to prepare for an uninstallation.</td> +</tr> +</table> +<hr /><hr /> +<a NAME="VcsMercurialPlugin" ID="VcsMercurialPlugin"></a> +<h2>VcsMercurialPlugin</h2> +<p> + Class implementing the Mercurial version control plugin. +</p> +<h3>Derived from</h3> +object +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#VcsMercurialPlugin.__init__">VcsMercurialPlugin</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#VcsMercurialPlugin.activate">activate</a></td> +<td>Public method to activate this plugin.</td> +</tr><tr> +<td><a href="#VcsMercurialPlugin.deactivate">deactivate</a></td> +<td>Public method to deactivate this plugin.</td> +</tr><tr> +<td><a href="#VcsMercurialPlugin.getConfigPath">getConfigPath</a></td> +<td>Public method to get the filename of the config file.</td> +</tr><tr> +<td><a href="#VcsMercurialPlugin.getPreferences">getPreferences</a></td> +<td>Public method to retrieve the various settings.</td> +</tr><tr> +<td><a href="#VcsMercurialPlugin.getProjectHelper">getProjectHelper</a></td> +<td>Public method to get a reference to the project helper object.</td> +</tr><tr> +<td><a href="#VcsMercurialPlugin.prepareUninstall">prepareUninstall</a></td> +<td>Public method to prepare for an uninstallation.</td> +</tr><tr> +<td><a href="#VcsMercurialPlugin.setPreferences">setPreferences</a></td> +<td>Public method to store the various settings.</td> +</tr> +</table> +<a NAME="VcsMercurialPlugin.__init__" ID="VcsMercurialPlugin.__init__"></a> +<h4>VcsMercurialPlugin (Constructor)</h4> +<b>VcsMercurialPlugin</b>(<i>ui</i>) +<p> + Constructor +</p><dl> +<dt><i>ui</i></dt> +<dd> +reference to the user interface object (UI.UserInterface) +</dd> +</dl><a NAME="VcsMercurialPlugin.activate" ID="VcsMercurialPlugin.activate"></a> +<h4>VcsMercurialPlugin.activate</h4> +<b>activate</b>(<i></i>) +<p> + Public method to activate this plugin. +</p><dl> +<dt>Returns:</dt> +<dd> +tuple of reference to instantiated viewmanager and + activation status (boolean) +</dd> +</dl><a NAME="VcsMercurialPlugin.deactivate" ID="VcsMercurialPlugin.deactivate"></a> +<h4>VcsMercurialPlugin.deactivate</h4> +<b>deactivate</b>(<i></i>) +<p> + Public method to deactivate this plugin. +</p><a NAME="VcsMercurialPlugin.getConfigPath" ID="VcsMercurialPlugin.getConfigPath"></a> +<h4>VcsMercurialPlugin.getConfigPath</h4> +<b>getConfigPath</b>(<i></i>) +<p> + Public method to get the filename of the config file. +</p><dl> +<dt>Returns:</dt> +<dd> +filename of the config file (string) +</dd> +</dl><a NAME="VcsMercurialPlugin.getPreferences" ID="VcsMercurialPlugin.getPreferences"></a> +<h4>VcsMercurialPlugin.getPreferences</h4> +<b>getPreferences</b>(<i>key</i>) +<p> + Public method to retrieve the various settings. +</p><dl> +<dt><i>key</i></dt> +<dd> +the key of the value to get +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +the requested setting +</dd> +</dl><a NAME="VcsMercurialPlugin.getProjectHelper" ID="VcsMercurialPlugin.getProjectHelper"></a> +<h4>VcsMercurialPlugin.getProjectHelper</h4> +<b>getProjectHelper</b>(<i></i>) +<p> + Public method to get a reference to the project helper object. +</p><dl> +<dt>Returns:</dt> +<dd> +reference to the project helper object +</dd> +</dl><a NAME="VcsMercurialPlugin.prepareUninstall" ID="VcsMercurialPlugin.prepareUninstall"></a> +<h4>VcsMercurialPlugin.prepareUninstall</h4> +<b>prepareUninstall</b>(<i></i>) +<p> + Public method to prepare for an uninstallation. +</p><a NAME="VcsMercurialPlugin.setPreferences" ID="VcsMercurialPlugin.setPreferences"></a> +<h4>VcsMercurialPlugin.setPreferences</h4> +<b>setPreferences</b>(<i>key, value</i>) +<p> + Public method to store the various settings. +</p><dl> +<dt><i>key</i></dt> +<dd> +the key of the setting to be set +</dd><dt><i>value</i></dt> +<dd> +the value to be set +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="createConfigurationPage" ID="createConfigurationPage"></a> +<h2>createConfigurationPage</h2> +<b>createConfigurationPage</b>(<i>configDlg</i>) +<p> + Module function to create the configuration page. +</p><dl> +<dt>Returns:</dt> +<dd> +reference to the configuration page +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="displayString" ID="displayString"></a> +<h2>displayString</h2> +<b>displayString</b>(<i></i>) +<p> + Public function to get the display string. +</p><dl> +<dt>Returns:</dt> +<dd> +display string (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="exeDisplayData" ID="exeDisplayData"></a> +<h2>exeDisplayData</h2> +<b>exeDisplayData</b>(<i></i>) +<p> + Public method to support the display of some executable info. +</p><dl> +<dt>Returns:</dt> +<dd> +dictionary containing the data to query the presence of + the executable +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="getConfigData" ID="getConfigData"></a> +<h2>getConfigData</h2> +<b>getConfigData</b>(<i></i>) +<p> + Module function returning data as required by the configuration dialog. +</p><dl> +<dt>Returns:</dt> +<dd> +dictionary with key "zzz_mercurialPage" containing the relevant data +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="getVcsSystemIndicator" ID="getVcsSystemIndicator"></a> +<h2>getVcsSystemIndicator</h2> +<b>getVcsSystemIndicator</b>(<i></i>) +<p> + Public function to get the indicators for this version control system. +</p><dl> +<dt>Returns:</dt> +<dd> +dictionary with indicator as key and a tuple with the vcs name (string) + and vcs display string (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="prepareUninstall" ID="prepareUninstall"></a> +<h2>prepareUninstall</h2> +<b>prepareUninstall</b>(<i></i>) +<p> + Module function to prepare for an uninstallation. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.PluginVcsPySvn.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.PluginVcsPySvn.html Mon Apr 12 18:00:42 2010 +0000 @@ -85,7 +85,7 @@ <td>Public method to get the filename of the config file.</td> </tr><tr> <td><a href="#VcsPySvnPlugin.getPreferences">getPreferences</a></td> -<td>Public method to retrieve the various refactoring settings.</td> +<td>Public method to retrieve the various settings.</td> </tr><tr> <td><a href="#VcsPySvnPlugin.getProjectHelper">getProjectHelper</a></td> <td>Public method to get a reference to the project helper object.</td> @@ -97,7 +97,7 @@ <td>Public method to prepare for an uninstallation.</td> </tr><tr> <td><a href="#VcsPySvnPlugin.setPreferences">setPreferences</a></td> -<td>Public method to store the various refactoring settings.</td> +<td>Public method to store the various settings.</td> </tr> </table> <a NAME="VcsPySvnPlugin.__init__" ID="VcsPySvnPlugin.__init__"></a> @@ -140,7 +140,7 @@ <h4>VcsPySvnPlugin.getPreferences</h4> <b>getPreferences</b>(<i>key</i>) <p> - Public method to retrieve the various refactoring settings. + Public method to retrieve the various settings. </p><dl> <dt><i>key</i></dt> <dd> @@ -183,7 +183,7 @@ <h4>VcsPySvnPlugin.setPreferences</h4> <b>setPreferences</b>(<i>key, value</i>) <p> - Public method to store the various refactoring settings. + Public method to store the various settings. </p><dl> <dt><i>key</i></dt> <dd>
--- a/Documentation/Source/eric5.Plugins.PluginVcsSubversion.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.PluginVcsSubversion.html Mon Apr 12 18:00:42 2010 +0000 @@ -85,7 +85,7 @@ <td>Public method to get the filename of the config file.</td> </tr><tr> <td><a href="#VcsSubversionPlugin.getPreferences">getPreferences</a></td> -<td>Public method to retrieve the various refactoring settings.</td> +<td>Public method to retrieve the various settings.</td> </tr><tr> <td><a href="#VcsSubversionPlugin.getProjectHelper">getProjectHelper</a></td> <td>Public method to get a reference to the project helper object.</td> @@ -97,7 +97,7 @@ <td>Public method to prepare for an uninstallation.</td> </tr><tr> <td><a href="#VcsSubversionPlugin.setPreferences">setPreferences</a></td> -<td>Public method to store the various refactoring settings.</td> +<td>Public method to store the various settings.</td> </tr> </table> <a NAME="VcsSubversionPlugin.__init__" ID="VcsSubversionPlugin.__init__"></a> @@ -140,19 +140,16 @@ <h4>VcsSubversionPlugin.getPreferences</h4> <b>getPreferences</b>(<i>key</i>) <p> - Public method to retrieve the various refactoring settings. + Public method to retrieve the various settings. </p><dl> <dt><i>key</i></dt> <dd> the key of the value to get -</dd><dt><i>prefClass</i></dt> -<dd> -preferences class used as the storage area </dd> </dl><dl> <dt>Returns:</dt> <dd> -the requested refactoring setting +the requested setting </dd> </dl><a NAME="VcsSubversionPlugin.getProjectHelper" ID="VcsSubversionPlugin.getProjectHelper"></a> <h4>VcsSubversionPlugin.getProjectHelper</h4> @@ -183,7 +180,7 @@ <h4>VcsSubversionPlugin.setPreferences</h4> <b>setPreferences</b>(<i>key, value</i>) <p> - Public method to store the various refactoring settings. + Public method to store the various settings. </p><dl> <dt><i>key</i></dt> <dd> @@ -191,9 +188,6 @@ </dd><dt><i>value</i></dt> <dd> the value to be set -</dd><dt><i>prefClass</i></dt> -<dd> -preferences class used as the storage area </dd> </dl> <div align="right"><a href="#top">Up</a></div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.Config.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.Config</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.Config</h1> +<p> +Module defining configuration variables for the Mercurial package +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>ConfigHgProtocols</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage</h1> +<p> +Module implementing the Mercurial configuration page. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#MercurialPage">MercurialPage</a></td> +<td>Class implementing the Mercurial configuration page.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="MercurialPage" ID="MercurialPage"></a> +<h2>MercurialPage</h2> +<p> + Class implementing the Mercurial configuration page. +</p> +<h3>Derived from</h3> +ConfigurationPageBase, Ui_MercurialPage +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#MercurialPage.__init__">MercurialPage</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#MercurialPage.on_configButton_clicked">on_configButton_clicked</a></td> +<td>Private slot to edit the (per user) Mercurial config file.</td> +</tr><tr> +<td><a href="#MercurialPage.save">save</a></td> +<td>Public slot to save the Mercurial configuration.</td> +</tr> +</table> +<a NAME="MercurialPage.__init__" ID="MercurialPage.__init__"></a> +<h4>MercurialPage (Constructor)</h4> +<b>MercurialPage</b>(<i>plugin</i>) +<p> + Constructor +</p><dl> +<dt><i>plugin</i></dt> +<dd> +reference to the plugin object +</dd> +</dl><a NAME="MercurialPage.on_configButton_clicked" ID="MercurialPage.on_configButton_clicked"></a> +<h4>MercurialPage.on_configButton_clicked</h4> +<b>on_configButton_clicked</b>(<i></i>) +<p> + Private slot to edit the (per user) Mercurial config file. +</p><a NAME="MercurialPage.save" ID="MercurialPage.save"></a> +<h4>MercurialPage.save</h4> +<b>save</b>(<i></i>) +<p> + Public slot to save the Mercurial configuration. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,237 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog</h1> +<p> +Module implementing a dialog to show the output of the hg annotate command. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgAnnotateDialog">HgAnnotateDialog</a></td> +<td>Class implementing a dialog to show the output of the hg annotate command.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgAnnotateDialog" ID="HgAnnotateDialog"></a> +<h2>HgAnnotateDialog</h2> +<p> + Class implementing a dialog to show the output of the hg annotate command. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgAnnotateDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgAnnotateDialog.__init__">HgAnnotateDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.__finish">__finish</a></td> +<td>Private slot called when the process finished or the user pressed the button.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.__generateItem">__generateItem</a></td> +<td>Private method to generate a tag item in the taglist.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.__procFinished">__procFinished</a></td> +<td>Private slot connected to the finished signal.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.__readStderr">__readStderr</a></td> +<td>Private slot to handle the readyReadStderr signal.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.__readStdout">__readStdout</a></td> +<td>Private slot to handle the readyReadStdout signal.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.__resizeColumns">__resizeColumns</a></td> +<td>Private method to resize the list columns.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.closeEvent">closeEvent</a></td> +<td>Private slot implementing a close event handler.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.keyPressEvent">keyPressEvent</a></td> +<td>Protected slot to handle a key press event.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> +<td>Private slot called by a button of the button box clicked.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.on_input_returnPressed">on_input_returnPressed</a></td> +<td>Private slot to handle the press of the return key in the input field.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.on_passwordCheckBox_toggled">on_passwordCheckBox_toggled</a></td> +<td>Private slot to handle the password checkbox toggled.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.on_sendButton_clicked">on_sendButton_clicked</a></td> +<td>Private slot to send the input to the subversion process.</td> +</tr><tr> +<td><a href="#HgAnnotateDialog.start">start</a></td> +<td>Public slot to start the annotate command.</td> +</tr> +</table> +<a NAME="HgAnnotateDialog.__init__" ID="HgAnnotateDialog.__init__"></a> +<h4>HgAnnotateDialog (Constructor)</h4> +<b>HgAnnotateDialog</b>(<i>vcs, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgAnnotateDialog.__finish" ID="HgAnnotateDialog.__finish"></a> +<h4>HgAnnotateDialog.__finish</h4> +<b>__finish</b>(<i></i>) +<p> + Private slot called when the process finished or the user pressed the button. +</p><a NAME="HgAnnotateDialog.__generateItem" ID="HgAnnotateDialog.__generateItem"></a> +<h4>HgAnnotateDialog.__generateItem</h4> +<b>__generateItem</b>(<i>revision, changeset, author, date, text</i>) +<p> + Private method to generate a tag item in the taglist. +</p><dl> +<dt><i>revision</i></dt> +<dd> +revision string (string) +</dd><dt><i>changeset</i></dt> +<dd> +changeset string (string) +</dd><dt><i>author</i></dt> +<dd> +author of the change (string) +</dd><dt><i>date</i></dt> +<dd> +date of the tag (string) +</dd><dt><i>name</i></dt> +<dd> +name (path) of the tag (string) +</dd> +</dl><a NAME="HgAnnotateDialog.__procFinished" ID="HgAnnotateDialog.__procFinished"></a> +<h4>HgAnnotateDialog.__procFinished</h4> +<b>__procFinished</b>(<i>exitCode, exitStatus</i>) +<p> + Private slot connected to the finished signal. +</p><dl> +<dt><i>exitCode</i></dt> +<dd> +exit code of the process (integer) +</dd><dt><i>exitStatus</i></dt> +<dd> +exit status of the process (QProcess.ExitStatus) +</dd> +</dl><a NAME="HgAnnotateDialog.__readStderr" ID="HgAnnotateDialog.__readStderr"></a> +<h4>HgAnnotateDialog.__readStderr</h4> +<b>__readStderr</b>(<i></i>) +<p> + Private slot to handle the readyReadStderr signal. +</p><p> + It reads the error output of the process and inserts it into the + error pane. +</p><a NAME="HgAnnotateDialog.__readStdout" ID="HgAnnotateDialog.__readStdout"></a> +<h4>HgAnnotateDialog.__readStdout</h4> +<b>__readStdout</b>(<i></i>) +<p> + Private slot to handle the readyReadStdout signal. +</p><p> + It reads the output of the process, formats it and inserts it into + the annotation list. +</p><a NAME="HgAnnotateDialog.__resizeColumns" ID="HgAnnotateDialog.__resizeColumns"></a> +<h4>HgAnnotateDialog.__resizeColumns</h4> +<b>__resizeColumns</b>(<i></i>) +<p> + Private method to resize the list columns. +</p><a NAME="HgAnnotateDialog.closeEvent" ID="HgAnnotateDialog.closeEvent"></a> +<h4>HgAnnotateDialog.closeEvent</h4> +<b>closeEvent</b>(<i>e</i>) +<p> + Private slot implementing a close event handler. +</p><dl> +<dt><i>e</i></dt> +<dd> +close event (QCloseEvent) +</dd> +</dl><a NAME="HgAnnotateDialog.keyPressEvent" ID="HgAnnotateDialog.keyPressEvent"></a> +<h4>HgAnnotateDialog.keyPressEvent</h4> +<b>keyPressEvent</b>(<i>evt</i>) +<p> + Protected slot to handle a key press event. +</p><dl> +<dt><i>evt</i></dt> +<dd> +the key press event (QKeyEvent) +</dd> +</dl><a NAME="HgAnnotateDialog.on_buttonBox_clicked" ID="HgAnnotateDialog.on_buttonBox_clicked"></a> +<h4>HgAnnotateDialog.on_buttonBox_clicked</h4> +<b>on_buttonBox_clicked</b>(<i>button</i>) +<p> + Private slot called by a button of the button box clicked. +</p><dl> +<dt><i>button</i></dt> +<dd> +button that was clicked (QAbstractButton) +</dd> +</dl><a NAME="HgAnnotateDialog.on_input_returnPressed" ID="HgAnnotateDialog.on_input_returnPressed"></a> +<h4>HgAnnotateDialog.on_input_returnPressed</h4> +<b>on_input_returnPressed</b>(<i></i>) +<p> + Private slot to handle the press of the return key in the input field. +</p><a NAME="HgAnnotateDialog.on_passwordCheckBox_toggled" ID="HgAnnotateDialog.on_passwordCheckBox_toggled"></a> +<h4>HgAnnotateDialog.on_passwordCheckBox_toggled</h4> +<b>on_passwordCheckBox_toggled</b>(<i>isOn</i>) +<p> + Private slot to handle the password checkbox toggled. +</p><dl> +<dt><i>isOn</i></dt> +<dd> +flag indicating the status of the check box (boolean) +</dd> +</dl><a NAME="HgAnnotateDialog.on_sendButton_clicked" ID="HgAnnotateDialog.on_sendButton_clicked"></a> +<h4>HgAnnotateDialog.on_sendButton_clicked</h4> +<b>on_sendButton_clicked</b>(<i></i>) +<p> + Private slot to send the input to the subversion process. +</p><a NAME="HgAnnotateDialog.start" ID="HgAnnotateDialog.start"></a> +<h4>HgAnnotateDialog.start</h4> +<b>start</b>(<i>fn</i>) +<p> + Public slot to start the annotate command. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename to show the log for (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog</h1> +<p> +Module implementing the Mercurial command dialog. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgCommandDialog">HgCommandDialog</a></td> +<td>Class implementing the Mercurial command dialog.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgCommandDialog" ID="HgCommandDialog"></a> +<h2>HgCommandDialog</h2> +<p> + Class implementing the Mercurial command dialog. +</p><p> + It implements a dialog that is used to enter an + arbitrary Mercurial command. It asks the user to enter + the commandline parameters. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgCommandDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgCommandDialog.__init__">HgCommandDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgCommandDialog.getData">getData</a></td> +<td>Public method to retrieve the data entered into this dialog.</td> +</tr><tr> +<td><a href="#HgCommandDialog.on_commandCombo_editTextChanged">on_commandCombo_editTextChanged</a></td> +<td>Private method used to enable/disable the OK-button.</td> +</tr> +</table> +<a NAME="HgCommandDialog.__init__" ID="HgCommandDialog.__init__"></a> +<h4>HgCommandDialog (Constructor)</h4> +<b>HgCommandDialog</b>(<i>argvList, ppath, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>argvList</i></dt> +<dd> +history list of commandline arguments (list of strings) +</dd><dt><i>ppath</i></dt> +<dd> +pathname of the project directory (string) +</dd><dt><i>parent</i></dt> +<dd> +parent widget of this dialog (QWidget) +</dd> +</dl><a NAME="HgCommandDialog.getData" ID="HgCommandDialog.getData"></a> +<h4>HgCommandDialog.getData</h4> +<b>getData</b>(<i></i>) +<p> + Public method to retrieve the data entered into this dialog. +</p><dl> +<dt>Returns:</dt> +<dd> +commandline parameters (string) +</dd> +</dl><a NAME="HgCommandDialog.on_commandCombo_editTextChanged" ID="HgCommandDialog.on_commandCombo_editTextChanged"></a> +<h4>HgCommandDialog.on_commandCombo_editTextChanged</h4> +<b>on_commandCombo_editTextChanged</b>(<i>text</i>) +<p> + Private method used to enable/disable the OK-button. +</p><dl> +<dt><i>text</i></dt> +<dd> +ignored +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog</h1> +<p> +Module implementing a dialog to enter the commit message. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgCommitDialog">HgCommitDialog</a></td> +<td>Class implementing a dialog to enter the commit message.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgCommitDialog" ID="HgCommitDialog"></a> +<h2>HgCommitDialog</h2> +<p> + Class implementing a dialog to enter the commit message. +</p><h4>Signals</h4> +<dl> +<dt>accepted()</dt> +<dd> +emitted, if the dialog was accepted +</dd><dt>rejected()</dt> +<dd> +emitted, if the dialog was rejected +</dd> +</dl> +<h3>Derived from</h3> +QWidget, Ui_HgCommitDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgCommitDialog.__init__">HgCommitDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgCommitDialog.logMessage">logMessage</a></td> +<td>Public method to retrieve the log message.</td> +</tr><tr> +<td><a href="#HgCommitDialog.on_buttonBox_accepted">on_buttonBox_accepted</a></td> +<td>Private slot called by the buttonBox accepted signal.</td> +</tr><tr> +<td><a href="#HgCommitDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> +<td>Private slot called by a button of the button box clicked.</td> +</tr><tr> +<td><a href="#HgCommitDialog.on_buttonBox_rejected">on_buttonBox_rejected</a></td> +<td>Private slot called by the buttonBox rejected signal.</td> +</tr><tr> +<td><a href="#HgCommitDialog.on_recentComboBox_activated">on_recentComboBox_activated</a></td> +<td>Private slot to select a commit message from recent ones.</td> +</tr><tr> +<td><a href="#HgCommitDialog.showEvent">showEvent</a></td> +<td>Public method called when the dialog is about to be shown.</td> +</tr> +</table> +<a NAME="HgCommitDialog.__init__" ID="HgCommitDialog.__init__"></a> +<h4>HgCommitDialog (Constructor)</h4> +<b>HgCommitDialog</b>(<i>vcs, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgCommitDialog.logMessage" ID="HgCommitDialog.logMessage"></a> +<h4>HgCommitDialog.logMessage</h4> +<b>logMessage</b>(<i></i>) +<p> + Public method to retrieve the log message. +</p><dl> +<dt>Returns:</dt> +<dd> +the log message (string) +</dd> +</dl><a NAME="HgCommitDialog.on_buttonBox_accepted" ID="HgCommitDialog.on_buttonBox_accepted"></a> +<h4>HgCommitDialog.on_buttonBox_accepted</h4> +<b>on_buttonBox_accepted</b>(<i></i>) +<p> + Private slot called by the buttonBox accepted signal. +</p><a NAME="HgCommitDialog.on_buttonBox_clicked" ID="HgCommitDialog.on_buttonBox_clicked"></a> +<h4>HgCommitDialog.on_buttonBox_clicked</h4> +<b>on_buttonBox_clicked</b>(<i>button</i>) +<p> + Private slot called by a button of the button box clicked. +</p><dl> +<dt><i>button</i></dt> +<dd> +button that was clicked (QAbstractButton) +</dd> +</dl><a NAME="HgCommitDialog.on_buttonBox_rejected" ID="HgCommitDialog.on_buttonBox_rejected"></a> +<h4>HgCommitDialog.on_buttonBox_rejected</h4> +<b>on_buttonBox_rejected</b>(<i></i>) +<p> + Private slot called by the buttonBox rejected signal. +</p><a NAME="HgCommitDialog.on_recentComboBox_activated" ID="HgCommitDialog.on_recentComboBox_activated"></a> +<h4>HgCommitDialog.on_recentComboBox_activated</h4> +<b>on_recentComboBox_activated</b>(<i>txt</i>) +<p> + Private slot to select a commit message from recent ones. +</p><a NAME="HgCommitDialog.showEvent" ID="HgCommitDialog.showEvent"></a> +<h4>HgCommitDialog.showEvent</h4> +<b>showEvent</b>(<i>evt</i>) +<p> + Public method called when the dialog is about to be shown. +</p><dl> +<dt><i>evt</i></dt> +<dd> +the event (QShowEvent) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog</h1> +<p> +Module implementing a dialog to enter the data for a copy or rename operation. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgCopyDialog">HgCopyDialog</a></td> +<td>Class implementing a dialog to enter the data for a copy or rename operation.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgCopyDialog" ID="HgCopyDialog"></a> +<h2>HgCopyDialog</h2> +<p> + Class implementing a dialog to enter the data for a copy or rename operation. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgCopyDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgCopyDialog.__init__">HgCopyDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgCopyDialog.getData">getData</a></td> +<td>Public method to retrieve the copy data.</td> +</tr><tr> +<td><a href="#HgCopyDialog.on_dirButton_clicked">on_dirButton_clicked</a></td> +<td>Private slot to handle the button press for selecting the target via a selection dialog.</td> +</tr> +</table> +<a NAME="HgCopyDialog.__init__" ID="HgCopyDialog.__init__"></a> +<h4>HgCopyDialog (Constructor)</h4> +<b>HgCopyDialog</b>(<i>source, parent = None, move = False, force = False</i>) +<p> + Constructor +</p><dl> +<dt><i>source</i></dt> +<dd> +name of the source file/directory (string) +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd><dt><i>move</i></dt> +<dd> +flag indicating a move operation +</dd><dt><i>force</i></dt> +<dd> +flag indicating a forced operation (boolean) +</dd> +</dl><a NAME="HgCopyDialog.getData" ID="HgCopyDialog.getData"></a> +<h4>HgCopyDialog.getData</h4> +<b>getData</b>(<i></i>) +<p> + Public method to retrieve the copy data. +</p><dl> +<dt>Returns:</dt> +<dd> +the target name (string) and a flag indicating + the operation should be enforced (boolean) +</dd> +</dl><a NAME="HgCopyDialog.on_dirButton_clicked" ID="HgCopyDialog.on_dirButton_clicked"></a> +<h4>HgCopyDialog.on_dirButton_clicked</h4> +<b>on_dirButton_clicked</b>(<i></i>) +<p> + Private slot to handle the button press for selecting the target via a + selection dialog. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog</h1> +<p> +Module implementing a dialog starting a process and showing its output. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgDialog">HgDialog</a></td> +<td>Class implementing a dialog starting a process and showing its output.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgDialog" ID="HgDialog"></a> +<h2>HgDialog</h2> +<p> + Class implementing a dialog starting a process and showing its output. +</p><p> + It starts a QProcess and displays a dialog that + shows the output of the process. The dialog is modal, + which causes a synchronized execution of the process. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgDialog.__init__">HgDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgDialog.__finish">__finish</a></td> +<td>Private slot called when the process finished or the user pressed the button.</td> +</tr><tr> +<td><a href="#HgDialog.__procFinished">__procFinished</a></td> +<td>Private slot connected to the finished signal.</td> +</tr><tr> +<td><a href="#HgDialog.__readStderr">__readStderr</a></td> +<td>Private slot to handle the readyReadStandardError signal.</td> +</tr><tr> +<td><a href="#HgDialog.__readStdout">__readStdout</a></td> +<td>Private slot to handle the readyReadStandardOutput signal.</td> +</tr><tr> +<td><a href="#HgDialog.hasAddOrDelete">hasAddOrDelete</a></td> +<td>Public method to check, if the last action contained an add or delete.</td> +</tr><tr> +<td><a href="#HgDialog.keyPressEvent">keyPressEvent</a></td> +<td>Protected slot to handle a key press event.</td> +</tr><tr> +<td><a href="#HgDialog.normalExit">normalExit</a></td> +<td>Public method to check for a normal process termination.</td> +</tr><tr> +<td><a href="#HgDialog.normalExitWithoutErrors">normalExitWithoutErrors</a></td> +<td>Public method to check for a normal process termination without error messages.</td> +</tr><tr> +<td><a href="#HgDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> +<td>Private slot called by a button of the button box clicked.</td> +</tr><tr> +<td><a href="#HgDialog.on_input_returnPressed">on_input_returnPressed</a></td> +<td>Private slot to handle the press of the return key in the input field.</td> +</tr><tr> +<td><a href="#HgDialog.on_passwordCheckBox_toggled">on_passwordCheckBox_toggled</a></td> +<td>Private slot to handle the password checkbox toggled.</td> +</tr><tr> +<td><a href="#HgDialog.on_sendButton_clicked">on_sendButton_clicked</a></td> +<td>Private slot to send the input to the subversion process.</td> +</tr><tr> +<td><a href="#HgDialog.startProcess">startProcess</a></td> +<td>Public slot used to start the process.</td> +</tr> +</table> +<a NAME="HgDialog.__init__" ID="HgDialog.__init__"></a> +<h4>HgDialog (Constructor)</h4> +<b>HgDialog</b>(<i>text, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>text</i></dt> +<dd> +text to be shown by the label (string) +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgDialog.__finish" ID="HgDialog.__finish"></a> +<h4>HgDialog.__finish</h4> +<b>__finish</b>(<i></i>) +<p> + Private slot called when the process finished or the user pressed the button. +</p><a NAME="HgDialog.__procFinished" ID="HgDialog.__procFinished"></a> +<h4>HgDialog.__procFinished</h4> +<b>__procFinished</b>(<i>exitCode, exitStatus</i>) +<p> + Private slot connected to the finished signal. +</p><dl> +<dt><i>exitCode</i></dt> +<dd> +exit code of the process (integer) +</dd><dt><i>exitStatus</i></dt> +<dd> +exit status of the process (QProcess.ExitStatus) +</dd> +</dl><a NAME="HgDialog.__readStderr" ID="HgDialog.__readStderr"></a> +<h4>HgDialog.__readStderr</h4> +<b>__readStderr</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardError signal. +</p><p> + It reads the error output of the process and inserts it into the + error pane. +</p><a NAME="HgDialog.__readStdout" ID="HgDialog.__readStdout"></a> +<h4>HgDialog.__readStdout</h4> +<b>__readStdout</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardOutput signal. +</p><p> + It reads the output of the process, formats it and inserts it into + the contents pane. +</p><a NAME="HgDialog.hasAddOrDelete" ID="HgDialog.hasAddOrDelete"></a> +<h4>HgDialog.hasAddOrDelete</h4> +<b>hasAddOrDelete</b>(<i></i>) +<p> + Public method to check, if the last action contained an add or delete. +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating the presence of an add or delete (boolean) +</dd> +</dl><a NAME="HgDialog.keyPressEvent" ID="HgDialog.keyPressEvent"></a> +<h4>HgDialog.keyPressEvent</h4> +<b>keyPressEvent</b>(<i>evt</i>) +<p> + Protected slot to handle a key press event. +</p><dl> +<dt><i>evt</i></dt> +<dd> +the key press event (QKeyEvent) +</dd> +</dl><a NAME="HgDialog.normalExit" ID="HgDialog.normalExit"></a> +<h4>HgDialog.normalExit</h4> +<b>normalExit</b>(<i></i>) +<p> + Public method to check for a normal process termination. +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating normal process termination (boolean) +</dd> +</dl><a NAME="HgDialog.normalExitWithoutErrors" ID="HgDialog.normalExitWithoutErrors"></a> +<h4>HgDialog.normalExitWithoutErrors</h4> +<b>normalExitWithoutErrors</b>(<i></i>) +<p> + Public method to check for a normal process termination without + error messages. +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating normal process termination (boolean) +</dd> +</dl><a NAME="HgDialog.on_buttonBox_clicked" ID="HgDialog.on_buttonBox_clicked"></a> +<h4>HgDialog.on_buttonBox_clicked</h4> +<b>on_buttonBox_clicked</b>(<i>button</i>) +<p> + Private slot called by a button of the button box clicked. +</p><dl> +<dt><i>button</i></dt> +<dd> +button that was clicked (QAbstractButton) +</dd> +</dl><a NAME="HgDialog.on_input_returnPressed" ID="HgDialog.on_input_returnPressed"></a> +<h4>HgDialog.on_input_returnPressed</h4> +<b>on_input_returnPressed</b>(<i></i>) +<p> + Private slot to handle the press of the return key in the input field. +</p><a NAME="HgDialog.on_passwordCheckBox_toggled" ID="HgDialog.on_passwordCheckBox_toggled"></a> +<h4>HgDialog.on_passwordCheckBox_toggled</h4> +<b>on_passwordCheckBox_toggled</b>(<i>isOn</i>) +<p> + Private slot to handle the password checkbox toggled. +</p><dl> +<dt><i>isOn</i></dt> +<dd> +flag indicating the status of the check box (boolean) +</dd> +</dl><a NAME="HgDialog.on_sendButton_clicked" ID="HgDialog.on_sendButton_clicked"></a> +<h4>HgDialog.on_sendButton_clicked</h4> +<b>on_sendButton_clicked</b>(<i></i>) +<p> + Private slot to send the input to the subversion process. +</p><a NAME="HgDialog.startProcess" ID="HgDialog.startProcess"></a> +<h4>HgDialog.startProcess</h4> +<b>startProcess</b>(<i>args, workingDir = None</i>) +<p> + Public slot used to start the process. +</p><dl> +<dt><i>args</i></dt> +<dd> +list of arguments for the process (list of strings) +</dd><dt><i>workingDir</i></dt> +<dd> +working directory for the process (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating a successful start of the process +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog</h1> +<p> +Module implementing a dialog to show the output of the hg diff command process. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgDiffDialog">HgDiffDialog</a></td> +<td>Class implementing a dialog to show the output of the hg diff command process.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgDiffDialog" ID="HgDiffDialog"></a> +<h2>HgDiffDialog</h2> +<p> + Class implementing a dialog to show the output of the hg diff command process. +</p> +<h3>Derived from</h3> +QWidget, Ui_HgDiffDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgDiffDialog.__init__">HgDiffDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgDiffDialog.__appendText">__appendText</a></td> +<td>Private method to append text to the end of the contents pane.</td> +</tr><tr> +<td><a href="#HgDiffDialog.__getVersionArg">__getVersionArg</a></td> +<td>Private method to get a hg revision argument for the given revision.</td> +</tr><tr> +<td><a href="#HgDiffDialog.__procFinished">__procFinished</a></td> +<td>Private slot connected to the finished signal.</td> +</tr><tr> +<td><a href="#HgDiffDialog.__readStderr">__readStderr</a></td> +<td>Private slot to handle the readyReadStandardError signal.</td> +</tr><tr> +<td><a href="#HgDiffDialog.__readStdout">__readStdout</a></td> +<td>Private slot to handle the readyReadStandardOutput signal.</td> +</tr><tr> +<td><a href="#HgDiffDialog.closeEvent">closeEvent</a></td> +<td>Private slot implementing a close event handler.</td> +</tr><tr> +<td><a href="#HgDiffDialog.keyPressEvent">keyPressEvent</a></td> +<td>Protected slot to handle a key press event.</td> +</tr><tr> +<td><a href="#HgDiffDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> +<td>Private slot called by a button of the button box clicked.</td> +</tr><tr> +<td><a href="#HgDiffDialog.on_input_returnPressed">on_input_returnPressed</a></td> +<td>Private slot to handle the press of the return key in the input field.</td> +</tr><tr> +<td><a href="#HgDiffDialog.on_passwordCheckBox_toggled">on_passwordCheckBox_toggled</a></td> +<td>Private slot to handle the password checkbox toggled.</td> +</tr><tr> +<td><a href="#HgDiffDialog.on_saveButton_clicked">on_saveButton_clicked</a></td> +<td>Private slot to handle the Save button press.</td> +</tr><tr> +<td><a href="#HgDiffDialog.on_sendButton_clicked">on_sendButton_clicked</a></td> +<td>Private slot to send the input to the subversion process.</td> +</tr><tr> +<td><a href="#HgDiffDialog.start">start</a></td> +<td>Public slot to start the hg diff command.</td> +</tr> +</table> +<a NAME="HgDiffDialog.__init__" ID="HgDiffDialog.__init__"></a> +<h4>HgDiffDialog (Constructor)</h4> +<b>HgDiffDialog</b>(<i>vcs, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgDiffDialog.__appendText" ID="HgDiffDialog.__appendText"></a> +<h4>HgDiffDialog.__appendText</h4> +<b>__appendText</b>(<i>txt, format</i>) +<p> + Private method to append text to the end of the contents pane. +</p><dl> +<dt><i>txt</i></dt> +<dd> +text to insert (string) +</dd><dt><i>format</i></dt> +<dd> +text format to be used (QTextCharFormat) +</dd> +</dl><a NAME="HgDiffDialog.__getVersionArg" ID="HgDiffDialog.__getVersionArg"></a> +<h4>HgDiffDialog.__getVersionArg</h4> +<b>__getVersionArg</b>(<i>version</i>) +<p> + Private method to get a hg revision argument for the given revision. +</p><dl> +<dt><i>version</i></dt> +<dd> +revision (integer or string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +version argument (string) +</dd> +</dl><a NAME="HgDiffDialog.__procFinished" ID="HgDiffDialog.__procFinished"></a> +<h4>HgDiffDialog.__procFinished</h4> +<b>__procFinished</b>(<i>exitCode, exitStatus</i>) +<p> + Private slot connected to the finished signal. +</p><dl> +<dt><i>exitCode</i></dt> +<dd> +exit code of the process (integer) +</dd><dt><i>exitStatus</i></dt> +<dd> +exit status of the process (QProcess.ExitStatus) +</dd> +</dl><a NAME="HgDiffDialog.__readStderr" ID="HgDiffDialog.__readStderr"></a> +<h4>HgDiffDialog.__readStderr</h4> +<b>__readStderr</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardError signal. +</p><p> + It reads the error output of the process and inserts it into the + error pane. +</p><a NAME="HgDiffDialog.__readStdout" ID="HgDiffDialog.__readStdout"></a> +<h4>HgDiffDialog.__readStdout</h4> +<b>__readStdout</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardOutput signal. +</p><p> + It reads the output of the process, formats it and inserts it into + the contents pane. +</p><a NAME="HgDiffDialog.closeEvent" ID="HgDiffDialog.closeEvent"></a> +<h4>HgDiffDialog.closeEvent</h4> +<b>closeEvent</b>(<i>e</i>) +<p> + Private slot implementing a close event handler. +</p><dl> +<dt><i>e</i></dt> +<dd> +close event (QCloseEvent) +</dd> +</dl><a NAME="HgDiffDialog.keyPressEvent" ID="HgDiffDialog.keyPressEvent"></a> +<h4>HgDiffDialog.keyPressEvent</h4> +<b>keyPressEvent</b>(<i>evt</i>) +<p> + Protected slot to handle a key press event. +</p><dl> +<dt><i>evt</i></dt> +<dd> +the key press event (QKeyEvent) +</dd> +</dl><a NAME="HgDiffDialog.on_buttonBox_clicked" ID="HgDiffDialog.on_buttonBox_clicked"></a> +<h4>HgDiffDialog.on_buttonBox_clicked</h4> +<b>on_buttonBox_clicked</b>(<i>button</i>) +<p> + Private slot called by a button of the button box clicked. +</p><dl> +<dt><i>button</i></dt> +<dd> +button that was clicked (QAbstractButton) +</dd> +</dl><a NAME="HgDiffDialog.on_input_returnPressed" ID="HgDiffDialog.on_input_returnPressed"></a> +<h4>HgDiffDialog.on_input_returnPressed</h4> +<b>on_input_returnPressed</b>(<i></i>) +<p> + Private slot to handle the press of the return key in the input field. +</p><a NAME="HgDiffDialog.on_passwordCheckBox_toggled" ID="HgDiffDialog.on_passwordCheckBox_toggled"></a> +<h4>HgDiffDialog.on_passwordCheckBox_toggled</h4> +<b>on_passwordCheckBox_toggled</b>(<i>isOn</i>) +<p> + Private slot to handle the password checkbox toggled. +</p><dl> +<dt><i>isOn</i></dt> +<dd> +flag indicating the status of the check box (boolean) +</dd> +</dl><a NAME="HgDiffDialog.on_saveButton_clicked" ID="HgDiffDialog.on_saveButton_clicked"></a> +<h4>HgDiffDialog.on_saveButton_clicked</h4> +<b>on_saveButton_clicked</b>(<i></i>) +<p> + Private slot to handle the Save button press. +</p><p> + It saves the diff shown in the dialog to a file in the local + filesystem. +</p><a NAME="HgDiffDialog.on_sendButton_clicked" ID="HgDiffDialog.on_sendButton_clicked"></a> +<h4>HgDiffDialog.on_sendButton_clicked</h4> +<b>on_sendButton_clicked</b>(<i></i>) +<p> + Private slot to send the input to the subversion process. +</p><a NAME="HgDiffDialog.start" ID="HgDiffDialog.start"></a> +<h4>HgDiffDialog.start</h4> +<b>start</b>(<i>fn, versions = None</i>) +<p> + Public slot to start the hg diff command. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename to be diffed (string) +</dd><dt><i>versions</i></dt> +<dd> +list of versions to be diffed (list of up to 2 strings or None) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,448 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog</h1> +<p> +Module implementing a dialog to browse the log history. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgLogBrowserDialog">HgLogBrowserDialog</a></td> +<td>Class implementing a dialog to browse the log history.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgLogBrowserDialog" ID="HgLogBrowserDialog"></a> +<h2>HgLogBrowserDialog</h2> +<p> + Class implementing a dialog to browse the log history. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgLogBrowserDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgLogBrowserDialog.__init__">HgLogBrowserDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__diffRevisions">__diffRevisions</a></td> +<td>Private method to do a diff of two revisions.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__filterLogs">__filterLogs</a></td> +<td>Private method to filter the log entries.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__finish">__finish</a></td> +<td>Private slot called when the process finished or the user pressed the button.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__generateFileItem">__generateFileItem</a></td> +<td>Private method to generate a changed files tree entry.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__generateLogItem">__generateLogItem</a></td> +<td>Private method to generate a log tree entry.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__getLogEntries">__getLogEntries</a></td> +<td>Private method to retrieve log entries from the repository.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__procFinished">__procFinished</a></td> +<td>Private slot connected to the finished signal.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__processBuffer">__processBuffer</a></td> +<td>Private method to process the buffered output of the svn log command.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__readStderr">__readStderr</a></td> +<td>Private slot to handle the readyReadStandardError signal.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__readStdout">__readStdout</a></td> +<td>Private slot to handle the readyReadStandardOutput signal.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__resizeColumnsFiles">__resizeColumnsFiles</a></td> +<td>Private method to resize the changed files tree columns.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__resizeColumnsLog">__resizeColumnsLog</a></td> +<td>Private method to resize the log tree columns.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__resortFiles">__resortFiles</a></td> +<td>Private method to resort the changed files tree.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.__resortLog">__resortLog</a></td> +<td>Private method to resort the log tree.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.closeEvent">closeEvent</a></td> +<td>Private slot implementing a close event handler.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.keyPressEvent">keyPressEvent</a></td> +<td>Protected slot to handle a key press event.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> +<td>Private slot called by a button of the button box clicked.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_clearRxEditButton_clicked">on_clearRxEditButton_clicked</a></td> +<td>Private slot called by a click of the clear RX edit button.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_diffPreviousButton_clicked">on_diffPreviousButton_clicked</a></td> +<td>Private slot to handle the Diff to Previous button.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_diffRevisionsButton_clicked">on_diffRevisionsButton_clicked</a></td> +<td>Private slot to handle the Compare Revisions button.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_fieldCombo_activated">on_fieldCombo_activated</a></td> +<td>Private slot called, when a new filter field is selected.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_fromDate_dateChanged">on_fromDate_dateChanged</a></td> +<td>Private slot called, when the from date changes.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_input_returnPressed">on_input_returnPressed</a></td> +<td>Private slot to handle the press of the return key in the input field.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_logTree_currentItemChanged">on_logTree_currentItemChanged</a></td> +<td>Private slot called, when the current item of the log tree changes.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_logTree_itemSelectionChanged">on_logTree_itemSelectionChanged</a></td> +<td>Private slot called, when the selection has changed.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_nextButton_clicked">on_nextButton_clicked</a></td> +<td>Private slot to handle the Next button.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_passwordCheckBox_toggled">on_passwordCheckBox_toggled</a></td> +<td>Private slot to handle the password checkbox toggled.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_rxEdit_textChanged">on_rxEdit_textChanged</a></td> +<td>Private slot called, when a filter expression is entered.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_sendButton_clicked">on_sendButton_clicked</a></td> +<td>Private slot to send the input to the merurial process.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_stopCheckBox_clicked">on_stopCheckBox_clicked</a></td> +<td>Private slot called, when the stop on copy/move checkbox is clicked</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.on_toDate_dateChanged">on_toDate_dateChanged</a></td> +<td>Private slot called, when the from date changes.</td> +</tr><tr> +<td><a href="#HgLogBrowserDialog.start">start</a></td> +<td>Public slot to start the svn log command.</td> +</tr> +</table> +<a NAME="HgLogBrowserDialog.__init__" ID="HgLogBrowserDialog.__init__"></a> +<h4>HgLogBrowserDialog (Constructor)</h4> +<b>HgLogBrowserDialog</b>(<i>vcs, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgLogBrowserDialog.__diffRevisions" ID="HgLogBrowserDialog.__diffRevisions"></a> +<h4>HgLogBrowserDialog.__diffRevisions</h4> +<b>__diffRevisions</b>(<i>rev1, rev2</i>) +<p> + Private method to do a diff of two revisions. +</p><dl> +<dt><i>rev1</i></dt> +<dd> +first revision number (integer) +</dd><dt><i>rev2</i></dt> +<dd> +second revision number (integer) +</dd> +</dl><a NAME="HgLogBrowserDialog.__filterLogs" ID="HgLogBrowserDialog.__filterLogs"></a> +<h4>HgLogBrowserDialog.__filterLogs</h4> +<b>__filterLogs</b>(<i></i>) +<p> + Private method to filter the log entries. +</p><a NAME="HgLogBrowserDialog.__finish" ID="HgLogBrowserDialog.__finish"></a> +<h4>HgLogBrowserDialog.__finish</h4> +<b>__finish</b>(<i></i>) +<p> + Private slot called when the process finished or the user pressed the button. +</p><a NAME="HgLogBrowserDialog.__generateFileItem" ID="HgLogBrowserDialog.__generateFileItem"></a> +<h4>HgLogBrowserDialog.__generateFileItem</h4> +<b>__generateFileItem</b>(<i>action, path</i>) +<p> + Private method to generate a changed files tree entry. +</p><dl> +<dt><i>action</i></dt> +<dd> +indicator for the change action ("A", "D" or "M") +</dd><dt><i>path</i></dt> +<dd> +path of the file in the repository (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +reference to the generated item (QTreeWidgetItem) +</dd> +</dl><a NAME="HgLogBrowserDialog.__generateLogItem" ID="HgLogBrowserDialog.__generateLogItem"></a> +<h4>HgLogBrowserDialog.__generateLogItem</h4> +<b>__generateLogItem</b>(<i>author, date, message, revision, changedPaths</i>) +<p> + Private method to generate a log tree entry. +</p><dl> +<dt><i>author</i></dt> +<dd> +author info (string) +</dd><dt><i>date</i></dt> +<dd> +date info (string) +</dd><dt><i>message</i></dt> +<dd> +text of the log message (list of strings) +</dd><dt><i>revision</i></dt> +<dd> +revision info (string) +</dd><dt><i>changedPaths</i></dt> +<dd> +list of dictionary objects containing + info about the changed files/directories +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +reference to the generated item (QTreeWidgetItem) +</dd> +</dl><a NAME="HgLogBrowserDialog.__getLogEntries" ID="HgLogBrowserDialog.__getLogEntries"></a> +<h4>HgLogBrowserDialog.__getLogEntries</h4> +<b>__getLogEntries</b>(<i>startRev = None</i>) +<p> + Private method to retrieve log entries from the repository. +</p><dl> +<dt><i>startRev</i></dt> +<dd> +revision number to start from (integer, string) +</dd> +</dl><a NAME="HgLogBrowserDialog.__procFinished" ID="HgLogBrowserDialog.__procFinished"></a> +<h4>HgLogBrowserDialog.__procFinished</h4> +<b>__procFinished</b>(<i>exitCode, exitStatus</i>) +<p> + Private slot connected to the finished signal. +</p><dl> +<dt><i>exitCode</i></dt> +<dd> +exit code of the process (integer) +</dd><dt><i>exitStatus</i></dt> +<dd> +exit status of the process (QProcess.ExitStatus) +</dd> +</dl><a NAME="HgLogBrowserDialog.__processBuffer" ID="HgLogBrowserDialog.__processBuffer"></a> +<h4>HgLogBrowserDialog.__processBuffer</h4> +<b>__processBuffer</b>(<i></i>) +<p> + Private method to process the buffered output of the svn log command. +</p><a NAME="HgLogBrowserDialog.__readStderr" ID="HgLogBrowserDialog.__readStderr"></a> +<h4>HgLogBrowserDialog.__readStderr</h4> +<b>__readStderr</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardError signal. +</p><p> + It reads the error output of the process and inserts it into the + error pane. +</p><a NAME="HgLogBrowserDialog.__readStdout" ID="HgLogBrowserDialog.__readStdout"></a> +<h4>HgLogBrowserDialog.__readStdout</h4> +<b>__readStdout</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardOutput signal. +</p><p> + It reads the output of the process and inserts it into a buffer. +</p><a NAME="HgLogBrowserDialog.__resizeColumnsFiles" ID="HgLogBrowserDialog.__resizeColumnsFiles"></a> +<h4>HgLogBrowserDialog.__resizeColumnsFiles</h4> +<b>__resizeColumnsFiles</b>(<i></i>) +<p> + Private method to resize the changed files tree columns. +</p><a NAME="HgLogBrowserDialog.__resizeColumnsLog" ID="HgLogBrowserDialog.__resizeColumnsLog"></a> +<h4>HgLogBrowserDialog.__resizeColumnsLog</h4> +<b>__resizeColumnsLog</b>(<i></i>) +<p> + Private method to resize the log tree columns. +</p><a NAME="HgLogBrowserDialog.__resortFiles" ID="HgLogBrowserDialog.__resortFiles"></a> +<h4>HgLogBrowserDialog.__resortFiles</h4> +<b>__resortFiles</b>(<i></i>) +<p> + Private method to resort the changed files tree. +</p><a NAME="HgLogBrowserDialog.__resortLog" ID="HgLogBrowserDialog.__resortLog"></a> +<h4>HgLogBrowserDialog.__resortLog</h4> +<b>__resortLog</b>(<i></i>) +<p> + Private method to resort the log tree. +</p><a NAME="HgLogBrowserDialog.closeEvent" ID="HgLogBrowserDialog.closeEvent"></a> +<h4>HgLogBrowserDialog.closeEvent</h4> +<b>closeEvent</b>(<i>e</i>) +<p> + Private slot implementing a close event handler. +</p><dl> +<dt><i>e</i></dt> +<dd> +close event (QCloseEvent) +</dd> +</dl><a NAME="HgLogBrowserDialog.keyPressEvent" ID="HgLogBrowserDialog.keyPressEvent"></a> +<h4>HgLogBrowserDialog.keyPressEvent</h4> +<b>keyPressEvent</b>(<i>evt</i>) +<p> + Protected slot to handle a key press event. +</p><dl> +<dt><i>evt</i></dt> +<dd> +the key press event (QKeyEvent) +</dd> +</dl><a NAME="HgLogBrowserDialog.on_buttonBox_clicked" ID="HgLogBrowserDialog.on_buttonBox_clicked"></a> +<h4>HgLogBrowserDialog.on_buttonBox_clicked</h4> +<b>on_buttonBox_clicked</b>(<i>button</i>) +<p> + Private slot called by a button of the button box clicked. +</p><dl> +<dt><i>button</i></dt> +<dd> +button that was clicked (QAbstractButton) +</dd> +</dl><a NAME="HgLogBrowserDialog.on_clearRxEditButton_clicked" ID="HgLogBrowserDialog.on_clearRxEditButton_clicked"></a> +<h4>HgLogBrowserDialog.on_clearRxEditButton_clicked</h4> +<b>on_clearRxEditButton_clicked</b>(<i></i>) +<p> + Private slot called by a click of the clear RX edit button. +</p><a NAME="HgLogBrowserDialog.on_diffPreviousButton_clicked" ID="HgLogBrowserDialog.on_diffPreviousButton_clicked"></a> +<h4>HgLogBrowserDialog.on_diffPreviousButton_clicked</h4> +<b>on_diffPreviousButton_clicked</b>(<i></i>) +<p> + Private slot to handle the Diff to Previous button. +</p><a NAME="HgLogBrowserDialog.on_diffRevisionsButton_clicked" ID="HgLogBrowserDialog.on_diffRevisionsButton_clicked"></a> +<h4>HgLogBrowserDialog.on_diffRevisionsButton_clicked</h4> +<b>on_diffRevisionsButton_clicked</b>(<i></i>) +<p> + Private slot to handle the Compare Revisions button. +</p><a NAME="HgLogBrowserDialog.on_fieldCombo_activated" ID="HgLogBrowserDialog.on_fieldCombo_activated"></a> +<h4>HgLogBrowserDialog.on_fieldCombo_activated</h4> +<b>on_fieldCombo_activated</b>(<i>txt</i>) +<p> + Private slot called, when a new filter field is selected. +</p><dl> +<dt><i>txt</i></dt> +<dd> +text of the selected field (string) +</dd> +</dl><a NAME="HgLogBrowserDialog.on_fromDate_dateChanged" ID="HgLogBrowserDialog.on_fromDate_dateChanged"></a> +<h4>HgLogBrowserDialog.on_fromDate_dateChanged</h4> +<b>on_fromDate_dateChanged</b>(<i>date</i>) +<p> + Private slot called, when the from date changes. +</p><dl> +<dt><i>date</i></dt> +<dd> +new date (QDate) +</dd> +</dl><a NAME="HgLogBrowserDialog.on_input_returnPressed" ID="HgLogBrowserDialog.on_input_returnPressed"></a> +<h4>HgLogBrowserDialog.on_input_returnPressed</h4> +<b>on_input_returnPressed</b>(<i></i>) +<p> + Private slot to handle the press of the return key in the input field. +</p><a NAME="HgLogBrowserDialog.on_logTree_currentItemChanged" ID="HgLogBrowserDialog.on_logTree_currentItemChanged"></a> +<h4>HgLogBrowserDialog.on_logTree_currentItemChanged</h4> +<b>on_logTree_currentItemChanged</b>(<i>current, previous</i>) +<p> + Private slot called, when the current item of the log tree changes. +</p><dl> +<dt><i>current</i></dt> +<dd> +reference to the new current item (QTreeWidgetItem) +</dd><dt><i>previous</i></dt> +<dd> +reference to the old current item (QTreeWidgetItem) +</dd> +</dl><a NAME="HgLogBrowserDialog.on_logTree_itemSelectionChanged" ID="HgLogBrowserDialog.on_logTree_itemSelectionChanged"></a> +<h4>HgLogBrowserDialog.on_logTree_itemSelectionChanged</h4> +<b>on_logTree_itemSelectionChanged</b>(<i></i>) +<p> + Private slot called, when the selection has changed. +</p><a NAME="HgLogBrowserDialog.on_nextButton_clicked" ID="HgLogBrowserDialog.on_nextButton_clicked"></a> +<h4>HgLogBrowserDialog.on_nextButton_clicked</h4> +<b>on_nextButton_clicked</b>(<i></i>) +<p> + Private slot to handle the Next button. +</p><a NAME="HgLogBrowserDialog.on_passwordCheckBox_toggled" ID="HgLogBrowserDialog.on_passwordCheckBox_toggled"></a> +<h4>HgLogBrowserDialog.on_passwordCheckBox_toggled</h4> +<b>on_passwordCheckBox_toggled</b>(<i>isOn</i>) +<p> + Private slot to handle the password checkbox toggled. +</p><dl> +<dt><i>isOn</i></dt> +<dd> +flag indicating the status of the check box (boolean) +</dd> +</dl><a NAME="HgLogBrowserDialog.on_rxEdit_textChanged" ID="HgLogBrowserDialog.on_rxEdit_textChanged"></a> +<h4>HgLogBrowserDialog.on_rxEdit_textChanged</h4> +<b>on_rxEdit_textChanged</b>(<i>txt</i>) +<p> + Private slot called, when a filter expression is entered. +</p><dl> +<dt><i>txt</i></dt> +<dd> +filter expression (string) +</dd> +</dl><a NAME="HgLogBrowserDialog.on_sendButton_clicked" ID="HgLogBrowserDialog.on_sendButton_clicked"></a> +<h4>HgLogBrowserDialog.on_sendButton_clicked</h4> +<b>on_sendButton_clicked</b>(<i></i>) +<p> + Private slot to send the input to the merurial process. +</p><a NAME="HgLogBrowserDialog.on_stopCheckBox_clicked" ID="HgLogBrowserDialog.on_stopCheckBox_clicked"></a> +<h4>HgLogBrowserDialog.on_stopCheckBox_clicked</h4> +<b>on_stopCheckBox_clicked</b>(<i>checked</i>) +<p> + Private slot called, when the stop on copy/move checkbox is clicked +</p><a NAME="HgLogBrowserDialog.on_toDate_dateChanged" ID="HgLogBrowserDialog.on_toDate_dateChanged"></a> +<h4>HgLogBrowserDialog.on_toDate_dateChanged</h4> +<b>on_toDate_dateChanged</b>(<i>date</i>) +<p> + Private slot called, when the from date changes. +</p><dl> +<dt><i>date</i></dt> +<dd> +new date (QDate) +</dd> +</dl><a NAME="HgLogBrowserDialog.start" ID="HgLogBrowserDialog.start"></a> +<h4>HgLogBrowserDialog.start</h4> +<b>start</b>(<i>fn</i>) +<p> + Public slot to start the svn log command. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename to show the log for (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,204 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog</h1> +<p> +Module implementing a dialog to show the output of the hg log command process. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgLogDialog">HgLogDialog</a></td> +<td>Class implementing a dialog to show the output of the hg log command process.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgLogDialog" ID="HgLogDialog"></a> +<h2>HgLogDialog</h2> +<p> + Class implementing a dialog to show the output of the hg log command process. +</p><p> + The dialog is nonmodal. Clicking a link in the upper text pane shows + a diff of the revisions. +</p> +<h3>Derived from</h3> +QWidget, Ui_HgLogDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgLogDialog.__init__">HgLogDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgLogDialog.__procFinished">__procFinished</a></td> +<td>Private slot connected to the finished signal.</td> +</tr><tr> +<td><a href="#HgLogDialog.__readStderr">__readStderr</a></td> +<td>Private slot to handle the readyReadStandardError signal.</td> +</tr><tr> +<td><a href="#HgLogDialog.__readStdout">__readStdout</a></td> +<td>Private slot to handle the readyReadStandardOutput signal.</td> +</tr><tr> +<td><a href="#HgLogDialog.__sourceChanged">__sourceChanged</a></td> +<td>Private slot to handle the sourceChanged signal of the contents pane.</td> +</tr><tr> +<td><a href="#HgLogDialog.closeEvent">closeEvent</a></td> +<td>Private slot implementing a close event handler.</td> +</tr><tr> +<td><a href="#HgLogDialog.keyPressEvent">keyPressEvent</a></td> +<td>Protected slot to handle a key press event.</td> +</tr><tr> +<td><a href="#HgLogDialog.on_input_returnPressed">on_input_returnPressed</a></td> +<td>Private slot to handle the press of the return key in the input field.</td> +</tr><tr> +<td><a href="#HgLogDialog.on_passwordCheckBox_toggled">on_passwordCheckBox_toggled</a></td> +<td>Private slot to handle the password checkbox toggled.</td> +</tr><tr> +<td><a href="#HgLogDialog.on_sendButton_clicked">on_sendButton_clicked</a></td> +<td>Private slot to send the input to the hg process.</td> +</tr><tr> +<td><a href="#HgLogDialog.start">start</a></td> +<td>Public slot to start the hg log command.</td> +</tr> +</table> +<a NAME="HgLogDialog.__init__" ID="HgLogDialog.__init__"></a> +<h4>HgLogDialog (Constructor)</h4> +<b>HgLogDialog</b>(<i>vcs, mode = "log", parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>mode</i></dt> +<dd> +mode of the dialog (string, one of log, incoming, outgoing) +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgLogDialog.__procFinished" ID="HgLogDialog.__procFinished"></a> +<h4>HgLogDialog.__procFinished</h4> +<b>__procFinished</b>(<i>exitCode, exitStatus</i>) +<p> + Private slot connected to the finished signal. +</p><dl> +<dt><i>exitCode</i></dt> +<dd> +exit code of the process (integer) +</dd><dt><i>exitStatus</i></dt> +<dd> +exit status of the process (QProcess.ExitStatus) +</dd> +</dl><a NAME="HgLogDialog.__readStderr" ID="HgLogDialog.__readStderr"></a> +<h4>HgLogDialog.__readStderr</h4> +<b>__readStderr</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardError signal. +</p><p> + It reads the error output of the process and inserts it into the + error pane. +</p><a NAME="HgLogDialog.__readStdout" ID="HgLogDialog.__readStdout"></a> +<h4>HgLogDialog.__readStdout</h4> +<b>__readStdout</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardOutput signal. +</p><p> + It reads the output of the process and inserts it into a buffer. +</p><a NAME="HgLogDialog.__sourceChanged" ID="HgLogDialog.__sourceChanged"></a> +<h4>HgLogDialog.__sourceChanged</h4> +<b>__sourceChanged</b>(<i>url</i>) +<p> + Private slot to handle the sourceChanged signal of the contents pane. +</p><dl> +<dt><i>url</i></dt> +<dd> +the url that was clicked (QUrl) +</dd> +</dl><a NAME="HgLogDialog.closeEvent" ID="HgLogDialog.closeEvent"></a> +<h4>HgLogDialog.closeEvent</h4> +<b>closeEvent</b>(<i>e</i>) +<p> + Private slot implementing a close event handler. +</p><dl> +<dt><i>e</i></dt> +<dd> +close event (QCloseEvent) +</dd> +</dl><a NAME="HgLogDialog.keyPressEvent" ID="HgLogDialog.keyPressEvent"></a> +<h4>HgLogDialog.keyPressEvent</h4> +<b>keyPressEvent</b>(<i>evt</i>) +<p> + Protected slot to handle a key press event. +</p><dl> +<dt><i>evt</i></dt> +<dd> +the key press event (QKeyEvent) +</dd> +</dl><a NAME="HgLogDialog.on_input_returnPressed" ID="HgLogDialog.on_input_returnPressed"></a> +<h4>HgLogDialog.on_input_returnPressed</h4> +<b>on_input_returnPressed</b>(<i></i>) +<p> + Private slot to handle the press of the return key in the input field. +</p><a NAME="HgLogDialog.on_passwordCheckBox_toggled" ID="HgLogDialog.on_passwordCheckBox_toggled"></a> +<h4>HgLogDialog.on_passwordCheckBox_toggled</h4> +<b>on_passwordCheckBox_toggled</b>(<i>isOn</i>) +<p> + Private slot to handle the password checkbox toggled. +</p><dl> +<dt><i>isOn</i></dt> +<dd> +flag indicating the status of the check box (boolean) +</dd> +</dl><a NAME="HgLogDialog.on_sendButton_clicked" ID="HgLogDialog.on_sendButton_clicked"></a> +<h4>HgLogDialog.on_sendButton_clicked</h4> +<b>on_sendButton_clicked</b>(<i></i>) +<p> + Private slot to send the input to the hg process. +</p><a NAME="HgLogDialog.start" ID="HgLogDialog.start"></a> +<h4>HgLogDialog.start</h4> +<b>start</b>(<i>fn, noEntries = 0</i>) +<p> + Public slot to start the hg log command. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename to show the log for (string) +</dd><dt><i>noEntries</i></dt> +<dd> +number of entries to show (integer) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog</h1> +<p> +Module implementing a dialog to enter the data for a merge operation. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgMergeDialog">HgMergeDialog</a></td> +<td>Class implementing a dialog to enter the data for a merge operation.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgMergeDialog" ID="HgMergeDialog"></a> +<h2>HgMergeDialog</h2> +<p> + Class implementing a dialog to enter the data for a merge operation. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgMergeDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgMergeDialog.__init__">HgMergeDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgMergeDialog.getParameters">getParameters</a></td> +<td>Public method to retrieve the merge data.</td> +</tr> +</table> +<a NAME="HgMergeDialog.__init__" ID="HgMergeDialog.__init__"></a> +<h4>HgMergeDialog (Constructor)</h4> +<b>HgMergeDialog</b>(<i>force, tagsList, branchesList, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>force</i></dt> +<dd> +flag indicating a forced merge (boolean) +</dd><dt><i>tagsList</i></dt> +<dd> +list of tags (list of strings) +</dd><dt><i>branchesList</i></dt> +<dd> +list of branches (list of strings) +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgMergeDialog.getParameters" ID="HgMergeDialog.getParameters"></a> +<h4>HgMergeDialog.getParameters</h4> +<b>getParameters</b>(<i></i>) +<p> + Public method to retrieve the merge data. +</p><dl> +<dt>Returns:</dt> +<dd> +tuple naming the revision and a flag indicating a + forced merge (string, boolean) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog</h1> +<p> +Module implementing the Mercurial Options Dialog for a new project from the repository. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgNewProjectOptionsDialog">HgNewProjectOptionsDialog</a></td> +<td>Class implementing the Options Dialog for a new project from the repository.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgNewProjectOptionsDialog" ID="HgNewProjectOptionsDialog"></a> +<h2>HgNewProjectOptionsDialog</h2> +<p> + Class implementing the Options Dialog for a new project from the repository. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgNewProjectOptionsDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgNewProjectOptionsDialog.__init__">HgNewProjectOptionsDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgNewProjectOptionsDialog.getData">getData</a></td> +<td>Public slot to retrieve the data entered into the dialog.</td> +</tr><tr> +<td><a href="#HgNewProjectOptionsDialog.on_projectDirButton_clicked">on_projectDirButton_clicked</a></td> +<td>Private slot to display a directory selection dialog.</td> +</tr><tr> +<td><a href="#HgNewProjectOptionsDialog.on_protocolCombo_activated">on_protocolCombo_activated</a></td> +<td>Private slot to switch the status of the directory selection button.</td> +</tr><tr> +<td><a href="#HgNewProjectOptionsDialog.on_vcsUrlButton_clicked">on_vcsUrlButton_clicked</a></td> +<td>Private slot to display a selection dialog.</td> +</tr> +</table> +<a NAME="HgNewProjectOptionsDialog.__init__" ID="HgNewProjectOptionsDialog.__init__"></a> +<h4>HgNewProjectOptionsDialog (Constructor)</h4> +<b>HgNewProjectOptionsDialog</b>(<i>vcs, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the version control object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgNewProjectOptionsDialog.getData" ID="HgNewProjectOptionsDialog.getData"></a> +<h4>HgNewProjectOptionsDialog.getData</h4> +<b>getData</b>(<i></i>) +<p> + Public slot to retrieve the data entered into the dialog. +</p><dl> +<dt>Returns:</dt> +<dd> +a tuple of a string (project directory) and a dictionary + containing the data entered. +</dd> +</dl><a NAME="HgNewProjectOptionsDialog.on_projectDirButton_clicked" ID="HgNewProjectOptionsDialog.on_projectDirButton_clicked"></a> +<h4>HgNewProjectOptionsDialog.on_projectDirButton_clicked</h4> +<b>on_projectDirButton_clicked</b>(<i></i>) +<p> + Private slot to display a directory selection dialog. +</p><a NAME="HgNewProjectOptionsDialog.on_protocolCombo_activated" ID="HgNewProjectOptionsDialog.on_protocolCombo_activated"></a> +<h4>HgNewProjectOptionsDialog.on_protocolCombo_activated</h4> +<b>on_protocolCombo_activated</b>(<i>protocol</i>) +<p> + Private slot to switch the status of the directory selection button. +</p><dl> +<dt><i>protocol</i></dt> +<dd> +name of the selected protocol (string) +</dd> +</dl><a NAME="HgNewProjectOptionsDialog.on_vcsUrlButton_clicked" ID="HgNewProjectOptionsDialog.on_vcsUrlButton_clicked"></a> +<h4>HgNewProjectOptionsDialog.on_vcsUrlButton_clicked</h4> +<b>on_vcsUrlButton_clicked</b>(<i></i>) +<p> + Private slot to display a selection dialog. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog</h1> +<p> +Module implementing a dialog to enter options used to start a project in the VCS. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgOptionsDialog">HgOptionsDialog</a></td> +<td>Class implementing a dialog to enter options used to start a project in the repository.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgOptionsDialog" ID="HgOptionsDialog"></a> +<h2>HgOptionsDialog</h2> +<p> + Class implementing a dialog to enter options used to start a project in the + repository. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgOptionsDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgOptionsDialog.__init__">HgOptionsDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgOptionsDialog.getData">getData</a></td> +<td>Public slot to retrieve the data entered into the dialog.</td> +</tr> +</table> +<a NAME="HgOptionsDialog.__init__" ID="HgOptionsDialog.__init__"></a> +<h4>HgOptionsDialog (Constructor)</h4> +<b>HgOptionsDialog</b>(<i>vcs, project, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the version control object +</dd><dt><i>project</i></dt> +<dd> +reference to the project object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgOptionsDialog.getData" ID="HgOptionsDialog.getData"></a> +<h4>HgOptionsDialog.getData</h4> +<b>getData</b>(<i></i>) +<p> + Public slot to retrieve the data entered into the dialog. +</p><dl> +<dt>Returns:</dt> +<dd> +a dictionary containing the data entered +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog</h1> +<p> +Module implementing a dialog to select a revision. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgRevisionSelectionDialog">HgRevisionSelectionDialog</a></td> +<td>Class implementing a dialog to select a revision.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgRevisionSelectionDialog" ID="HgRevisionSelectionDialog"></a> +<h2>HgRevisionSelectionDialog</h2> +<p> + Class implementing a dialog to select a revision. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgRevisionSelectionDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgRevisionSelectionDialog.__init__">HgRevisionSelectionDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgRevisionSelectionDialog.getRevision">getRevision</a></td> +<td>Public method to retrieve the selected revision.</td> +</tr> +</table> +<a NAME="HgRevisionSelectionDialog.__init__" ID="HgRevisionSelectionDialog.__init__"></a> +<h4>HgRevisionSelectionDialog (Constructor)</h4> +<b>HgRevisionSelectionDialog</b>(<i>tagsList, branchesList, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>tagsList</i></dt> +<dd> +list of tags (list of strings) +</dd><dt><i>branchesList</i></dt> +<dd> +list of branches (list of strings) +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgRevisionSelectionDialog.getRevision" ID="HgRevisionSelectionDialog.getRevision"></a> +<h4>HgRevisionSelectionDialog.getRevision</h4> +<b>getRevision</b>(<i></i>) +<p> + Public method to retrieve the selected revision. +</p><dl> +<dt>Returns:</dt> +<dd> +tuple naming the revision and a flag indicating a + forced merge (string, boolean) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog</h1> +<p> +Module implementing a dialog to enter the revisions for the hg diff command. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgRevisionsSelectionDialog">HgRevisionsSelectionDialog</a></td> +<td>Class implementing a dialog to enter the revisions for the hg diff command.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgRevisionsSelectionDialog" ID="HgRevisionsSelectionDialog"></a> +<h2>HgRevisionsSelectionDialog</h2> +<p> + Class implementing a dialog to enter the revisions for the hg diff command. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgRevisionsSelectionDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgRevisionsSelectionDialog.__init__">HgRevisionsSelectionDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgRevisionsSelectionDialog.__getRevision">__getRevision</a></td> +<td>Private method to generate the revision.</td> +</tr><tr> +<td><a href="#HgRevisionsSelectionDialog.getRevisions">getRevisions</a></td> +<td>Public method to get the revisions.</td> +</tr> +</table> +<a NAME="HgRevisionsSelectionDialog.__init__" ID="HgRevisionsSelectionDialog.__init__"></a> +<h4>HgRevisionsSelectionDialog (Constructor)</h4> +<b>HgRevisionsSelectionDialog</b>(<i>tagsList, branchesList, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>tagsList</i></dt> +<dd> +list of tags (list of strings) +</dd><dt><i>branchesList</i></dt> +<dd> +list of branches (list of strings) +</dd><dt><i>parent</i></dt> +<dd> +parent widget of the dialog (QWidget) +</dd> +</dl><a NAME="HgRevisionsSelectionDialog.__getRevision" ID="HgRevisionsSelectionDialog.__getRevision"></a> +<h4>HgRevisionsSelectionDialog.__getRevision</h4> +<b>__getRevision</b>(<i>no</i>) +<p> + Private method to generate the revision. +</p><dl> +<dt><i>no</i></dt> +<dd> +revision number to generate (1 or 2) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +revision (string) +</dd> +</dl><a NAME="HgRevisionsSelectionDialog.getRevisions" ID="HgRevisionsSelectionDialog.getRevisions"></a> +<h4>HgRevisionsSelectionDialog.getRevisions</h4> +<b>getRevisions</b>(<i></i>) +<p> + Public method to get the revisions. +</p><dl> +<dt>Returns:</dt> +<dd> +list two strings +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,316 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog</h1> +<p> +Module implementing a dialog to show the output of the hg status command process. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgStatusDialog">HgStatusDialog</a></td> +<td>Class implementing a dialog to show the output of the hg status command process.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgStatusDialog" ID="HgStatusDialog"></a> +<h2>HgStatusDialog</h2> +<p> + Class implementing a dialog to show the output of the hg status command process. +</p> +<h3>Derived from</h3> +QWidget, Ui_HgStatusDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgStatusDialog.__init__">HgStatusDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgStatusDialog.__add">__add</a></td> +<td>Private slot to handle the Add context menu entry.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__commit">__commit</a></td> +<td>Private slot to handle the Commit context menu entry.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__committed">__committed</a></td> +<td>Private slot called after the commit has finished.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__finish">__finish</a></td> +<td>Private slot called when the process finished or the user pressed the button.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__generateItem">__generateItem</a></td> +<td>Private method to generate a status item in the status list.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__getModifiedItems">__getModifiedItems</a></td> +<td>Private method to retrieve all entries, that have a modified status.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__getUnversionedItems">__getUnversionedItems</a></td> +<td>Private method to retrieve all entries, that have an unversioned status.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__procFinished">__procFinished</a></td> +<td>Private slot connected to the finished signal.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__readStderr">__readStderr</a></td> +<td>Private slot to handle the readyReadStandardError signal.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__readStdout">__readStdout</a></td> +<td>Private slot to handle the readyReadStandardOutput signal.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__resizeColumns">__resizeColumns</a></td> +<td>Private method to resize the list columns.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__resort">__resort</a></td> +<td>Private method to resort the tree.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__revert">__revert</a></td> +<td>Private slot to handle the Revert context menu entry.</td> +</tr><tr> +<td><a href="#HgStatusDialog.__showContextMenu">__showContextMenu</a></td> +<td>Protected slot to show the context menu of the status list.</td> +</tr><tr> +<td><a href="#HgStatusDialog.closeEvent">closeEvent</a></td> +<td>Private slot implementing a close event handler.</td> +</tr><tr> +<td><a href="#HgStatusDialog.keyPressEvent">keyPressEvent</a></td> +<td>Protected slot to handle a key press event.</td> +</tr><tr> +<td><a href="#HgStatusDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> +<td>Private slot called by a button of the button box clicked.</td> +</tr><tr> +<td><a href="#HgStatusDialog.on_input_returnPressed">on_input_returnPressed</a></td> +<td>Private slot to handle the press of the return key in the input field.</td> +</tr><tr> +<td><a href="#HgStatusDialog.on_passwordCheckBox_toggled">on_passwordCheckBox_toggled</a></td> +<td>Private slot to handle the password checkbox toggled.</td> +</tr><tr> +<td><a href="#HgStatusDialog.on_refreshButton_clicked">on_refreshButton_clicked</a></td> +<td>Private slot to refresh the status display.</td> +</tr><tr> +<td><a href="#HgStatusDialog.on_sendButton_clicked">on_sendButton_clicked</a></td> +<td>Private slot to send the input to the subversion process.</td> +</tr><tr> +<td><a href="#HgStatusDialog.start">start</a></td> +<td>Public slot to start the svn status command.</td> +</tr> +</table> +<a NAME="HgStatusDialog.__init__" ID="HgStatusDialog.__init__"></a> +<h4>HgStatusDialog (Constructor)</h4> +<b>HgStatusDialog</b>(<i>vcs, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgStatusDialog.__add" ID="HgStatusDialog.__add"></a> +<h4>HgStatusDialog.__add</h4> +<b>__add</b>(<i></i>) +<p> + Private slot to handle the Add context menu entry. +</p><a NAME="HgStatusDialog.__commit" ID="HgStatusDialog.__commit"></a> +<h4>HgStatusDialog.__commit</h4> +<b>__commit</b>(<i></i>) +<p> + Private slot to handle the Commit context menu entry. +</p><a NAME="HgStatusDialog.__committed" ID="HgStatusDialog.__committed"></a> +<h4>HgStatusDialog.__committed</h4> +<b>__committed</b>(<i></i>) +<p> + Private slot called after the commit has finished. +</p><a NAME="HgStatusDialog.__finish" ID="HgStatusDialog.__finish"></a> +<h4>HgStatusDialog.__finish</h4> +<b>__finish</b>(<i></i>) +<p> + Private slot called when the process finished or the user pressed the button. +</p><a NAME="HgStatusDialog.__generateItem" ID="HgStatusDialog.__generateItem"></a> +<h4>HgStatusDialog.__generateItem</h4> +<b>__generateItem</b>(<i>status, path</i>) +<p> + Private method to generate a status item in the status list. +</p><dl> +<dt><i>status</i></dt> +<dd> +status indicator (string) +</dd><dt><i>path</i></dt> +<dd> +path of the file or directory (string) +</dd> +</dl><a NAME="HgStatusDialog.__getModifiedItems" ID="HgStatusDialog.__getModifiedItems"></a> +<h4>HgStatusDialog.__getModifiedItems</h4> +<b>__getModifiedItems</b>(<i></i>) +<p> + Private method to retrieve all entries, that have a modified status. +</p><dl> +<dt>Returns:</dt> +<dd> +list of all items with a modified status +</dd> +</dl><a NAME="HgStatusDialog.__getUnversionedItems" ID="HgStatusDialog.__getUnversionedItems"></a> +<h4>HgStatusDialog.__getUnversionedItems</h4> +<b>__getUnversionedItems</b>(<i></i>) +<p> + Private method to retrieve all entries, that have an unversioned status. +</p><dl> +<dt>Returns:</dt> +<dd> +list of all items with an unversioned status +</dd> +</dl><a NAME="HgStatusDialog.__procFinished" ID="HgStatusDialog.__procFinished"></a> +<h4>HgStatusDialog.__procFinished</h4> +<b>__procFinished</b>(<i>exitCode, exitStatus</i>) +<p> + Private slot connected to the finished signal. +</p><dl> +<dt><i>exitCode</i></dt> +<dd> +exit code of the process (integer) +</dd><dt><i>exitStatus</i></dt> +<dd> +exit status of the process (QProcess.ExitStatus) +</dd> +</dl><a NAME="HgStatusDialog.__readStderr" ID="HgStatusDialog.__readStderr"></a> +<h4>HgStatusDialog.__readStderr</h4> +<b>__readStderr</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardError signal. +</p><p> + It reads the error output of the process and inserts it into the + error pane. +</p><a NAME="HgStatusDialog.__readStdout" ID="HgStatusDialog.__readStdout"></a> +<h4>HgStatusDialog.__readStdout</h4> +<b>__readStdout</b>(<i></i>) +<p> + Private slot to handle the readyReadStandardOutput signal. +</p><p> + It reads the output of the process, formats it and inserts it into + the contents pane. +</p><a NAME="HgStatusDialog.__resizeColumns" ID="HgStatusDialog.__resizeColumns"></a> +<h4>HgStatusDialog.__resizeColumns</h4> +<b>__resizeColumns</b>(<i></i>) +<p> + Private method to resize the list columns. +</p><a NAME="HgStatusDialog.__resort" ID="HgStatusDialog.__resort"></a> +<h4>HgStatusDialog.__resort</h4> +<b>__resort</b>(<i></i>) +<p> + Private method to resort the tree. +</p><a NAME="HgStatusDialog.__revert" ID="HgStatusDialog.__revert"></a> +<h4>HgStatusDialog.__revert</h4> +<b>__revert</b>(<i></i>) +<p> + Private slot to handle the Revert context menu entry. +</p><a NAME="HgStatusDialog.__showContextMenu" ID="HgStatusDialog.__showContextMenu"></a> +<h4>HgStatusDialog.__showContextMenu</h4> +<b>__showContextMenu</b>(<i>coord</i>) +<p> + Protected slot to show the context menu of the status list. +</p><dl> +<dt><i>coord</i></dt> +<dd> +the position of the mouse pointer (QPoint) +</dd> +</dl><a NAME="HgStatusDialog.closeEvent" ID="HgStatusDialog.closeEvent"></a> +<h4>HgStatusDialog.closeEvent</h4> +<b>closeEvent</b>(<i>e</i>) +<p> + Private slot implementing a close event handler. +</p><dl> +<dt><i>e</i></dt> +<dd> +close event (QCloseEvent) +</dd> +</dl><a NAME="HgStatusDialog.keyPressEvent" ID="HgStatusDialog.keyPressEvent"></a> +<h4>HgStatusDialog.keyPressEvent</h4> +<b>keyPressEvent</b>(<i>evt</i>) +<p> + Protected slot to handle a key press event. +</p><dl> +<dt><i>evt</i></dt> +<dd> +the key press event (QKeyEvent) +</dd> +</dl><a NAME="HgStatusDialog.on_buttonBox_clicked" ID="HgStatusDialog.on_buttonBox_clicked"></a> +<h4>HgStatusDialog.on_buttonBox_clicked</h4> +<b>on_buttonBox_clicked</b>(<i>button</i>) +<p> + Private slot called by a button of the button box clicked. +</p><dl> +<dt><i>button</i></dt> +<dd> +button that was clicked (QAbstractButton) +</dd> +</dl><a NAME="HgStatusDialog.on_input_returnPressed" ID="HgStatusDialog.on_input_returnPressed"></a> +<h4>HgStatusDialog.on_input_returnPressed</h4> +<b>on_input_returnPressed</b>(<i></i>) +<p> + Private slot to handle the press of the return key in the input field. +</p><a NAME="HgStatusDialog.on_passwordCheckBox_toggled" ID="HgStatusDialog.on_passwordCheckBox_toggled"></a> +<h4>HgStatusDialog.on_passwordCheckBox_toggled</h4> +<b>on_passwordCheckBox_toggled</b>(<i>isOn</i>) +<p> + Private slot to handle the password checkbox toggled. +</p><dl> +<dt><i>isOn</i></dt> +<dd> +flag indicating the status of the check box (boolean) +</dd> +</dl><a NAME="HgStatusDialog.on_refreshButton_clicked" ID="HgStatusDialog.on_refreshButton_clicked"></a> +<h4>HgStatusDialog.on_refreshButton_clicked</h4> +<b>on_refreshButton_clicked</b>(<i></i>) +<p> + Private slot to refresh the status display. +</p><a NAME="HgStatusDialog.on_sendButton_clicked" ID="HgStatusDialog.on_sendButton_clicked"></a> +<h4>HgStatusDialog.on_sendButton_clicked</h4> +<b>on_sendButton_clicked</b>(<i></i>) +<p> + Private slot to send the input to the subversion process. +</p><a NAME="HgStatusDialog.start" ID="HgStatusDialog.start"></a> +<h4>HgStatusDialog.start</h4> +<b>start</b>(<i>fn</i>) +<p> + Public slot to start the svn status command. +</p><dl> +<dt><i>fn</i></dt> +<dd> +filename(s)/directoryname(s) to show the status of + (string or list of strings) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread</h1> +<p> +Module implementing the VCS status monitor thread class for Mercurial. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgStatusMonitorThread">HgStatusMonitorThread</a></td> +<td>Class implementing the VCS status monitor thread class for Mercurial.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgStatusMonitorThread" ID="HgStatusMonitorThread"></a> +<h2>HgStatusMonitorThread</h2> +<p> + Class implementing the VCS status monitor thread class for Mercurial. +</p> +<h3>Derived from</h3> +VcsStatusMonitorThread +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgStatusMonitorThread.__init__">HgStatusMonitorThread</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgStatusMonitorThread._performMonitor">_performMonitor</a></td> +<td>Protected method implementing the monitoring action.</td> +</tr> +</table> +<a NAME="HgStatusMonitorThread.__init__" ID="HgStatusMonitorThread.__init__"></a> +<h4>HgStatusMonitorThread (Constructor)</h4> +<b>HgStatusMonitorThread</b>(<i>interval, projectDir, vcs, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>interval</i></dt> +<dd> +new interval in seconds (integer) +</dd><dt><i>projectDir</i></dt> +<dd> +project directory to monitor (string) +</dd><dt><i>vcs</i></dt> +<dd> +reference to the version control object +</dd><dt><i>parent</i></dt> +<dd> +reference to the parent object (QObject) +</dd> +</dl><a NAME="HgStatusMonitorThread._performMonitor" ID="HgStatusMonitorThread._performMonitor"></a> +<h4>HgStatusMonitorThread._performMonitor</h4> +<b>_performMonitor</b>(<i></i>) +<p> + Protected method implementing the monitoring action. +</p><p> + This method populates the statusList member variable + with a list of strings giving the status in the first column and the + path relative to the project directory starting with the third column. + The allowed status flags are: + <ul> + <li>"A" path was added but not yet comitted</li> + <li>"M" path has local changes</li> + <li>"R" path was deleted and then re-added</li> + <li>"U" path needs an update</li> + <li>"Z" path contains a conflict</li> + <li>" " path is back at normal</li> + </ul> +</p><dl> +<dt>Returns:</dt> +<dd> +tuple of flag indicating successful operation (boolean) and + a status message in case of non successful operation (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,252 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog</h1> +<p> +Module implementing a dialog to show a list of tags or branches. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgTagBranchListDialog">HgTagBranchListDialog</a></td> +<td>Class implementing a dialog to show a list of tags or branches.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgTagBranchListDialog" ID="HgTagBranchListDialog"></a> +<h2>HgTagBranchListDialog</h2> +<p> + Class implementing a dialog to show a list of tags or branches. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgTagBranchListDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgTagBranchListDialog.__init__">HgTagBranchListDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.__finish">__finish</a></td> +<td>Private slot called when the process finished or the user pressed the button.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.__generateItem">__generateItem</a></td> +<td>Private method to generate a tag item in the tag list.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.__procFinished">__procFinished</a></td> +<td>Private slot connected to the finished signal.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.__readStderr">__readStderr</a></td> +<td>Private slot to handle the readyReadStderr signal.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.__readStdout">__readStdout</a></td> +<td>Private slot to handle the readyReadStdout signal.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.__resizeColumns">__resizeColumns</a></td> +<td>Private method to resize the list columns.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.__resort">__resort</a></td> +<td>Private method to resort the tree.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.closeEvent">closeEvent</a></td> +<td>Private slot implementing a close event handler.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.keyPressEvent">keyPressEvent</a></td> +<td>Protected slot to handle a key press event.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td> +<td>Private slot called by a button of the button box clicked.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.on_input_returnPressed">on_input_returnPressed</a></td> +<td>Private slot to handle the press of the return key in the input field.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.on_passwordCheckBox_toggled">on_passwordCheckBox_toggled</a></td> +<td>Private slot to handle the password checkbox toggled.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.on_sendButton_clicked">on_sendButton_clicked</a></td> +<td>Private slot to send the input to the subversion process.</td> +</tr><tr> +<td><a href="#HgTagBranchListDialog.start">start</a></td> +<td>Public slot to start the tags command.</td> +</tr> +</table> +<a NAME="HgTagBranchListDialog.__init__" ID="HgTagBranchListDialog.__init__"></a> +<h4>HgTagBranchListDialog (Constructor)</h4> +<b>HgTagBranchListDialog</b>(<i>vcs, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcs</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgTagBranchListDialog.__finish" ID="HgTagBranchListDialog.__finish"></a> +<h4>HgTagBranchListDialog.__finish</h4> +<b>__finish</b>(<i></i>) +<p> + Private slot called when the process finished or the user pressed the button. +</p><a NAME="HgTagBranchListDialog.__generateItem" ID="HgTagBranchListDialog.__generateItem"></a> +<h4>HgTagBranchListDialog.__generateItem</h4> +<b>__generateItem</b>(<i>revision, changeset, status, name</i>) +<p> + Private method to generate a tag item in the tag list. +</p><dl> +<dt><i>revision</i></dt> +<dd> +revision of the tag/branch (string) +</dd><dt><i>changeset</i></dt> +<dd> +changeset of the tag/branch (string) +</dd><dt><i>status</i></dt> +<dd> +of the tag/branch (string) +</dd><dt><i>name</i></dt> +<dd> +name of the tag/branch (string) +</dd> +</dl><a NAME="HgTagBranchListDialog.__procFinished" ID="HgTagBranchListDialog.__procFinished"></a> +<h4>HgTagBranchListDialog.__procFinished</h4> +<b>__procFinished</b>(<i>exitCode, exitStatus</i>) +<p> + Private slot connected to the finished signal. +</p><dl> +<dt><i>exitCode</i></dt> +<dd> +exit code of the process (integer) +</dd><dt><i>exitStatus</i></dt> +<dd> +exit status of the process (QProcess.ExitStatus) +</dd> +</dl><a NAME="HgTagBranchListDialog.__readStderr" ID="HgTagBranchListDialog.__readStderr"></a> +<h4>HgTagBranchListDialog.__readStderr</h4> +<b>__readStderr</b>(<i></i>) +<p> + Private slot to handle the readyReadStderr signal. +</p><p> + It reads the error output of the process and inserts it into the + error pane. +</p><a NAME="HgTagBranchListDialog.__readStdout" ID="HgTagBranchListDialog.__readStdout"></a> +<h4>HgTagBranchListDialog.__readStdout</h4> +<b>__readStdout</b>(<i></i>) +<p> + Private slot to handle the readyReadStdout signal. +</p><p> + It reads the output of the process, formats it and inserts it into + the contents pane. +</p><a NAME="HgTagBranchListDialog.__resizeColumns" ID="HgTagBranchListDialog.__resizeColumns"></a> +<h4>HgTagBranchListDialog.__resizeColumns</h4> +<b>__resizeColumns</b>(<i></i>) +<p> + Private method to resize the list columns. +</p><a NAME="HgTagBranchListDialog.__resort" ID="HgTagBranchListDialog.__resort"></a> +<h4>HgTagBranchListDialog.__resort</h4> +<b>__resort</b>(<i></i>) +<p> + Private method to resort the tree. +</p><a NAME="HgTagBranchListDialog.closeEvent" ID="HgTagBranchListDialog.closeEvent"></a> +<h4>HgTagBranchListDialog.closeEvent</h4> +<b>closeEvent</b>(<i>e</i>) +<p> + Private slot implementing a close event handler. +</p><dl> +<dt><i>e</i></dt> +<dd> +close event (QCloseEvent) +</dd> +</dl><a NAME="HgTagBranchListDialog.keyPressEvent" ID="HgTagBranchListDialog.keyPressEvent"></a> +<h4>HgTagBranchListDialog.keyPressEvent</h4> +<b>keyPressEvent</b>(<i>evt</i>) +<p> + Protected slot to handle a key press event. +</p><dl> +<dt><i>evt</i></dt> +<dd> +the key press event (QKeyEvent) +</dd> +</dl><a NAME="HgTagBranchListDialog.on_buttonBox_clicked" ID="HgTagBranchListDialog.on_buttonBox_clicked"></a> +<h4>HgTagBranchListDialog.on_buttonBox_clicked</h4> +<b>on_buttonBox_clicked</b>(<i>button</i>) +<p> + Private slot called by a button of the button box clicked. +</p><dl> +<dt><i>button</i></dt> +<dd> +button that was clicked (QAbstractButton) +</dd> +</dl><a NAME="HgTagBranchListDialog.on_input_returnPressed" ID="HgTagBranchListDialog.on_input_returnPressed"></a> +<h4>HgTagBranchListDialog.on_input_returnPressed</h4> +<b>on_input_returnPressed</b>(<i></i>) +<p> + Private slot to handle the press of the return key in the input field. +</p><a NAME="HgTagBranchListDialog.on_passwordCheckBox_toggled" ID="HgTagBranchListDialog.on_passwordCheckBox_toggled"></a> +<h4>HgTagBranchListDialog.on_passwordCheckBox_toggled</h4> +<b>on_passwordCheckBox_toggled</b>(<i>isOn</i>) +<p> + Private slot to handle the password checkbox toggled. +</p><dl> +<dt><i>isOn</i></dt> +<dd> +flag indicating the status of the check box (boolean) +</dd> +</dl><a NAME="HgTagBranchListDialog.on_sendButton_clicked" ID="HgTagBranchListDialog.on_sendButton_clicked"></a> +<h4>HgTagBranchListDialog.on_sendButton_clicked</h4> +<b>on_sendButton_clicked</b>(<i></i>) +<p> + Private slot to send the input to the subversion process. +</p><a NAME="HgTagBranchListDialog.start" ID="HgTagBranchListDialog.start"></a> +<h4>HgTagBranchListDialog.start</h4> +<b>start</b>(<i>path, tags, tagsList, allTagsList</i>) +<p> + Public slot to start the tags command. +</p><dl> +<dt><i>path</i></dt> +<dd> +name of directory to be listed (string) +</dd><dt><i>tags</i></dt> +<dd> +flag indicating a list of tags is requested + (False = branches, True = tags) +</dd><dt><i>tagsList</i></dt> +<dd> +reference to string list receiving the tags (list of strings) +</dd><dt><i>allsTagsList</i></dt> +<dd> +reference to string list all tags (list of strings) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog</h1> +<p> +Module implementing a dialog to enter the data for a tagging operation. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgTagDialog">HgTagDialog</a></td> +<td>Class implementing a dialog to enter the data for a tagging operation.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgTagDialog" ID="HgTagDialog"></a> +<h2>HgTagDialog</h2> +<p> + Class implementing a dialog to enter the data for a tagging operation. +</p> +<h3>Derived from</h3> +QDialog, Ui_HgTagDialog +<h3>Class Attributes</h3> +<table> +<tr><td>CreateBranch</td></tr><tr><td>CreateLocalTag</td></tr><tr><td>CreateRegularTag</td></tr><tr><td>DeleteTag</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgTagDialog.__init__">HgTagDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgTagDialog.getParameters">getParameters</a></td> +<td>Public method to retrieve the tag data.</td> +</tr><tr> +<td><a href="#HgTagDialog.on_tagCombo_editTextChanged">on_tagCombo_editTextChanged</a></td> +<td>Private method used to enable/disable the OK-button.</td> +</tr> +</table> +<a NAME="HgTagDialog.__init__" ID="HgTagDialog.__init__"></a> +<h4>HgTagDialog (Constructor)</h4> +<b>HgTagDialog</b>(<i>taglist, parent = None</i>) +<p> + Constructor +</p><dl> +<dt><i>taglist</i></dt> +<dd> +list of previously entered tags (list of strings) +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="HgTagDialog.getParameters" ID="HgTagDialog.getParameters"></a> +<h4>HgTagDialog.getParameters</h4> +<b>getParameters</b>(<i></i>) +<p> + Public method to retrieve the tag data. +</p><dl> +<dt>Returns:</dt> +<dd> +tuple of string and int (tag, tag operation) +</dd> +</dl><a NAME="HgTagDialog.on_tagCombo_editTextChanged" ID="HgTagDialog.on_tagCombo_editTextChanged"></a> +<h4>HgTagDialog.on_tagCombo_editTextChanged</h4> +<b>on_tagCombo_editTextChanged</b>(<i>text</i>) +<p> + Private method used to enable/disable the OK-button. +</p><dl> +<dt><i>text</i></dt> +<dd> +tag name entered in the combo (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities</h1> +<p> +Module implementing some common utility functions for the Mercurial package. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Functions</h3> +<table> +<tr> +<td><a href="#getConfigPath">getConfigPath</a></td> +<td>Public method to get the filename of the config file.</td> +</tr> +</table> +<hr /><hr /> +<a NAME="getConfigPath" ID="getConfigPath"></a> +<h2>getConfigPath</h2> +<b>getConfigPath</b>(<i></i>) +<p> + Public method to get the filename of the config file. +</p><dl> +<dt>Returns:</dt> +<dd> +filename of the config file (string) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,295 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper</h1> +<p> +Module implementing the VCS project browser helper for Mercurial. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgProjectBrowserHelper">HgProjectBrowserHelper</a></td> +<td>Class implementing the VCS project browser helper for Mercurial.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgProjectBrowserHelper" ID="HgProjectBrowserHelper"></a> +<h2>HgProjectBrowserHelper</h2> +<p> + Class implementing the VCS project browser helper for Mercurial. +</p> +<h3>Derived from</h3> +VcsProjectBrowserHelper +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgProjectBrowserHelper.__init__">HgProjectBrowserHelper</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.__HgAnnotate">__HgAnnotate</a></td> +<td>Private slot called by the context menu to show the annotations of a file.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.__HgCopy">__HgCopy</a></td> +<td>Private slot called by the context menu to copy the selected file.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.__HgExtendedDiff">__HgExtendedDiff</a></td> +<td>Private slot called by the context menu to show the difference of a file to the repository.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.__HgLogBrowser">__HgLogBrowser</a></td> +<td>Private slot called by the context menu to show the log browser for a file.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.__HgLogLimited">__HgLogLimited</a></td> +<td>Private slot called by the context menu to show the limited log of a file.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.__HgMove">__HgMove</a></td> +<td>Private slot called by the context menu to move the selected file.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.__HgResolve">__HgResolve</a></td> +<td>Private slot called by the context menu to resolve conflicts of a file.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper._addVCSMenu">_addVCSMenu</a></td> +<td>Protected method used to add the VCS menu to all project browsers.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper._addVCSMenuBack">_addVCSMenuBack</a></td> +<td>Protected method used to add the VCS menu to all project browsers.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper._addVCSMenuDir">_addVCSMenuDir</a></td> +<td>Protected method used to add the VCS menu to all project browsers.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper._addVCSMenuDirMulti">_addVCSMenuDirMulti</a></td> +<td>Protected method used to add the VCS menu to all project browsers.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper._addVCSMenuMulti">_addVCSMenuMulti</a></td> +<td>Protected method used to add the VCS menu for multi selection to all project browsers.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.showContextMenu">showContextMenu</a></td> +<td>Slot called before the context menu is shown.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.showContextMenuDir">showContextMenuDir</a></td> +<td>Slot called before the context menu is shown.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.showContextMenuDirMulti">showContextMenuDirMulti</a></td> +<td>Slot called before the context menu is shown.</td> +</tr><tr> +<td><a href="#HgProjectBrowserHelper.showContextMenuMulti">showContextMenuMulti</a></td> +<td>Slot called before the context menu (multiple selections) is shown.</td> +</tr> +</table> +<a NAME="HgProjectBrowserHelper.__init__" ID="HgProjectBrowserHelper.__init__"></a> +<h4>HgProjectBrowserHelper (Constructor)</h4> +<b>HgProjectBrowserHelper</b>(<i>vcsObject, browserObject, projectObject, isTranslationsBrowser, parent = None, name = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcsObject</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>browserObject</i></dt> +<dd> +reference to the project browser object +</dd><dt><i>projectObject</i></dt> +<dd> +reference to the project object +</dd><dt><i>isTranslationsBrowser</i></dt> +<dd> +flag indicating, the helper is requested for the + translations browser (this needs some special treatment) +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd><dt><i>name</i></dt> +<dd> +name of this object (string) +</dd> +</dl><a NAME="HgProjectBrowserHelper.__HgAnnotate" ID="HgProjectBrowserHelper.__HgAnnotate"></a> +<h4>HgProjectBrowserHelper.__HgAnnotate</h4> +<b>__HgAnnotate</b>(<i></i>) +<p> + Private slot called by the context menu to show the annotations of a file. +</p><a NAME="HgProjectBrowserHelper.__HgCopy" ID="HgProjectBrowserHelper.__HgCopy"></a> +<h4>HgProjectBrowserHelper.__HgCopy</h4> +<b>__HgCopy</b>(<i></i>) +<p> + Private slot called by the context menu to copy the selected file. +</p><a NAME="HgProjectBrowserHelper.__HgExtendedDiff" ID="HgProjectBrowserHelper.__HgExtendedDiff"></a> +<h4>HgProjectBrowserHelper.__HgExtendedDiff</h4> +<b>__HgExtendedDiff</b>(<i></i>) +<p> + Private slot called by the context menu to show the difference of a file to + the repository. +</p><p> + This gives the chance to enter the revisions to compare. +</p><a NAME="HgProjectBrowserHelper.__HgLogBrowser" ID="HgProjectBrowserHelper.__HgLogBrowser"></a> +<h4>HgProjectBrowserHelper.__HgLogBrowser</h4> +<b>__HgLogBrowser</b>(<i></i>) +<p> + Private slot called by the context menu to show the log browser for a file. +</p><a NAME="HgProjectBrowserHelper.__HgLogLimited" ID="HgProjectBrowserHelper.__HgLogLimited"></a> +<h4>HgProjectBrowserHelper.__HgLogLimited</h4> +<b>__HgLogLimited</b>(<i></i>) +<p> + Private slot called by the context menu to show the limited log of a file. +</p><a NAME="HgProjectBrowserHelper.__HgMove" ID="HgProjectBrowserHelper.__HgMove"></a> +<h4>HgProjectBrowserHelper.__HgMove</h4> +<b>__HgMove</b>(<i></i>) +<p> + Private slot called by the context menu to move the selected file. +</p><a NAME="HgProjectBrowserHelper.__HgResolve" ID="HgProjectBrowserHelper.__HgResolve"></a> +<h4>HgProjectBrowserHelper.__HgResolve</h4> +<b>__HgResolve</b>(<i></i>) +<p> + Private slot called by the context menu to resolve conflicts of a file. +</p><a NAME="HgProjectBrowserHelper._addVCSMenu" ID="HgProjectBrowserHelper._addVCSMenu"></a> +<h4>HgProjectBrowserHelper._addVCSMenu</h4> +<b>_addVCSMenu</b>(<i>mainMenu</i>) +<p> + Protected method used to add the VCS menu to all project browsers. +</p><dl> +<dt><i>mainMenu</i></dt> +<dd> +reference to the menu to be amended +</dd> +</dl><a NAME="HgProjectBrowserHelper._addVCSMenuBack" ID="HgProjectBrowserHelper._addVCSMenuBack"></a> +<h4>HgProjectBrowserHelper._addVCSMenuBack</h4> +<b>_addVCSMenuBack</b>(<i>mainMenu</i>) +<p> + Protected method used to add the VCS menu to all project browsers. +</p><dl> +<dt><i>mainMenu</i></dt> +<dd> +reference to the menu to be amended +</dd> +</dl><a NAME="HgProjectBrowserHelper._addVCSMenuDir" ID="HgProjectBrowserHelper._addVCSMenuDir"></a> +<h4>HgProjectBrowserHelper._addVCSMenuDir</h4> +<b>_addVCSMenuDir</b>(<i>mainMenu</i>) +<p> + Protected method used to add the VCS menu to all project browsers. +</p><dl> +<dt><i>mainMenu</i></dt> +<dd> +reference to the menu to be amended +</dd> +</dl><a NAME="HgProjectBrowserHelper._addVCSMenuDirMulti" ID="HgProjectBrowserHelper._addVCSMenuDirMulti"></a> +<h4>HgProjectBrowserHelper._addVCSMenuDirMulti</h4> +<b>_addVCSMenuDirMulti</b>(<i>mainMenu</i>) +<p> + Protected method used to add the VCS menu to all project browsers. +</p><dl> +<dt><i>mainMenu</i></dt> +<dd> +reference to the menu to be amended +</dd> +</dl><a NAME="HgProjectBrowserHelper._addVCSMenuMulti" ID="HgProjectBrowserHelper._addVCSMenuMulti"></a> +<h4>HgProjectBrowserHelper._addVCSMenuMulti</h4> +<b>_addVCSMenuMulti</b>(<i>mainMenu</i>) +<p> + Protected method used to add the VCS menu for multi selection to all + project browsers. +</p><dl> +<dt><i>mainMenu</i></dt> +<dd> +reference to the menu to be amended +</dd> +</dl><a NAME="HgProjectBrowserHelper.showContextMenu" ID="HgProjectBrowserHelper.showContextMenu"></a> +<h4>HgProjectBrowserHelper.showContextMenu</h4> +<b>showContextMenu</b>(<i>menu, standardItems</i>) +<p> + Slot called before the context menu is shown. +</p><p> + It enables/disables the VCS menu entries depending on the overall + VCS status and the file status. +</p><dl> +<dt><i>menu</i></dt> +<dd> +reference to the menu to be shown +</dd><dt><i>standardItems</i></dt> +<dd> +array of standard items that need activation/deactivation + depending on the overall VCS status +</dd> +</dl><a NAME="HgProjectBrowserHelper.showContextMenuDir" ID="HgProjectBrowserHelper.showContextMenuDir"></a> +<h4>HgProjectBrowserHelper.showContextMenuDir</h4> +<b>showContextMenuDir</b>(<i>menu, standardItems</i>) +<p> + Slot called before the context menu is shown. +</p><p> + It enables/disables the VCS menu entries depending on the overall + VCS status and the directory status. +</p><dl> +<dt><i>menu</i></dt> +<dd> +reference to the menu to be shown +</dd><dt><i>standardItems</i></dt> +<dd> +array of standard items that need activation/deactivation + depending on the overall VCS status +</dd> +</dl><a NAME="HgProjectBrowserHelper.showContextMenuDirMulti" ID="HgProjectBrowserHelper.showContextMenuDirMulti"></a> +<h4>HgProjectBrowserHelper.showContextMenuDirMulti</h4> +<b>showContextMenuDirMulti</b>(<i>menu, standardItems</i>) +<p> + Slot called before the context menu is shown. +</p><p> + It enables/disables the VCS menu entries depending on the overall + VCS status and the directory status. +</p><dl> +<dt><i>menu</i></dt> +<dd> +reference to the menu to be shown +</dd><dt><i>standardItems</i></dt> +<dd> +array of standard items that need activation/deactivation + depending on the overall VCS status +</dd> +</dl><a NAME="HgProjectBrowserHelper.showContextMenuMulti" ID="HgProjectBrowserHelper.showContextMenuMulti"></a> +<h4>HgProjectBrowserHelper.showContextMenuMulti</h4> +<b>showContextMenuMulti</b>(<i>menu, standardItems</i>) +<p> + Slot called before the context menu (multiple selections) is shown. +</p><p> + It enables/disables the VCS menu entries depending on the overall + VCS status and the files status. +</p><dl> +<dt><i>menu</i></dt> +<dd> +reference to the menu to be shown +</dd><dt><i>standardItems</i></dt> +<dd> +array of standard items that need activation/deactivation + depending on the overall VCS status +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,245 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper</h1> +<p> +Module implementing the VCS project helper for Mercurial. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#HgProjectHelper">HgProjectHelper</a></td> +<td>Class implementing the VCS project helper for Mercurial.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="HgProjectHelper" ID="HgProjectHelper"></a> +<h2>HgProjectHelper</h2> +<p> + Class implementing the VCS project helper for Mercurial. +</p> +<h3>Derived from</h3> +VcsProjectHelper +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#HgProjectHelper.__init__">HgProjectHelper</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgBranch">__hgBranch</a></td> +<td>Private slot used to create a new branch for the project.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgBranchList">__hgBranchList</a></td> +<td>Private slot used to list the branches of the project.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgCloseBranch">__hgCloseBranch</a></td> +<td>Protected slot used to close the current branch of the local project.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgConfigure">__hgConfigure</a></td> +<td>Private method to open the configuration dialog.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgExtendedDiff">__hgExtendedDiff</a></td> +<td>Private slot used to perform a svn diff with the selection of revisions.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgHeads">__hgHeads</a></td> +<td>Private slot used to show the heads of the repository.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgIncoming">__hgIncoming</a></td> +<td>Private slot used to show the log of changes coming into the repository.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgLogBrowser">__hgLogBrowser</a></td> +<td>Private slot used to browse the log of the current project.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgLogLimited">__hgLogLimited</a></td> +<td>Private slot used to perform a hg log --limit.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgOutgoing">__hgOutgoing</a></td> +<td>Private slot used to show the log of changes going out of the repository.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgParents">__hgParents</a></td> +<td>Private slot used to show the parents of the repository.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgPull">__hgPull</a></td> +<td>Private slot used to pull changes from a remote repository.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgPush">__hgPush</a></td> +<td>Private slot used to push changes to a remote repository.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgResolve">__hgResolve</a></td> +<td>Private slot used to resolve conflicts of the local project.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgTagList">__hgTagList</a></td> +<td>Private slot used to list the tags of the project.</td> +</tr><tr> +<td><a href="#HgProjectHelper.__hgTip">__hgTip</a></td> +<td>Private slot used to show the tip of the repository.</td> +</tr><tr> +<td><a href="#HgProjectHelper.getActions">getActions</a></td> +<td>Public method to get a list of all actions.</td> +</tr><tr> +<td><a href="#HgProjectHelper.initActions">initActions</a></td> +<td>Public method to generate the action objects.</td> +</tr><tr> +<td><a href="#HgProjectHelper.initMenu">initMenu</a></td> +<td>Public method to generate the VCS menu.</td> +</tr> +</table> +<a NAME="HgProjectHelper.__init__" ID="HgProjectHelper.__init__"></a> +<h4>HgProjectHelper (Constructor)</h4> +<b>HgProjectHelper</b>(<i>vcsObject, projectObject, parent = None, name = None</i>) +<p> + Constructor +</p><dl> +<dt><i>vcsObject</i></dt> +<dd> +reference to the vcs object +</dd><dt><i>projectObject</i></dt> +<dd> +reference to the project object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd><dt><i>name</i></dt> +<dd> +name of this object (string) +</dd> +</dl><a NAME="HgProjectHelper.__hgBranch" ID="HgProjectHelper.__hgBranch"></a> +<h4>HgProjectHelper.__hgBranch</h4> +<b>__hgBranch</b>(<i></i>) +<p> + Private slot used to create a new branch for the project. +</p><a NAME="HgProjectHelper.__hgBranchList" ID="HgProjectHelper.__hgBranchList"></a> +<h4>HgProjectHelper.__hgBranchList</h4> +<b>__hgBranchList</b>(<i></i>) +<p> + Private slot used to list the branches of the project. +</p><a NAME="HgProjectHelper.__hgCloseBranch" ID="HgProjectHelper.__hgCloseBranch"></a> +<h4>HgProjectHelper.__hgCloseBranch</h4> +<b>__hgCloseBranch</b>(<i></i>) +<p> + Protected slot used to close the current branch of the local project. +</p><a NAME="HgProjectHelper.__hgConfigure" ID="HgProjectHelper.__hgConfigure"></a> +<h4>HgProjectHelper.__hgConfigure</h4> +<b>__hgConfigure</b>(<i></i>) +<p> + Private method to open the configuration dialog. +</p><a NAME="HgProjectHelper.__hgExtendedDiff" ID="HgProjectHelper.__hgExtendedDiff"></a> +<h4>HgProjectHelper.__hgExtendedDiff</h4> +<b>__hgExtendedDiff</b>(<i></i>) +<p> + Private slot used to perform a svn diff with the selection of revisions. +</p><a NAME="HgProjectHelper.__hgHeads" ID="HgProjectHelper.__hgHeads"></a> +<h4>HgProjectHelper.__hgHeads</h4> +<b>__hgHeads</b>(<i></i>) +<p> + Private slot used to show the heads of the repository. +</p><a NAME="HgProjectHelper.__hgIncoming" ID="HgProjectHelper.__hgIncoming"></a> +<h4>HgProjectHelper.__hgIncoming</h4> +<b>__hgIncoming</b>(<i></i>) +<p> + Private slot used to show the log of changes coming into the repository. +</p><a NAME="HgProjectHelper.__hgLogBrowser" ID="HgProjectHelper.__hgLogBrowser"></a> +<h4>HgProjectHelper.__hgLogBrowser</h4> +<b>__hgLogBrowser</b>(<i></i>) +<p> + Private slot used to browse the log of the current project. +</p><a NAME="HgProjectHelper.__hgLogLimited" ID="HgProjectHelper.__hgLogLimited"></a> +<h4>HgProjectHelper.__hgLogLimited</h4> +<b>__hgLogLimited</b>(<i></i>) +<p> + Private slot used to perform a hg log --limit. +</p><a NAME="HgProjectHelper.__hgOutgoing" ID="HgProjectHelper.__hgOutgoing"></a> +<h4>HgProjectHelper.__hgOutgoing</h4> +<b>__hgOutgoing</b>(<i></i>) +<p> + Private slot used to show the log of changes going out of the repository. +</p><a NAME="HgProjectHelper.__hgParents" ID="HgProjectHelper.__hgParents"></a> +<h4>HgProjectHelper.__hgParents</h4> +<b>__hgParents</b>(<i></i>) +<p> + Private slot used to show the parents of the repository. +</p><a NAME="HgProjectHelper.__hgPull" ID="HgProjectHelper.__hgPull"></a> +<h4>HgProjectHelper.__hgPull</h4> +<b>__hgPull</b>(<i></i>) +<p> + Private slot used to pull changes from a remote repository. +</p><a NAME="HgProjectHelper.__hgPush" ID="HgProjectHelper.__hgPush"></a> +<h4>HgProjectHelper.__hgPush</h4> +<b>__hgPush</b>(<i></i>) +<p> + Private slot used to push changes to a remote repository. +</p><a NAME="HgProjectHelper.__hgResolve" ID="HgProjectHelper.__hgResolve"></a> +<h4>HgProjectHelper.__hgResolve</h4> +<b>__hgResolve</b>(<i></i>) +<p> + Private slot used to resolve conflicts of the local project. +</p><a NAME="HgProjectHelper.__hgTagList" ID="HgProjectHelper.__hgTagList"></a> +<h4>HgProjectHelper.__hgTagList</h4> +<b>__hgTagList</b>(<i></i>) +<p> + Private slot used to list the tags of the project. +</p><a NAME="HgProjectHelper.__hgTip" ID="HgProjectHelper.__hgTip"></a> +<h4>HgProjectHelper.__hgTip</h4> +<b>__hgTip</b>(<i></i>) +<p> + Private slot used to show the tip of the repository. +</p><a NAME="HgProjectHelper.getActions" ID="HgProjectHelper.getActions"></a> +<h4>HgProjectHelper.getActions</h4> +<b>getActions</b>(<i></i>) +<p> + Public method to get a list of all actions. +</p><dl> +<dt>Returns:</dt> +<dd> +list of all actions (list of E5Action) +</dd> +</dl><a NAME="HgProjectHelper.initActions" ID="HgProjectHelper.initActions"></a> +<h4>HgProjectHelper.initActions</h4> +<b>initActions</b>(<i></i>) +<p> + Public method to generate the action objects. +</p><a NAME="HgProjectHelper.initMenu" ID="HgProjectHelper.initMenu"></a> +<h4>HgProjectHelper.initMenu</h4> +<b>initMenu</b>(<i>menu</i>) +<p> + Public method to generate the VCS menu. +</p><dl> +<dt><i>menu</i></dt> +<dd> +reference to the menu to be populated (QMenu) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.hg.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,929 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.hg</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.hg</h1> +<p> +Module implementing the version control systems interface to Mercurial. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#Hg">Hg</a></td> +<td>Class implementing the version control systems interface to Mercurial.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="Hg" ID="Hg"></a> +<h2>Hg</h2> +<p> + Class implementing the version control systems interface to Mercurial. +</p><h4>Signals</h4> +<dl> +<dt>committed()</dt> +<dd> +emitted after the commit action has completed +</dd> +</dl> +<h3>Derived from</h3> +VersionControl +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#Hg.__init__">Hg</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#Hg.__hgURL">__hgURL</a></td> +<td>Private method to format a url for Mercurial.</td> +</tr><tr> +<td><a href="#Hg.__vcsCommit_Step2">__vcsCommit_Step2</a></td> +<td>Private slot performing the second step of the commit action.</td> +</tr><tr> +<td><a href="#Hg._createStatusMonitorThread">_createStatusMonitorThread</a></td> +<td>Protected method to create an instance of the VCS status monitor thread.</td> +</tr><tr> +<td><a href="#Hg.clearStatusCache">clearStatusCache</a></td> +<td>Public method to clear the status cache.</td> +</tr><tr> +<td><a href="#Hg.getPlugin">getPlugin</a></td> +<td>Public method to get a reference to the plugin object.</td> +</tr><tr> +<td><a href="#Hg.hgAnnotate">hgAnnotate</a></td> +<td>Public method to show the output of the hg annotate command.</td> +</tr><tr> +<td><a href="#Hg.hgBranch">hgBranch</a></td> +<td>Public method used to set the tag in the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.hgCopy">hgCopy</a></td> +<td>Public method used to copy a file/directory.</td> +</tr><tr> +<td><a href="#Hg.hgExtendedDiff">hgExtendedDiff</a></td> +<td>Public method used to view the difference of a file/directory to the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.hgIncoming">hgIncoming</a></td> +<td>Public method used to view the log of incoming changes from the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.hgInfo">hgInfo</a></td> +<td>Public method to show information about the heads of the repository.</td> +</tr><tr> +<td><a href="#Hg.hgListTagBranch">hgListTagBranch</a></td> +<td>Public method used to list the available tags or branches.</td> +</tr><tr> +<td><a href="#Hg.hgLogBrowser">hgLogBrowser</a></td> +<td>Public method used to browse the log of a file/directory from the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.hgLogLimited">hgLogLimited</a></td> +<td>Public method used to view the (limited) log of a file/directory from the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.hgNormalizeURL">hgNormalizeURL</a></td> +<td>Public method to normalize a url for Mercurial.</td> +</tr><tr> +<td><a href="#Hg.hgOutgoing">hgOutgoing</a></td> +<td>Public method used to view the log of outgoing changes from the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.hgPull">hgPull</a></td> +<td>Public method used to pull changes from a remote Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.hgPush">hgPush</a></td> +<td>Public method used to push changes to a remote Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.hgResolve">hgResolve</a></td> +<td>Public method used to resolve conflicts of a file/directory.</td> +</tr><tr> +<td><a href="#Hg.vcsAdd">vcsAdd</a></td> +<td>Public method used to add a file/directory to the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsAddBinary">vcsAddBinary</a></td> +<td>Public method used to add a file/directory in binary mode to the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsAddTree">vcsAddTree</a></td> +<td>Public method to add a directory tree rooted at path to the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsAllRegisteredStates">vcsAllRegisteredStates</a></td> +<td>Public method used to get the registered states of a number of files in the vcs.</td> +</tr><tr> +<td><a href="#Hg.vcsCheckout">vcsCheckout</a></td> +<td>Public method used to check the project out of a Mercurial repository (clone).</td> +</tr><tr> +<td><a href="#Hg.vcsCleanup">vcsCleanup</a></td> +<td>Public method used to cleanup the working directory.</td> +</tr><tr> +<td><a href="#Hg.vcsCommandLine">vcsCommandLine</a></td> +<td>Public method used to execute arbitrary mercurial commands.</td> +</tr><tr> +<td><a href="#Hg.vcsCommit">vcsCommit</a></td> +<td>Public method used to make the change of a file/directory permanent in the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsConvertProject">vcsConvertProject</a></td> +<td>Public method to convert an uncontrolled project to a version controlled project.</td> +</tr><tr> +<td><a href="#Hg.vcsDiff">vcsDiff</a></td> +<td>Public method used to view the difference of a file/directory to the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsExists">vcsExists</a></td> +<td>Public method used to test for the presence of the hg executable.</td> +</tr><tr> +<td><a href="#Hg.vcsExport">vcsExport</a></td> +<td>Public method used to export a directory from the Subversion repository.</td> +</tr><tr> +<td><a href="#Hg.vcsGetProjectBrowserHelper">vcsGetProjectBrowserHelper</a></td> +<td>Public method to instanciate a helper object for the different project browsers.</td> +</tr><tr> +<td><a href="#Hg.vcsGetProjectHelper">vcsGetProjectHelper</a></td> +<td>Public method to instanciate a helper object for the project.</td> +</tr><tr> +<td><a href="#Hg.vcsImport">vcsImport</a></td> +<td>Public method used to import the project into the Subversion repository.</td> +</tr><tr> +<td><a href="#Hg.vcsInit">vcsInit</a></td> +<td>Public method used to initialize the mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsLog">vcsLog</a></td> +<td>Public method used to view the log of a file/directory from the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsMerge">vcsMerge</a></td> +<td>Public method used to merge a URL/revision into the local project.</td> +</tr><tr> +<td><a href="#Hg.vcsMove">vcsMove</a></td> +<td>Public method used to move a file/directory.</td> +</tr><tr> +<td><a href="#Hg.vcsName">vcsName</a></td> +<td>Public method returning the name of the vcs.</td> +</tr><tr> +<td><a href="#Hg.vcsNewProjectOptionsDialog">vcsNewProjectOptionsDialog</a></td> +<td>Public method to get a dialog to enter repository info for getting a new project.</td> +</tr><tr> +<td><a href="#Hg.vcsOptionsDialog">vcsOptionsDialog</a></td> +<td>Public method to get a dialog to enter repository info.</td> +</tr><tr> +<td><a href="#Hg.vcsRegisteredState">vcsRegisteredState</a></td> +<td>Public method used to get the registered state of a file in the vcs.</td> +</tr><tr> +<td><a href="#Hg.vcsRemove">vcsRemove</a></td> +<td>Public method used to remove a file/directory from the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsRepositoryInfos">vcsRepositoryInfos</a></td> +<td>Public method to retrieve information about the repository.</td> +</tr><tr> +<td><a href="#Hg.vcsRevert">vcsRevert</a></td> +<td>Public method used to revert changes made to a file/directory.</td> +</tr><tr> +<td><a href="#Hg.vcsShutdown">vcsShutdown</a></td> +<td>Public method used to shutdown the Mercurial interface.</td> +</tr><tr> +<td><a href="#Hg.vcsStatus">vcsStatus</a></td> +<td>Public method used to view the status of files/directories in the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsSwitch">vcsSwitch</a></td> +<td>Public method used to switch a working directory to a different revision.</td> +</tr><tr> +<td><a href="#Hg.vcsTag">vcsTag</a></td> +<td>Public method used to set the tag in the Mercurial repository.</td> +</tr><tr> +<td><a href="#Hg.vcsUpdate">vcsUpdate</a></td> +<td>Public method used to update a file/directory with the Mercurial repository.</td> +</tr> +</table> +<a NAME="Hg.__init__" ID="Hg.__init__"></a> +<h4>Hg (Constructor)</h4> +<b>Hg</b>(<i>plugin, parent=None, name=None</i>) +<p> + Constructor +</p><dl> +<dt><i>plugin</i></dt> +<dd> +reference to the plugin object +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd><dt><i>name</i></dt> +<dd> +name of this object (string) +</dd> +</dl><a NAME="Hg.__hgURL" ID="Hg.__hgURL"></a> +<h4>Hg.__hgURL</h4> +<b>__hgURL</b>(<i>url</i>) +<p> + Private method to format a url for Mercurial. +</p><dl> +<dt><i>url</i></dt> +<dd> +unformatted url string (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +properly formated url for subversion (string) +</dd> +</dl><a NAME="Hg.__vcsCommit_Step2" ID="Hg.__vcsCommit_Step2"></a> +<h4>Hg.__vcsCommit_Step2</h4> +<b>__vcsCommit_Step2</b>(<i></i>) +<p> + Private slot performing the second step of the commit action. +</p><a NAME="Hg._createStatusMonitorThread" ID="Hg._createStatusMonitorThread"></a> +<h4>Hg._createStatusMonitorThread</h4> +<b>_createStatusMonitorThread</b>(<i>interval, project</i>) +<p> + Protected method to create an instance of the VCS status monitor thread. +</p><dl> +<dt><i>project</i></dt> +<dd> +reference to the project object +</dd><dt><i>interval</i></dt> +<dd> +check interval for the monitor thread in seconds (integer) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +reference to the monitor thread (QThread) +</dd> +</dl><a NAME="Hg.clearStatusCache" ID="Hg.clearStatusCache"></a> +<h4>Hg.clearStatusCache</h4> +<b>clearStatusCache</b>(<i></i>) +<p> + Public method to clear the status cache. +</p><a NAME="Hg.getPlugin" ID="Hg.getPlugin"></a> +<h4>Hg.getPlugin</h4> +<b>getPlugin</b>(<i></i>) +<p> + Public method to get a reference to the plugin object. +</p><dl> +<dt>Returns:</dt> +<dd> +reference to the plugin object (VcsMercurialPlugin) +</dd> +</dl><a NAME="Hg.hgAnnotate" ID="Hg.hgAnnotate"></a> +<h4>Hg.hgAnnotate</h4> +<b>hgAnnotate</b>(<i>name</i>) +<p> + Public method to show the output of the hg annotate command. +</p><dl> +<dt><i>name</i></dt> +<dd> +file name to show the annotations for (string) +</dd> +</dl><a NAME="Hg.hgBranch" ID="Hg.hgBranch"></a> +<h4>Hg.hgBranch</h4> +<b>hgBranch</b>(<i>name</i>) +<p> + Public method used to set the tag in the Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be tagged (string) +</dd> +</dl><a NAME="Hg.hgCopy" ID="Hg.hgCopy"></a> +<h4>Hg.hgCopy</h4> +<b>hgCopy</b>(<i>name, project</i>) +<p> + Public method used to copy a file/directory. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be copied (string) +</dd><dt><i>project</i></dt> +<dd> +reference to the project object +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating successfull operation (boolean) +</dd> +</dl><a NAME="Hg.hgExtendedDiff" ID="Hg.hgExtendedDiff"></a> +<h4>Hg.hgExtendedDiff</h4> +<b>hgExtendedDiff</b>(<i>name</i>) +<p> + Public method used to view the difference of a file/directory to the + Mercurial repository. +</p><p> + If name is a directory and is the project directory, all project files + are saved first. If name is a file (or list of files), which is/are being edited + and has unsaved modification, they can be saved or the operation may be aborted. +</p><p> + This method gives the chance to enter the revisions to be compared. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be diffed (string) +</dd> +</dl><a NAME="Hg.hgIncoming" ID="Hg.hgIncoming"></a> +<h4>Hg.hgIncoming</h4> +<b>hgIncoming</b>(<i>name</i>) +<p> + Public method used to view the log of incoming changes from the + Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to show the log of (string) +</dd> +</dl><a NAME="Hg.hgInfo" ID="Hg.hgInfo"></a> +<h4>Hg.hgInfo</h4> +<b>hgInfo</b>(<i>ppath, mode = "heads"</i>) +<p> + Public method to show information about the heads of the repository. +</p><dl> +<dt><i>ppath</i></dt> +<dd> +local path to get the repository infos (string) +</dd><dt><i>mode=</i></dt> +<dd> +mode of the operation (string, one of heads, parents, tip) +</dd> +</dl><a NAME="Hg.hgListTagBranch" ID="Hg.hgListTagBranch"></a> +<h4>Hg.hgListTagBranch</h4> +<b>hgListTagBranch</b>(<i>path, tags = True</i>) +<p> + Public method used to list the available tags or branches. +</p><dl> +<dt><i>path</i></dt> +<dd> +directory name of the project (string) +</dd><dt><i>tags</i></dt> +<dd> +flag indicating listing of branches or tags + (False = branches, True = tags) +</dd> +</dl><a NAME="Hg.hgLogBrowser" ID="Hg.hgLogBrowser"></a> +<h4>Hg.hgLogBrowser</h4> +<b>hgLogBrowser</b>(<i>path</i>) +<p> + Public method used to browse the log of a file/directory from the + Mercurial repository. +</p><dl> +<dt><i>path</i></dt> +<dd> +file/directory name to show the log of (string) +</dd> +</dl><a NAME="Hg.hgLogLimited" ID="Hg.hgLogLimited"></a> +<h4>Hg.hgLogLimited</h4> +<b>hgLogLimited</b>(<i>name</i>) +<p> + Public method used to view the (limited) log of a file/directory from the + Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to show the log of (string) +</dd> +</dl><a NAME="Hg.hgNormalizeURL" ID="Hg.hgNormalizeURL"></a> +<h4>Hg.hgNormalizeURL</h4> +<b>hgNormalizeURL</b>(<i>url</i>) +<p> + Public method to normalize a url for Mercurial. +</p><dl> +<dt><i>url</i></dt> +<dd> +url string (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +properly normalized url for subversion (string) +</dd> +</dl><a NAME="Hg.hgOutgoing" ID="Hg.hgOutgoing"></a> +<h4>Hg.hgOutgoing</h4> +<b>hgOutgoing</b>(<i>name</i>) +<p> + Public method used to view the log of outgoing changes from the + Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to show the log of (string) +</dd> +</dl><a NAME="Hg.hgPull" ID="Hg.hgPull"></a> +<h4>Hg.hgPull</h4> +<b>hgPull</b>(<i>name</i>) +<p> + Public method used to pull changes from a remote Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +directory name of the project to be pulled to (string) +</dd> +</dl><a NAME="Hg.hgPush" ID="Hg.hgPush"></a> +<h4>Hg.hgPush</h4> +<b>hgPush</b>(<i>name</i>) +<p> + Public method used to push changes to a remote Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +directory name of the project to be pushed from (string) +</dd> +</dl><a NAME="Hg.hgResolve" ID="Hg.hgResolve"></a> +<h4>Hg.hgResolve</h4> +<b>hgResolve</b>(<i>name</i>) +<p> + Public method used to resolve conflicts of a file/directory. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be resolved (string) +</dd> +</dl><a NAME="Hg.vcsAdd" ID="Hg.vcsAdd"></a> +<h4>Hg.vcsAdd</h4> +<b>vcsAdd</b>(<i>name, isDir = False, noDialog = False</i>) +<p> + Public method used to add a file/directory to the Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be added (string) +</dd><dt><i>isDir</i></dt> +<dd> +flag indicating name is a directory (boolean) +</dd><dt><i>noDialog</i></dt> +<dd> +flag indicating quiet operations +</dd> +</dl><a NAME="Hg.vcsAddBinary" ID="Hg.vcsAddBinary"></a> +<h4>Hg.vcsAddBinary</h4> +<b>vcsAddBinary</b>(<i>name, isDir = False</i>) +<p> + Public method used to add a file/directory in binary mode to the + Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be added (string) +</dd><dt><i>isDir</i></dt> +<dd> +flag indicating name is a directory (boolean) +</dd> +</dl><a NAME="Hg.vcsAddTree" ID="Hg.vcsAddTree"></a> +<h4>Hg.vcsAddTree</h4> +<b>vcsAddTree</b>(<i>path</i>) +<p> + Public method to add a directory tree rooted at path to the Mercurial repository. +</p><dl> +<dt><i>path</i></dt> +<dd> +root directory of the tree to be added (string or list of strings)) +</dd> +</dl><a NAME="Hg.vcsAllRegisteredStates" ID="Hg.vcsAllRegisteredStates"></a> +<h4>Hg.vcsAllRegisteredStates</h4> +<b>vcsAllRegisteredStates</b>(<i>names, dname, shortcut = True</i>) +<p> + Public method used to get the registered states of a number of files in the vcs. +</p><p> + <b>Note:</b> If a shortcut is to be taken, the code will only check, if the named + directory has been scanned already. If so, it is assumed, that the states for + all files have been populated by the previous run. +</p><dl> +<dt><i>names</i></dt> +<dd> +dictionary with all filenames to be checked as keys +</dd><dt><i>dname</i></dt> +<dd> +directory to check in (string) +</dd><dt><i>shortcut</i></dt> +<dd> +flag indicating a shortcut should be taken (boolean) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +the received dictionary completed with a combination of + canBeCommited and canBeAdded or None in order to signal an error +</dd> +</dl><a NAME="Hg.vcsCheckout" ID="Hg.vcsCheckout"></a> +<h4>Hg.vcsCheckout</h4> +<b>vcsCheckout</b>(<i>vcsDataDict, projectDir, noDialog = False</i>) +<p> + Public method used to check the project out of a Mercurial repository (clone). +</p><dl> +<dt><i>vcsDataDict</i></dt> +<dd> +dictionary of data required for the checkout +</dd><dt><i>projectDir</i></dt> +<dd> +project directory to create (string) +</dd><dt><i>noDialog</i></dt> +<dd> +flag indicating quiet operations +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating an execution without errors (boolean) +</dd> +</dl><a NAME="Hg.vcsCleanup" ID="Hg.vcsCleanup"></a> +<h4>Hg.vcsCleanup</h4> +<b>vcsCleanup</b>(<i>name</i>) +<p> + Public method used to cleanup the working directory. +</p><dl> +<dt><i>name</i></dt> +<dd> +directory name to be cleaned up (string) +</dd> +</dl><a NAME="Hg.vcsCommandLine" ID="Hg.vcsCommandLine"></a> +<h4>Hg.vcsCommandLine</h4> +<b>vcsCommandLine</b>(<i>name</i>) +<p> + Public method used to execute arbitrary mercurial commands. +</p><dl> +<dt><i>name</i></dt> +<dd> +directory name of the working directory (string) +</dd> +</dl><a NAME="Hg.vcsCommit" ID="Hg.vcsCommit"></a> +<h4>Hg.vcsCommit</h4> +<b>vcsCommit</b>(<i>name, message, noDialog = False, closeBranch = False</i>) +<p> + Public method used to make the change of a file/directory permanent in the + Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be committed (string or list of strings) +</dd><dt><i>message</i></dt> +<dd> +message for this operation (string) +</dd><dt><i>noDialog</i></dt> +<dd> +flag indicating quiet operations +</dd><dt><i>closeBranch=</i></dt> +<dd> +flag indicating a close branch commit (boolean) +</dd> +</dl><a NAME="Hg.vcsConvertProject" ID="Hg.vcsConvertProject"></a> +<h4>Hg.vcsConvertProject</h4> +<b>vcsConvertProject</b>(<i>vcsDataDict, project</i>) +<p> + Public method to convert an uncontrolled project to a version controlled project. +</p><dl> +<dt><i>vcsDataDict</i></dt> +<dd> +dictionary of data required for the conversion +</dd><dt><i>project</i></dt> +<dd> +reference to the project object +</dd> +</dl><a NAME="Hg.vcsDiff" ID="Hg.vcsDiff"></a> +<h4>Hg.vcsDiff</h4> +<b>vcsDiff</b>(<i>name</i>) +<p> + Public method used to view the difference of a file/directory to the + Mercurial repository. +</p><p> + If name is a directory and is the project directory, all project files + are saved first. If name is a file (or list of files), which is/are being edited + and has unsaved modification, they can be saved or the operation may be aborted. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be diffed (string) +</dd> +</dl><a NAME="Hg.vcsExists" ID="Hg.vcsExists"></a> +<h4>Hg.vcsExists</h4> +<b>vcsExists</b>(<i></i>) +<p> + Public method used to test for the presence of the hg executable. +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating the existance (boolean) and an error message (string) +</dd> +</dl><a NAME="Hg.vcsExport" ID="Hg.vcsExport"></a> +<h4>Hg.vcsExport</h4> +<b>vcsExport</b>(<i>vcsDataDict, projectDir</i>) +<p> + Public method used to export a directory from the Subversion repository. +</p><dl> +<dt><i>vcsDataDict</i></dt> +<dd> +dictionary of data required for the checkout +</dd><dt><i>projectDir</i></dt> +<dd> +project directory to create (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating an execution without errors (boolean) +</dd> +</dl><a NAME="Hg.vcsGetProjectBrowserHelper" ID="Hg.vcsGetProjectBrowserHelper"></a> +<h4>Hg.vcsGetProjectBrowserHelper</h4> +<b>vcsGetProjectBrowserHelper</b>(<i>browser, project, isTranslationsBrowser = False</i>) +<p> + Public method to instanciate a helper object for the different project browsers. +</p><dl> +<dt><i>browser</i></dt> +<dd> +reference to the project browser object +</dd><dt><i>project</i></dt> +<dd> +reference to the project object +</dd><dt><i>isTranslationsBrowser</i></dt> +<dd> +flag indicating, the helper is requested for the + translations browser (this needs some special treatment) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +the project browser helper object +</dd> +</dl><a NAME="Hg.vcsGetProjectHelper" ID="Hg.vcsGetProjectHelper"></a> +<h4>Hg.vcsGetProjectHelper</h4> +<b>vcsGetProjectHelper</b>(<i>project</i>) +<p> + Public method to instanciate a helper object for the project. +</p><dl> +<dt><i>project</i></dt> +<dd> +reference to the project object +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +the project helper object +</dd> +</dl><a NAME="Hg.vcsImport" ID="Hg.vcsImport"></a> +<h4>Hg.vcsImport</h4> +<b>vcsImport</b>(<i>vcsDataDict, projectDir, noDialog = False</i>) +<p> + Public method used to import the project into the Subversion repository. +</p><dl> +<dt><i>vcsDataDict</i></dt> +<dd> +dictionary of data required for the import +</dd><dt><i>projectDir</i></dt> +<dd> +project directory (string) +</dd><dt><i>noDialog</i></dt> +<dd> +flag indicating quiet operations +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating an execution without errors (boolean) + and a flag indicating the version controll status (boolean) +</dd> +</dl><a NAME="Hg.vcsInit" ID="Hg.vcsInit"></a> +<h4>Hg.vcsInit</h4> +<b>vcsInit</b>(<i>vcsDir, noDialog = False</i>) +<p> + Public method used to initialize the mercurial repository. +</p><p> + The initialization is done, when a project is converted into a Mercurial + controlled project. Therefore we always return TRUE without doing anything. +</p><dl> +<dt><i>vcsDir</i></dt> +<dd> +name of the VCS directory (string) +</dd><dt><i>noDialog</i></dt> +<dd> +flag indicating quiet operations (boolean) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +always TRUE +</dd> +</dl><a NAME="Hg.vcsLog" ID="Hg.vcsLog"></a> +<h4>Hg.vcsLog</h4> +<b>vcsLog</b>(<i>name</i>) +<p> + Public method used to view the log of a file/directory from the + Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to show the log of (string) +</dd> +</dl><a NAME="Hg.vcsMerge" ID="Hg.vcsMerge"></a> +<h4>Hg.vcsMerge</h4> +<b>vcsMerge</b>(<i>name</i>) +<p> + Public method used to merge a URL/revision into the local project. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be merged (string) +</dd> +</dl><a NAME="Hg.vcsMove" ID="Hg.vcsMove"></a> +<h4>Hg.vcsMove</h4> +<b>vcsMove</b>(<i>name, project, target = None, noDialog = False</i>) +<p> + Public method used to move a file/directory. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be moved (string) +</dd><dt><i>project</i></dt> +<dd> +reference to the project object +</dd><dt><i>target</i></dt> +<dd> +new name of the file/directory (string) +</dd><dt><i>noDialog</i></dt> +<dd> +flag indicating quiet operations +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating successfull operation (boolean) +</dd> +</dl><a NAME="Hg.vcsName" ID="Hg.vcsName"></a> +<h4>Hg.vcsName</h4> +<b>vcsName</b>(<i></i>) +<p> + Public method returning the name of the vcs. +</p><dl> +<dt>Returns:</dt> +<dd> +always 'Mercurial' (string) +</dd> +</dl><a NAME="Hg.vcsNewProjectOptionsDialog" ID="Hg.vcsNewProjectOptionsDialog"></a> +<h4>Hg.vcsNewProjectOptionsDialog</h4> +<b>vcsNewProjectOptionsDialog</b>(<i>parent = None</i>) +<p> + Public method to get a dialog to enter repository info for getting a new project. +</p><dl> +<dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="Hg.vcsOptionsDialog" ID="Hg.vcsOptionsDialog"></a> +<h4>Hg.vcsOptionsDialog</h4> +<b>vcsOptionsDialog</b>(<i>project, archive, editable = False, parent = None</i>) +<p> + Public method to get a dialog to enter repository info. +</p><dl> +<dt><i>project</i></dt> +<dd> +reference to the project object +</dd><dt><i>archive</i></dt> +<dd> +name of the project in the repository (string) +</dd><dt><i>editable</i></dt> +<dd> +flag indicating that the project name is editable (boolean) +</dd><dt><i>parent</i></dt> +<dd> +parent widget (QWidget) +</dd> +</dl><a NAME="Hg.vcsRegisteredState" ID="Hg.vcsRegisteredState"></a> +<h4>Hg.vcsRegisteredState</h4> +<b>vcsRegisteredState</b>(<i>name</i>) +<p> + Public method used to get the registered state of a file in the vcs. +</p><dl> +<dt><i>name</i></dt> +<dd> +filename to check (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +a combination of canBeCommited and canBeAdded +</dd> +</dl><a NAME="Hg.vcsRemove" ID="Hg.vcsRemove"></a> +<h4>Hg.vcsRemove</h4> +<b>vcsRemove</b>(<i>name, project = False, noDialog = False</i>) +<p> + Public method used to remove a file/directory from the Mercurial repository. +</p><p> + The default operation is to remove the local copy as well. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be removed (string or list of strings)) +</dd><dt><i>project</i></dt> +<dd> +flag indicating deletion of a project tree (boolean) (not needed) +</dd><dt><i>noDialog</i></dt> +<dd> +flag indicating quiet operations +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating successfull operation (boolean) +</dd> +</dl><a NAME="Hg.vcsRepositoryInfos" ID="Hg.vcsRepositoryInfos"></a> +<h4>Hg.vcsRepositoryInfos</h4> +<b>vcsRepositoryInfos</b>(<i>ppath</i>) +<p> + Public method to retrieve information about the repository. +</p><dl> +<dt><i>ppath</i></dt> +<dd> +local path to get the repository infos (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +string with ready formated info for display (string) +</dd> +</dl><a NAME="Hg.vcsRevert" ID="Hg.vcsRevert"></a> +<h4>Hg.vcsRevert</h4> +<b>vcsRevert</b>(<i>name</i>) +<p> + Public method used to revert changes made to a file/directory. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be reverted (string) +</dd> +</dl><a NAME="Hg.vcsShutdown" ID="Hg.vcsShutdown"></a> +<h4>Hg.vcsShutdown</h4> +<b>vcsShutdown</b>(<i></i>) +<p> + Public method used to shutdown the Mercurial interface. +</p><a NAME="Hg.vcsStatus" ID="Hg.vcsStatus"></a> +<h4>Hg.vcsStatus</h4> +<b>vcsStatus</b>(<i>name</i>) +<p> + Public method used to view the status of files/directories in the + Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name(s) to show the status of + (string or list of strings) +</dd> +</dl><a NAME="Hg.vcsSwitch" ID="Hg.vcsSwitch"></a> +<h4>Hg.vcsSwitch</h4> +<b>vcsSwitch</b>(<i>name</i>) +<p> + Public method used to switch a working directory to a different revision. +</p><dl> +<dt><i>name</i></dt> +<dd> +directory name to be switched (string) +</dd> +</dl><a NAME="Hg.vcsTag" ID="Hg.vcsTag"></a> +<h4>Hg.vcsTag</h4> +<b>vcsTag</b>(<i>name</i>) +<p> + Public method used to set the tag in the Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be tagged (string) +</dd> +</dl><a NAME="Hg.vcsUpdate" ID="Hg.vcsUpdate"></a> +<h4>Hg.vcsUpdate</h4> +<b>vcsUpdate</b>(<i>name, noDialog = False, revision = None</i>) +<p> + Public method used to update a file/directory with the Mercurial repository. +</p><dl> +<dt><i>name</i></dt> +<dd> +file/directory name to be updated (string or list of strings) +</dd><dt><i>noDialog</i></dt> +<dd> +flag indicating quiet operations (boolean) +</dd><dt><i>revision=</i></dt> +<dd> +revision to update to (string) +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating, that the update contained an add + or delete (boolean) +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsPySvn.SvnBlameDialog.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsPySvn.SvnBlameDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -61,7 +61,7 @@ <td>Private slot called when the process finished or the user pressed the button.</td> </tr><tr> <td><a href="#SvnBlameDialog.__generateItem">__generateItem</a></td> -<td>Private method to generate a tag item in the taglist.</td> +<td>Private method to generate a blame item in the blame list.</td> </tr><tr> <td><a href="#SvnBlameDialog.__resizeColumns">__resizeColumns</a></td> <td>Private method to resize the list columns.</td> @@ -98,20 +98,20 @@ <h4>SvnBlameDialog.__generateItem</h4> <b>__generateItem</b>(<i>revision, author, lineno, text</i>) <p> - Private method to generate a tag item in the taglist. + Private method to generate a blame item in the blame list. </p><dl> <dt><i>revision</i></dt> <dd> -revision string (integer) +revision string (string) </dd><dt><i>author</i></dt> <dd> -author of the tag (string) +author of the change (string) </dd><dt><i>lineno</i></dt> <dd> -line number (integer) +linenumber (string) </dd><dt><i>text</i></dt> <dd> -text of the line (string) +line of text from the annotated file (string) </dd> </dl><a NAME="SvnBlameDialog.__resizeColumns" ID="SvnBlameDialog.__resizeColumns"></a> <h4>SvnBlameDialog.__resizeColumns</h4>
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsPySvn.SvnDialog.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsPySvn.SvnDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -119,7 +119,12 @@ <b>hasAddOrDelete</b>(<i></i>) <p> Public method to check, if the last action contained an add or delete. -</p><a NAME="SvnDialog.on_buttonBox_clicked" ID="SvnDialog.on_buttonBox_clicked"></a> +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating the presence of an add or delete (boolean) +</dd> +</dl><a NAME="SvnDialog.on_buttonBox_clicked" ID="SvnDialog.on_buttonBox_clicked"></a> <h4>SvnDialog.on_buttonBox_clicked</h4> <b>on_buttonBox_clicked</b>(<i>button</i>) <p>
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsPySvn.SvnMergeDialog.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsPySvn.SvnMergeDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -61,7 +61,7 @@ <td>Private method used to enable/disable the OK-button.</td> </tr><tr> <td><a href="#SvnMergeDialog.getParameters">getParameters</a></td> -<td>Public method to retrieve the tag data.</td> +<td>Public method to retrieve the merge data.</td> </tr><tr> <td><a href="#SvnMergeDialog.on_tag1Combo_editTextChanged">on_tag1Combo_editTextChanged</a></td> <td>Private slot to handle the tag1Combo editTextChanged signal.</td> @@ -106,7 +106,7 @@ <h4>SvnMergeDialog.getParameters</h4> <b>getParameters</b>(<i></i>) <p> - Public method to retrieve the tag data. + Public method to retrieve the merge data. </p><dl> <dt>Returns:</dt> <dd>
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsSubversion.SvnBlameDialog.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsSubversion.SvnBlameDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -61,7 +61,7 @@ <td>Private slot called when the process finished or the user pressed the button.</td> </tr><tr> <td><a href="#SvnBlameDialog.__generateItem">__generateItem</a></td> -<td>Private method to generate a tag item in the taglist.</td> +<td>Private method to generate a blame item in the blame list.</td> </tr><tr> <td><a href="#SvnBlameDialog.__procFinished">__procFinished</a></td> <td>Private slot connected to the finished signal.</td> @@ -119,20 +119,17 @@ <h4>SvnBlameDialog.__generateItem</h4> <b>__generateItem</b>(<i>revision, author, text</i>) <p> - Private method to generate a tag item in the taglist. + Private method to generate a blame item in the blame list. </p><dl> <dt><i>revision</i></dt> <dd> revision string (string) </dd><dt><i>author</i></dt> <dd> -author of the tag (string) -</dd><dt><i>date</i></dt> +author of the change (string) +</dd><dt><i>text</i></dt> <dd> -date of the tag (string) -</dd><dt><i>name</i></dt> -<dd> -name (path) of the tag (string) +line of text from the annotated file (string) </dd> </dl><a NAME="SvnBlameDialog.__procFinished" ID="SvnBlameDialog.__procFinished"></a> <h4>SvnBlameDialog.__procFinished</h4>
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsSubversion.SvnDialog.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsSubversion.SvnDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -150,7 +150,12 @@ <b>hasAddOrDelete</b>(<i></i>) <p> Public method to check, if the last action contained an add or delete. -</p><a NAME="SvnDialog.keyPressEvent" ID="SvnDialog.keyPressEvent"></a> +</p><dl> +<dt>Returns:</dt> +<dd> +flag indicating the presence of an add or delete (boolean) +</dd> +</dl><a NAME="SvnDialog.keyPressEvent" ID="SvnDialog.keyPressEvent"></a> <h4>SvnDialog.keyPressEvent</h4> <b>keyPressEvent</b>(<i>evt</i>) <p>
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsSubversion.SvnMergeDialog.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsSubversion.SvnMergeDialog.html Mon Apr 12 18:00:42 2010 +0000 @@ -61,7 +61,7 @@ <td>Private method used to enable/disable the OK-button.</td> </tr><tr> <td><a href="#SvnMergeDialog.getParameters">getParameters</a></td> -<td>Public method to retrieve the tag data.</td> +<td>Public method to retrieve the merge data.</td> </tr><tr> <td><a href="#SvnMergeDialog.on_tag1Combo_editTextChanged">on_tag1Combo_editTextChanged</a></td> <td>Private slot to handle the tag1Combo editTextChanged signal.</td> @@ -106,7 +106,7 @@ <h4>SvnMergeDialog.getParameters</h4> <b>getParameters</b>(<i></i>) <p> - Public method to retrieve the tag data. + Public method to retrieve the merge data. </p><dl> <dt>Returns:</dt> <dd>
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsSubversion.subversion.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsSubversion.subversion.html Mon Apr 12 18:00:42 2010 +0000 @@ -601,7 +601,7 @@ </p><p> <b>Note:</b> If a shortcut is to be taken, the code will only check, if the named directory has been scanned already. If so, it is assumed, that the states for - all files has been populated by the previous run. + all files have been populated by the previous run. </p><dl> <dt><i>names</i></dt> <dd> @@ -790,7 +790,7 @@ <dt>Returns:</dt> <dd> flag indicating an execution without errors (boolean) - and a flag indicating the version controll status (boolean) + and a flag indicating the version control status (boolean) </dd> </dl><a NAME="Subversion.vcsInit" ID="Subversion.vcsInit"></a> <h4>Subversion.vcsInit</h4>
--- a/Documentation/Source/eric5.Project.ProjectBrowserModel.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/eric5.Project.ProjectBrowserModel.html Mon Apr 12 18:00:42 2010 +0000 @@ -639,6 +639,9 @@ </tr><tr> <td><a href="#ProjectBrowserSimpleDirectoryItem.lessThan">lessThan</a></td> <td>Public method to check, if the item is less than the other one.</td> +</tr><tr> +<td><a href="#ProjectBrowserSimpleDirectoryItem.setName">setName</a></td> +<td>Public method to set the directory name.</td> </tr> </table> <a NAME="ProjectBrowserSimpleDirectoryItem.__init__" ID="ProjectBrowserSimpleDirectoryItem.__init__"></a> @@ -691,6 +694,19 @@ <dd> true, if this item is less than other (boolean) </dd> +</dl><a NAME="ProjectBrowserSimpleDirectoryItem.setName" ID="ProjectBrowserSimpleDirectoryItem.setName"></a> +<h4>ProjectBrowserSimpleDirectoryItem.setName</h4> +<b>setName</b>(<i>dinfo, full = True</i>) +<p> + Public method to set the directory name. +</p><dl> +<dt><i>dinfo</i></dt> +<dd> +dinfo is the string for the directory (string) +</dd><dt><i>full</i></dt> +<dd> +flag indicating full pathname should be displayed (boolean) +</dd> </dl> <div align="right"><a href="#top">Up</a></div> <hr />
--- a/Documentation/Source/index-eric5.Plugins.VcsPlugins.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/index-eric5.Plugins.VcsPlugins.html Mon Apr 12 18:00:42 2010 +0000 @@ -28,6 +28,9 @@ <h3>Packages</h3> <table> <tr> +<td><a href="index-eric5.Plugins.VcsPlugins.vcsMercurial.html">vcsMercurial</a></td> +<td>Package implementing the vcs interface to Mercurial</td> +</tr><tr> <td><a href="index-eric5.Plugins.VcsPlugins.vcsPySvn.html">vcsPySvn</a></td> <td>Package implementing the vcs interface to Subversion</td> </tr><tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/index-eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage</h1> +<p> +Package implementing the the Mercurial configuration page. +</p> + + +<h3>Modules</h3> +<table> +<tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage.html">MercurialPage</a></td> +<td>Module implementing the Mercurial configuration page.</td> +</tr> +</table> +</body></html> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/index-eric5.Plugins.VcsPlugins.vcsMercurial.html Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' +'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> +<html><head> +<title>eric5.Plugins.VcsPlugins.vcsMercurial</title> +<style> +body { + background:white; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #4FA4FF; } +h2 { color: white; background: #4FA4FF; } +h3 { color: white; background: #00557F; } +h4 { color: white; background: #00557F; } + +a { color: #AA5500; } + +</style> +</head> +<body> +<h1>eric5.Plugins.VcsPlugins.vcsMercurial</h1> +<p> +Package implementing the vcs interface to Mercurial +</p><p> +It consists of the hg class, the project helper classes and some +Mercurial specific dialogs. +</p> + +<h3>Packages</h3> +<table> +<tr> +<td><a href="index-eric5.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.html">ConfigurationPage</a></td> +<td>Package implementing the the Mercurial configuration page.</td> +</tr> +</table> + +<h3>Modules</h3> +<table> +<tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.Config.html">Config</a></td> +<td>Module defining configuration variables for the Mercurial package</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgAnnotateDialog.html">HgAnnotateDialog</a></td> +<td>Module implementing a dialog to show the output of the hg annotate command.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommandDialog.html">HgCommandDialog</a></td> +<td>Module implementing the Mercurial command dialog.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgCommitDialog.html">HgCommitDialog</a></td> +<td>Module implementing a dialog to enter the commit message.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgCopyDialog.html">HgCopyDialog</a></td> +<td>Module implementing a dialog to enter the data for a copy or rename operation.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgDialog.html">HgDialog</a></td> +<td>Module implementing a dialog starting a process and showing its output.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgDiffDialog.html">HgDiffDialog</a></td> +<td>Module implementing a dialog to show the output of the hg diff command process.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html">HgLogBrowserDialog</a></td> +<td>Module implementing a dialog to browse the log history.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html">HgLogDialog</a></td> +<td>Module implementing a dialog to show the output of the hg log command process.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgMergeDialog.html">HgMergeDialog</a></td> +<td>Module implementing a dialog to enter the data for a merge operation.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgNewProjectOptionsDialog.html">HgNewProjectOptionsDialog</a></td> +<td>Module implementing the Mercurial Options Dialog for a new project from the repository.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgOptionsDialog.html">HgOptionsDialog</a></td> +<td>Module implementing a dialog to enter options used to start a project in the VCS.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionSelectionDialog.html">HgRevisionSelectionDialog</a></td> +<td>Module implementing a dialog to select a revision.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgRevisionsSelectionDialog.html">HgRevisionsSelectionDialog</a></td> +<td>Module implementing a dialog to enter the revisions for the hg diff command.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html">HgStatusDialog</a></td> +<td>Module implementing a dialog to show the output of the hg status command process.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgStatusMonitorThread.html">HgStatusMonitorThread</a></td> +<td>Module implementing the VCS status monitor thread class for Mercurial.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagBranchListDialog.html">HgTagBranchListDialog</a></td> +<td>Module implementing a dialog to show a list of tags or branches.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgTagDialog.html">HgTagDialog</a></td> +<td>Module implementing a dialog to enter the data for a tagging operation.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.HgUtilities.html">HgUtilities</a></td> +<td>Module implementing some common utility functions for the Mercurial package.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectBrowserHelper.html">ProjectBrowserHelper</a></td> +<td>Module implementing the VCS project browser helper for Mercurial.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.ProjectHelper.html">ProjectHelper</a></td> +<td>Module implementing the VCS project helper for Mercurial.</td> +</tr><tr> +<td><a href="eric5.Plugins.VcsPlugins.vcsMercurial.hg.html">hg</a></td> +<td>Module implementing the version control systems interface to Mercurial.</td> +</tr> +</table> +</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric5.Plugins.html Mon Apr 12 17:45:51 2010 +0000 +++ b/Documentation/Source/index-eric5.Plugins.html Mon Apr 12 18:00:42 2010 +0000 @@ -66,6 +66,9 @@ <td><a href="eric5.Plugins.PluginTabnanny.html">PluginTabnanny</a></td> <td>Module implementing the Tabnanny plugin.</td> </tr><tr> +<td><a href="eric5.Plugins.PluginVcsMercurial.html">PluginVcsMercurial</a></td> +<td>Module implementing the Mercurial version control plugin.</td> +</tr><tr> <td><a href="eric5.Plugins.PluginVcsPySvn.html">PluginVcsPySvn</a></td> <td>Module implementing the PySvn version control plugin.</td> </tr><tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/PluginVcsMercurial.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,224 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Mercurial version control plugin. +""" + +import os + +from PyQt4.QtGui import QApplication + +from E5Gui.E5Application import e5App + +import Preferences +from Preferences.Shortcuts import readShortcuts + +from VcsPlugins.vcsMercurial.HgUtilities import getConfigPath + +import Utilities + +# Start-Of-Header +name = "Mercurial Plugin" +author = "Detlev Offenbach <detlev@die-offenbachs.de>" +autoactivate = False +deactivateable = True +version = "5.0.0" +pluginType = "version_control" +pluginTypename = "Mercurial" +className = "VcsMercurialPlugin" +packageName = "__core__" +shortDescription = "Implements the Mercurial version control interface." +longDescription = """This plugin provides the Mercurial version control interface.""" +pyqtApi = 2 +# End-Of-Header + +error = "" + +def exeDisplayData(): + """ + Public method to support the display of some executable info. + + @return dictionary containing the data to query the presence of + the executable + """ + exe = 'hg' + if Utilities.isWindowsPlatform(): + exe += '.exe' + + data = { + "programEntry" : True, + "header" : QApplication.translate("VcsMercurialPlugin", + "Version Control - Mercurial"), + "exe" : exe, + "versionCommand" : 'version', + "versionStartsWith" : 'Mercurial', + "versionPosition" : -1, + "version" : "", + "versionCleanup" : (0, -1), + } + + return data + +def getVcsSystemIndicator(): + """ + Public function to get the indicators for this version control system. + + @return dictionary with indicator as key and a tuple with the vcs name (string) + and vcs display string (string) + """ + global pluginTypename + data = {} + exe = 'hg' + if Utilities.isWindowsPlatform(): + exe += '.exe' + if Utilities.isinpath(exe): + data[".hg"] = (pluginTypename, displayString()) + data["_hg"] = (pluginTypename, displayString()) + return data + +def displayString(): + """ + Public function to get the display string. + + @return display string (string) + """ + exe = 'hg' + if Utilities.isWindowsPlatform(): + exe += '.exe' + if Utilities.isinpath(exe): + return QApplication.translate('VcsMercurialPlugin', 'Mercurial') + else: + return "" + +mercurialCfgPluginObject = None + +def createConfigurationPage(configDlg): + """ + Module function to create the configuration page. + + @return reference to the configuration page + """ + global mercurialCfgPluginObject + from VcsPlugins.vcsMercurial.ConfigurationPage.MercurialPage import MercurialPage + if mercurialCfgPluginObject is None: + mercurialCfgPluginObject = VcsMercurialPlugin(None) + page = MercurialPage(mercurialCfgPluginObject) + return page + +def getConfigData(): + """ + Module function returning data as required by the configuration dialog. + + @return dictionary with key "zzz_mercurialPage" containing the relevant data + """ + return { + "zzz_mercurialPage" : \ + [QApplication.translate("VcsMercurialPlugin", "Mercurial"), + os.path.join("VcsPlugins", "vcsMercurial", "icons", + "preferences-mercurial.png"), + createConfigurationPage, "vcsPage", None], + } + +def prepareUninstall(): + """ + Module function to prepare for an uninstallation. + """ + if not e5App().getObject("PluginManager").isPluginLoaded("PluginVcsMercurial"): + Preferences.Prefs.settings.remove("Mercurial") + +class VcsMercurialPlugin(object): + """ + Class implementing the Mercurial version control plugin. + """ + def __init__(self, ui): + """ + Constructor + + @param ui reference to the user interface object (UI.UserInterface) + """ + self.__ui = ui + + self.__mercurialDefaults = { + "StopLogOnCopy" : True, # used in log browser + "LogLimit" : 100, + "CommitMessages" : 20, + } + + from VcsPlugins.vcsMercurial.ProjectHelper import HgProjectHelper + self.__projectHelperObject = HgProjectHelper(None, None) + try: + e5App().registerPluginObject(pluginTypename, self.__projectHelperObject, + pluginType) + except KeyError: + pass # ignore duplicate registration + readShortcuts(pluginName = pluginTypename) + + def getProjectHelper(self): + """ + Public method to get a reference to the project helper object. + + @return reference to the project helper object + """ + return self.__projectHelperObject + + def activate(self): + """ + Public method to activate this plugin. + + @return tuple of reference to instantiated viewmanager and + activation status (boolean) + """ + from VcsPlugins.vcsMercurial.hg import Hg + self.__object = Hg(self, self.__ui) + return self.__object, True + + def deactivate(self): + """ + Public method to deactivate this plugin. + """ + self.__object = None + + def getPreferences(self, key): + """ + Public method to retrieve the various settings. + + @param key the key of the value to get + @return the requested setting + """ + if key in ["StopLogOnCopy"]: + return Preferences.toBool(Preferences.Prefs.settings.value( + "Mercurial/" + key, self.__mercurialDefaults[key])) + elif key in ["LogLimit", "CommitMessages"]: + return int(Preferences.Prefs.settings.value("Mercurial/" + key, + self.__mercurialDefaults[key])) + elif key in ["Commits"]: + return Preferences.toList(Preferences.Prefs.settings.value( + "Mercurial/" + key)) + else: + return Preferences.Prefs.settings.value("Mercurial/" + key) + + def setPreferences(self, key, value): + """ + Public method to store the various settings. + + @param key the key of the setting to be set + @param value the value to be set + """ + Preferences.Prefs.settings.setValue("Mercurial/" + key, value) + + def getConfigPath(self): + """ + Public method to get the filename of the config file. + + @return filename of the config file (string) + """ + return getConfigPath() + + def prepareUninstall(self): + """ + Public method to prepare for an uninstallation. + """ + e5App().unregisterPluginObject(pluginTypename)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/Config.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module defining configuration variables for the Mercurial package +""" + +# Available protocols fpr the repository URL +ConfigHgProtocols = [ + 'file://', + 'http://', + 'https://', + 'ssh://', +]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Mercurial configuration page. +""" + +from PyQt4.QtCore import pyqtSlot + +from QScintilla.MiniEditor import MiniEditor + +from Preferences.ConfigurationPages.ConfigurationPageBase import ConfigurationPageBase +from .Ui_MercurialPage import Ui_MercurialPage + +class MercurialPage(ConfigurationPageBase, Ui_MercurialPage): + """ + Class implementing the Mercurial configuration page. + """ + def __init__(self, plugin): + """ + Constructor + + @param plugin reference to the plugin object + """ + ConfigurationPageBase.__init__(self) + self.setupUi(self) + self.setObjectName("MercurialPage") + + self.__plugin = plugin + + # set initial values + self.logSpinBox.setValue(self.__plugin.getPreferences("LogLimit")) + self.commitSpinBox.setValue(self.__plugin.getPreferences("CommitMessages")) + + def save(self): + """ + Public slot to save the Mercurial configuration. + """ + self.__plugin.setPreferences("LogLimit", self.logSpinBox.value()) + self.__plugin.setPreferences("CommitMessages", self.commitSpinBox.value()) + + @pyqtSlot() + def on_configButton_clicked(self): + """ + Private slot to edit the (per user) Mercurial config file. + """ + cfgFile = self.__plugin.getConfigPath() + editor = MiniEditor(cfgFile, "Properties", self) + editor.show()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MercurialPage</class> + <widget class="QWidget" name="MercurialPage"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>406</width> + <height>384</height> + </rect> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QLabel" name="headerLabel"> + <property name="text"> + <string><b>Configure Mercurial Interface</b></string> + </property> + </widget> + </item> + <item> + <widget class="Line" name="line15"> + <property name="frameShape"> + <enum>QFrame::HLine</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Sunken</enum> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>Log</string> + </property> + <layout class="QHBoxLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>No. of log messages shown:</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="logSpinBox"> + <property name="toolTip"> + <string>Enter the number of log messages to be shown</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="maximum"> + <number>999999</number> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>41</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_2"> + <property name="title"> + <string>Commit</string> + </property> + <layout class="QHBoxLayout"> + <item> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>No. of commit messages to remember:</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="commitSpinBox"> + <property name="toolTip"> + <string>Enter the number of commit messages to remember</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>100</number> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QPushButton" name="configButton"> + <property name="toolTip"> + <string>Edit the mercurial config file</string> + </property> + <property name="text"> + <string>Edit config file</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>388</width> + <height>21</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/__init__.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Package implementing the the Mercurial configuration page. +"""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,266 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to show the output of the hg annotate command. +""" + +import os + +from PyQt4.QtCore import pyqtSlot, SIGNAL, QProcess, QTimer, Qt +from PyQt4.QtGui import QDialog, QDialogButtonBox, QFont, QMessageBox, QHeaderView, \ + QTreeWidgetItem, QLineEdit + +from .Ui_HgAnnotateDialog import Ui_HgAnnotateDialog + +import Preferences +import Utilities + +class HgAnnotateDialog(QDialog, Ui_HgAnnotateDialog): + """ + Class implementing a dialog to show the output of the hg annotate command. + """ + def __init__(self, vcs, parent = None): + """ + Constructor + + @param vcs reference to the vcs object + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + + self.process = QProcess() + self.vcs = vcs + + self.annotateList.headerItem().setText(self.annotateList.columnCount(), "") + font = QFont(self.annotateList.font()) + if Utilities.isWindowsPlatform(): + font.setFamily("Lucida Console") + else: + font.setFamily("Monospace") + self.annotateList.setFont(font) + + self.__ioEncoding = Preferences.getSystem("IOEncoding") + + self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'), + self.__procFinished) + self.connect(self.process, SIGNAL('readyReadStandardOutput()'), + self.__readStdout) + self.connect(self.process, SIGNAL('readyReadStandardError()'), + self.__readStderr) + + def closeEvent(self, e): + """ + Private slot implementing a close event handler. + + @param e close event (QCloseEvent) + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + e.accept() + + def start(self, fn): + """ + Public slot to start the annotate command. + + @param fn filename to show the log for (string) + """ + self.errorGroup.hide() + self.intercept = False + self.activateWindow() + self.lineno = 1 + + dname, fname = self.vcs.splitPath(fn) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + args = [] + args.append('annotate') + args.append('--follow') + args.append('--user') + args.append('--date') + args.append('--number') + args.append('--changeset') + args.append('--quiet') + args.append(fn) + + self.process.kill() + self.process.setWorkingDirectory(repodir) + + self.process.start('hg', args) + procStarted = self.process.waitForStarted() + if not procStarted: + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + QMessageBox.critical(None, + self.trUtf8('Process Generation Error'), + self.trUtf8( + 'The process {0} could not be started. ' + 'Ensure, that it is in the search path.' + ).format('hg')) + else: + self.inputGroup.setEnabled(True) + self.inputGroup.show() + + def __finish(self): + """ + Private slot called when the process finished or the user pressed the button. + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + + self.process = None + + self.annotateList.doItemsLayout() + self.__resizeColumns() + + def on_buttonBox_clicked(self, button): + """ + Private slot called by a button of the button box clicked. + + @param button button that was clicked (QAbstractButton) + """ + if button == self.buttonBox.button(QDialogButtonBox.Close): + self.close() + elif button == self.buttonBox.button(QDialogButtonBox.Cancel): + self.__finish() + + def __procFinished(self, exitCode, exitStatus): + """ + Private slot connected to the finished signal. + + @param exitCode exit code of the process (integer) + @param exitStatus exit status of the process (QProcess.ExitStatus) + """ + self.__finish() + + def __resizeColumns(self): + """ + Private method to resize the list columns. + """ + self.annotateList.header().resizeSections(QHeaderView.ResizeToContents) + + def __generateItem(self, revision, changeset, author, date, text): + """ + Private method to generate a tag item in the taglist. + + @param revision revision string (string) + @param changeset changeset string (string) + @param author author of the change (string) + @param date date of the tag (string) + @param name name (path) of the tag (string) + """ + itm = QTreeWidgetItem(self.annotateList, + [revision, changeset, author, date, "%d" % self.lineno, text]) + self.lineno += 1 + itm.setTextAlignment(0, Qt.AlignRight) + itm.setTextAlignment(4, Qt.AlignRight) + + def __readStdout(self): + """ + Private slot to handle the readyReadStdout signal. + + It reads the output of the process, formats it and inserts it into + the annotation list. + """ + self.process.setReadChannel(QProcess.StandardOutput) + + while self.process.canReadLine(): + s = str(self.process.readLine(), self.__ioEncoding, 'replace').strip() + try: + info, text = s.split(": ", 1) + except ValueError: + info = s[:-2] + text = "" + author, rev, changeset, date, file = info.split() + self.__generateItem(rev, changeset, author, date, text) + + def __readStderr(self): + """ + Private slot to handle the readyReadStderr signal. + + It reads the error output of the process and inserts it into the + error pane. + """ + if self.process is not None: + self.errorGroup.show() + s = str(self.process.readAllStandardError(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.errors.insertPlainText(s) + self.errors.ensureCursorVisible() + + def on_passwordCheckBox_toggled(self, isOn): + """ + Private slot to handle the password checkbox toggled. + + @param isOn flag indicating the status of the check box (boolean) + """ + if isOn: + self.input.setEchoMode(QLineEdit.Password) + else: + self.input.setEchoMode(QLineEdit.Normal) + + @pyqtSlot() + def on_sendButton_clicked(self): + """ + Private slot to send the input to the subversion process. + """ + input = self.input.text() + input += os.linesep + + if self.passwordCheckBox.isChecked(): + self.errors.insertPlainText(os.linesep) + self.errors.ensureCursorVisible() + else: + self.errors.insertPlainText(input) + self.errors.ensureCursorVisible() + + self.process.write(input) + + self.passwordCheckBox.setChecked(False) + self.input.clear() + + def on_input_returnPressed(self): + """ + Private slot to handle the press of the return key in the input field. + """ + self.intercept = True + self.on_sendButton_clicked() + + def keyPressEvent(self, evt): + """ + Protected slot to handle a key press event. + + @param evt the key press event (QKeyEvent) + """ + if self.intercept: + self.intercept = False + evt.accept() + return + QDialog.keyPressEvent(self, evt)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,179 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgAnnotateDialog</class> + <widget class="QDialog" name="HgAnnotateDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>690</width> + <height>750</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Annotate</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTreeWidget" name="annotateList"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>6</verstretch> + </sizepolicy> + </property> + <property name="alternatingRowColors"> + <bool>true</bool> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::NoSelection</enum> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="itemsExpandable"> + <bool>false</bool> + </property> + <attribute name="headerStretchLastSection"> + <bool>false</bool> + </attribute> + <attribute name="headerStretchLastSection"> + <bool>false</bool> + </attribute> + <column> + <property name="text"> + <string>Revision</string> + </property> + </column> + <column> + <property name="text"> + <string>Changeset</string> + </property> + </column> + <column> + <property name="text"> + <string>Author</string> + </property> + </column> + <column> + <property name="text"> + <string>Date</string> + </property> + </column> + <column> + <property name="text"> + <string>Line</string> + </property> + </column> + </widget> + </item> + <item> + <widget class="QGroupBox" name="errorGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>1</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Errors</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="errors"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="inputGroup"> + <property name="title"> + <string>Input</string> + </property> + <layout class="QGridLayout"> + <item row="1" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>327</width> + <height>29</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="sendButton"> + <property name="toolTip"> + <string>Press to send the input to the hg process</string> + </property> + <property name="text"> + <string>&Send</string> + </property> + <property name="shortcut"> + <string>Alt+S</string> + </property> + </widget> + </item> + <item row="0" column="0" colspan="3"> + <widget class="QLineEdit" name="input"> + <property name="toolTip"> + <string>Enter data to be sent to the hg process</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="passwordCheckBox"> + <property name="toolTip"> + <string>Select to switch the input field to password mode</string> + </property> + <property name="text"> + <string>&Password Mode</string> + </property> + <property name="shortcut"> + <string>Alt+P</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <tabstops> + <tabstop>annotateList</tabstop> + <tabstop>input</tabstop> + <tabstop>passwordCheckBox</tabstop> + <tabstop>sendButton</tabstop> + </tabstops> + <resources/> + <connections/> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgCommandDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Mercurial command dialog. +""" + +from PyQt4.QtCore import pyqtSlot +from PyQt4.QtGui import QDialog, QDialogButtonBox + +from .Ui_HgCommandDialog import Ui_HgCommandDialog + +import Utilities + +class HgCommandDialog(QDialog, Ui_HgCommandDialog): + """ + Class implementing the Mercurial command dialog. + + It implements a dialog that is used to enter an + arbitrary Mercurial command. It asks the user to enter + the commandline parameters. + """ + def __init__(self, argvList, ppath, parent = None): + """ + Constructor + + @param argvList history list of commandline arguments (list of strings) + @param ppath pathname of the project directory (string) + @param parent parent widget of this dialog (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.okButton = self.buttonBox.button(QDialogButtonBox.Ok) + self.okButton.setEnabled(False) + + self.commandCombo.clear() + self.commandCombo.addItems(argvList) + if len(argvList) > 0: + self.commandCombo.setCurrentIndex(0) + self.projectDirLabel.setText(ppath) + + # modify some what's this help texts + t = self.commandCombo.whatsThis() + if t: + t += Utilities.getPercentReplacementHelp() + self.commandCombo.setWhatsThis(t) + + def on_commandCombo_editTextChanged(self, text): + """ + Private method used to enable/disable the OK-button. + + @param text ignored + """ + self.okButton.setDisabled(self.commandCombo.currentText() == "") + + def getData(self): + """ + Public method to retrieve the data entered into this dialog. + + @return commandline parameters (string) + """ + return self.commandCombo.currentText()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgCommandDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,141 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgCommandDialog</class> + <widget class="QDialog" name="HgCommandDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>628</width> + <height>99</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Command</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>Mercurial Command:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="commandCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the Mercurial command to be executed with all necessary parameters</string> + </property> + <property name="whatsThis"> + <string><b>Mercurial Command</b> +<p>Enter the Mercurial command to be executed including all necessary +parameters. If a parameter of the commandline includes a space you have to +surround this parameter by single or double quotes. Do not include the name +of the Mercurial client executable (i.e. hg).</p></string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="insertPolicy"> + <enum>QComboBox::InsertAtTop</enum> + </property> + <property name="autoCompletion"> + <bool>true</bool> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="textLabel3"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Project Directory:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLabel" name="projectDirLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>This shows the root directory of the current project.</string> + </property> + <property name="text"> + <string>project directory</string> + </property> + </widget> + </item> + <item row="2" column="0" colspan="2"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="6"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>commandCombo</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>HgCommandDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>41</x> + <y>103</y> + </hint> + <hint type="destinationlabel"> + <x>49</x> + <y>129</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgCommandDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>173</x> + <y>109</y> + </hint> + <hint type="destinationlabel"> + <x>174</x> + <y>128</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to enter the commit message. +""" + +from PyQt4.QtCore import pyqtSlot, Qt, SIGNAL +from PyQt4.QtGui import QWidget, QDialogButtonBox + +from .Ui_HgCommitDialog import Ui_HgCommitDialog + +import Preferences + +class HgCommitDialog(QWidget, Ui_HgCommitDialog): + """ + Class implementing a dialog to enter the commit message. + + @signal accepted() emitted, if the dialog was accepted + @signal rejected() emitted, if the dialog was rejected + """ + def __init__(self, vcs, parent = None): + """ + Constructor + + @param vcs reference to the vcs object + @param parent parent widget (QWidget) + """ + QWidget.__init__(self, parent, Qt.WindowFlags(Qt.Window)) + self.setupUi(self) + + def showEvent(self, evt): + """ + Public method called when the dialog is about to be shown. + + @param evt the event (QShowEvent) + """ + self.recentCommitMessages = Preferences.toList( + Preferences.Prefs.settings.value('Mercurial/Commits')) + self.recentComboBox.clear() + self.recentComboBox.addItem("") + self.recentComboBox.addItems(self.recentCommitMessages) + + def logMessage(self): + """ + Public method to retrieve the log message. + + @return the log message (string) + """ + msg = self.logEdit.toPlainText() + if msg: + if msg in self.recentCommitMessages: + self.recentCommitMessages.remove(msg) + self.recentCommitMessages.insert(0, msg) + no = int(Preferences.Prefs.settings\ + .value('Mercurial/CommitMessages', 20)) + del self.recentCommitMessages[no:] + Preferences.Prefs.settings.setValue('Mercurial/Commits', + self.recentCommitMessages) + return msg + + def on_buttonBox_clicked(self, button): + """ + Private slot called by a button of the button box clicked. + + @param button button that was clicked (QAbstractButton) + """ + if button == self.buttonBox.button(QDialogButtonBox.Cancel): + self.logEdit.clear() + + def on_buttonBox_accepted(self): + """ + Private slot called by the buttonBox accepted signal. + """ + self.close() + self.emit(SIGNAL("accepted()")) + + def on_buttonBox_rejected(self): + """ + Private slot called by the buttonBox rejected signal. + """ + self.close() + self.emit(SIGNAL("rejected()")) + + @pyqtSlot(str) + def on_recentComboBox_activated(self, txt): + """ + Private slot to select a commit message from recent ones. + """ + if txt: + self.logEdit.setPlainText(txt)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgCommitDialog</class> + <widget class="QWidget" name="HgCommitDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>450</width> + <height>384</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <item> + <widget class="QGroupBox" name="logGroup"> + <property name="title"> + <string>Commit Message</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QTextEdit" name="logEdit"> + <property name="toolTip"> + <string>Enter the log message.</string> + </property> + <property name="whatsThis"> + <string><b>Log Message</b> +<p>Enter the log message for the commit action.</p></string> + </property> + <property name="tabChangesFocus"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Recent commit messages</string> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="recentComboBox"> + <property name="toolTip"> + <string>Select a recent commit message to use</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="6"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>logEdit</tabstop> + <tabstop>recentComboBox</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections/> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to enter the data for a copy or rename operation. +""" + +import os.path + +from PyQt4.QtCore import pyqtSlot +from PyQt4.QtGui import QDialog, QFileDialog + +from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter + +from .Ui_HgCopyDialog import Ui_HgCopyDialog + +class HgCopyDialog(QDialog, Ui_HgCopyDialog): + """ + Class implementing a dialog to enter the data for a copy or rename operation. + """ + def __init__(self, source, parent = None, move = False, force = False): + """ + Constructor + + @param source name of the source file/directory (string) + @param parent parent widget (QWidget) + @param move flag indicating a move operation + @param force flag indicating a forced operation (boolean) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.source = source + if os.path.isdir(self.source): + self.targetCompleter = E5DirCompleter(self.targetEdit) + else: + self.targetCompleter = E5FileCompleter(self.targetEdit) + + if move: + self.setWindowTitle(self.trUtf8('Mercurial Move')) + else: + self.forceCheckBox.setEnabled(False) + self.forceCheckBox.setChecked(force) + + self.sourceEdit.setText(source) + + def getData(self): + """ + Public method to retrieve the copy data. + + @return the target name (string) and a flag indicating + the operation should be enforced (boolean) + """ + return self.targetEdit.text(), self.forceCheckBox.isChecked() + + @pyqtSlot() + def on_dirButton_clicked(self): + """ + Private slot to handle the button press for selecting the target via a + selection dialog. + """ + if os.path.isdir(self.source): + target = QFileDialog.getExistingDirectory(\ + self, + self.trUtf8("Select target"), + self.targetEdit.text(), + QFileDialog.Options(QFileDialog.ShowDirsOnly)) + else: + target = QFileDialog.getSaveFileName(\ + self, + self.trUtf8("Select target"), + self.targetEdit.text(), + "", + QFileDialog.Options(QFileDialog.DontConfirmOverwrite)) + + if target: + self.targetEdit.setText(target)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgCopyDialog</class> + <widget class="QDialog" name="HgCopyDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>409</width> + <height>138</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Copy</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout"> + <item> + <layout class="QGridLayout"> + <item row="1" column="2"> + <widget class="QPushButton" name="dirButton"> + <property name="toolTip"> + <string>Press to open a selection dialog</string> + </property> + <property name="whatsThis"> + <string><b>Target directory</b> +<p>Select the target name for the operation via a selection dialog.</p></string> + </property> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>Source:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="sourceEdit"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="toolTip"> + <string>Shows the name of the source</string> + </property> + <property name="whatsThis"> + <string><b>Source name</b> +<p>This field shows the name of the source.</p></string> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="targetEdit"> + <property name="toolTip"> + <string>Enter the target name</string> + </property> + <property name="whatsThis"> + <string><b>Target name</b> +<p>Enter the new name in this field.</p></string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="textLabel2"> + <property name="text"> + <string>Target:</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QCheckBox" name="forceCheckBox"> + <property name="toolTip"> + <string>Select to force the operation</string> + </property> + <property name="text"> + <string>Enforce operation</string> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="6"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>targetEdit</tabstop> + <tabstop>dirButton</tabstop> + <tabstop>forceCheckBox</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>HgCopyDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>32</x> + <y>79</y> + </hint> + <hint type="destinationlabel"> + <x>32</x> + <y>97</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgCopyDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>101</x> + <y>80</y> + </hint> + <hint type="destinationlabel"> + <x>101</x> + <y>97</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,246 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog starting a process and showing its output. +""" + +import os + +from PyQt4.QtCore import QProcess, QTimer, SIGNAL, pyqtSlot +from PyQt4.QtGui import QDialog, QDialogButtonBox, QMessageBox, QLineEdit + +from .Ui_HgDialog import Ui_HgDialog + +import Preferences + +class HgDialog(QDialog, Ui_HgDialog): + """ + Class implementing a dialog starting a process and showing its output. + + It starts a QProcess and displays a dialog that + shows the output of the process. The dialog is modal, + which causes a synchronized execution of the process. + """ + def __init__(self, text, parent = None): + """ + Constructor + + @param text text to be shown by the label (string) + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + + self.proc = None + self.username = '' + self.password = '' + + self.outputGroup.setTitle(text) + + def __finish(self): + """ + Private slot called when the process finished or the user pressed the button. + """ + if self.proc is not None and \ + self.proc.state() != QProcess.NotRunning: + self.proc.terminate() + QTimer.singleShot(2000, self.proc.kill) + self.proc.waitForFinished(3000) + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + + self.proc = None + + if Preferences.getVCS("AutoClose") and \ + self.normal and \ + self.errors.toPlainText() == "": + self.accept() + + if self.__updateCommand and self.normal: + # check, if we had additions or deletions + lastLine = self.resultbox.toPlainText().splitlines()[-1] + if lastLine: + adds, merges, deletes, conflicts = \ + [int(a.split()[0]) for a in lastLine.split(",")] + self.__hasAddOrDelete = adds > 0 or deletes > 0 + + def on_buttonBox_clicked(self, button): + """ + Private slot called by a button of the button box clicked. + + @param button button that was clicked (QAbstractButton) + """ + if button == self.buttonBox.button(QDialogButtonBox.Close): + self.close() + elif button == self.buttonBox.button(QDialogButtonBox.Cancel): + self.__finish() + + def __procFinished(self, exitCode, exitStatus): + """ + Private slot connected to the finished signal. + + @param exitCode exit code of the process (integer) + @param exitStatus exit status of the process (QProcess.ExitStatus) + """ + self.normal = (exitStatus == QProcess.NormalExit) and (exitCode == 0) + self.__finish() + + def startProcess(self, args, workingDir = None): + """ + Public slot used to start the process. + + @param args list of arguments for the process (list of strings) + @param workingDir working directory for the process (string) + @return flag indicating a successful start of the process + """ + self.errorGroup.hide() + self.normal = False + self.intercept = False + + self.__hasAddOrDelete = False + self.__updateCommand = args[0] == "update" + + self.proc = QProcess() + + self.resultbox.append(' '.join(args)) + self.resultbox.append('') + + self.connect(self.proc, SIGNAL('finished(int, QProcess::ExitStatus)'), + self.__procFinished) + self.connect(self.proc, SIGNAL('readyReadStandardOutput()'), + self.__readStdout) + self.connect(self.proc, SIGNAL('readyReadStandardError()'), + self.__readStderr) + + if workingDir: + self.proc.setWorkingDirectory(workingDir) + self.proc.start('hg', args) + procStarted = self.proc.waitForStarted() + if not procStarted: + self.buttonBox.setFocus() + self.inputGroup.setEnabled(False) + QMessageBox.critical(None, + self.trUtf8('Process Generation Error'), + self.trUtf8( + 'The process {0} could not be started. ' + 'Ensure, that it is in the search path.' + ).format('hg')) + else: + self.inputGroup.setEnabled(True) + self.inputGroup.show() + return procStarted + + def normalExit(self): + """ + Public method to check for a normal process termination. + + @return flag indicating normal process termination (boolean) + """ + return self.normal + + def normalExitWithoutErrors(self): + """ + Public method to check for a normal process termination without + error messages. + + @return flag indicating normal process termination (boolean) + """ + return self.normal and self.errors.toPlainText() == "" + + def __readStdout(self): + """ + Private slot to handle the readyReadStandardOutput signal. + + It reads the output of the process, formats it and inserts it into + the contents pane. + """ + if self.proc is not None: + s = str(self.proc.readAllStandardOutput(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.resultbox.insertPlainText(s) + self.resultbox.ensureCursorVisible() + + def __readStderr(self): + """ + Private slot to handle the readyReadStandardError signal. + + It reads the error output of the process and inserts it into the + error pane. + """ + if self.proc is not None: + self.errorGroup.show() + s = str(self.proc.readAllStandardError(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.errors.insertPlainText(s) + self.errors.ensureCursorVisible() + + def on_passwordCheckBox_toggled(self, isOn): + """ + Private slot to handle the password checkbox toggled. + + @param isOn flag indicating the status of the check box (boolean) + """ + if isOn: + self.input.setEchoMode(QLineEdit.Password) + else: + self.input.setEchoMode(QLineEdit.Normal) + + @pyqtSlot() + def on_sendButton_clicked(self): + """ + Private slot to send the input to the subversion process. + """ + input = self.input.text() + input += os.linesep + + if self.passwordCheckBox.isChecked(): + self.errors.insertPlainText(os.linesep) + self.errors.ensureCursorVisible() + else: + self.errors.insertPlainText(input) + self.errors.ensureCursorVisible() + + self.proc.write(input) + + self.passwordCheckBox.setChecked(False) + self.input.clear() + + def on_input_returnPressed(self): + """ + Private slot to handle the press of the return key in the input field. + """ + self.intercept = True + self.on_sendButton_clicked() + + def keyPressEvent(self, evt): + """ + Protected slot to handle a key press event. + + @param evt the key press event (QKeyEvent) + """ + if self.intercept: + self.intercept = False + evt.accept() + return + QDialog.keyPressEvent(self, evt) + + def hasAddOrDelete(self): + """ + Public method to check, if the last action contained an add or delete. + + @return flag indicating the presence of an add or delete (boolean) + """ + return self.__hasAddOrDelete
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,155 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgDialog</class> + <widget class="QDialog" name="HgDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>593</width> + <height>499</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QGroupBox" name="outputGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>2</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Output</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="resultbox"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="errorGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>1</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Errors</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="errors"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="inputGroup"> + <property name="title"> + <string>Input</string> + </property> + <layout class="QGridLayout"> + <item row="1" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>327</width> + <height>29</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="sendButton"> + <property name="toolTip"> + <string>Press to send the input to the hg process</string> + </property> + <property name="text"> + <string>&Send</string> + </property> + <property name="shortcut"> + <string>Alt+S</string> + </property> + </widget> + </item> + <item row="0" column="0" colspan="3"> + <widget class="QLineEdit" name="input"> + <property name="toolTip"> + <string>Enter data to be sent to the hg process</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="passwordCheckBox"> + <property name="toolTip"> + <string>Select to switch the input field to password mode</string> + </property> + <property name="text"> + <string>&Password Mode</string> + </property> + <property name="shortcut"> + <string>Alt+P</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="11"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>input</tabstop> + <tabstop>sendButton</tabstop> + <tabstop>passwordCheckBox</tabstop> + </tabstops> + <resources/> + <connections/> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,343 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to show the output of the hg diff command process. +""" + +import os + +from PyQt4.QtCore import pyqtSlot, QProcess, SIGNAL, QTimer, QFileInfo +from PyQt4.QtGui import QWidget, QDialogButtonBox, QBrush, QColor, QMessageBox, \ + QTextCursor, QFileDialog, QLineEdit + +from .Ui_HgDiffDialog import Ui_HgDiffDialog + +import Utilities +import Preferences + +class HgDiffDialog(QWidget, Ui_HgDiffDialog): + """ + Class implementing a dialog to show the output of the hg diff command process. + """ + def __init__(self, vcs, parent = None): + """ + Constructor + + @param vcs reference to the vcs object + @param parent parent widget (QWidget) + """ + QWidget.__init__(self, parent) + self.setupUi(self) + + self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + self.process = QProcess() + self.vcs = vcs + + if Utilities.isWindowsPlatform(): + self.contents.setFontFamily("Lucida Console") + else: + self.contents.setFontFamily("Monospace") + + self.cNormalFormat = self.contents.currentCharFormat() + self.cAddedFormat = self.contents.currentCharFormat() + self.cAddedFormat.setBackground(QBrush(QColor(190, 237, 190))) + self.cRemovedFormat = self.contents.currentCharFormat() + self.cRemovedFormat.setBackground(QBrush(QColor(237, 190, 190))) + self.cLineNoFormat = self.contents.currentCharFormat() + self.cLineNoFormat.setBackground(QBrush(QColor(255, 220, 168))) + + self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'), + self.__procFinished) + self.connect(self.process, SIGNAL('readyReadStandardOutput()'), + self.__readStdout) + self.connect(self.process, SIGNAL('readyReadStandardError()'), + self.__readStderr) + + def closeEvent(self, e): + """ + Private slot implementing a close event handler. + + @param e close event (QCloseEvent) + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + e.accept() + + def __getVersionArg(self, version): + """ + Private method to get a hg revision argument for the given revision. + + @param version revision (integer or string) + @return version argument (string) + """ + if version == "WORKING": + return None + else: + return str(version) + + def start(self, fn, versions = None): + """ + Public slot to start the hg diff command. + + @param fn filename to be diffed (string) + @param versions list of versions to be diffed (list of up to 2 strings or None) + """ + self.errorGroup.hide() + self.inputGroup.show() + self.intercept = False + self.filename = fn + + self.process.kill() + + self.contents.clear() + self.paras = 0 + + args = [] + args.append('diff') + self.vcs.addArguments(args, self.vcs.options['global']) + self.vcs.addArguments(args, self.vcs.options['diff']) + + if versions is not None: + self.raise_() + self.activateWindow() + + rev1 = self.__getVersionArg(versions[0]) + rev2 = None + if len(versions) == 2: + rev2 = self.__getVersionArg(versions[1]) + + if rev1 is not None or rev2 is not None: + args.append('-r') + if rev1 is not None and rev2 is not None: + args.append('{0}:{1}'.format(rev1, rev2)) + elif rev2 is None: + args.append(rev1) + elif rev1 is None: + args.append(':{0}'.format(rev2)) + + if isinstance(fn, list): + dname, fnames = self.vcs.splitPathList(fn) + self.vcs.addArguments(args, fn) + else: + dname, fname = self.vcs.splitPath(fn) + args.append(fn) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + self.process.setWorkingDirectory(repodir) + + self.process.start('hg', args) + procStarted = self.process.waitForStarted() + if not procStarted: + self.inputGroup.setEnabled(False) + QMessageBox.critical(None, + self.trUtf8('Process Generation Error'), + self.trUtf8( + 'The process {0} could not be started. ' + 'Ensure, that it is in the search path.' + ).format('hg')) + + def __procFinished(self, exitCode, exitStatus): + """ + Private slot connected to the finished signal. + + @param exitCode exit code of the process (integer) + @param exitStatus exit status of the process (QProcess.ExitStatus) + """ + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + + if self.paras == 0: + self.contents.insertPlainText(\ + self.trUtf8('There is no difference.')) + return + + self.buttonBox.button(QDialogButtonBox.Save).setEnabled(True) + tc = self.contents.textCursor() + tc.movePosition(QTextCursor.Start) + self.contents.setTextCursor(tc) + self.contents.ensureCursorVisible() + + def __appendText(self, txt, format): + """ + Private method to append text to the end of the contents pane. + + @param txt text to insert (string) + @param format text format to be used (QTextCharFormat) + """ + tc = self.contents.textCursor() + tc.movePosition(QTextCursor.End) + self.contents.setTextCursor(tc) + self.contents.setCurrentCharFormat(format) + self.contents.insertPlainText(txt) + + def __readStdout(self): + """ + Private slot to handle the readyReadStandardOutput signal. + + It reads the output of the process, formats it and inserts it into + the contents pane. + """ + self.process.setReadChannel(QProcess.StandardOutput) + + while self.process.canReadLine(): + line = str(self.process.readLine(), + Preferences.getSystem("IOEncoding"), + 'replace') + if line.startswith('+'): + format = self.cAddedFormat + elif line.startswith('-'): + format = self.cRemovedFormat + elif line.startswith('@@'): + format = self.cLineNoFormat + else: + format = self.cNormalFormat + self.__appendText(line, format) + self.paras += 1 + + def __readStderr(self): + """ + Private slot to handle the readyReadStandardError signal. + + It reads the error output of the process and inserts it into the + error pane. + """ + if self.process is not None: + self.errorGroup.show() + s = str(self.process.readAllStandardError(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.errors.insertPlainText(s) + self.errors.ensureCursorVisible() + + def on_buttonBox_clicked(self, button): + """ + Private slot called by a button of the button box clicked. + + @param button button that was clicked (QAbstractButton) + """ + if button == self.buttonBox.button(QDialogButtonBox.Save): + self.on_saveButton_clicked() + + @pyqtSlot() + def on_saveButton_clicked(self): + """ + Private slot to handle the Save button press. + + It saves the diff shown in the dialog to a file in the local + filesystem. + """ + if isinstance(self.filename, list): + if len(self.filename) > 1: + fname = self.vcs.splitPathList(self.filename)[0] + else: + dname, fname = self.vcs.splitPath(self.filename[0]) + if fname != '.': + fname = "%s.diff" % self.filename[0] + else: + fname = dname + else: + fname = self.vcs.splitPath(self.filename)[0] + + fname, selectedFilter = QFileDialog.getSaveFileNameAndFilter(\ + self, + self.trUtf8("Save Diff"), + fname, + self.trUtf8("Patch Files (*.diff)"), + None, + QFileDialog.Options(QFileDialog.DontConfirmOverwrite)) + + if not fname: + return # user aborted + + ext = QFileInfo(fname).suffix() + if not ext: + ex = selectedFilter.split("(*")[1].split(")")[0] + if ex: + fname += ex + if QFileInfo(fname).exists(): + res = QMessageBox.warning(self, + self.trUtf8("Save Diff"), + self.trUtf8("<p>The patch file <b>{0}</b> already exists.</p>") + .format(fname), + QMessageBox.StandardButtons(\ + QMessageBox.Abort | \ + QMessageBox.Save), + QMessageBox.Abort) + if res != QMessageBox.Save: + return + fname = Utilities.toNativeSeparators(fname) + + try: + f = open(fname, "w", encoding = "utf-8") + f.write(self.contents.toPlainText()) + f.close() + except IOError as why: + QMessageBox.critical(self, self.trUtf8('Save Diff'), + self.trUtf8('<p>The patch file <b>{0}</b> could not be saved.' + '<br>Reason: {1}</p>') + .format(fname, str(why))) + + def on_passwordCheckBox_toggled(self, isOn): + """ + Private slot to handle the password checkbox toggled. + + @param isOn flag indicating the status of the check box (boolean) + """ + if isOn: + self.input.setEchoMode(QLineEdit.Password) + else: + self.input.setEchoMode(QLineEdit.Normal) + + @pyqtSlot() + def on_sendButton_clicked(self): + """ + Private slot to send the input to the subversion process. + """ + input = self.input.text() + input += os.linesep + + if self.passwordCheckBox.isChecked(): + self.errors.insertPlainText(os.linesep) + self.errors.ensureCursorVisible() + else: + self.errors.insertPlainText(input) + self.errors.ensureCursorVisible() + + self.process.write(input) + + self.passwordCheckBox.setChecked(False) + self.input.clear() + + def on_input_returnPressed(self): + """ + Private slot to handle the press of the return key in the input field. + """ + self.intercept = True + self.on_sendButton_clicked() + + def keyPressEvent(self, evt): + """ + Protected slot to handle a key press event. + + @param evt the key press event (QKeyEvent) + """ + if self.intercept: + self.intercept = False + evt.accept() + return + QWidget.keyPressEvent(self, evt)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,171 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgDiffDialog</class> + <widget class="QWidget" name="HgDiffDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>749</width> + <height>646</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Diff</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QGroupBox" name="contentsGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>3</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Difference</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="contents"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="whatsThis"> + <string><b>Mercurial Diff</b><p>This shows the output of the hg diff command.</p></string> + </property> + <property name="lineWrapMode"> + <enum>QTextEdit::NoWrap</enum> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="tabStopWidth"> + <number>8</number> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="errorGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>1</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Errors</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="errors"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="inputGroup"> + <property name="title"> + <string>Input</string> + </property> + <layout class="QGridLayout"> + <item row="1" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>327</width> + <height>29</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="sendButton"> + <property name="toolTip"> + <string>Press to send the input to the hg process</string> + </property> + <property name="text"> + <string>&Send</string> + </property> + <property name="shortcut"> + <string>Alt+S</string> + </property> + </widget> + </item> + <item row="0" column="0" colspan="3"> + <widget class="QLineEdit" name="input"> + <property name="toolTip"> + <string>Enter data to be sent to the hg process</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="passwordCheckBox"> + <property name="toolTip"> + <string>Select to switch the input field to password mode</string> + </property> + <property name="text"> + <string>&Password Mode</string> + </property> + <property name="shortcut"> + <string>Alt+P</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Close|QDialogButtonBox::Save</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgDiffDialog</receiver> + <slot>close()</slot> + <hints> + <hint type="sourcelabel"> + <x>197</x> + <y>624</y> + </hint> + <hint type="destinationlabel"> + <x>201</x> + <y>645</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,645 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to browse the log history. +""" + +import os + +from PyQt4.QtCore import pyqtSlot, SIGNAL, Qt, QDate, QProcess, QTimer, QRegExp +from PyQt4.QtGui import QDialog, QDialogButtonBox, QHeaderView, QTreeWidgetItem, \ + QApplication, QMessageBox, QCursor, QWidget, QLineEdit + +from .Ui_HgLogBrowserDialog import Ui_HgLogBrowserDialog +from .HgDiffDialog import HgDiffDialog + +import UI.PixmapCache + +import Preferences + +class HgLogBrowserDialog(QDialog, Ui_HgLogBrowserDialog): + """ + Class implementing a dialog to browse the log history. + """ + def __init__(self, vcs, parent = None): + """ + Constructor + + @param vcs reference to the vcs object + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + + self.filesTree.headerItem().setText(self.filesTree.columnCount(), "") + self.filesTree.header().setSortIndicator(0, Qt.AscendingOrder) + + self.vcs = vcs + + self.__maxDate = QDate() + self.__minDate = QDate() + self.__filterLogsEnabled = True + + self.fromDate.setDisplayFormat("yyyy-MM-dd") + self.toDate.setDisplayFormat("yyyy-MM-dd") + self.fromDate.setDate(QDate.currentDate()) + self.toDate.setDate(QDate.currentDate()) + self.fieldCombo.setCurrentIndex(self.fieldCombo.findText(self.trUtf8("Message"))) + self.clearRxEditButton.setIcon(UI.PixmapCache.getIcon("clearLeft.png")) + self.limitSpinBox.setValue(self.vcs.getPlugin().getPreferences("LogLimit")) + self.stopCheckBox.setChecked(self.vcs.getPlugin().getPreferences("StopLogOnCopy")) + + self.__messageRole = Qt.UserRole + self.__changesRole = Qt.UserRole + 1 + + self.process = QProcess() + self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'), + self.__procFinished) + self.connect(self.process, SIGNAL('readyReadStandardOutput()'), + self.__readStdout) + self.connect(self.process, SIGNAL('readyReadStandardError()'), + self.__readStderr) + + self.flags = { + 'A' : self.trUtf8('Added'), + 'D' : self.trUtf8('Deleted'), + 'M' : self.trUtf8('Modified'), + } + + self.buf = [] # buffer for stdout + self.diff = None + self.__started = False + self.__lastRev = 0 + + def closeEvent(self, e): + """ + Private slot implementing a close event handler. + + @param e close event (QCloseEvent) + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + e.accept() + + def __resizeColumnsLog(self): + """ + Private method to resize the log tree columns. + """ + self.logTree.header().resizeSections(QHeaderView.ResizeToContents) + self.logTree.header().setStretchLastSection(True) + + def __resortLog(self): + """ + Private method to resort the log tree. + """ + self.logTree.sortItems(self.logTree.sortColumn(), + self.logTree.header().sortIndicatorOrder()) + + def __resizeColumnsFiles(self): + """ + Private method to resize the changed files tree columns. + """ + self.filesTree.header().resizeSections(QHeaderView.ResizeToContents) + self.filesTree.header().setStretchLastSection(True) + + def __resortFiles(self): + """ + Private method to resort the changed files tree. + """ + sortColumn = self.filesTree.sortColumn() + self.filesTree.sortItems(1, + self.filesTree.header().sortIndicatorOrder()) + self.filesTree.sortItems(sortColumn, + self.filesTree.header().sortIndicatorOrder()) + + def __generateLogItem(self, author, date, message, revision, changedPaths): + """ + Private method to generate a log tree entry. + + @param author author info (string) + @param date date info (string) + @param message text of the log message (list of strings) + @param revision revision info (string) + @param changedPaths list of dictionary objects containing + info about the changed files/directories + @return reference to the generated item (QTreeWidgetItem) + """ + msg = [] + for line in message: + msg.append(line.strip()) + + rev, node = revision.split(":") + itm = QTreeWidgetItem(self.logTree, [ + "{0:>7}:{1}".format(rev, node), + author, + date, + " ".join(msg), + ]) + + itm.setData(0, self.__messageRole, message) + itm.setData(0, self.__changesRole, changedPaths) + + itm.setTextAlignment(0, Qt.AlignLeft) + itm.setTextAlignment(1, Qt.AlignLeft) + itm.setTextAlignment(2, Qt.AlignLeft) + itm.setTextAlignment(3, Qt.AlignLeft) + itm.setTextAlignment(4, Qt.AlignLeft) + + try: + self.__lastRev = int(revision.split(":")[0]) + except ValueError: + self.__lastRev = 0 + + return itm + + def __generateFileItem(self, action, path): + """ + Private method to generate a changed files tree entry. + + @param action indicator for the change action ("A", "D" or "M") + @param path path of the file in the repository (string) + @return reference to the generated item (QTreeWidgetItem) + """ + itm = QTreeWidgetItem(self.filesTree, [ + self.flags[action], + path, + ]) + + return itm + + def __getLogEntries(self, startRev = None): + """ + Private method to retrieve log entries from the repository. + + @param startRev revision number to start from (integer, string) + """ + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + QApplication.processEvents() + + QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) + QApplication.processEvents() + + self.intercept = False + self.process.kill() + + self.buf = [] + self.cancelled = False + self.errors.clear() + + self.inputGroup.show() + + args = [] + args.append('log') + self.vcs.addArguments(args, self.vcs.options['global']) + self.vcs.addArguments(args, self.vcs.options['log']) + args.append('--verbose') + args.append('--limit') + args.append(str(self.limitSpinBox.value())) + if startRev is not None: + args.append('--rev') + args.append('{0}:0'.format(startRev)) + if not self.stopCheckBox.isChecked(): + args.append('--follow') + args.append('--template') + args.append("change|{rev}:{node|short}\n" + "user|{author}\n" + "date|{date|isodate}\n" + "description|{desc}\n" + "file_adds|{file_adds}\n" + "files_mods|{file_mods}\n" + "file_dels|{file_dels}\n" + "@@@\n") + if self.fname != "." or self.dname != self.repodir: + args.append(self.filename) + + self.process.setWorkingDirectory(self.repodir) + + self.process.start('hg', args) + procStarted = self.process.waitForStarted() + if not procStarted: + self.inputGroup.setEnabled(False) + QMessageBox.critical(None, + self.trUtf8('Process Generation Error'), + self.trUtf8( + 'The process {0} could not be started. ' + 'Ensure, that it is in the search path.' + ).format('hg')) + + def start(self, fn): + """ + Public slot to start the svn log command. + + @param fn filename to show the log for (string) + """ + self.errorGroup.hide() + QApplication.processEvents() + + self.filename = fn + self.dname, self.fname = self.vcs.splitPath(fn) + + # find the root of the repo + self.repodir = self.dname + while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)): + self.repodir = os.path.dirname(self.repodir) + if self.repodir == os.sep: + return + + self.activateWindow() + self.raise_() + + self.logTree.clear() + self.__started = True + self.__getLogEntries() + + def __procFinished(self, exitCode, exitStatus): + """ + Private slot connected to the finished signal. + + @param exitCode exit code of the process (integer) + @param exitStatus exit status of the process (QProcess.ExitStatus) + """ + self.__processBuffer() + self.__finish() + + def __finish(self): + """ + Private slot called when the process finished or the user pressed the button. + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + QApplication.restoreOverrideCursor() + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + + def __processBuffer(self): + """ + Private method to process the buffered output of the svn log command. + """ + noEntries = 0 + log = {"message" : []} + changedPaths = [] + for s in self.buf: + if s != "@@@\n": + try: + key, value = s.split("|", 1) + except ValueError: + key = "" + value = s + if key == "change": + log["revision"] = value.strip() + elif key == "user": + log["author"] = value.strip() + elif key == "date": + log["date"] = " ".join(value.strip().split()[:2]) + elif key == "description": + log["message"].append(value.strip()) + elif key == "file_adds": + if value.strip(): + for f in value.strip().split(): + changedPaths.append({\ + "action" : "A", + "path" : f, + }) + elif key == "files_mods": + if value.strip(): + for f in value.strip().split(): + changedPaths.append({\ + "action" : "M", + "path" : f, + }) + elif key == "file_dels": + if value.strip(): + for f in value.strip().split(): + changedPaths.append({\ + "action" : "D", + "path" : f, + }) + else: + if value.strip(): + log["message"].append(value.strip()) + else: + if len(log) > 1: + self.__generateLogItem(log["author"], log["date"], + log["message"], log["revision"], changedPaths) + dt = QDate.fromString(log["date"], Qt.ISODate) + if not self.__maxDate.isValid() and not self.__minDate.isValid(): + self.__maxDate = dt + self.__minDate = dt + else: + if self.__maxDate < dt: + self.__maxDate = dt + if self.__minDate > dt: + self.__minDate = dt + noEntries += 1 + log = {"message" : []} + changedPaths = [] + + self.logTree.doItemsLayout() + self.__resizeColumnsLog() + self.__resortLog() + + if self.__started: + self.logTree.setCurrentItem(self.logTree.topLevelItem(0)) + self.__started = False + + if noEntries < self.limitSpinBox.value() and not self.cancelled: + self.nextButton.setEnabled(False) + self.limitSpinBox.setEnabled(False) + + self.__filterLogsEnabled = False + self.fromDate.setMinimumDate(self.__minDate) + self.fromDate.setMaximumDate(self.__maxDate) + self.fromDate.setDate(self.__minDate) + self.toDate.setMinimumDate(self.__minDate) + self.toDate.setMaximumDate(self.__maxDate) + self.toDate.setDate(self.__maxDate) + self.__filterLogsEnabled = True + self.__filterLogs() + + def __readStdout(self): + """ + Private slot to handle the readyReadStandardOutput signal. + + It reads the output of the process and inserts it into a buffer. + """ + self.process.setReadChannel(QProcess.StandardOutput) + + while self.process.canReadLine(): + line = str(self.process.readLine(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.buf.append(line) + + def __readStderr(self): + """ + Private slot to handle the readyReadStandardError signal. + + It reads the error output of the process and inserts it into the + error pane. + """ + if self.process is not None: + self.errorGroup.show() + s = str(self.process.readAllStandardError(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.errors.insertPlainText(s) + self.errors.ensureCursorVisible() + + def __diffRevisions(self, rev1, rev2): + """ + Private method to do a diff of two revisions. + + @param rev1 first revision number (integer) + @param rev2 second revision number (integer) + """ + if self.diff: + self.diff.close() + del self.diff + self.diff = HgDiffDialog(self.vcs) + self.diff.show() + self.diff.start(self.filename, [rev1, rev2]) + + def on_buttonBox_clicked(self, button): + """ + Private slot called by a button of the button box clicked. + + @param button button that was clicked (QAbstractButton) + """ + if button == self.buttonBox.button(QDialogButtonBox.Close): + self.close() + elif button == self.buttonBox.button(QDialogButtonBox.Cancel): + self.cancelled = True + self.__finish() + + @pyqtSlot(QTreeWidgetItem, QTreeWidgetItem) + def on_logTree_currentItemChanged(self, current, previous): + """ + Private slot called, when the current item of the log tree changes. + + @param current reference to the new current item (QTreeWidgetItem) + @param previous reference to the old current item (QTreeWidgetItem) + """ + self.messageEdit.clear() + for line in current.data(0, self.__messageRole): + self.messageEdit.append(line.strip()) + + self.filesTree.clear() + changes = current.data(0, self.__changesRole) + if len(changes) > 0: + for change in changes: + self.__generateFileItem(change["action"], change["path"]) + self.__resizeColumnsFiles() + self.__resortFiles() + + self.diffPreviousButton.setEnabled( + current != self.logTree.topLevelItem(self.logTree.topLevelItemCount() - 1)) + + @pyqtSlot() + def on_logTree_itemSelectionChanged(self): + """ + Private slot called, when the selection has changed. + """ + self.diffRevisionsButton.setEnabled(len(self.logTree.selectedItems()) == 2) + + @pyqtSlot() + def on_nextButton_clicked(self): + """ + Private slot to handle the Next button. + """ + if self.__lastRev > 1: + self.__getLogEntries(self.__lastRev - 1) + + @pyqtSlot() + def on_diffPreviousButton_clicked(self): + """ + Private slot to handle the Diff to Previous button. + """ + itm = self.logTree.currentItem() + if itm is None: + self.diffPreviousButton.setEnabled(False) + return + rev2 = int(itm.text(0).split(":")[0]) + + itm = self.logTree.topLevelItem(self.logTree.indexOfTopLevelItem(itm) + 1) + if itm is None: + self.diffPreviousButton.setEnabled(False) + return + rev1 = int(itm.text(0).split(":")[0]) + + self.__diffRevisions(rev1, rev2) + + @pyqtSlot() + def on_diffRevisionsButton_clicked(self): + """ + Private slot to handle the Compare Revisions button. + """ + items = self.logTree.selectedItems() + if len(items) != 2: + self.diffRevisionsButton.setEnabled(False) + return + + rev2 = int(items[0].text(0).split(":")[0]) + rev1 = int(items[1].text(0).split(":")[0]) + + self.__diffRevisions(min(rev1, rev2), max(rev1, rev2)) + + @pyqtSlot(QDate) + def on_fromDate_dateChanged(self, date): + """ + Private slot called, when the from date changes. + + @param date new date (QDate) + """ + self.__filterLogs() + + @pyqtSlot(QDate) + def on_toDate_dateChanged(self, date): + """ + Private slot called, when the from date changes. + + @param date new date (QDate) + """ + self.__filterLogs() + + @pyqtSlot(str) + def on_fieldCombo_activated(self, txt): + """ + Private slot called, when a new filter field is selected. + + @param txt text of the selected field (string) + """ + self.__filterLogs() + + @pyqtSlot(str) + def on_rxEdit_textChanged(self, txt): + """ + Private slot called, when a filter expression is entered. + + @param txt filter expression (string) + """ + self.__filterLogs() + + def __filterLogs(self): + """ + Private method to filter the log entries. + """ + if self.__filterLogsEnabled: + from_ = self.fromDate.date().toString("yyyy-MM-dd") + to_ = self.toDate.date().addDays(1).toString("yyyy-MM-dd") + txt = self.fieldCombo.currentText() + if txt == self.trUtf8("Author"): + fieldIndex = 1 + searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive) + elif txt == self.trUtf8("Revision"): + fieldIndex = 0 + txt = self.rxEdit.text() + if txt.startswith("^"): + searchRx = QRegExp("^\s*%s" % txt[1:], Qt.CaseInsensitive) + else: + searchRx = QRegExp(txt, Qt.CaseInsensitive) + else: + fieldIndex = 3 + searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive) + + currentItem = self.logTree.currentItem() + for topIndex in range(self.logTree.topLevelItemCount()): + topItem = self.logTree.topLevelItem(topIndex) + if topItem.text(2) <= to_ and topItem.text(2) >= from_ and \ + searchRx.indexIn(topItem.text(fieldIndex)) > -1: + topItem.setHidden(False) + if topItem is currentItem: + self.on_logTree_currentItemChanged(topItem, None) + else: + topItem.setHidden(True) + if topItem is currentItem: + self.messageEdit.clear() + self.filesTree.clear() + + @pyqtSlot() + def on_clearRxEditButton_clicked(self): + """ + Private slot called by a click of the clear RX edit button. + """ + self.rxEdit.clear() + + @pyqtSlot(bool) + def on_stopCheckBox_clicked(self, checked): + """ + Private slot called, when the stop on copy/move checkbox is clicked + """ + self.vcs.getPlugin().setPreferences("StopLogOnCopy", + self.stopCheckBox.isChecked()) + self.nextButton.setEnabled(True) + self.limitSpinBox.setEnabled(True) + + def on_passwordCheckBox_toggled(self, isOn): + """ + Private slot to handle the password checkbox toggled. + + @param isOn flag indicating the status of the check box (boolean) + """ + if isOn: + self.input.setEchoMode(QLineEdit.Password) + else: + self.input.setEchoMode(QLineEdit.Normal) + + @pyqtSlot() + def on_sendButton_clicked(self): + """ + Private slot to send the input to the merurial process. + """ + input = self.input.text() + input += os.linesep + + if self.passwordCheckBox.isChecked(): + self.errors.insertPlainText(os.linesep) + self.errors.ensureCursorVisible() + else: + self.errors.insertPlainText(input) + self.errors.ensureCursorVisible() + self.errorGroup.show() + + self.process.write(input) + + self.passwordCheckBox.setChecked(False) + self.input.clear() + + def on_input_returnPressed(self): + """ + Private slot to handle the press of the return key in the input field. + """ + self.intercept = True + self.on_sendButton_clicked() + + def keyPressEvent(self, evt): + """ + Protected slot to handle a key press event. + + @param evt the key press event (QKeyEvent) + """ + if self.intercept: + self.intercept = False + evt.accept() + return + QWidget.keyPressEvent(self, evt)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,405 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgLogBrowserDialog</class> + <widget class="QDialog" name="HgLogBrowserDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>700</width> + <height>800</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Log</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout"> + <item> + <layout class="QHBoxLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>From:</string> + </property> + </widget> + </item> + <item> + <widget class="QDateEdit" name="fromDate"> + <property name="toolTip"> + <string>Enter the start date</string> + </property> + <property name="calendarPopup"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>To:</string> + </property> + </widget> + </item> + <item> + <widget class="QDateEdit" name="toDate"> + <property name="toolTip"> + <string>Enter the end date</string> + </property> + <property name="calendarPopup"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="fieldCombo"> + <property name="toolTip"> + <string>Select the field to filter on</string> + </property> + <item> + <property name="text"> + <string>Revision</string> + </property> + </item> + <item> + <property name="text"> + <string>Author</string> + </property> + </item> + <item> + <property name="text"> + <string>Message</string> + </property> + </item> + </widget> + </item> + <item> + <widget class="QLineEdit" name="rxEdit"> + <property name="toolTip"> + <string>Enter the regular expression to filter on</string> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="clearRxEditButton"> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QTreeWidget" name="logTree"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>5</verstretch> + </sizepolicy> + </property> + <property name="alternatingRowColors"> + <bool>true</bool> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::ExtendedSelection</enum> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="itemsExpandable"> + <bool>false</bool> + </property> + <property name="sortingEnabled"> + <bool>true</bool> + </property> + <property name="allColumnsShowFocus"> + <bool>true</bool> + </property> + <column> + <property name="text"> + <string>Revision</string> + </property> + </column> + <column> + <property name="text"> + <string>Author</string> + </property> + </column> + <column> + <property name="text"> + <string>Date</string> + </property> + </column> + <column> + <property name="text"> + <string>Message</string> + </property> + </column> + </widget> + </item> + <item> + <widget class="QTextEdit" name="messageEdit"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>2</verstretch> + </sizepolicy> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QTreeWidget" name="filesTree"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>3</verstretch> + </sizepolicy> + </property> + <property name="alternatingRowColors"> + <bool>true</bool> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="itemsExpandable"> + <bool>false</bool> + </property> + <property name="sortingEnabled"> + <bool>true</bool> + </property> + <property name="allColumnsShowFocus"> + <bool>true</bool> + </property> + <column> + <property name="text"> + <string>Action</string> + </property> + </column> + <column> + <property name="text"> + <string>Path</string> + </property> + </column> + <column> + <property name="text"> + <string>Copy from</string> + </property> + </column> + <column> + <property name="text"> + <string>Copy from Rev</string> + </property> + </column> + </widget> + </item> + <item> + <layout class="QHBoxLayout"> + <item> + <widget class="QPushButton" name="nextButton"> + <property name="toolTip"> + <string>Press to get the next bunch of log entries</string> + </property> + <property name="text"> + <string>&Next</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="limitSpinBox"> + <property name="toolTip"> + <string>Enter the limit of entries to fetch</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>10000</number> + </property> + <property name="value"> + <number>100</number> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="stopCheckBox"> + <property name="toolTip"> + <string>Select to stop listing log messages at a copy or move</string> + </property> + <property name="text"> + <string>Stop on Copy/Move</string> + </property> + </widget> + </item> + <item> + <widget class="Line" name="line"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="diffPreviousButton"> + <property name="toolTip"> + <string>Press to generate a diff to the previous revision</string> + </property> + <property name="text"> + <string>&Diff to Previous</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="diffRevisionsButton"> + <property name="toolTip"> + <string>Press to compare two revisions</string> + </property> + <property name="text"> + <string>&Compare Revisions</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>81</width> + <height>29</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QGroupBox" name="errorGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>1</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Errors</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="errors"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="whatsThis"> + <string><b>Mercurial log errors</b><p>This shows possible error messages of the hg log command.</p></string> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="inputGroup"> + <property name="title"> + <string>Input</string> + </property> + <layout class="QGridLayout"> + <item row="1" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>327</width> + <height>29</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="sendButton"> + <property name="toolTip"> + <string>Press to send the input to the hg process</string> + </property> + <property name="text"> + <string>&Send</string> + </property> + <property name="shortcut"> + <string>Alt+S</string> + </property> + </widget> + </item> + <item row="0" column="0" colspan="3"> + <widget class="QLineEdit" name="input"> + <property name="toolTip"> + <string>Enter data to be sent to the hg process</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="passwordCheckBox"> + <property name="toolTip"> + <string>Select to switch the input field to password mode</string> + </property> + <property name="text"> + <string>&Password Mode</string> + </property> + <property name="shortcut"> + <string>Alt+P</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <tabstops> + <tabstop>fromDate</tabstop> + <tabstop>toDate</tabstop> + <tabstop>fieldCombo</tabstop> + <tabstop>rxEdit</tabstop> + <tabstop>clearRxEditButton</tabstop> + <tabstop>logTree</tabstop> + <tabstop>messageEdit</tabstop> + <tabstop>filesTree</tabstop> + <tabstop>nextButton</tabstop> + <tabstop>limitSpinBox</tabstop> + <tabstop>stopCheckBox</tabstop> + <tabstop>diffPreviousButton</tabstop> + <tabstop>diffRevisionsButton</tabstop> + <tabstop>input</tabstop> + <tabstop>passwordCheckBox</tabstop> + <tabstop>sendButton</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections/> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,356 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to show the output of the hg log command process. +""" + +import os + +from PyQt4.QtCore import pyqtSlot, QProcess, SIGNAL, QTimer, QUrl, QByteArray +from PyQt4.QtGui import QWidget, QDialogButtonBox, QApplication, QMessageBox, \ + QLineEdit, QTextCursor + +from .Ui_HgLogDialog import Ui_HgLogDialog +from .HgDiffDialog import HgDiffDialog + +import Utilities +import Preferences + +class HgLogDialog(QWidget, Ui_HgLogDialog): + """ + Class implementing a dialog to show the output of the hg log command process. + + The dialog is nonmodal. Clicking a link in the upper text pane shows + a diff of the revisions. + """ + def __init__(self, vcs, mode = "log", parent = None): + """ + Constructor + + @param vcs reference to the vcs object + @param mode mode of the dialog (string, one of log, incoming, outgoing) + @param parent parent widget (QWidget) + """ + QWidget.__init__(self, parent) + self.setupUi(self) + + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + self.process = QProcess() + self.vcs = vcs + if mode in ("log", "incoming", "outgoing"): + self.mode = mode + else: + self.mode = "log" + + self.contents.setHtml(\ + self.trUtf8('<b>Processing your request, please wait...</b>')) + + self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'), + self.__procFinished) + self.connect(self.process, SIGNAL('readyReadStandardOutput()'), + self.__readStdout) + self.connect(self.process, SIGNAL('readyReadStandardError()'), + self.__readStderr) + + self.connect(self.contents, SIGNAL('anchorClicked(const QUrl&)'), + self.__sourceChanged) + + self.revisions = [] # stack of remembered revisions + self.revString = self.trUtf8('Revision') + + self.buf = [] # buffer for stdout + self.diff = None + + def closeEvent(self, e): + """ + Private slot implementing a close event handler. + + @param e close event (QCloseEvent) + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + e.accept() + + def start(self, fn, noEntries = 0): + """ + Public slot to start the hg log command. + + @param fn filename to show the log for (string) + @param noEntries number of entries to show (integer) + """ + self.errorGroup.hide() + QApplication.processEvents() + + self.intercept = False + self.filename = fn + self.dname, self.fname = self.vcs.splitPath(fn) + + # find the root of the repo + repodir = self.dname + while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + self.process.kill() + + self.activateWindow() + self.raise_() + + args = [] + args.append(self.mode) + self.vcs.addArguments(args, self.vcs.options['global']) + self.vcs.addArguments(args, self.vcs.options['log']) + if noEntries: + args.append('--limit') + args.append(str(noEntries)) + args.append('--template') + args.append("change|{rev}:{node|short}\n" + "branches|{branches}\n" + "tags|{tags}\n" + "parents|{parents}\n" + "user|{author}\n" + "date|{date|isodate}\n" + "description|{desc}\n" + "file_adds|{file_adds}\n" + "files_mods|{file_mods}\n" + "file_dels|{file_dels}\n" + "@@@\n") + if self.fname != "." or self.dname != repodir: + args.append(self.filename) + + self.process.setWorkingDirectory(repodir) + + self.process.start('hg', args) + procStarted = self.process.waitForStarted() + if not procStarted: + self.inputGroup.setEnabled(False) + QMessageBox.critical(None, + self.trUtf8('Process Generation Error'), + self.trUtf8( + 'The process {0} could not be started. ' + 'Ensure, that it is in the search path.' + ).format('hg')) + + def __procFinished(self, exitCode, exitStatus): + """ + Private slot connected to the finished signal. + + @param exitCode exit code of the process (integer) + @param exitStatus exit status of the process (QProcess.ExitStatus) + """ + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + + self.contents.clear() + + if not self.buf: + self.errors.append(self.trUtf8("No log available for '{0}'")\ + .format(self.filename)) + self.errorGroup.show() + return + + hasInitialText = 0 # three states flag (-1, 0, 1) + lvers = 1 + for s in self.buf: + if s == "@@@\n": + self.contents.insertHtml('</p>{0}<br/>\n'.format(80 * "=")) + else: + try: + key, value = s.split("|", 1) + except ValueError: + key = "" + value = s + if key == "change": + if hasInitialText == 1: + self.contents.insertHtml('{0}<br/>\n'.format(80 * "=")) + hasInitialText = -1 + rev, hexRev = value.split(":") + dstr = '<p><b>{0} {1}</b>'.format(self.revString, value) + try: + lv = self.revisions[lvers] + lvers += 1 + url = QUrl() + url.setScheme("file") + url.setPath(self.filename) + query = QByteArray() + query.append(lv.split(":")[0]).append('_').append(rev) + url.setEncodedQuery(query) + dstr += ' [<a href="{0}" name="{1}" id="{1}">{2}</a>]'.format( + url.toString(), + str(query, encoding="ascii"), + self.trUtf8('diff to {0}').format(lv), + ) + except IndexError: + pass + dstr += '<br />\n' + self.contents.insertHtml(dstr) + elif key == "branches": + if value.strip(): + self.contents.insertHtml(self.trUtf8("Branches: {0}<br />\n")\ + .format(value.strip())) + elif key == "tags": + if value.strip(): + self.contents.insertHtml(self.trUtf8("Tags: {0}<br />\n")\ + .format(value.strip())) + elif key == "parents": + if value.strip(): + self.contents.insertHtml(self.trUtf8("Parents: {0}<br />\n")\ + .format(value.strip())) + elif key == "user": + dstr = self.contents.insertHtml( + self.trUtf8('<i>Author: {0}</i><br />\n').format(value.strip())) + elif key == "date": + date, time = value.strip().split()[:2] + dstr = self.contents.insertHtml( + self.trUtf8('<i>Date: {0}, {1}</i><br />\n')\ + .format(date, time)) + elif key == "description": + self.contents.insertHtml(Utilities.html_encode(value.strip())) + self.contents.insertHtml('<br />\n') + elif key == "file_adds": + if value.strip(): + self.contents.insertHtml('<br />\n') + for f in value.strip().split(): + self.contents.insertHtml( + self.trUtf8('Added {0}<br />\n')\ + .format(Utilities.html_encode(f))) + elif key == "files_mods": + if value.strip(): + self.contents.insertHtml('<br />\n') + for f in value.strip().split(): + self.contents.insertHtml( + self.trUtf8('Modified {0}<br />\n')\ + .format(Utilities.html_encode(f))) + elif key == "file_dels": + if value.strip(): + self.contents.insertHtml('<br />\n') + for f in value.strip().split(): + self.contents.insertHtml( + self.trUtf8('Deleted {0}<br />\n')\ + .format(Utilities.html_encode(f))) + else: + if value.strip(): + self.contents.insertHtml(Utilities.html_encode(value.strip())) + self.contents.insertHtml('<br />\n') + if hasInitialText == 0: + hasInitialText = 1 + + tc = self.contents.textCursor() + tc.movePosition(QTextCursor.Start) + self.contents.setTextCursor(tc) + self.contents.ensureCursorVisible() + + def __readStdout(self): + """ + Private slot to handle the readyReadStandardOutput signal. + + It reads the output of the process and inserts it into a buffer. + """ + self.process.setReadChannel(QProcess.StandardOutput) + + while self.process.canReadLine(): + line = str(self.process.readLine(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.buf.append(line) + + if line.startswith("change|"): + ver = line[7:] + # save revision number for later use + self.revisions.append(ver) + + def __readStderr(self): + """ + Private slot to handle the readyReadStandardError signal. + + It reads the error output of the process and inserts it into the + error pane. + """ + if self.process is not None: + self.errorGroup.show() + s = str(self.process.readAllStandardError(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.errors.insertPlainText(s) + self.errors.ensureCursorVisible() + + def __sourceChanged(self, url): + """ + Private slot to handle the sourceChanged signal of the contents pane. + + @param url the url that was clicked (QUrl) + """ + filename = url.path() + if Utilities.isWindowsPlatform(): + if filename.startswith("/"): + filename = filename[1:] + ver = bytes(url.encodedQuery()).decode() + v1, v2 = ver.split('_') + if v1 == "" or v2 == "": + return + self.contents.scrollToAnchor(ver) + + if self.diff: + del self.diff + self.diff = HgDiffDialog(self.vcs) + self.diff.show() + self.diff.start(filename, [v1, v2]) + + def on_passwordCheckBox_toggled(self, isOn): + """ + Private slot to handle the password checkbox toggled. + + @param isOn flag indicating the status of the check box (boolean) + """ + if isOn: + self.input.setEchoMode(QLineEdit.Password) + else: + self.input.setEchoMode(QLineEdit.Normal) + + @pyqtSlot() + def on_sendButton_clicked(self): + """ + Private slot to send the input to the hg process. + """ + input = self.input.text() + input += os.linesep + + if self.passwordCheckBox.isChecked(): + self.errors.insertPlainText(os.linesep) + self.errors.ensureCursorVisible() + else: + self.errors.insertPlainText(input) + self.errors.ensureCursorVisible() + + self.process.write(input) + + self.passwordCheckBox.setChecked(False) + self.input.clear() + + def on_input_returnPressed(self): + """ + Private slot to handle the press of the return key in the input field. + """ + self.intercept = True + self.on_sendButton_clicked() + + def keyPressEvent(self, evt): + """ + Protected slot to handle a key press event. + + @param evt the key press event (QKeyEvent) + """ + if self.intercept: + self.intercept = False + evt.accept() + return + QWidget.keyPressEvent(self, evt)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgLogDialog</class> + <widget class="QWidget" name="HgLogDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>751</width> + <height>649</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Log</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QGroupBox" name="contentsGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>3</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Log</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextBrowser" name="contents"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="whatsThis"> + <string><b>Mercurial Log</b><p>This shows the output of the hg log command. By clicking on the links you may show the difference between revisions.</p></string> + </property> + <property name="openLinks"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="errorGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>1</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Errors</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="errors"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="whatsThis"> + <string><b>Mercurial log errors</b><p>This shows possible error messages of the hg log command.</p></string> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="inputGroup"> + <property name="title"> + <string>Input</string> + </property> + <layout class="QGridLayout"> + <item row="1" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>327</width> + <height>29</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="sendButton"> + <property name="toolTip"> + <string>Press to send the input to the hg process</string> + </property> + <property name="text"> + <string>&Send</string> + </property> + <property name="shortcut"> + <string>Alt+S</string> + </property> + </widget> + </item> + <item row="0" column="0" colspan="3"> + <widget class="QLineEdit" name="input"> + <property name="toolTip"> + <string>Enter data to be sent to the hg process</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="passwordCheckBox"> + <property name="toolTip"> + <string>Select to switch the input field to password mode</string> + </property> + <property name="text"> + <string>&Password Mode</string> + </property> + <property name="shortcut"> + <string>Alt+P</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <tabstops> + <tabstop>input</tabstop> + <tabstop>sendButton</tabstop> + <tabstop>passwordCheckBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgLogDialog</receiver> + <slot>close()</slot> + <hints> + <hint type="sourcelabel"> + <x>262</x> + <y>624</y> + </hint> + <hint type="destinationlabel"> + <x>271</x> + <y>647</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to enter the data for a merge operation. +""" + +from PyQt4.QtGui import QDialog + +from .Ui_HgMergeDialog import Ui_HgMergeDialog + +class HgMergeDialog(QDialog, Ui_HgMergeDialog): + """ + Class implementing a dialog to enter the data for a merge operation. + """ + def __init__(self, force, tagsList, branchesList, parent = None): + """ + Constructor + + @param force flag indicating a forced merge (boolean) + @param tagsList list of tags (list of strings) + @param branchesList list of branches (list of strings) + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.forceCheckBox.setChecked(force) + self.tagCombo.addItems(list(sorted(tagsList))) + self.branchCombo.addItems(list(sorted(["default"] + branchesList))) + + def getParameters(self): + """ + Public method to retrieve the merge data. + + @return tuple naming the revision and a flag indicating a + forced merge (string, boolean) + """ + if self.numberButton.isChecked(): + rev = str(self.numberSpinBox.value()) + elif self.idButton.isChecked(): + rev = self.idEdit.text() + elif self.tagButton.isChecked(): + rev = self.tagCombo.currentText() + elif self.branchButton.isChecked(): + rev = self.branchCombo.currentText() + else: + rev = "" + + return rev, self.forceCheckBox.isChecked()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,284 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgMergeDialog</class> + <widget class="QDialog" name="HgMergeDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>372</width> + <height>256</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Merge</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>Revision</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QRadioButton" name="numberButton"> + <property name="toolTip"> + <string>Select to specify a revision by number</string> + </property> + <property name="text"> + <string>Number</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSpinBox" name="numberSpinBox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a revision number</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>999999999</number> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer name="spacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>158</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0"> + <widget class="QRadioButton" name="idButton"> + <property name="toolTip"> + <string>Select to specify a revision by changeset id</string> + </property> + <property name="text"> + <string>Id:</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2"> + <widget class="QLineEdit" name="idEdit"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a changeset id</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QRadioButton" name="tagButton"> + <property name="toolTip"> + <string>Select to specify a revision by a tag</string> + </property> + <property name="text"> + <string>Tag:</string> + </property> + </widget> + </item> + <item row="2" column="1" colspan="2"> + <widget class="QComboBox" name="tagCombo"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a tag name</string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QRadioButton" name="branchButton"> + <property name="toolTip"> + <string>Select to specify a revision by a branch</string> + </property> + <property name="text"> + <string>Branch:</string> + </property> + </widget> + </item> + <item row="3" column="1" colspan="2"> + <widget class="QComboBox" name="branchCombo"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a branch name</string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="4" column="0" colspan="3"> + <widget class="QRadioButton" name="noneButton"> + <property name="toolTip"> + <string>Select to not specify a specific revision</string> + </property> + <property name="text"> + <string>No revision selected</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QCheckBox" name="forceCheckBox"> + <property name="toolTip"> + <string>Select to force the merge operation</string> + </property> + <property name="text"> + <string>Enforce merge</string> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <tabstops> + <tabstop>numberButton</tabstop> + <tabstop>numberSpinBox</tabstop> + <tabstop>idButton</tabstop> + <tabstop>idEdit</tabstop> + <tabstop>tagButton</tabstop> + <tabstop>tagCombo</tabstop> + <tabstop>branchButton</tabstop> + <tabstop>branchCombo</tabstop> + <tabstop>noneButton</tabstop> + <tabstop>forceCheckBox</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>HgMergeDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>257</x> + <y>246</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>229</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgMergeDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>325</x> + <y>246</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>229</y> + </hint> + </hints> + </connection> + <connection> + <sender>numberButton</sender> + <signal>toggled(bool)</signal> + <receiver>numberSpinBox</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>48</x> + <y>42</y> + </hint> + <hint type="destinationlabel"> + <x>113</x> + <y>43</y> + </hint> + </hints> + </connection> + <connection> + <sender>idButton</sender> + <signal>toggled(bool)</signal> + <receiver>idEdit</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>38</x> + <y>76</y> + </hint> + <hint type="destinationlabel"> + <x>125</x> + <y>75</y> + </hint> + </hints> + </connection> + <connection> + <sender>tagButton</sender> + <signal>toggled(bool)</signal> + <receiver>tagCombo</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>52</x> + <y>104</y> + </hint> + <hint type="destinationlabel"> + <x>124</x> + <y>99</y> + </hint> + </hints> + </connection> + <connection> + <sender>branchButton</sender> + <signal>toggled(bool)</signal> + <receiver>branchCombo</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>71</x> + <y>127</y> + </hint> + <hint type="destinationlabel"> + <x>123</x> + <y>130</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Mercurial Options Dialog for a new project from the repository. +""" + +import os + +from PyQt4.QtCore import pyqtSlot, QDir +from PyQt4.QtGui import QDialog, QFileDialog + +from E5Gui.E5Completers import E5DirCompleter + +from .Ui_HgNewProjectOptionsDialog import Ui_HgNewProjectOptionsDialog +from .Config import ConfigHgProtocols + +import Utilities + +class HgNewProjectOptionsDialog(QDialog, Ui_HgNewProjectOptionsDialog): + """ + Class implementing the Options Dialog for a new project from the repository. + """ + def __init__(self, vcs, parent = None): + """ + Constructor + + @param vcs reference to the version control object + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.vcsDirectoryCompleter = E5DirCompleter(self.vcsUrlEdit) + self.vcsProjectDirCompleter = E5DirCompleter(self.vcsProjectDirEdit) + + self.protocolCombo.addItems(ConfigHgProtocols) + + hd = Utilities.toNativeSeparators(QDir.homePath()) + hd = os.path.join(hd, 'hgroot') + self.vcsUrlEdit.setText(hd) + + self.vcs = vcs + + self.localPath = hd + self.networkPath = "localhost/" + self.localProtocol = True + + @pyqtSlot() + def on_vcsUrlButton_clicked(self): + """ + Private slot to display a selection dialog. + """ + if self.protocolCombo.currentText() == "file://": + directory = QFileDialog.getExistingDirectory(\ + self, + self.trUtf8("Select Repository-Directory"), + self.vcsUrlEdit.text(), + QFileDialog.Options(QFileDialog.ShowDirsOnly)) + + if directory: + self.vcsUrlEdit.setText(Utilities.toNativeSeparators(directory)) +## else: +## dlg = SvnRepoBrowserDialog(self.vcs, mode = "select", parent = self) +## dlg.start(self.protocolCombo.currentText() + self.vcsUrlEdit.text()) +## if dlg.exec_() == QDialog.Accepted: +## url = dlg.getSelectedUrl() +## if url: +## protocol = url.split("://")[0] +## path = url.split("://")[1] +## self.protocolCombo.setCurrentIndex(\ +## self.protocolCombo.findText(protocol + "://")) +## self.vcsUrlEdit.setText(path) + + @pyqtSlot() + def on_projectDirButton_clicked(self): + """ + Private slot to display a directory selection dialog. + """ + directory = QFileDialog.getExistingDirectory(\ + self, + self.trUtf8("Select Project Directory"), + self.vcsProjectDirEdit.text(), + QFileDialog.Options(QFileDialog.ShowDirsOnly)) + + if directory: + self.vcsProjectDirEdit.setText(Utilities.toNativeSeparators(directory)) + + @pyqtSlot(str) + def on_protocolCombo_activated(self, protocol): + """ + Private slot to switch the status of the directory selection button. + + @param protocol name of the selected protocol (string) + """ + self.vcsUrlButton.setEnabled(protocol == "file://") + if protocol == "file://": + self.networkPath = self.vcsUrlEdit.text() + self.vcsUrlEdit.setText(self.localPath) + self.localProtocol = True + else: + if self.localProtocol: + self.localPath = self.vcsUrlEdit.text() + self.vcsUrlEdit.setText(self.networkPath) + self.localProtocol = False + + def getData(self): + """ + Public slot to retrieve the data entered into the dialog. + + @return a tuple of a string (project directory) and a dictionary + containing the data entered. + """ + scheme = self.protocolCombo.currentText() + url = self.vcsUrlEdit.text() + if scheme == "file://" and url[0] not in ["\\", "/"]: + url = "/%s" % url + vcsdatadict = { + "url" : '%s%s' % (scheme, url), + "revision" : self.vcsRevisionEdit.text(), + } + return (self.vcsProjectDirEdit.text(), vcsdatadict)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,179 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgNewProjectOptionsDialog</class> + <widget class="QDialog" name="HgNewProjectOptionsDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>562</width> + <height>176</height> + </rect> + </property> + <property name="windowTitle"> + <string>New Project from Repository</string> + </property> + <property name="whatsThis"> + <string><b>New Project from Repository Dialog</b> +<p>Enter the various repository infos into the entry fields. These values are used, when the new project is retrieved from the repository. If the checkbox is selected, the URL must end in the project name. A repository layout with project/tags, project/branches and project/trunk will be assumed. In this case, you may enter a tag or branch, which must look like tags/tagname or branches/branchname. If the checkbox is not selected, the URL must contain the complete path in the repository.</p> +<p>For remote repositories the URL must contain the hostname.</p></string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="textLabel1"> + <property name="text"> + <string>&Protocol:</string> + </property> + <property name="buddy"> + <cstring>protocolCombo</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="protocolCombo"> + <property name="toolTip"> + <string>Select the protocol to access the repository</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="TextLabel2"> + <property name="text"> + <string>&URL:</string> + </property> + <property name="buddy"> + <cstring>vcsUrlEdit</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="vcsUrlEdit"> + <property name="toolTip"> + <string>Enter the url path of the module in the repository</string> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="vcsUrlButton"> + <property name="toolTip"> + <string>Select the repository url via a directory selection dialog</string> + </property> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="vcsRevisionLabel"> + <property name="text"> + <string>&Revision:</string> + </property> + <property name="buddy"> + <cstring>vcsRevisionEdit</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLineEdit" name="vcsRevisionEdit"> + <property name="toolTip"> + <string>Enter the revision the new project should be generated from</string> + </property> + <property name="whatsThis"> + <string/> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="TextLabel4"> + <property name="text"> + <string>Project &Directory:</string> + </property> + <property name="buddy"> + <cstring>vcsProjectDirEdit</cstring> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="QLineEdit" name="vcsProjectDirEdit"> + <property name="toolTip"> + <string>Enter the directory of the new project.</string> + </property> + <property name="whatsThis"> + <string><b>Project Directory</b> +<p>Enter the directory of the new project. It will be retrieved from +the repository and be placed in this directory.</p></string> + </property> + </widget> + </item> + <item row="3" column="2"> + <widget class="QPushButton" name="projectDirButton"> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="6"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>protocolCombo</tabstop> + <tabstop>vcsUrlEdit</tabstop> + <tabstop>vcsUrlButton</tabstop> + <tabstop>vcsRevisionEdit</tabstop> + <tabstop>vcsProjectDirEdit</tabstop> + <tabstop>projectDirButton</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>HgNewProjectOptionsDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>37</x> + <y>176</y> + </hint> + <hint type="destinationlabel"> + <x>38</x> + <y>198</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgNewProjectOptionsDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>147</x> + <y>177</y> + </hint> + <hint type="destinationlabel"> + <x>153</x> + <y>197</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgOptionsDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to enter options used to start a project in the VCS. +""" + +from PyQt4.QtGui import QDialog + +from .Ui_HgOptionsDialog import Ui_HgOptionsDialog + +class HgOptionsDialog(QDialog, Ui_HgOptionsDialog): + """ + Class implementing a dialog to enter options used to start a project in the + repository. + """ + def __init__(self, vcs, project, parent = None): + """ + Constructor + + @param vcs reference to the version control object + @param project reference to the project object + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + def getData(self): + """ + Public slot to retrieve the data entered into the dialog. + + @return a dictionary containing the data entered + """ + vcsdatadict = { + "message" : self.vcsLogEdit.text(), + } + return vcsdatadict
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgOptionsDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgOptionsDialog</class> + <widget class="QDialog" name="HgOptionsDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>565</width> + <height>78</height> + </rect> + </property> + <property name="windowTitle"> + <string>Repository Infos</string> + </property> + <property name="whatsThis"> + <string><b>Repository Infos Dialog</b> +<p>Enter the various infos into the entry fields. These values are used to generate a new project in the repository. If the checkbox is selected, the URL must end in the project name. A directory tree with project/tags, project/branches and project/trunk will be generated in the repository. If the checkbox is not selected, the URL must contain the complete path in the repository.</p> +<p>For remote repositories the URL must contain the hostname.</p></string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="TextLabel5"> + <property name="text"> + <string>Commit &Message:</string> + </property> + <property name="buddy"> + <cstring>vcsLogEdit</cstring> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="vcsLogEdit"> + <property name="toolTip"> + <string>Enter the log message for the new project.</string> + </property> + <property name="whatsThis"> + <string><b>Log Message</b> +<p>Enter the log message to be used for the new project.</p></string> + </property> + <property name="text"> + <string>new project started</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="6"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>vcsLogEdit</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>HgOptionsDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>56</x> + <y>68</y> + </hint> + <hint type="destinationlabel"> + <x>51</x> + <y>77</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgOptionsDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>213</x> + <y>68</y> + </hint> + <hint type="destinationlabel"> + <x>205</x> + <y>77</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to select a revision. +""" + +from PyQt4.QtGui import QDialog + +from .Ui_HgRevisionSelectionDialog import Ui_HgRevisionSelectionDialog + +class HgRevisionSelectionDialog(QDialog, Ui_HgRevisionSelectionDialog): + """ + Class implementing a dialog to select a revision. + """ + def __init__(self, tagsList, branchesList, parent = None): + """ + Constructor + + @param tagsList list of tags (list of strings) + @param branchesList list of branches (list of strings) + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.tagCombo.addItems(list(sorted(tagsList))) + self.branchCombo.addItems(list(sorted(["default"] + branchesList))) + + def getRevision(self): + """ + Public method to retrieve the selected revision. + + @return tuple naming the revision and a flag indicating a + forced merge (string, boolean) + """ + if self.numberButton.isChecked(): + rev = str(self.numberSpinBox.value()) + elif self.idButton.isChecked(): + rev = self.idEdit.text() + elif self.tagButton.isChecked(): + rev = self.tagCombo.currentText() + elif self.branchButton.isChecked(): + rev = self.branchCombo.currentText() + else: + rev = "" + + return rev
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,285 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgRevisionSelectionDialog</class> + <widget class="QDialog" name="HgRevisionSelectionDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>372</width> + <height>225</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Revision</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>Revision</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QRadioButton" name="numberButton"> + <property name="toolTip"> + <string>Select to specify a revision by number</string> + </property> + <property name="text"> + <string>Number</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSpinBox" name="numberSpinBox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a revision number</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>999999999</number> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer name="spacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>158</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0"> + <widget class="QRadioButton" name="idButton"> + <property name="toolTip"> + <string>Select to specify a revision by changeset id</string> + </property> + <property name="text"> + <string>Id:</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2"> + <widget class="QLineEdit" name="idEdit"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a changeset id</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QRadioButton" name="tagButton"> + <property name="toolTip"> + <string>Select to specify a revision by a tag</string> + </property> + <property name="text"> + <string>Tag:</string> + </property> + </widget> + </item> + <item row="2" column="1" colspan="2"> + <widget class="QComboBox" name="tagCombo"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter a tag name</string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QRadioButton" name="branchButton"> + <property name="toolTip"> + <string>Select to specify a revision by a branch</string> + </property> + <property name="text"> + <string>Branch:</string> + </property> + </widget> + </item> + <item row="3" column="1" colspan="2"> + <widget class="QComboBox" name="branchCombo"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter a branch name</string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="4" column="0" colspan="3"> + <widget class="QRadioButton" name="tipButton"> + <property name="toolTip"> + <string>Select tip revision of repository</string> + </property> + <property name="text"> + <string>TIP</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <tabstops> + <tabstop>numberButton</tabstop> + <tabstop>numberSpinBox</tabstop> + <tabstop>idButton</tabstop> + <tabstop>idEdit</tabstop> + <tabstop>tagButton</tabstop> + <tabstop>tagCombo</tabstop> + <tabstop>branchButton</tabstop> + <tabstop>branchCombo</tabstop> + <tabstop>tipButton</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>HgRevisionSelectionDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>257</x> + <y>215</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>224</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgRevisionSelectionDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>325</x> + <y>215</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>224</y> + </hint> + </hints> + </connection> + <connection> + <sender>numberButton</sender> + <signal>toggled(bool)</signal> + <receiver>numberSpinBox</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>48</x> + <y>42</y> + </hint> + <hint type="destinationlabel"> + <x>113</x> + <y>43</y> + </hint> + </hints> + </connection> + <connection> + <sender>idButton</sender> + <signal>toggled(bool)</signal> + <receiver>idEdit</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>38</x> + <y>76</y> + </hint> + <hint type="destinationlabel"> + <x>125</x> + <y>75</y> + </hint> + </hints> + </connection> + <connection> + <sender>tagButton</sender> + <signal>toggled(bool)</signal> + <receiver>tagCombo</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>52</x> + <y>104</y> + </hint> + <hint type="destinationlabel"> + <x>124</x> + <y>99</y> + </hint> + </hints> + </connection> + <connection> + <sender>branchButton</sender> + <signal>toggled(bool)</signal> + <receiver>branchCombo</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>71</x> + <y>127</y> + </hint> + <hint type="destinationlabel"> + <x>123</x> + <y>130</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgRevisionsSelectionDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to enter the revisions for the hg diff command. +""" + +from PyQt4.QtGui import QDialog + +from .Ui_HgRevisionsSelectionDialog import Ui_HgRevisionsSelectionDialog + +class HgRevisionsSelectionDialog(QDialog, Ui_HgRevisionsSelectionDialog): + """ + Class implementing a dialog to enter the revisions for the hg diff command. + """ + def __init__(self, tagsList, branchesList, parent = None): + """ + Constructor + + @param tagsList list of tags (list of strings) + @param branchesList list of branches (list of strings) + @param parent parent widget of the dialog (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.tag1Combo.addItems(list(sorted(tagsList))) + self.tag2Combo.addItems(list(sorted(tagsList))) + self.branch1Combo.addItems(list(sorted(["default"] + branchesList))) + self.branch2Combo.addItems(list(sorted(["default"] + branchesList))) + + def __getRevision(self, no): + """ + Private method to generate the revision. + + @param no revision number to generate (1 or 2) + @return revision (string) + """ + if no == 1: + numberButton = self.number1Button + numberSpinBox = self.number1SpinBox + idButton = self.id1Button + idEdit = self.id1Edit + tagButton = self.tag1Button + tagCombo = self.tag1Combo + branchButton = self.branch1Button + branchCombo = self.branch1Combo + tipButton = self.tip1Button + prevButton = self.prev1Button + else: + numberButton = self.number2Button + numberSpinBox = self.number2SpinBox + idButton = self.id2Button + idEdit = self.id2Edit + tagButton = self.tag2Button + tagCombo = self.tag2Combo + branchButton = self.branch2Button + branchCombo = self.branch2Combo + tipButton = self.tip2Button + prevButton = self.prev2Button + + if numberButton.isChecked(): + return str(numberSpinBox.value()) + elif idButton.isChecked(): + return idEdit.text() + elif tagButton.isChecked(): + return tagCombo.currentText() + elif branchButton.isChecked(): + return branchCombo.currentText() + elif tipButton.isChecked(): + return "tip" + elif prevButton.isChecked(): + return "." + + def getRevisions(self): + """ + Public method to get the revisions. + + @return list two strings + """ + rev1 = self.__getRevision(1) + rev2 = self.__getRevision(2) + + return [rev1, rev2]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgRevisionsSelectionDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,506 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgRevisionsSelectionDialog</class> + <widget class="QDialog" name="HgRevisionsSelectionDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>371</width> + <height>450</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Diff</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QGroupBox" name="rev1GroupBox"> + <property name="title"> + <string>Revision &1</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QRadioButton" name="number1Button"> + <property name="toolTip"> + <string>Select to specify a revision by number</string> + </property> + <property name="text"> + <string>Number</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSpinBox" name="number1SpinBox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a revision number</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>999999999</number> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0"> + <widget class="QRadioButton" name="id1Button"> + <property name="toolTip"> + <string>Select to specify a revision by changeset id</string> + </property> + <property name="text"> + <string>Id:</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2"> + <widget class="QLineEdit" name="id1Edit"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a changeset id</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QRadioButton" name="tag1Button"> + <property name="toolTip"> + <string>Select to specify a revision by a tag</string> + </property> + <property name="text"> + <string>Tag:</string> + </property> + </widget> + </item> + <item row="2" column="1" colspan="2"> + <widget class="QComboBox" name="tag1Combo"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a tag name</string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QRadioButton" name="branch1Button"> + <property name="toolTip"> + <string>Select to specify a revision by a branch</string> + </property> + <property name="text"> + <string>Branch:</string> + </property> + </widget> + </item> + <item row="3" column="1" colspan="2"> + <widget class="QComboBox" name="branch1Combo"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a branch name</string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="4" column="0" colspan="3"> + <widget class="QRadioButton" name="tip1Button"> + <property name="toolTip"> + <string>Select tip revision of repository</string> + </property> + <property name="text"> + <string>TIP</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="5" column="0" colspan="3"> + <widget class="QRadioButton" name="prev1Button"> + <property name="toolTip"> + <string>Select revision before last commit</string> + </property> + <property name="text"> + <string>PREV</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="rev2GroupBox"> + <property name="title"> + <string>Revision &2</string> + </property> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> + <widget class="QRadioButton" name="number2Button"> + <property name="toolTip"> + <string>Select to specify a revision by number</string> + </property> + <property name="text"> + <string>Number</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSpinBox" name="number2SpinBox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a revision number</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight</set> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>999999999</number> + </property> + </widget> + </item> + <item row="0" column="2"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="0"> + <widget class="QRadioButton" name="id2Button"> + <property name="toolTip"> + <string>Select to specify a revision by changeset id</string> + </property> + <property name="text"> + <string>Id:</string> + </property> + </widget> + </item> + <item row="1" column="1" colspan="2"> + <widget class="QLineEdit" name="id2Edit"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a changeset id</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QRadioButton" name="tag2Button"> + <property name="toolTip"> + <string>Select to specify a revision by a tag</string> + </property> + <property name="text"> + <string>Tag:</string> + </property> + </widget> + </item> + <item row="2" column="1" colspan="2"> + <widget class="QComboBox" name="tag2Combo"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a tag name</string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QRadioButton" name="branch2Button"> + <property name="toolTip"> + <string>Select to specify a revision by a branch</string> + </property> + <property name="text"> + <string>Branch:</string> + </property> + </widget> + </item> + <item row="3" column="1" colspan="2"> + <widget class="QComboBox" name="branch2Combo"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Enter a branch name</string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="4" column="0" colspan="3"> + <widget class="QRadioButton" name="tip2Button"> + <property name="toolTip"> + <string>Select tip revision of repository</string> + </property> + <property name="text"> + <string>TIP</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="5" column="0" colspan="3"> + <widget class="QRadioButton" name="prev2Button"> + <property name="toolTip"> + <string>Select revision before last commit</string> + </property> + <property name="text"> + <string>PREV</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="6"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>number1Button</tabstop> + <tabstop>number1SpinBox</tabstop> + <tabstop>id1Button</tabstop> + <tabstop>id1Edit</tabstop> + <tabstop>tag1Button</tabstop> + <tabstop>tag1Combo</tabstop> + <tabstop>branch1Button</tabstop> + <tabstop>branch1Combo</tabstop> + <tabstop>tip1Button</tabstop> + <tabstop>prev1Button</tabstop> + <tabstop>number2Button</tabstop> + <tabstop>number2SpinBox</tabstop> + <tabstop>id2Button</tabstop> + <tabstop>id2Edit</tabstop> + <tabstop>tag2Button</tabstop> + <tabstop>tag2Combo</tabstop> + <tabstop>branch2Button</tabstop> + <tabstop>branch2Combo</tabstop> + <tabstop>tip2Button</tabstop> + <tabstop>prev2Button</tabstop> + <tabstop>buttonBox</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>HgRevisionsSelectionDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>54</x> + <y>440</y> + </hint> + <hint type="destinationlabel"> + <x>21</x> + <y>143</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgRevisionsSelectionDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>106</x> + <y>440</y> + </hint> + <hint type="destinationlabel"> + <x>73</x> + <y>140</y> + </hint> + </hints> + </connection> + <connection> + <sender>number1Button</sender> + <signal>toggled(bool)</signal> + <receiver>number1SpinBox</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>62</x> + <y>45</y> + </hint> + <hint type="destinationlabel"> + <x>148</x> + <y>43</y> + </hint> + </hints> + </connection> + <connection> + <sender>number2Button</sender> + <signal>toggled(bool)</signal> + <receiver>number2SpinBox</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>72</x> + <y>258</y> + </hint> + <hint type="destinationlabel"> + <x>183</x> + <y>258</y> + </hint> + </hints> + </connection> + <connection> + <sender>id1Button</sender> + <signal>toggled(bool)</signal> + <receiver>id1Edit</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>32</x> + <y>71</y> + </hint> + <hint type="destinationlabel"> + <x>147</x> + <y>72</y> + </hint> + </hints> + </connection> + <connection> + <sender>id2Button</sender> + <signal>toggled(bool)</signal> + <receiver>id2Edit</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>68</x> + <y>286</y> + </hint> + <hint type="destinationlabel"> + <x>230</x> + <y>286</y> + </hint> + </hints> + </connection> + <connection> + <sender>tag1Button</sender> + <signal>toggled(bool)</signal> + <receiver>tag1Combo</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>48</x> + <y>106</y> + </hint> + <hint type="destinationlabel"> + <x>129</x> + <y>101</y> + </hint> + </hints> + </connection> + <connection> + <sender>branch1Button</sender> + <signal>toggled(bool)</signal> + <receiver>branch1Combo</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>50</x> + <y>124</y> + </hint> + <hint type="destinationlabel"> + <x>117</x> + <y>128</y> + </hint> + </hints> + </connection> + <connection> + <sender>tag2Button</sender> + <signal>toggled(bool)</signal> + <receiver>tag2Combo</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>36</x> + <y>306</y> + </hint> + <hint type="destinationlabel"> + <x>149</x> + <y>306</y> + </hint> + </hints> + </connection> + <connection> + <sender>branch2Button</sender> + <signal>toggled(bool)</signal> + <receiver>branch2Combo</receiver> + <slot>setEnabled(bool)</slot> + <hints> + <hint type="sourcelabel"> + <x>73</x> + <y>331</y> + </hint> + <hint type="destinationlabel"> + <x>140</x> + <y>331</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,449 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to show the output of the hg status command process. +""" + +import os + +from PyQt4.QtCore import pyqtSlot, SIGNAL, Qt, QProcess, QTimer +from PyQt4.QtGui import QWidget, QDialogButtonBox, QMenu, QHeaderView, QTreeWidgetItem, \ + QMessageBox, QLineEdit + +from E5Gui.E5Application import e5App + +from .Ui_HgStatusDialog import Ui_HgStatusDialog + +import Preferences + +class HgStatusDialog(QWidget, Ui_HgStatusDialog): + """ + Class implementing a dialog to show the output of the hg status command process. + """ + def __init__(self, vcs, parent = None): + """ + Constructor + + @param vcs reference to the vcs object + @param parent parent widget (QWidget) + """ + QWidget.__init__(self, parent) + self.setupUi(self) + + self.__statusColumn = 0 + self.__pathColumn = 1 + self.__lastColumn = self.statusList.columnCount() + + self.refreshButton = \ + self.buttonBox.addButton(self.trUtf8("Refresh"), QDialogButtonBox.ActionRole) + self.refreshButton.setToolTip(self.trUtf8("Press to refresh the status display")) + self.refreshButton.setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + + self.process = None + self.vcs = vcs + self.connect(self.vcs, SIGNAL("committed()"), self.__committed) + + self.statusList.headerItem().setText(self.__lastColumn, "") + self.statusList.header().setSortIndicator(self.__pathColumn, Qt.AscendingOrder) + + self.menuactions = [] + self.menu = QMenu() + self.menuactions.append(self.menu.addAction(\ + self.trUtf8("Commit changes to repository..."), self.__commit)) + self.menu.addSeparator() + self.menuactions.append(self.menu.addAction(\ + self.trUtf8("Add to repository"), self.__add)) + self.menuactions.append(self.menu.addAction(\ + self.trUtf8("Revert changes"), self.__revert)) + self.menu.addSeparator() + self.menuactions.append(self.menu.addAction(self.trUtf8("Adjust column sizes"), + self.__resizeColumns)) + for act in self.menuactions: + act.setEnabled(False) + + self.statusList.setContextMenuPolicy(Qt.CustomContextMenu) + self.connect(self.statusList, + SIGNAL("customContextMenuRequested(const QPoint &)"), + self.__showContextMenu) + + self.modifiedIndicators = [ + self.trUtf8('added'), + self.trUtf8('modified'), + self.trUtf8('removed'), + ] + + self.unversionedIndicators = [ + self.trUtf8('not tracked'), + ] + + self.status = { + 'A' : self.trUtf8('added'), + 'C' : self.trUtf8('normal'), + 'I' : self.trUtf8('ignored'), + 'M' : self.trUtf8('modified'), + 'R' : self.trUtf8('removed'), + '?' : self.trUtf8('not tracked'), + '!' : self.trUtf8('missing'), + } + + def __resort(self): + """ + Private method to resort the tree. + """ + self.statusList.sortItems(self.statusList.sortColumn(), + self.statusList.header().sortIndicatorOrder()) + + def __resizeColumns(self): + """ + Private method to resize the list columns. + """ + self.statusList.header().resizeSections(QHeaderView.ResizeToContents) + self.statusList.header().setStretchLastSection(True) + + def __generateItem(self, status, path): + """ + Private method to generate a status item in the status list. + + @param status status indicator (string) + @param path path of the file or directory (string) + """ + itm = QTreeWidgetItem(self.statusList, [ + self.status[status], + path, + ]) + + itm.setTextAlignment(0, Qt.AlignHCenter) + itm.setTextAlignment(1, Qt.AlignLeft) + + def closeEvent(self, e): + """ + Private slot implementing a close event handler. + + @param e close event (QCloseEvent) + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + e.accept() + + def start(self, fn): + """ + Public slot to start the svn status command. + + @param fn filename(s)/directoryname(s) to show the status of + (string or list of strings) + """ + self.errorGroup.hide() + self.intercept = False + self.args = fn + + if self.process: + self.process.kill() + else: + self.process = QProcess() + self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'), + self.__procFinished) + self.connect(self.process, SIGNAL('readyReadStandardOutput()'), + self.__readStdout) + self.connect(self.process, SIGNAL('readyReadStandardError()'), + self.__readStderr) + + args = [] + args.append('status') + self.vcs.addArguments(args, self.vcs.options['global']) + self.vcs.addArguments(args, self.vcs.options['status']) + + if isinstance(fn, list): + self.dname, fnames = self.vcs.splitPathList(fn) + self.vcs.addArguments(args, fn) + else: + self.dname, fname = self.vcs.splitPath(fn) + args.append(fn) + + # find the root of the repo + repodir = self.dname + while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + self.process.setWorkingDirectory(repodir) + + self.setWindowTitle(self.trUtf8('Mercurial Status')) + + self.process.start('hg', args) + procStarted = self.process.waitForStarted() + if not procStarted: + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + QMessageBox.critical(None, + self.trUtf8('Process Generation Error'), + self.trUtf8( + 'The process {0} could not be started. ' + 'Ensure, that it is in the search path.' + ).format('hg')) + else: + self.inputGroup.setEnabled(True) + self.inputGroup.show() + + def __finish(self): + """ + Private slot called when the process finished or the user pressed the button. + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + self.refreshButton.setEnabled(True) + + for act in self.menuactions: + act.setEnabled(True) + + self.process = None + + self.statusList.doItemsLayout() + self.__resort() + self.__resizeColumns() + + def on_buttonBox_clicked(self, button): + """ + Private slot called by a button of the button box clicked. + + @param button button that was clicked (QAbstractButton) + """ + if button == self.buttonBox.button(QDialogButtonBox.Close): + self.close() + elif button == self.buttonBox.button(QDialogButtonBox.Cancel): + self.__finish() + elif button == self.refreshButton: + self.on_refreshButton_clicked() + + def __procFinished(self, exitCode, exitStatus): + """ + Private slot connected to the finished signal. + + @param exitCode exit code of the process (integer) + @param exitStatus exit status of the process (QProcess.ExitStatus) + """ + self.__finish() + + def __readStdout(self): + """ + Private slot to handle the readyReadStandardOutput signal. + + It reads the output of the process, formats it and inserts it into + the contents pane. + """ + if self.process is not None: + self.process.setReadChannel(QProcess.StandardOutput) + + while self.process.canReadLine(): + line = str(self.process.readLine(), + Preferences.getSystem("IOEncoding"), + 'replace') + if not line.startswith(" "): + status, path = line.strip().split(" ", 1) + self.__generateItem(status, path) + + def __readStderr(self): + """ + Private slot to handle the readyReadStandardError signal. + + It reads the error output of the process and inserts it into the + error pane. + """ + if self.process is not None: + self.errorGroup.show() + s = str(self.process.readAllStandardError(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.errors.insertPlainText(s) + self.errors.ensureCursorVisible() + + def on_passwordCheckBox_toggled(self, isOn): + """ + Private slot to handle the password checkbox toggled. + + @param isOn flag indicating the status of the check box (boolean) + """ + if isOn: + self.input.setEchoMode(QLineEdit.Password) + else: + self.input.setEchoMode(QLineEdit.Normal) + + @pyqtSlot() + def on_sendButton_clicked(self): + """ + Private slot to send the input to the subversion process. + """ + input = self.input.text() + input += os.linesep + + if self.passwordCheckBox.isChecked(): + self.errors.insertPlainText(os.linesep) + self.errors.ensureCursorVisible() + else: + self.errors.insertPlainText(input) + self.errors.ensureCursorVisible() + + self.process.write(input) + + self.passwordCheckBox.setChecked(False) + self.input.clear() + + def on_input_returnPressed(self): + """ + Private slot to handle the press of the return key in the input field. + """ + self.intercept = True + self.on_sendButton_clicked() + + def keyPressEvent(self, evt): + """ + Protected slot to handle a key press event. + + @param evt the key press event (QKeyEvent) + """ + if self.intercept: + self.intercept = False + evt.accept() + return + QWidget.keyPressEvent(self, evt) + + @pyqtSlot() + def on_refreshButton_clicked(self): + """ + Private slot to refresh the status display. + """ + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + + self.inputGroup.setEnabled(True) + self.inputGroup.show() + self.refreshButton.setEnabled(False) + + for act in self.menuactions: + act.setEnabled(False) + + self.statusList.clear() + + self.start(self.args) + + ############################################################################ + ## Context menu handling methods + ############################################################################ + + def __showContextMenu(self, coord): + """ + Protected slot to show the context menu of the status list. + + @param coord the position of the mouse pointer (QPoint) + """ + self.menu.popup(self.mapToGlobal(coord)) + + def __commit(self): + """ + Private slot to handle the Commit context menu entry. + """ + names = [os.path.join(self.dname, itm.text(self.__pathColumn)) \ + for itm in self.__getModifiedItems()] + if not names: + QMessageBox.information(self, + self.trUtf8("Commit"), + self.trUtf8("""There are no uncommitted changes available/selected.""")) + return + + if Preferences.getVCS("AutoSaveFiles"): + vm = e5App().getObject("ViewManager") + for name in names: + vm.saveEditor(name) + self.vcs.vcsCommit(names, '') + + def __committed(self): + """ + Private slot called after the commit has finished. + """ + if self.isVisible(): + self.on_refreshButton_clicked() + self.vcs.checkVCSStatus() + + def __add(self): + """ + Private slot to handle the Add context menu entry. + """ + names = [os.path.join(self.dname, itm.text(self.__pathColumn)) \ + for itm in self.__getUnversionedItems()] + if not names: + QMessageBox.information(self, + self.trUtf8("Add"), + self.trUtf8("""There are no unversioned entries available/selected.""")) + return + + self.vcs.vcsAdd(names) + self.on_refreshButton_clicked() + + project = e5App().getObject("Project") + for name in names: + project.getModel().updateVCSStatus(name) + self.vcs.checkVCSStatus() + + def __revert(self): + """ + Private slot to handle the Revert context menu entry. + """ + names = [os.path.join(self.dname, itm.text(self.__pathColumn)) \ + for itm in self.__getModifiedItems()] + if not names: + QMessageBox.information(self, + self.trUtf8("Revert"), + self.trUtf8("""There are no uncommitted changes available/selected.""")) + return + + self.vcs.vcsRevert(names) + self.on_refreshButton_clicked() + + project = e5App().getObject("Project") + for name in names: + project.getModel().updateVCSStatus(name) + self.vcs.checkVCSStatus() + + def __getModifiedItems(self): + """ + Private method to retrieve all entries, that have a modified status. + + @return list of all items with a modified status + """ + modifiedItems = [] + for itm in self.statusList.selectedItems(): + if itm.text(self.__statusColumn) in self.modifiedIndicators: + modifiedItems.append(itm) + return modifiedItems + + def __getUnversionedItems(self): + """ + Private method to retrieve all entries, that have an unversioned status. + + @return list of all items with an unversioned status + """ + unversionedItems = [] + for itm in self.statusList.selectedItems(): + if itm.text(self.__statusColumn) in self.unversionedIndicators: + unversionedItems.append(itm) + return unversionedItems
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgStatusDialog</class> + <widget class="QWidget" name="HgStatusDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>955</width> + <height>646</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Status</string> + </property> + <property name="whatsThis"> + <string><b>Mercurial Status</b> +<p>This dialog shows the status of the selected file or project.</p></string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTreeWidget" name="statusList"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>3</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="alternatingRowColors"> + <bool>true</bool> + </property> + <property name="selectionMode"> + <enum>QAbstractItemView::ExtendedSelection</enum> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="sortingEnabled"> + <bool>true</bool> + </property> + <column> + <property name="text"> + <string>Status</string> + </property> + </column> + <column> + <property name="text"> + <string>Path</string> + </property> + </column> + </widget> + </item> + <item> + <widget class="QGroupBox" name="errorGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>1</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Errors</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="errors"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="inputGroup"> + <property name="title"> + <string>Input</string> + </property> + <layout class="QGridLayout"> + <item row="1" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>327</width> + <height>29</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="sendButton"> + <property name="toolTip"> + <string>Press to send the input to the hg process</string> + </property> + <property name="text"> + <string>&Send</string> + </property> + <property name="shortcut"> + <string>Alt+S</string> + </property> + </widget> + </item> + <item row="0" column="0" colspan="3"> + <widget class="QLineEdit" name="input"> + <property name="toolTip"> + <string>Enter data to be sent to the hg process</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="passwordCheckBox"> + <property name="toolTip"> + <string>Select to switch the input field to password mode</string> + </property> + <property name="text"> + <string>&Password Mode</string> + </property> + <property name="shortcut"> + <string>Alt+P</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="11"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>input</tabstop> + <tabstop>sendButton</tabstop> + <tabstop>passwordCheckBox</tabstop> + </tabstops> + <resources/> + <connections/> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgStatusMonitorThread.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the VCS status monitor thread class for Mercurial. +""" + +from PyQt4.QtCore import QProcess + +from VCS.StatusMonitorThread import VcsStatusMonitorThread + +import Preferences + +class HgStatusMonitorThread(VcsStatusMonitorThread): + """ + Class implementing the VCS status monitor thread class for Mercurial. + """ + def __init__(self, interval, projectDir, vcs, parent = None): + """ + Constructor + + @param interval new interval in seconds (integer) + @param projectDir project directory to monitor (string) + @param vcs reference to the version control object + @param parent reference to the parent object (QObject) + """ + VcsStatusMonitorThread.__init__(self, interval, projectDir, vcs, parent) + + self.__ioEncoding = Preferences.getSystem("IOEncoding") + + def _performMonitor(self): + """ + Protected method implementing the monitoring action. + + This method populates the statusList member variable + with a list of strings giving the status in the first column and the + path relative to the project directory starting with the third column. + The allowed status flags are: + <ul> + <li>"A" path was added but not yet comitted</li> + <li>"M" path has local changes</li> + <li>"R" path was deleted and then re-added</li> + <li>"U" path needs an update</li> + <li>"Z" path contains a conflict</li> + <li>" " path is back at normal</li> + </ul> + + @return tuple of flag indicating successful operation (boolean) and + a status message in case of non successful operation (string) + """ + self.shouldUpdate = False + + process = QProcess() + args = [] + args.append('status') + args.append('--noninteractive') + args.append('--all') +## args.append('.') + process.setWorkingDirectory(self.projectDir) + process.start('hg', args) + procStarted = process.waitForStarted() + if procStarted: + finished = process.waitForFinished(300000) + if finished and process.exitCode() == 0: + output = \ + str(process.readAllStandardOutput(), self.__ioEncoding, 'replace') + states = {} + for line in output.splitlines(): + if not line.startswith(" "): + flag, name = line.split(" ", 1) + if flag in "AM": + status = flag + states[name] = status + + args = [] + args.append('resolve') + args.append('--list') + process.setWorkingDirectory(self.projectDir) + process.start('hg', args) + procStarted = process.waitForStarted() + if procStarted: + finished = process.waitForFinished(300000) + if finished and process.exitCode() == 0: + output = str( + process.readAllStandardOutput(), self.__ioEncoding, 'replace') + for line in output.splitlines(): + flag, name = line.split(" ", 1) + if flag == "U": + states[name] = "Z" # conflict + + for name in states: + try: + if self.reportedStates[name] != states[name]: + self.statusList.append("%s %s" % (states[name], name)) + except KeyError: + self.statusList.append("%s %s" % (states[name], name)) + for name in self.reportedStates.keys(): + if name not in states: + self.statusList.append(" %s" % name) + self.reportedStates = states + return True, \ + self.trUtf8("Mercurial status checked successfully") + else: + process.kill() + process.waitForFinished() + return False, \ + str(process.readAllStandardError(), + Preferences.getSystem("IOEncoding"), + 'replace') + else: + process.kill() + process.waitForFinished() + return False, self.trUtf8("Could not start the Mercurial process.")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,293 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to show a list of tags or branches. +""" + +import os + +from PyQt4.QtCore import pyqtSlot, SIGNAL, QProcess, Qt, QTimer +from PyQt4.QtGui import QDialog, QDialogButtonBox, QHeaderView, QTreeWidgetItem, \ + QMessageBox, QLineEdit + +from .Ui_HgTagBranchListDialog import Ui_HgTagBranchListDialog + +import Preferences + +class HgTagBranchListDialog(QDialog, Ui_HgTagBranchListDialog): + """ + Class implementing a dialog to show a list of tags or branches. + """ + def __init__(self, vcs, parent = None): + """ + Constructor + + @param vcs reference to the vcs object + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + + self.process = QProcess() + self.vcs = vcs + self.tagsList = None + self.allTagsList = None + + self.tagList.headerItem().setText(self.tagList.columnCount(), "") + self.tagList.header().setSortIndicator(3, Qt.AscendingOrder) + + self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'), + self.__procFinished) + self.connect(self.process, SIGNAL('readyReadStandardOutput()'), + self.__readStdout) + self.connect(self.process, SIGNAL('readyReadStandardError()'), + self.__readStderr) + + def closeEvent(self, e): + """ + Private slot implementing a close event handler. + + @param e close event (QCloseEvent) + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + e.accept() + + def start(self, path, tags, tagsList, allTagsList): + """ + Public slot to start the tags command. + + @param path name of directory to be listed (string) + @param tags flag indicating a list of tags is requested + (False = branches, True = tags) + @param tagsList reference to string list receiving the tags (list of strings) + @param allsTagsList reference to string list all tags (list of strings) + """ + self.errorGroup.hide() + + self.intercept = False + self.tagsMode = tags + if not tags: + self.setWindowTitle(self.trUtf8("Mercurial Branches List")) + self.tagList.headerItem().setText(2, self.trUtf8("Status")) + self.activateWindow() + + self.tagsList = tagsList + self.allTagsList = allTagsList + dname, fname = self.vcs.splitPath(path) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + args = [] + if self.tagsMode: + args.append('tags') + args.append('--verbose') + else: + args.append('branches') + args.append('--closed') + + self.process.kill() + self.process.setWorkingDirectory(repodir) + + self.process.start('hg', args) + procStarted = self.process.waitForStarted() + if not procStarted: + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + QMessageBox.critical(None, + self.trUtf8('Process Generation Error'), + self.trUtf8( + 'The process {0} could not be started. ' + 'Ensure, that it is in the search path.' + ).format('hg')) + else: + self.inputGroup.setEnabled(True) + self.inputGroup.show() + + def __finish(self): + """ + Private slot called when the process finished or the user pressed the button. + """ + if self.process is not None and \ + self.process.state() != QProcess.NotRunning: + self.process.terminate() + QTimer.singleShot(2000, self.process.kill) + self.process.waitForFinished(3000) + + self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) + self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) + self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + + self.inputGroup.setEnabled(False) + self.inputGroup.hide() + + self.process = None + + self.tagList.doItemsLayout() + self.__resizeColumns() + self.__resort() + + def on_buttonBox_clicked(self, button): + """ + Private slot called by a button of the button box clicked. + + @param button button that was clicked (QAbstractButton) + """ + if button == self.buttonBox.button(QDialogButtonBox.Close): + self.close() + elif button == self.buttonBox.button(QDialogButtonBox.Cancel): + self.__finish() + + def __procFinished(self, exitCode, exitStatus): + """ + Private slot connected to the finished signal. + + @param exitCode exit code of the process (integer) + @param exitStatus exit status of the process (QProcess.ExitStatus) + """ + self.__finish() + + def __resort(self): + """ + Private method to resort the tree. + """ + self.tagList.sortItems(self.tagList.sortColumn(), + self.tagList.header().sortIndicatorOrder()) + + def __resizeColumns(self): + """ + Private method to resize the list columns. + """ + self.tagList.header().resizeSections(QHeaderView.ResizeToContents) + self.tagList.header().setStretchLastSection(True) + + def __generateItem(self, revision, changeset, status, name): + """ + Private method to generate a tag item in the tag list. + + @param revision revision of the tag/branch (string) + @param changeset changeset of the tag/branch (string) + @param status of the tag/branch (string) + @param name name of the tag/branch (string) + """ + itm = QTreeWidgetItem(self.tagList, [revision, changeset, status, name]) + itm.setTextAlignment(0, Qt.AlignRight) + itm.setTextAlignment(1, Qt.AlignRight) + itm.setTextAlignment(2, Qt.AlignHCenter) + + def __readStdout(self): + """ + Private slot to handle the readyReadStdout signal. + + It reads the output of the process, formats it and inserts it into + the contents pane. + """ + self.process.setReadChannel(QProcess.StandardOutput) + + while self.process.canReadLine(): + s = str(self.process.readLine(), + Preferences.getSystem("IOEncoding"), + 'replace').strip() + l = s.split() + if l[-1][0] in "1234567890": + # last element is a rev:changeset + if self.tagsMode: + status = "" + else: + status = self.trUtf8("active") + rev, changeset = l[-1].split(":", 1) + del l[-1] + else: + if self.tagsMode: + status = self.trUtf8("yes") + else: + status = l[-1][1:-1] + rev, changeset = l[-2].split(":", 1) + del l[-2:] + name = " ".join(l) + self.__generateItem(rev, changeset, status, name) + if name not in ["tip", "default"]: + if self.tagsList is not None: + self.tagsList.append(name) + if self.allTagsList is not None: + self.allTagsList.append(name) + + def __readStderr(self): + """ + Private slot to handle the readyReadStderr signal. + + It reads the error output of the process and inserts it into the + error pane. + """ + if self.process is not None: + self.errorGroup.show() + s = str(self.process.readAllStandardError(), + Preferences.getSystem("IOEncoding"), + 'replace') + self.errors.insertPlainText(s) + self.errors.ensureCursorVisible() + + def on_passwordCheckBox_toggled(self, isOn): + """ + Private slot to handle the password checkbox toggled. + + @param isOn flag indicating the status of the check box (boolean) + """ + if isOn: + self.input.setEchoMode(QLineEdit.Password) + else: + self.input.setEchoMode(QLineEdit.Normal) + + @pyqtSlot() + def on_sendButton_clicked(self): + """ + Private slot to send the input to the subversion process. + """ + input = self.input.text() + input += os.linesep + + if self.passwordCheckBox.isChecked(): + self.errors.insertPlainText(os.linesep) + self.errors.ensureCursorVisible() + else: + self.errors.insertPlainText(input) + self.errors.ensureCursorVisible() + + self.process.write(input) + + self.passwordCheckBox.setChecked(False) + self.input.clear() + + def on_input_returnPressed(self): + """ + Private slot to handle the press of the return key in the input field. + """ + self.intercept = True + self.on_sendButton_clicked() + + def keyPressEvent(self, evt): + """ + Protected slot to handle a key press event. + + @param evt the key press event (QKeyEvent) + """ + if self.intercept: + self.intercept = False + evt.accept() + return + QDialog.keyPressEvent(self, evt)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,180 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgTagBranchListDialog</class> + <widget class="QDialog" name="HgTagBranchListDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>634</width> + <height>494</height> + </rect> + </property> + <property name="windowTitle"> + <string>Mercurial Tag List</string> + </property> + <property name="whatsThis"> + <string><b>Mercurial Tag/Branch List</b> +<p>This dialog shows a list of the projects tags or branches.</p></string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTreeWidget" name="tagList"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>2</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="whatsThis"> + <string><b>Tag/Branches List</b> +<p>This shows a list of the projects tags or branches.</p></string> + </property> + <property name="alternatingRowColors"> + <bool>true</bool> + </property> + <property name="rootIsDecorated"> + <bool>false</bool> + </property> + <property name="itemsExpandable"> + <bool>false</bool> + </property> + <property name="sortingEnabled"> + <bool>true</bool> + </property> + <column> + <property name="text"> + <string>Revision</string> + </property> + </column> + <column> + <property name="text"> + <string>Changeset</string> + </property> + </column> + <column> + <property name="text"> + <string>Local</string> + </property> + </column> + <column> + <property name="text"> + <string>Name</string> + </property> + </column> + </widget> + </item> + <item> + <widget class="QGroupBox" name="errorGroup"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Expanding"> + <horstretch>0</horstretch> + <verstretch>1</verstretch> + </sizepolicy> + </property> + <property name="title"> + <string>Errors</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QTextEdit" name="errors"> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="readOnly"> + <bool>true</bool> + </property> + <property name="acceptRichText"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="inputGroup"> + <property name="title"> + <string>Input</string> + </property> + <layout class="QGridLayout"> + <item row="1" column="1"> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>327</width> + <height>29</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="2"> + <widget class="QPushButton" name="sendButton"> + <property name="toolTip"> + <string>Press to send the input to the hg process</string> + </property> + <property name="text"> + <string>&Send</string> + </property> + <property name="shortcut"> + <string>Alt+S</string> + </property> + </widget> + </item> + <item row="0" column="0" colspan="3"> + <widget class="QLineEdit" name="input"> + <property name="toolTip"> + <string>Enter data to be sent to the hg process</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="passwordCheckBox"> + <property name="toolTip"> + <string>Select to switch the input field to password mode</string> + </property> + <property name="text"> + <string>&Password Mode</string> + </property> + <property name="shortcut"> + <string>Alt+P</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close</set> + </property> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="11"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>input</tabstop> + <tabstop>passwordCheckBox</tabstop> + <tabstop>sendButton</tabstop> + </tabstops> + <resources/> + <connections/> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgTagDialog.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog to enter the data for a tagging operation. +""" + +from PyQt4.QtCore import pyqtSlot +from PyQt4.QtGui import QDialog, QDialogButtonBox + +from .Ui_HgTagDialog import Ui_HgTagDialog + +class HgTagDialog(QDialog, Ui_HgTagDialog): + """ + Class implementing a dialog to enter the data for a tagging operation. + """ + CreateRegularTag = 1 + CreateLocalTag = 2 + DeleteTag = 3 + CreateBranch = 4 + + def __init__(self, taglist, parent = None): + """ + Constructor + + @param taglist list of previously entered tags (list of strings) + @param parent parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.okButton = self.buttonBox.button(QDialogButtonBox.Ok) + self.okButton.setEnabled(False) + + self.tagCombo.clear() + self.tagCombo.addItems(taglist) + + @pyqtSlot(str) + def on_tagCombo_editTextChanged(self, text): + """ + Private method used to enable/disable the OK-button. + + @param text tag name entered in the combo (string) + """ + self.okButton.setDisabled(text == "") + + def getParameters(self): + """ + Public method to retrieve the tag data. + + @return tuple of string and int (tag, tag operation) + """ + tag = self.tagCombo.currentText() + tagOp = 0 + if self.createRegularButton.isChecked(): + tagOp = HgTagDialog.CreateRegularTag + elif self.createLocalButton.isChecked(): + tagOp = HgTagDialog.CreateLocalTag + elif self.deleteButton.isChecked(): + tagOp = HgTagDialog.DeleteTag + return (tag, tagOp)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgTagDialog.ui Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>HgTagDialog</class> + <widget class="QDialog" name="HgTagDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>391</width> + <height>189</height> + </rect> + </property> + <property name="windowTitle"> + <string>Subversion Tag</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QGridLayout"> + <item row="2" column="0" colspan="2"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="tagCombo"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="toolTip"> + <string>Enter the name of the tag</string> + </property> + <property name="whatsThis"> + <string><b>Tag Name</b> +<p>Enter the name of the tag to be created, moved or deleted.</p></string> + </property> + <property name="editable"> + <bool>true</bool> + </property> + <property name="autoCompletion"> + <bool>true</bool> + </property> + <property name="duplicatesEnabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="TextLabel1"> + <property name="text"> + <string>Name:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QGroupBox" name="TagActionGroup"> + <property name="title"> + <string>Tag Action</string> + </property> + <layout class="QVBoxLayout"> + <item> + <widget class="QRadioButton" name="createRegularButton"> + <property name="toolTip"> + <string>Select to create a regular tag</string> + </property> + <property name="whatsThis"> + <string><b>Create Regular Tag</b> +<p>Select this entry in order to create a regular tag.</p></string> + </property> + <property name="text"> + <string>Create Regular Tag</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="createLocalButton"> + <property name="toolTip"> + <string>Select to create a local tag</string> + </property> + <property name="whatsThis"> + <string><b>Create Local Tag</b> +<p>Select this entry in order to create a local tag.</p></string> + </property> + <property name="text"> + <string>Create Local Tag</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="deleteButton"> + <property name="toolTip"> + <string>Select to delete a tag</string> + </property> + <property name="whatsThis"> + <string><b>Delete Tag</b> +<p>Select this entry in order to delete the selected tag.</p></string> + </property> + <property name="text"> + <string>Delete Tag</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <layoutdefault spacing="6" margin="11"/> + <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> + <tabstops> + <tabstop>tagCombo</tabstop> + <tabstop>createRegularButton</tabstop> + <tabstop>createLocalButton</tabstop> + <tabstop>deleteButton</tabstop> + </tabstops> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>HgTagDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>85</x> + <y>192</y> + </hint> + <hint type="destinationlabel"> + <x>25</x> + <y>214</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>HgTagDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>122</x> + <y>193</y> + </hint> + <hint type="destinationlabel"> + <x>128</x> + <y>210</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgUtilities.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing some common utility functions for the Mercurial package. +""" + +import os + +import Utilities + +def getConfigPath(): + """ + Public method to get the filename of the config file. + + @return filename of the config file (string) + """ + if Utilities.isWindowsPlatform(): + userprofile = os.environ["USERPROFILE"] + return os.path.join(userprofile, "Mercurial.ini") + else: + homedir = Utilities.getHomeDir() + return os.path.join(homedir, ".hgrc")
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/ProjectBrowserHelper.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,618 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the VCS project browser helper for Mercurial. +""" + +import os + +from PyQt4.QtCore import SIGNAL +from PyQt4.QtGui import QMenu + +from E5Gui.E5Application import e5App + +from VCS.ProjectBrowserHelper import VcsProjectBrowserHelper + +from Project.ProjectBrowserModel import ProjectBrowserFileItem + +import UI.PixmapCache + +class HgProjectBrowserHelper(VcsProjectBrowserHelper): + """ + Class implementing the VCS project browser helper for Mercurial. + """ + def __init__(self, vcsObject, browserObject, projectObject, isTranslationsBrowser, + parent = None, name = None): + """ + Constructor + + @param vcsObject reference to the vcs object + @param browserObject reference to the project browser object + @param projectObject reference to the project object + @param isTranslationsBrowser flag indicating, the helper is requested for the + translations browser (this needs some special treatment) + @param parent parent widget (QWidget) + @param name name of this object (string) + """ + VcsProjectBrowserHelper.__init__(self, vcsObject, browserObject, projectObject, + isTranslationsBrowser, parent, name) + + def showContextMenu(self, menu, standardItems): + """ + Slot called before the context menu is shown. + + It enables/disables the VCS menu entries depending on the overall + VCS status and the file status. + + @param menu reference to the menu to be shown + @param standardItems array of standard items that need activation/deactivation + depending on the overall VCS status + """ + if self.browser.currentItem().data(1) == self.vcs.vcsName(): + for act in self.vcsMenuActions: + act.setEnabled(True) + for act in self.vcsAddMenuActions: + act.setEnabled(False) + for act in standardItems: + act.setEnabled(False) +## if not hasattr(self.browser.currentItem(), 'fileName'): +## self.blameAct.setEnabled(False) + else: + for act in self.vcsMenuActions: + act.setEnabled(False) + for act in self.vcsAddMenuActions: + act.setEnabled(True) +## if 1 in self.browser.specialMenuEntries: +## try: +## name = self.browser.currentItem().fileName() +## except AttributeError: +## name = self.browser.currentItem().dirName() +## if not os.path.isdir(name): +## self.vcsMenuAddTree.setEnabled(False) + for act in standardItems: + act.setEnabled(True) + + def showContextMenuMulti(self, menu, standardItems): + """ + Slot called before the context menu (multiple selections) is shown. + + It enables/disables the VCS menu entries depending on the overall + VCS status and the files status. + + @param menu reference to the menu to be shown + @param standardItems array of standard items that need activation/deactivation + depending on the overall VCS status + """ + vcsName = self.vcs.vcsName() + items = self.browser.getSelectedItems() + vcsItems = 0 + # determine number of selected items under VCS control + for itm in items: + if itm.data(1) == vcsName: + vcsItems += 1 + + if vcsItems > 0: + if vcsItems != len(items): + for act in self.vcsMultiMenuActions: + act.setEnabled(False) + else: + for act in self.vcsMultiMenuActions: + act.setEnabled(True) + for act in self.vcsAddMultiMenuActions: + act.setEnabled(False) + for act in standardItems: + act.setEnabled(False) + else: + for act in self.vcsMultiMenuActions: + act.setEnabled(False) + for act in self.vcsAddMultiMenuActions: + act.setEnabled(True) +## if 1 in self.browser.specialMenuEntries and \ +## self.__itemsHaveFiles(items): +## self.vcsMultiMenuAddTree.setEnabled(False) + for act in standardItems: + act.setEnabled(True) + + def showContextMenuDir(self, menu, standardItems): + """ + Slot called before the context menu is shown. + + It enables/disables the VCS menu entries depending on the overall + VCS status and the directory status. + + @param menu reference to the menu to be shown + @param standardItems array of standard items that need activation/deactivation + depending on the overall VCS status + """ + if self.browser.currentItem().data(1) == self.vcs.vcsName(): + for act in self.vcsDirMenuActions: + act.setEnabled(True) + for act in self.vcsAddDirMenuActions: + act.setEnabled(False) + for act in standardItems: + act.setEnabled(False) + else: + for act in self.vcsDirMenuActions: + act.setEnabled(False) + for act in self.vcsAddDirMenuActions: + act.setEnabled(True) + for act in standardItems: + act.setEnabled(True) + + def showContextMenuDirMulti(self, menu, standardItems): + """ + Slot called before the context menu is shown. + + It enables/disables the VCS menu entries depending on the overall + VCS status and the directory status. + + @param menu reference to the menu to be shown + @param standardItems array of standard items that need activation/deactivation + depending on the overall VCS status + """ + vcsName = self.vcs.vcsName() + items = self.browser.getSelectedItems() + vcsItems = 0 + # determine number of selected items under VCS control + for itm in items: + if itm.data(1) == vcsName: + vcsItems += 1 + + if vcsItems > 0: + if vcsItems != len(items): + for act in self.vcsDirMultiMenuActions: + act.setEnabled(False) + else: + for act in self.vcsDirMultiMenuActions: + act.setEnabled(True) + for act in self.vcsAddDirMultiMenuActions: + act.setEnabled(False) + for act in standardItems: + act.setEnabled(False) + else: + for act in self.vcsDirMultiMenuActions: + act.setEnabled(False) + for act in self.vcsAddDirMultiMenuActions: + act.setEnabled(True) + for act in standardItems: + act.setEnabled(True) + + ############################################################################ + # Protected menu generation methods below + ############################################################################ + + def _addVCSMenu(self, mainMenu): + """ + Protected method used to add the VCS menu to all project browsers. + + @param mainMenu reference to the menu to be amended + """ + self.vcsMenuActions = [] + self.vcsAddMenuActions = [] + + menu = QMenu(self.trUtf8("Version Control")) + + act = menu.addAction( + UI.PixmapCache.getIcon( + os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), + self.vcs.vcsName(), self._VCSInfoDisplay) + font = act.font() + font.setBold(True) + act.setFont(font) + menu.addSeparator() + + act = menu.addAction(UI.PixmapCache.getIcon("vcsCommit.png"), + self.trUtf8('Commit changes to repository...'), + self._VCSCommit) + self.vcsMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsAdd.png"), + self.trUtf8('Add to repository'), + self._VCSAdd) + self.vcsAddMenuActions.append(act) +## if 1 in self.browser.specialMenuEntries: +## self.vcsMenuAddTree = menu.addAction(UI.PixmapCache.getIcon("vcsAdd.png"), +## self.trUtf8('Add tree to repository'), +## self._VCSAddTree) +## self.vcsAddMenuActions.append(self.vcsMenuAddTree) + act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"), + self.trUtf8('Remove from repository (and disk)'), + self._VCSRemove) + self.vcsMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(self.trUtf8('Copy in repository'), self.__HgCopy) + self.vcsMenuActions.append(act) + act = menu.addAction(self.trUtf8('Move in repository'), self.__HgMove) + self.vcsMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show log'), self._VCSLog) + self.vcsMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show limited log'), self.__HgLogLimited) + self.vcsMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show log browser'), self.__HgLogBrowser) + self.vcsMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsStatus.png"), + self.trUtf8('Show status'), self._VCSStatus) + self.vcsMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference'), self._VCSDiff) + self.vcsMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference (extended)'), + self.__HgExtendedDiff) + self.vcsMenuActions.append(act) + self.annotateAct = menu.addAction(self.trUtf8('Show annotated file'), + self.__HgAnnotate) + self.vcsMenuActions.append(self.annotateAct) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsRevert.png"), + self.trUtf8('Revert changes'), self._VCSRevert) + self.vcsMenuActions.append(act) + act = menu.addAction(self.trUtf8('Resolve conflict'), self.__HgResolve) + self.vcsMenuActions.append(act) + menu.addSeparator() + menu.addAction(self.trUtf8('Select all local file entries'), + self.browser.selectLocalEntries) + menu.addAction(self.trUtf8('Select all versioned file entries'), + self.browser.selectVCSEntries) + menu.addAction(self.trUtf8('Select all local directory entries'), + self.browser.selectLocalDirEntries) + menu.addAction(self.trUtf8('Select all versioned directory entries'), + self.browser.selectVCSDirEntries) + menu.addSeparator() + + mainMenu.addSeparator() + mainMenu.addMenu(menu) + self.menu = menu + + def _addVCSMenuMulti(self, mainMenu): + """ + Protected method used to add the VCS menu for multi selection to all + project browsers. + + @param mainMenu reference to the menu to be amended + """ + self.vcsMultiMenuActions = [] + self.vcsAddMultiMenuActions = [] + + menu = QMenu(self.trUtf8("Version Control")) + + act = menu.addAction( + UI.PixmapCache.getIcon( + os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), + self.vcs.vcsName(), self._VCSInfoDisplay) + font = act.font() + font.setBold(True) + act.setFont(font) + menu.addSeparator() + + act = menu.addAction(UI.PixmapCache.getIcon("vcsCommit.png"), + self.trUtf8('Commit changes to repository...'), + self._VCSCommit) + self.vcsMultiMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsAdd.png"), + self.trUtf8('Add to repository'), self._VCSAdd) + self.vcsAddMultiMenuActions.append(act) +## if 1 in self.browser.specialMenuEntries: +## self.vcsMultiMenuAddTree = \ +## menu.addAction(UI.PixmapCache.getIcon("vcsAdd.png"), +## self.trUtf8('Add tree to repository'), self._VCSAddTree) +## self.vcsAddMultiMenuActions.append(self.vcsMultiMenuAddTree) + act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"), + self.trUtf8('Remove from repository (and disk)'), + self._VCSRemove) + self.vcsMultiMenuActions.append(act) + self.vcsRemoveMultiMenuItem = act + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsStatus.png"), + self.trUtf8('Show status'), self._VCSStatus) + self.vcsMultiMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference'), self._VCSDiff) + self.vcsMultiMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference (extended)'), + self.__HgExtendedDiff) + self.vcsMultiMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsRevert.png"), + self.trUtf8('Revert changes'), self._VCSRevert) + self.vcsMultiMenuActions.append(act) + act = menu.addAction(self.trUtf8('Resolve conflict'), self.__HgResolve) + self.vcsMultiMenuActions.append(act) + menu.addSeparator() + menu.addAction(self.trUtf8('Select all local file entries'), + self.browser.selectLocalEntries) + menu.addAction(self.trUtf8('Select all versioned file entries'), + self.browser.selectVCSEntries) + menu.addAction(self.trUtf8('Select all local directory entries'), + self.browser.selectLocalDirEntries) + menu.addAction(self.trUtf8('Select all versioned directory entries'), + self.browser.selectVCSDirEntries) + menu.addSeparator() + + mainMenu.addSeparator() + mainMenu.addMenu(menu) + self.menuMulti = menu + + def _addVCSMenuBack(self, mainMenu): + """ + Protected method used to add the VCS menu to all project browsers. + + @param mainMenu reference to the menu to be amended + """ + menu = QMenu(self.trUtf8("Version Control")) + + act = menu.addAction( + UI.PixmapCache.getIcon( + os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), + self.vcs.vcsName(), self._VCSInfoDisplay) + font = act.font() + font.setBold(True) + act.setFont(font) + menu.addSeparator() + + menu.addAction(self.trUtf8('Select all local file entries'), + self.browser.selectLocalEntries) + menu.addAction(self.trUtf8('Select all versioned file entries'), + self.browser.selectVCSEntries) + menu.addAction(self.trUtf8('Select all local directory entries'), + self.browser.selectLocalDirEntries) + menu.addAction(self.trUtf8('Select all versioned directory entries'), + self.browser.selectVCSDirEntries) + menu.addSeparator() + + mainMenu.addSeparator() + mainMenu.addMenu(menu) + self.menuBack = menu + + def _addVCSMenuDir(self, mainMenu): + """ + Protected method used to add the VCS menu to all project browsers. + + @param mainMenu reference to the menu to be amended + """ + if mainMenu is None: + return + + self.vcsDirMenuActions = [] + self.vcsAddDirMenuActions = [] + + menu = QMenu(self.trUtf8("Version Control")) + + act = menu.addAction( + UI.PixmapCache.getIcon( + os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), + self.vcs.vcsName(), self._VCSInfoDisplay) + font = act.font() + font.setBold(True) + act.setFont(font) + menu.addSeparator() + + act = menu.addAction(UI.PixmapCache.getIcon("vcsCommit.png"), + self.trUtf8('Commit changes to repository...'), + self._VCSCommit) + self.vcsDirMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsAdd.png"), + self.trUtf8('Add to repository'), self._VCSAdd) + self.vcsAddDirMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"), + self.trUtf8('Remove from repository (and disk)'), + self._VCSRemove) + self.vcsDirMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(self.trUtf8('Copy in repository'), self.__HgCopy) + self.vcsDirMenuActions.append(act) + act = menu.addAction(self.trUtf8('Move in repository'), self.__HgMove) + self.vcsDirMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show log'), self._VCSLog) + self.vcsDirMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show limited log'), self.__HgLogLimited) + self.vcsDirMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show log browser'), self.__HgLogBrowser) + self.vcsDirMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsStatus.png"), + self.trUtf8('Show status'), self._VCSStatus) + self.vcsDirMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference'), self._VCSDiff) + self.vcsDirMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference (extended)'), + self.__HgExtendedDiff) + self.vcsDirMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsRevert.png"), + self.trUtf8('Revert changes'), self._VCSRevert) + self.vcsDirMenuActions.append(act) + act = menu.addAction(self.trUtf8('Resolve conflict'), self.__HgResolve) + self.vcsDirMenuActions.append(act) + menu.addSeparator() + menu.addAction(self.trUtf8('Select all local file entries'), + self.browser.selectLocalEntries) + menu.addAction(self.trUtf8('Select all versioned file entries'), + self.browser.selectVCSEntries) + menu.addAction(self.trUtf8('Select all local directory entries'), + self.browser.selectLocalDirEntries) + menu.addAction(self.trUtf8('Select all versioned directory entries'), + self.browser.selectVCSDirEntries) + menu.addSeparator() + + mainMenu.addSeparator() + mainMenu.addMenu(menu) + self.menuDir = menu + + def _addVCSMenuDirMulti(self, mainMenu): + """ + Protected method used to add the VCS menu to all project browsers. + + @param mainMenu reference to the menu to be amended + """ + if mainMenu is None: + return + + self.vcsDirMultiMenuActions = [] + self.vcsAddDirMultiMenuActions = [] + + menu = QMenu(self.trUtf8("Version Control")) + + act = menu.addAction( + UI.PixmapCache.getIcon( + os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), + self.vcs.vcsName(), self._VCSInfoDisplay) + font = act.font() + font.setBold(True) + act.setFont(font) + menu.addSeparator() + + act = menu.addAction(UI.PixmapCache.getIcon("vcsCommit.png"), + self.trUtf8('Commit changes to repository...'), + self._VCSCommit) + self.vcsDirMultiMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsAdd.png"), + self.trUtf8('Add to repository'), self._VCSAdd) + self.vcsAddDirMultiMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsRemove.png"), + self.trUtf8('Remove from repository (and disk)'), + self._VCSRemove) + self.vcsDirMultiMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsStatus.png"), + self.trUtf8('Show status'), self._VCSStatus) + self.vcsDirMultiMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference'), self._VCSDiff) + self.vcsDirMultiMenuActions.append(act) + act = menu.addAction(UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference (extended)'), + self.__HgExtendedDiff) + self.vcsDirMultiMenuActions.append(act) + menu.addSeparator() + act = menu.addAction(UI.PixmapCache.getIcon("vcsRevert.png"), + self.trUtf8('Revert changes'), self._VCSRevert) + self.vcsDirMultiMenuActions.append(act) + act = menu.addAction(self.trUtf8('Resolve conflict'), self.__HgResolve) + self.vcsDirMultiMenuActions.append(act) + menu.addSeparator() + menu.addAction(self.trUtf8('Select all local file entries'), + self.browser.selectLocalEntries) + menu.addAction(self.trUtf8('Select all versioned file entries'), + self.browser.selectVCSEntries) + menu.addAction(self.trUtf8('Select all local directory entries'), + self.browser.selectLocalDirEntries) + menu.addAction(self.trUtf8('Select all versioned directory entries'), + self.browser.selectVCSDirEntries) + menu.addSeparator() + + mainMenu.addSeparator() + mainMenu.addMenu(menu) + self.menuDirMulti = menu + + ############################################################################ + # Menu handling methods below + ############################################################################ + + def __HgCopy(self): + """ + Private slot called by the context menu to copy the selected file. + """ + itm = self.browser.currentItem() + try: + fn = itm.fileName() + except AttributeError: + fn = itm.dirName() + self.vcs.hgCopy(fn, self.project) + + def __HgMove(self): + """ + Private slot called by the context menu to move the selected file. + """ + itm = self.browser.currentItem() + try: + fn = itm.fileName() + except AttributeError: + fn = itm.dirName() + isFile = os.path.isfile(fn) + movefiles = self.browser.project.getFiles(fn) + if self.vcs.vcsMove(fn, self.project): + if isFile: + self.browser.emit(SIGNAL('closeSourceWindow'), fn) + else: + for mf in movefiles: + self.browser.emit(SIGNAL('closeSourceWindow'), mf) + + def __HgExtendedDiff(self): + """ + Private slot called by the context menu to show the difference of a file to + the repository. + + This gives the chance to enter the revisions to compare. + """ + names = [] + for itm in self.browser.getSelectedItems(): + try: + names.append(itm.fileName()) + except AttributeError: + names.append(itm.dirName()) + self.vcs.hgExtendedDiff(names) + + def __HgAnnotate(self): + """ + Private slot called by the context menu to show the annotations of a file. + """ + itm = self.browser.currentItem() + fn = itm.fileName() + self.vcs.hgAnnotate(fn) + + def __HgLogLimited(self): + """ + Private slot called by the context menu to show the limited log of a file. + """ + itm = self.browser.currentItem() + try: + fn = itm.fileName() + except AttributeError: + fn = itm.dirName() + self.vcs.hgLogLimited(fn) + + def __HgLogBrowser(self): + """ + Private slot called by the context menu to show the log browser for a file. + """ + itm = self.browser.currentItem() + try: + fn = itm.fileName() + except AttributeError: + fn = itm.dirName() + self.vcs.hgLogBrowser(fn) + + def __HgResolve(self): + """ + Private slot called by the context menu to resolve conflicts of a file. + """ + names = [] + for itm in self.browser.getSelectedItems(): + try: + names.append(itm.fileName()) + except AttributeError: + names.append(itm.dirName()) + self.vcs.hgResolve(names)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,654 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the VCS project helper for Mercurial. +""" + +import os + +from PyQt4.QtCore import SIGNAL + +from E5Gui.E5Application import e5App + +from VCS.ProjectHelper import VcsProjectHelper + +from E5Gui.E5Action import E5Action + +import UI.PixmapCache +import Preferences + +class HgProjectHelper(VcsProjectHelper): + """ + Class implementing the VCS project helper for Mercurial. + """ + def __init__(self, vcsObject, projectObject, parent = None, name = None): + """ + Constructor + + @param vcsObject reference to the vcs object + @param projectObject reference to the project object + @param parent parent widget (QWidget) + @param name name of this object (string) + """ + VcsProjectHelper.__init__(self, vcsObject, projectObject, parent, name) + + def getActions(self): + """ + Public method to get a list of all actions. + + @return list of all actions (list of E5Action) + """ + return self.actions[:] + + def initActions(self): + """ + Public method to generate the action objects. + """ + self.vcsNewAct = E5Action(self.trUtf8('New from repository'), + UI.PixmapCache.getIcon("vcsCheckout.png"), + self.trUtf8('&New from repository...'), 0, 0, self, 'mercurial_new') + self.vcsNewAct.setStatusTip(self.trUtf8( + 'Create (clone) a new project from a Mercurial repository' + )) + self.vcsNewAct.setWhatsThis(self.trUtf8( + """<b>New from repository</b>""" + """<p>This creates (clones) a new local project from """ + """a Mercurial repository.</p>""" + )) + self.connect(self.vcsNewAct, SIGNAL('triggered()'), self._vcsCheckout) + self.actions.append(self.vcsNewAct) + + self.hgIncomingAct = E5Action(self.trUtf8('Show incoming log'), + UI.PixmapCache.getIcon("vcsUpdate.png"), + self.trUtf8('Show incoming log'), + 0, 0, self, 'mercurial_incoming') + self.hgIncomingAct.setStatusTip(self.trUtf8( + 'Show the log of incoming changes' + )) + self.hgIncomingAct.setWhatsThis(self.trUtf8( + """<b>Show incoming log</b>""" + """<p>This shows the log of changes coming into the repository.</p>""" + )) + self.connect(self.hgIncomingAct, SIGNAL('triggered()'), self.__hgIncoming) + self.actions.append(self.hgIncomingAct) + + self.hgPullAct = E5Action(self.trUtf8('Pull changes'), + UI.PixmapCache.getIcon("vcsUpdate.png"), + self.trUtf8('Pull changes'), + 0, 0, self, 'mercurial_pull') + self.hgPullAct.setStatusTip(self.trUtf8( + 'Pull changes from a remote repository' + )) + self.hgPullAct.setWhatsThis(self.trUtf8( + """<b>Pull changes</b>""" + """<p>This pulls changes from a remote repository into the """ + """local repository.</p>""" + )) + self.connect(self.hgPullAct, SIGNAL('triggered()'), self.__hgPull) + self.actions.append(self.hgPullAct) + + self.vcsUpdateAct = E5Action(self.trUtf8('Update from repository'), + UI.PixmapCache.getIcon("vcsUpdate.png"), + self.trUtf8('&Update from repository'), 0, 0, self, + 'mercurial_update') + self.vcsUpdateAct.setStatusTip(self.trUtf8( + 'Update the local project from the Mercurial repository' + )) + self.vcsUpdateAct.setWhatsThis(self.trUtf8( + """<b>Update from repository</b>""" + """<p>This updates the local project from the Mercurial repository.</p>""" + )) + self.connect(self.vcsUpdateAct, SIGNAL('triggered()'), self._vcsUpdate) + self.actions.append(self.vcsUpdateAct) + + self.vcsCommitAct = E5Action(self.trUtf8('Commit changes to repository'), + UI.PixmapCache.getIcon("vcsCommit.png"), + self.trUtf8('&Commit changes to repository...'), 0, 0, self, + 'mercurial_commit') + self.vcsCommitAct.setStatusTip(self.trUtf8( + 'Commit changes to the local project to the Mercurial repository' + )) + self.vcsCommitAct.setWhatsThis(self.trUtf8( + """<b>Commit changes to repository</b>""" + """<p>This commits changes to the local project to the """ + """Mercurial repository.</p>""" + )) + self.connect(self.vcsCommitAct, SIGNAL('triggered()'), self._vcsCommit) + self.actions.append(self.vcsCommitAct) + + self.hgOutgoingAct = E5Action(self.trUtf8('Show outgoing log'), + UI.PixmapCache.getIcon("vcsCommit.png"), + self.trUtf8('Show outgoing log'), + 0, 0, self, 'mercurial_outgoing') + self.hgOutgoingAct.setStatusTip(self.trUtf8( + 'Show the log of outgoing changes' + )) + self.hgOutgoingAct.setWhatsThis(self.trUtf8( + """<b>Show outgoing log</b>""" + """<p>This shows the log of changes outgoing out of the repository.</p>""" + )) + self.connect(self.hgOutgoingAct, SIGNAL('triggered()'), self.__hgOutgoing) + self.actions.append(self.hgOutgoingAct) + + self.hgPushAct = E5Action(self.trUtf8('Push changes'), + UI.PixmapCache.getIcon("vcsCommit.png"), + self.trUtf8('Push changes'), + 0, 0, self, 'mercurial_push') + self.hgPushAct.setStatusTip(self.trUtf8( + 'Push changes to a remote repository' + )) + self.hgPushAct.setWhatsThis(self.trUtf8( + """<b>Push changes</b>""" + """<p>This pushes changes from the local repository to a """ + """remote repository.</p>""" + )) + self.connect(self.hgPushAct, SIGNAL('triggered()'), self.__hgPush) + self.actions.append(self.hgPushAct) + + self.vcsExportAct = E5Action(self.trUtf8('Export from repository'), + UI.PixmapCache.getIcon("vcsExport.png"), + self.trUtf8('&Export from repository...'), + 0, 0, self, 'subversion_export') + self.vcsExportAct.setStatusTip(self.trUtf8( + 'Export a project from the repository' + )) + self.vcsExportAct.setWhatsThis(self.trUtf8( + """<b>Export from repository</b>""" + """<p>This exports a project from the repository.</p>""" + )) + self.connect(self.vcsExportAct, SIGNAL('triggered()'), self._vcsExport) + self.actions.append(self.vcsExportAct) + + self.vcsAddAct = E5Action(self.trUtf8('Add to repository'), + UI.PixmapCache.getIcon("vcsAdd.png"), + self.trUtf8('&Add to repository...'), 0, 0, self, 'mercurial_add') + self.vcsAddAct.setStatusTip(self.trUtf8( + 'Add the local project to the repository' + )) + self.vcsAddAct.setWhatsThis(self.trUtf8( + """<b>Add to repository</b>""" + """<p>This adds (imports) the local project to the repository.</p>""" + )) + self.connect(self.vcsAddAct, SIGNAL('triggered()'), self._vcsImport) + self.actions.append(self.vcsAddAct) + + self.vcsRemoveAct = E5Action(self.trUtf8('Remove from repository (and disk)'), + UI.PixmapCache.getIcon("vcsRemove.png"), + self.trUtf8('&Remove from repository (and disk)'), + 0, 0, self, 'mercurial_remove') + self.vcsRemoveAct.setStatusTip(self.trUtf8( + 'Remove the local project from the repository (and disk)' + )) + self.vcsRemoveAct.setWhatsThis(self.trUtf8( + """<b>Remove from repository</b>""" + """<p>This removes the local project from the repository""" + """ (and disk).</p>""" + )) + self.connect(self.vcsRemoveAct, SIGNAL('triggered()'), self._vcsRemove) + self.actions.append(self.vcsRemoveAct) + + self.vcsLogAct = E5Action(self.trUtf8('Show log'), + UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show &log'), + 0, 0, self, 'mercurial_log') + self.vcsLogAct.setStatusTip(self.trUtf8( + 'Show the log of the local project' + )) + self.vcsLogAct.setWhatsThis(self.trUtf8( + """<b>Show log</b>""" + """<p>This shows the log of the local project.</p>""" + )) + self.connect(self.vcsLogAct, SIGNAL('triggered()'), self._vcsLog) + self.actions.append(self.vcsLogAct) + + self.hgLogLimitedAct = E5Action(self.trUtf8('Show limited log'), + UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show limited log'), + 0, 0, self, 'mercurial_log_limited') + self.hgLogLimitedAct.setStatusTip(self.trUtf8( + 'Show a limited log of the local project' + )) + self.hgLogLimitedAct.setWhatsThis(self.trUtf8( + """<b>Show limited log</b>""" + """<p>This shows the log of the local project limited to a selectable""" + """ number of entries.</p>""" + )) + self.connect(self.hgLogLimitedAct, SIGNAL('triggered()'), self.__hgLogLimited) + self.actions.append(self.hgLogLimitedAct) + + self.hgLogBrowserAct = E5Action(self.trUtf8('Show log browser'), + UI.PixmapCache.getIcon("vcsLog.png"), + self.trUtf8('Show log browser'), + 0, 0, self, 'mercurial_log_browser') + self.hgLogBrowserAct.setStatusTip(self.trUtf8( + 'Show a dialog to browse the log of the local project' + )) + self.hgLogBrowserAct.setWhatsThis(self.trUtf8( + """<b>Show log browser</b>""" + """<p>This shows a dialog to browse the log of the local project.""" + """ A limited number of entries is shown first. More can be""" + """ retrieved later on.</p>""" + )) + self.connect(self.hgLogBrowserAct, SIGNAL('triggered()'), self.__hgLogBrowser) + self.actions.append(self.hgLogBrowserAct) + + self.vcsDiffAct = E5Action(self.trUtf8('Show difference'), + UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show &difference'), + 0, 0, self, 'mercurial_diff') + self.vcsDiffAct.setStatusTip(self.trUtf8( + 'Show the difference of the local project to the repository' + )) + self.vcsDiffAct.setWhatsThis(self.trUtf8( + """<b>Show difference</b>""" + """<p>This shows the difference of the local project to the repository.</p>""" + )) + self.connect(self.vcsDiffAct, SIGNAL('triggered()'), self._vcsDiff) + self.actions.append(self.vcsDiffAct) + + self.hgExtDiffAct = E5Action(self.trUtf8('Show difference (extended)'), + UI.PixmapCache.getIcon("vcsDiff.png"), + self.trUtf8('Show difference (extended)'), + 0, 0, self, 'mercurial_extendeddiff') + self.hgExtDiffAct.setStatusTip(self.trUtf8( + 'Show the difference of revisions of the project to the repository' + )) + self.hgExtDiffAct.setWhatsThis(self.trUtf8( + """<b>Show difference (extended)</b>""" + """<p>This shows the difference of selectable revisions of the project.</p>""" + )) + self.connect(self.hgExtDiffAct, SIGNAL('triggered()'), self.__hgExtendedDiff) + self.actions.append(self.hgExtDiffAct) + + self.vcsStatusAct = E5Action(self.trUtf8('Show status'), + UI.PixmapCache.getIcon("vcsStatus.png"), + self.trUtf8('Show &status'), + 0, 0, self, 'mercurial_status') + self.vcsStatusAct.setStatusTip(self.trUtf8( + 'Show the status of the local project' + )) + self.vcsStatusAct.setWhatsThis(self.trUtf8( + """<b>Show status</b>""" + """<p>This shows the status of the local project.</p>""" + )) + self.connect(self.vcsStatusAct, SIGNAL('triggered()'), self._vcsStatus) + self.actions.append(self.vcsStatusAct) + + self.hgHeadsAct = E5Action(self.trUtf8('Show heads'), + self.trUtf8('Show heads'), + 0, 0, self, 'mercurial_heads') + self.hgHeadsAct.setStatusTip(self.trUtf8( + 'Show the heads of the repository' + )) + self.hgHeadsAct.setWhatsThis(self.trUtf8( + """<b>Show heads</b>""" + """<p>This shows the heads of the repository.</p>""" + )) + self.connect(self.hgHeadsAct, SIGNAL('triggered()'), self.__hgHeads) + self.actions.append(self.hgHeadsAct) + + self.hgParentsAct = E5Action(self.trUtf8('Show parents'), + self.trUtf8('Show parents'), + 0, 0, self, 'mercurial_parents') + self.hgParentsAct.setStatusTip(self.trUtf8( + 'Show the parents of the repository' + )) + self.hgParentsAct.setWhatsThis(self.trUtf8( + """<b>Show parents</b>""" + """<p>This shows the parents of the repository.</p>""" + )) + self.connect(self.hgParentsAct, SIGNAL('triggered()'), self.__hgParents) + self.actions.append(self.hgParentsAct) + + self.hgTipAct = E5Action(self.trUtf8('Show tip'), + self.trUtf8('Show tip'), + 0, 0, self, 'mercurial_tip') + self.hgTipAct.setStatusTip(self.trUtf8( + 'Show the tip of the repository' + )) + self.hgTipAct.setWhatsThis(self.trUtf8( + """<b>Show tip</b>""" + """<p>This shows the tip of the repository.</p>""" + )) + self.connect(self.hgTipAct, SIGNAL('triggered()'), self.__hgTip) + self.actions.append(self.hgTipAct) + + self.vcsRevertAct = E5Action(self.trUtf8('Revert changes'), + UI.PixmapCache.getIcon("vcsRevert.png"), + self.trUtf8('Re&vert changes'), + 0, 0, self, 'mercurial_revert') + self.vcsRevertAct.setStatusTip(self.trUtf8( + 'Revert all changes made to the local project' + )) + self.vcsRevertAct.setWhatsThis(self.trUtf8( + """<b>Revert changes</b>""" + """<p>This reverts all changes made to the local project.</p>""" + )) + self.connect(self.vcsRevertAct, SIGNAL('triggered()'), self._vcsRevert) + self.actions.append(self.vcsRevertAct) + + self.vcsMergeAct = E5Action(self.trUtf8('Merge'), + UI.PixmapCache.getIcon("vcsMerge.png"), + self.trUtf8('Mer&ge changes...'), + 0, 0, self, 'mercurial_merge') + self.vcsMergeAct.setStatusTip(self.trUtf8( + 'Merge changes of a revision into the local project' + )) + self.vcsMergeAct.setWhatsThis(self.trUtf8( + """<b>Merge</b>""" + """<p>This merges changes of a revision into the local project.</p>""" + )) + self.connect(self.vcsMergeAct, SIGNAL('triggered()'), self._vcsMerge) + self.actions.append(self.vcsMergeAct) + + self.vcsResolveAct = E5Action(self.trUtf8('Resolve conflicts'), + self.trUtf8('Resolve con&flicts'), + 0, 0, self, 'mercurial_resolve') + self.vcsResolveAct.setStatusTip(self.trUtf8( + 'Resolve all conflicts of the local project' + )) + self.vcsResolveAct.setWhatsThis(self.trUtf8( + """<b>Resolve conflicts</b>""" + """<p>This resolves all conflicts of the local project.</p>""" + )) + self.connect(self.vcsResolveAct, SIGNAL('triggered()'), self.__hgResolve) + self.actions.append(self.vcsResolveAct) + + self.vcsTagAct = E5Action(self.trUtf8('Tag in repository'), + UI.PixmapCache.getIcon("vcsTag.png"), + self.trUtf8('&Tag in repository...'), + 0, 0, self, 'mercurial_tag') + self.vcsTagAct.setStatusTip(self.trUtf8( + 'Tag the local project in the repository' + )) + self.vcsTagAct.setWhatsThis(self.trUtf8( + """<b>Tag in repository</b>""" + """<p>This tags the local project in the repository.</p>""" + )) + self.connect(self.vcsTagAct, SIGNAL('triggered()'), self._vcsTag) + self.actions.append(self.vcsTagAct) + + self.hgTagListAct = E5Action(self.trUtf8('List tags'), + self.trUtf8('List tags...'), + 0, 0, self, 'mercurial_list_tags') + self.hgTagListAct.setStatusTip(self.trUtf8( + 'List tags of the project' + )) + self.hgTagListAct.setWhatsThis(self.trUtf8( + """<b>List tags</b>""" + """<p>This lists the tags of the project.</p>""" + )) + self.connect(self.hgTagListAct, SIGNAL('triggered()'), self.__hgTagList) + self.actions.append(self.hgTagListAct) + + self.hgBranchListAct = E5Action(self.trUtf8('List branches'), + self.trUtf8('List branches...'), + 0, 0, self, 'mercurial_list_branches') + self.hgBranchListAct.setStatusTip(self.trUtf8( + 'List branches of the project' + )) + self.hgBranchListAct.setWhatsThis(self.trUtf8( + """<b>List branches</b>""" + """<p>This lists the branches of the project.</p>""" + )) + self.connect(self.hgBranchListAct, SIGNAL('triggered()'), self.__hgBranchList) + self.actions.append(self.hgBranchListAct) + + self.hgBranchAct = E5Action(self.trUtf8('Create branch'), + UI.PixmapCache.getIcon("vcsBranch.png"), + self.trUtf8('Create &branch...'), + 0, 0, self, 'mercurial_branch') + self.hgBranchAct.setStatusTip(self.trUtf8( + 'Create a new branch for the local project in the repository' + )) + self.hgBranchAct.setWhatsThis(self.trUtf8( + """<b>Create branch</b>""" + """<p>This creates a new branch for the local project """ + """in the repository.</p>""" + )) + self.connect(self.hgBranchAct, SIGNAL('triggered()'), self.__hgBranch) + self.actions.append(self.hgBranchAct) + + self.hgCloseBranchAct = E5Action(self.trUtf8('Close branch'), + self.trUtf8('Close branch'), + 0, 0, self, 'mercurial_close_branch') + self.hgCloseBranchAct.setStatusTip(self.trUtf8( + 'Close the current branch of the local project' + )) + self.hgCloseBranchAct.setWhatsThis(self.trUtf8( + """<b>Close branch</b>""" + """<p>This closes the current branch of the local project.</p>""" + )) + self.connect(self.hgCloseBranchAct, SIGNAL('triggered()'), self.__hgCloseBranch) + self.actions.append(self.hgCloseBranchAct) + + self.vcsSwitchAct = E5Action(self.trUtf8('Switch'), + UI.PixmapCache.getIcon("vcsSwitch.png"), + self.trUtf8('S&witch...'), + 0, 0, self, 'mercurial_switch') + self.vcsSwitchAct.setStatusTip(self.trUtf8( + 'Switch the working directory to another revision' + )) + self.vcsSwitchAct.setWhatsThis(self.trUtf8( + """<b>Switch</b>""" + """<p>This switches the working directory to another revision.</p>""" + )) + self.connect(self.vcsSwitchAct, SIGNAL('triggered()'), self._vcsSwitch) + self.actions.append(self.vcsSwitchAct) + + self.vcsCleanupAct = E5Action(self.trUtf8('Cleanup'), + self.trUtf8('Cleanu&p'), + 0, 0, self, 'mercurial_cleanup') + self.vcsCleanupAct.setStatusTip(self.trUtf8( + 'Cleanup the local project' + )) + self.vcsCleanupAct.setWhatsThis(self.trUtf8( + """<b>Cleanup</b>""" + """<p>This performs a cleanup of the local project.</p>""" + )) + self.connect(self.vcsCleanupAct, SIGNAL('triggered()'), self._vcsCleanup) + self.actions.append(self.vcsCleanupAct) + + self.vcsCommandAct = E5Action(self.trUtf8('Execute command'), + self.trUtf8('E&xecute command...'), + 0, 0, self, 'mercurial_command') + self.vcsCommandAct.setStatusTip(self.trUtf8( + 'Execute an arbitrary Mercurial command' + )) + self.vcsCommandAct.setWhatsThis(self.trUtf8( + """<b>Execute command</b>""" + """<p>This opens a dialog to enter an arbitrary Mercurial command.</p>""" + )) + self.connect(self.vcsCommandAct, SIGNAL('triggered()'), self._vcsCommand) + self.actions.append(self.vcsCommandAct) + + self.vcsPropsAct = E5Action(self.trUtf8('Command options'), + self.trUtf8('Command &options...'),0,0,self, + 'mercurial_options') + self.vcsPropsAct.setStatusTip(self.trUtf8('Show the Mercurial command options')) + self.vcsPropsAct.setWhatsThis(self.trUtf8( + """<b>Command options...</b>""" + """<p>This shows a dialog to edit the Mercurial command options.</p>""" + )) + self.connect(self.vcsPropsAct, SIGNAL('triggered()'), self._vcsCommandOptions) + self.actions.append(self.vcsPropsAct) + + self.hgConfigAct = E5Action(self.trUtf8('Configure'), + self.trUtf8('Configure...'), + 0, 0, self, 'mercurial_configure') + self.hgConfigAct.setStatusTip(self.trUtf8( + 'Show the configuration dialog with the Mercurial page selected' + )) + self.hgConfigAct.setWhatsThis(self.trUtf8( + """<b>Configure</b>""" + """<p>Show the configuration dialog with the Mercurial page selected.</p>""" + )) + self.connect(self.hgConfigAct, SIGNAL('triggered()'), self.__hgConfigure) + self.actions.append(self.hgConfigAct) + + def initMenu(self, menu): + """ + Public method to generate the VCS menu. + + @param menu reference to the menu to be populated (QMenu) + """ + menu.clear() + + act = menu.addAction( + UI.PixmapCache.getIcon( + os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), + self.vcs.vcsName(), self._vcsInfoDisplay) + font = act.font() + font.setBold(True) + act.setFont(font) + menu.addSeparator() + + menu.addAction(self.hgIncomingAct) + menu.addAction(self.hgPullAct) + menu.addAction(self.vcsUpdateAct) + menu.addSeparator() + menu.addAction(self.vcsCommitAct) + menu.addAction(self.hgOutgoingAct) + menu.addAction(self.hgPushAct) + menu.addSeparator() + menu.addAction(self.vcsNewAct) + menu.addAction(self.vcsExportAct) + menu.addSeparator() + menu.addAction(self.vcsAddAct) + menu.addAction(self.vcsRemoveAct) + menu.addSeparator() + menu.addAction(self.vcsTagAct) + menu.addAction(self.hgTagListAct) + menu.addAction(self.hgBranchAct) + menu.addAction(self.hgCloseBranchAct) + menu.addAction(self.hgBranchListAct) + menu.addSeparator() + menu.addAction(self.hgHeadsAct) + menu.addAction(self.hgParentsAct) + menu.addAction(self.hgTipAct) + menu.addSeparator() + menu.addAction(self.vcsLogAct) + menu.addAction(self.hgLogLimitedAct) + menu.addAction(self.hgLogBrowserAct) + menu.addSeparator() + menu.addAction(self.vcsStatusAct) + menu.addSeparator() + menu.addAction(self.vcsDiffAct) + menu.addAction(self.hgExtDiffAct) + menu.addSeparator() + menu.addAction(self.vcsRevertAct) + menu.addAction(self.vcsMergeAct) + menu.addAction(self.vcsResolveAct) + menu.addSeparator() + menu.addAction(self.vcsSwitchAct) + menu.addSeparator() + menu.addAction(self.vcsCleanupAct) + menu.addSeparator() + menu.addAction(self.vcsCommandAct) + menu.addSeparator() + menu.addAction(self.vcsPropsAct) + menu.addSeparator() + menu.addAction(self.hgConfigAct) + + def __hgExtendedDiff(self): + """ + Private slot used to perform a svn diff with the selection of revisions. + """ + self.vcs.hgExtendedDiff(self.project.ppath) + + def __hgLogLimited(self): + """ + Private slot used to perform a hg log --limit. + """ + self.vcs.hgLogLimited(self.project.ppath) + + def __hgLogBrowser(self): + """ + Private slot used to browse the log of the current project. + """ + self.vcs.hgLogBrowser(self.project.ppath) + + def __hgIncoming(self): + """ + Private slot used to show the log of changes coming into the repository. + """ + self.vcs.hgIncoming(self.project.ppath) + + def __hgOutgoing(self): + """ + Private slot used to show the log of changes going out of the repository. + """ + self.vcs.hgOutgoing(self.project.ppath) + + def __hgPull(self): + """ + Private slot used to pull changes from a remote repository. + """ + self.vcs.hgPull(self.project.ppath) + + def __hgPush(self): + """ + Private slot used to push changes to a remote repository. + """ + self.vcs.hgPush(self.project.ppath) + + def __hgHeads(self): + """ + Private slot used to show the heads of the repository. + """ + self.vcs.hgInfo(self.project.ppath, mode = "heads") + + def __hgParents(self): + """ + Private slot used to show the parents of the repository. + """ + self.vcs.hgInfo(self.project.ppath, mode = "parents") + + def __hgTip(self): + """ + Private slot used to show the tip of the repository. + """ + self.vcs.hgInfo(self.project.ppath, mode = "tip") + + def __hgResolve(self): + """ + Private slot used to resolve conflicts of the local project. + """ + self.vcs.hgResolve(self.project.ppath) + + def __hgTagList(self): + """ + Private slot used to list the tags of the project. + """ + self.vcs.hgListTagBranch(self.project.ppath, True) + + def __hgBranchList(self): + """ + Private slot used to list the branches of the project. + """ + self.vcs.hgListTagBranch(self.project.ppath, False) + + def __hgBranch(self): + """ + Private slot used to create a new branch for the project. + """ + self.vcs.hgBranch(self.project.ppath) + + def __hgConfigure(self): + """ + Private method to open the configuration dialog. + """ + e5App().getObject("UserInterface").showPreferences("zzz_mercurialPage") + + def __hgCloseBranch(self): + """ + Protected slot used to close the current branch of the local project. + """ + if Preferences.getVCS("AutoSaveProject"): + self.project.saveProject() + if Preferences.getVCS("AutoSaveFiles"): + self.project.saveAllScripts() + self.vcs.vcsCommit(self.project.ppath, '', closeBranch = True)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/__init__.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Package implementing the vcs interface to Mercurial + +It consists of the hg class, the project helper classes and some +Mercurial specific dialogs. +"""
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/hg.py Mon Apr 12 18:00:42 2010 +0000 @@ -0,0 +1,1501 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the version control systems interface to Mercurial. +""" + +import os +import shutil +import urllib.request, urllib.parse, urllib.error + +from PyQt4.QtCore import QProcess, SIGNAL +from PyQt4.QtGui import QMessageBox, QApplication, QDialog, QInputDialog + +from E5Gui.E5Application import e5App + +from VCS.VersionControl import VersionControl +from VCS.RepositoryInfoDialog import VcsRepositoryInfoDialog + +from .HgDialog import HgDialog +from .HgCommitDialog import HgCommitDialog +from .HgOptionsDialog import HgOptionsDialog +from .HgNewProjectOptionsDialog import HgNewProjectOptionsDialog +from .HgCopyDialog import HgCopyDialog +from .HgLogDialog import HgLogDialog +from .HgLogBrowserDialog import HgLogBrowserDialog +from .HgDiffDialog import HgDiffDialog +from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog +from .HgRevisionSelectionDialog import HgRevisionSelectionDialog +from .HgMergeDialog import HgMergeDialog +from .HgStatusMonitorThread import HgStatusMonitorThread +from .HgStatusDialog import HgStatusDialog +from .HgAnnotateDialog import HgAnnotateDialog +from .HgTagDialog import HgTagDialog +from .HgTagBranchListDialog import HgTagBranchListDialog +from .HgCommandDialog import HgCommandDialog + +from .ProjectBrowserHelper import HgProjectBrowserHelper + +import Preferences +import Utilities + +class Hg(VersionControl): + """ + Class implementing the version control systems interface to Mercurial. + + @signal committed() emitted after the commit action has completed + """ + def __init__(self, plugin, parent=None, name=None): + """ + Constructor + + @param plugin reference to the plugin object + @param parent parent widget (QWidget) + @param name name of this object (string) + """ + VersionControl.__init__(self, parent, name) + self.defaultOptions = { + 'global' : [''], + 'commit' : [''], + 'checkout' : [''], + 'update' : [''], + 'add' : [''], + 'remove' : [''], + 'diff' : [''], + 'log' : [''], + 'history' : [''], + 'status' : [''], + 'tag' : [''], + 'export' : [''] + } + + self.__plugin = plugin + self.__ui = parent + + self.options = self.defaultOptions + self.tagsList = [] + self.branchesList = [] + self.allTagsBranchesList = [] + self.showedTags = False + self.showedBranches = False + + self.tagTypeList = [ + 'tags', + 'branches', + ] + + self.commandHistory = [] + + if "HG_ASP_DOT_NET_HACK" in os.environ: + self.adminDir = '_hg' + else: + self.adminDir = '.hg' + + self.log = None + self.diff = None + self.status = None + self.tagbranchList = None + self.annotate = None + + self.statusCache = {} + + self.__commitData = {} + self.__commitDialog = None + + def getPlugin(self): + """ + Public method to get a reference to the plugin object. + + @return reference to the plugin object (VcsMercurialPlugin) + """ + return self.__plugin + + def vcsShutdown(self): + """ + Public method used to shutdown the Mercurial interface. + """ + if self.log is not None: + self.log.close() + if self.diff is not None: + self.diff.close() + if self.status is not None: + self.status.close() + if self.tagbranchList is not None: + self.tagbranchList.close() + if self.annotate is not None: + self.annotate.close() + + def vcsExists(self): + """ + Public method used to test for the presence of the hg executable. + + @return flag indicating the existance (boolean) and an error message (string) + """ + self.versionStr = '' + errMsg = "" + ioEncoding = Preferences.getSystem("IOEncoding") + + process = QProcess() + process.start('hg', ['version']) + procStarted = process.waitForStarted() + if procStarted: + finished = process.waitForFinished(30000) + if finished and process.exitCode() == 0: + output = \ + str(process.readAllStandardOutput(), ioEncoding, 'replace') + self.versionStr = output.splitlines()[0].split()[-1][0:-1] + return True, errMsg + else: + if finished: + errMsg = \ + self.trUtf8("The hg process finished with the exit code {0}")\ + .format(process.exitCode()) + else: + errMsg = self.trUtf8("The hg process did not finish within 30s.") + else: + errMsg = self.trUtf8("Could not start the hg executable.") + + return False, errMsg + + def vcsInit(self, vcsDir, noDialog = False): + """ + Public method used to initialize the mercurial repository. + + The initialization is done, when a project is converted into a Mercurial + controlled project. Therefore we always return TRUE without doing anything. + + @param vcsDir name of the VCS directory (string) + @param noDialog flag indicating quiet operations (boolean) + @return always TRUE + """ + return True + + def vcsConvertProject(self, vcsDataDict, project): + """ + Public method to convert an uncontrolled project to a version controlled project. + + @param vcsDataDict dictionary of data required for the conversion + @param project reference to the project object + """ + success = self.vcsImport(vcsDataDict, project.ppath)[0] + if not success: + QMessageBox.critical(None, + self.trUtf8("Create project repository"), + self.trUtf8("""The project repository could not be created.""")) + else: + pfn = project.pfile + if not os.path.isfile(pfn): + pfn += "z" + project.closeProject() + project.openProject(pfn) + + def vcsImport(self, vcsDataDict, projectDir, noDialog = False): + """ + Public method used to import the project into the Subversion repository. + + @param vcsDataDict dictionary of data required for the import + @param projectDir project directory (string) + @param noDialog flag indicating quiet operations + @return flag indicating an execution without errors (boolean) + and a flag indicating the version controll status (boolean) + """ + ignorePatterns = [ + "glob:.eric5project", + "glob:.ropeproject", + "glob:.directory", + "glob:*.pyc", + "glob:*.orig", + "glob:*.bak", + ] + + msg = vcsDataDict["message"] + if not msg: + msg = '***' + + args = [] + args.append('init') + args.append(projectDir) + dia = HgDialog(self.trUtf8('Creating Mercurial repository')) + res = dia.startProcess(args) + if res: + dia.exec_() + status = dia.normalExit() + + if status: + try: + # create a .hgignore file + ignore = open(os.path.join(projectDir, ".hgignore"), "w") + ignore.write("\n".join(ignorePatterns)) + ignore.close() + except IOError: + status = False + + if status: + args = [] + args.append('commit') + args.append('--addremove') + args.append('--message') + args.append(msg) + args.append(projectDir) + dia = HgDialog(self.trUtf8('Initial commit to Mercurial repository')) + res = dia.startProcess(args) + if res: + dia.exec_() + status = dia.normalExit() + + return status, False + + def vcsCheckout(self, vcsDataDict, projectDir, noDialog = False): + """ + Public method used to check the project out of a Mercurial repository (clone). + + @param vcsDataDict dictionary of data required for the checkout + @param projectDir project directory to create (string) + @param noDialog flag indicating quiet operations + @return flag indicating an execution without errors (boolean) + """ + noDialog = False + try: + rev = vcsDataDict["revision"] + except KeyError: + rev = None + vcsUrl = self.hgNormalizeURL(vcsDataDict["url"]) + if vcsUrl.startswith('/'): + vcsUrl = 'file://%s' % vcsUrl + elif vcsUrl[1] in ['|', ':']: + vcsUrl = 'file:///%s' % vcsUrl + + args = [] + args.append('clone') + self.addArguments(args, self.options['global']) + self.addArguments(args, self.options['checkout']) + if rev: + args.append("--rev") + args.append(rev) + args.append(self.__hgURL(vcsUrl)) + args.append(projectDir) + + if noDialog: + return self.startSynchronizedProcess(QProcess(), 'hg', args) + else: + dia = HgDialog(self.trUtf8('Cloning project from a Mercurial repository')) + res = dia.startProcess(args) + if res: + dia.exec_() + return dia.normalExit() + + def vcsExport(self, vcsDataDict, projectDir): + """ + Public method used to export a directory from the Subversion repository. + + @param vcsDataDict dictionary of data required for the checkout + @param projectDir project directory to create (string) + @return flag indicating an execution without errors (boolean) + """ + status = self.vcsCheckout(vcsDataDict, projectDir) + shutil.rmtree(os.path.join(projectDir, self.adminDir), True) + if os.path.exists(os.path.join(projectDir, '.hgignore')): + os.remove(os.path.join(projectDir, '.hgignore')) + return status + + def vcsCommit(self, name, message, noDialog = False, closeBranch = False): + """ + Public method used to make the change of a file/directory permanent in the + Mercurial repository. + + @param name file/directory name to be committed (string or list of strings) + @param message message for this operation (string) + @param noDialog flag indicating quiet operations + @keyparam closeBranch flag indicating a close branch commit (boolean) + """ + msg = message + + if not noDialog and not msg: + # call CommitDialog and get message from there + if self.__commitDialog is None: + self.__commitDialog = HgCommitDialog(self, self.__ui) + self.connect(self.__commitDialog, SIGNAL("accepted()"), + self.__vcsCommit_Step2) + self.__commitDialog.show() + self.__commitDialog.raise_() + self.__commitDialog.activateWindow() + + self.__commitData["name"] = name + self.__commitData["msg"] = msg + self.__commitData["noDialog"] = noDialog + self.__commitData["closeBranch"] = closeBranch + + if noDialog: + self.__vcsCommit_Step2() + + def __vcsCommit_Step2(self): + """ + Private slot performing the second step of the commit action. + """ + name = self.__commitData["name"] + msg = self.__commitData["msg"] + noDialog = self.__commitData["noDialog"] + closeBranch = self.__commitData["closeBranch"] + + if self.__commitDialog is not None: + msg = self.__commitDialog.logMessage() + self.disconnect(self.__commitDialog, SIGNAL("accepted()"), + self.__vcsCommit_Step2) + self.__commitDialog = None + + if not msg: + msg = '***' + + args = [] + args.append('commit') + self.addArguments(args, self.options['global']) + self.addArguments(args, self.options['commit']) + args.append("-v") + if closeBranch: + args.append("--close-branch") + args.append("--message") + args.append(msg) + if isinstance(name, list): + dname, fnames = self.splitPathList(name) + else: + dname, fname = self.splitPath(name) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + if isinstance(name, list): + self.addArguments(args, fnames) + else: + if dname != repodir or fname != ".": + args.append(fname) + + if noDialog: + self.startSynchronizedProcess(QProcess(), "hg", args, dname) + else: + dia = HgDialog(self.trUtf8('Commiting changes to Mercurial repository')) + res = dia.startProcess(args, dname) + if res: + dia.exec_() + self.emit(SIGNAL("committed()")) + self.checkVCSStatus() + + def vcsUpdate(self, name, noDialog = False, revision = None): + """ + Public method used to update a file/directory with the Mercurial repository. + + @param name file/directory name to be updated (string or list of strings) + @param noDialog flag indicating quiet operations (boolean) + @keyparam revision revision to update to (string) + @return flag indicating, that the update contained an add + or delete (boolean) + """ + args = [] + args.append('update') + self.addArguments(args, self.options['global']) + self.addArguments(args, self.options['update']) + if revision is not None: + args.append("-r") + args.append(revision) + + if isinstance(name, list): + dname, fnames = self.splitPathList(name) + else: + dname, fname = self.splitPath(name) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return False + + if noDialog: + self.startSynchronizedProcess(QProcess(), "hg", args, repodir) + res = False + else: + dia = HgDialog(self.trUtf8('Synchronizing with the Mercurial repository')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + res = dia.hasAddOrDelete() + self.checkVCSStatus() + return res + + def vcsAdd(self, name, isDir = False, noDialog = False): + """ + Public method used to add a file/directory to the Mercurial repository. + + @param name file/directory name to be added (string) + @param isDir flag indicating name is a directory (boolean) + @param noDialog flag indicating quiet operations + """ + args = [] + args.append('add') + self.addArguments(args, self.options['global']) + self.addArguments(args, self.options['add']) + args.append("-v") + + if isinstance(name, list): + if isDir: + dname, fname = os.path.split(name[0]) + else: + dname, fnames = self.splitPathList(name) + else: + if isDir: + dname, fname = os.path.split(name) + else: + dname, fname = self.splitPath(name) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + if isinstance(name, list): + self.addArguments(args, name) + else: + args.append(name) + + if noDialog: + self.startSynchronizedProcess(QProcess(), "hg", args, repodir) + else: + dia = HgDialog(\ + self.trUtf8('Adding files/directories to the Mercurial repository')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + + def vcsAddBinary(self, name, isDir = False): + """ + Public method used to add a file/directory in binary mode to the + Mercurial repository. + + @param name file/directory name to be added (string) + @param isDir flag indicating name is a directory (boolean) + """ + self.vcsAdd(name, isDir) + + def vcsAddTree(self, path): + """ + Public method to add a directory tree rooted at path to the Mercurial repository. + + @param path root directory of the tree to be added (string or list of strings)) + """ + self.vcsAdd(path, isDir = False) + + def vcsRemove(self, name, project = False, noDialog = False): + """ + Public method used to remove a file/directory from the Mercurial repository. + + The default operation is to remove the local copy as well. + + @param name file/directory name to be removed (string or list of strings)) + @param project flag indicating deletion of a project tree (boolean) (not needed) + @param noDialog flag indicating quiet operations + @return flag indicating successfull operation (boolean) + """ + args = [] + args.append('remove') + self.addArguments(args, self.options['global']) + self.addArguments(args, self.options['remove']) + args.append("-v") + if noDialog and '--force' not in args: + args.append('--force') + + if isinstance(name, list): + dname, fnames = self.splitPathList(name) + self.addArguments(args, name) + else: + dname, fname = self.splitPath(name) + args.append(name) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return False + + if noDialog: + res = self.startSynchronizedProcess(QProcess(), "hg", args, repodir) + else: + dia = HgDialog(\ + self.trUtf8('Removing files/directories from the Mercurial repository')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + res = dia.normalExitWithoutErrors() + + return res + + def vcsMove(self, name, project, target = None, noDialog = False): + """ + Public method used to move a file/directory. + + @param name file/directory name to be moved (string) + @param project reference to the project object + @param target new name of the file/directory (string) + @param noDialog flag indicating quiet operations + @return flag indicating successfull operation (boolean) + """ + isDir = os.path.isdir(name) + opts = self.options['global'][:] + force = '--force' in opts + if force: + opts.remove('--force') + + res = False + if noDialog: + if target is None: + return False + force = True + accepted = True + else: + dlg = HgCopyDialog(name, None, True, force) + accepted = dlg.exec_() == QDialog.Accepted + if accepted: + target, force = dlg.getData() + + if accepted: + args = [] + args.append('rename') + self.addArguments(args, opts) + args.append("-v") + if force: + args.append('--force') + args.append(name) + args.append(target) + + dname, fname = self.splitPath(name) + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return False + + if noDialog: + res = self.startSynchronizedProcess(QProcess(), "hg", args, repodir) + else: + dia = HgDialog(self.trUtf8('Renaming {0}').format(name)) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + res = dia.normalExit() + if res: + if target.startswith(project.getProjectPath()): + if isDir: + project.moveDirectory(name, target) + else: + project.renameFileInPdata(name, target) + else: + if isDir: + project.removeDirectory(name) + else: + project.removeFile(name) + return res + + def vcsLog(self, name): + """ + Public method used to view the log of a file/directory from the + Mercurial repository. + + @param name file/directory name to show the log of (string) + """ + self.log = HgLogDialog(self) + self.log.show() + self.log.start(name) + + def vcsDiff(self, name): + """ + Public method used to view the difference of a file/directory to the + Mercurial repository. + + If name is a directory and is the project directory, all project files + are saved first. If name is a file (or list of files), which is/are being edited + and has unsaved modification, they can be saved or the operation may be aborted. + + @param name file/directory name to be diffed (string) + """ + if isinstance(name, list): + names = name[:] + else: + names = [name] + for nam in names: + if os.path.isfile(nam): + editor = e5App().getObject("ViewManager").getOpenEditor(nam) + if editor and not editor.checkDirty() : + return + else: + project = e5App().getObject("Project") + if nam == project.ppath and not project.saveAllScripts(): + return + self.diff = HgDiffDialog(self) + self.diff.show() + QApplication.processEvents() + self.diff.start(name) + + def vcsStatus(self, name): + """ + Public method used to view the status of files/directories in the + Mercurial repository. + + @param name file/directory name(s) to show the status of + (string or list of strings) + """ + self.status = HgStatusDialog(self) + self.status.show() + self.status.start(name) + + def vcsTag(self, name): + """ + Public method used to set the tag in the Mercurial repository. + + @param name file/directory name to be tagged (string) + """ + dname, fname = self.splitPath(name) + + # find the root of the repo + repodir = str(dname) + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + dlg = HgTagDialog(self.tagsList) + if dlg.exec_() == QDialog.Accepted: + tag, tagOp = dlg.getParameters() + if tag in self.tagsList: + self.tagsList.remove(tag) + self.tagsList.insert(0, tag) + else: + return + + args = [] + args.append('tag') + if tagOp == HgTagDialog.CreateLocalTag: + args.append('--local') + elif tagOp == HgTagDialog.DeleteTag: + args.append('--remove') + args.append('--message') + if tagOp != HgTagDialog.DeleteTag: + args.append("Created tag <{0}>.".format(tag)) + else: + args.append("Removed tag <{0}>.".format(tag)) + args.append(tag) + + dia = HgDialog(self.trUtf8('Taging in the Mercurial repository')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + + def vcsRevert(self, name): + """ + Public method used to revert changes made to a file/directory. + + @param name file/directory name to be reverted (string) + """ + args = [] + args.append('revert') + self.addArguments(args, self.options['global']) + args.append("--no-backup") + args.append("-v") + if isinstance(name, list): + dname, fnames = self.splitPathList(name) + self.addArguments(args, name) + else: + dname, fname = self.splitPath(name) + args.append(name) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + dia = HgDialog(self.trUtf8('Reverting changes')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + self.checkVCSStatus() + + def vcsMerge(self, name): + """ + Public method used to merge a URL/revision into the local project. + + @param name file/directory name to be merged (string) + """ + dname, fname = self.splitPath(name) + + opts = self.options['global'][:] + force = '--force' in opts + if force: + del opts[opts.index('--force')] + + dlg = HgMergeDialog(force, self.tagsList, self.branchesList) + if dlg.exec_() == QDialog.Accepted: + rev, force = dlg.getParameters() + else: + return + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + args = [] + args.append('merge') + self.addArguments(args, opts) + if force: + args.append("--force") + if rev: + args.append("--rev") + args.append(rev) + + dia = HgDialog(self.trUtf8('Merging').format(name)) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + self.checkVCSStatus() + + def vcsSwitch(self, name): + """ + Public method used to switch a working directory to a different revision. + + @param name directory name to be switched (string) + """ + dlg = HgRevisionSelectionDialog(self.tagsList, self.branchesList) + if dlg.exec_() == QDialog.Accepted: + rev = dlg.getRevision() + self.vcsUpdate(name, revision = rev) + + def vcsRegisteredState(self, name): + """ + Public method used to get the registered state of a file in the vcs. + + @param name filename to check (string) + @return a combination of canBeCommited and canBeAdded + """ + if name.endswith(os.sep): + name = name[:-1] + dname, fname = self.splitPath(name) + + if fname == '.' and os.path.isdir(os.path.join(dname, self.adminDir)): + return self.canBeCommitted + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return 0 + + ioEncoding = Preferences.getSystem("IOEncoding") + process = QProcess() + args = [] + args.append('status') + args.append('--all') + args.append('--noninteractive') + process.setWorkingDirectory(repodir) + process.start('hg', args) + procStarted = process.waitForStarted() + if procStarted: + finished = process.waitForFinished(30000) + if finished and process.exitCode() == 0: + output = \ + str(process.readAllStandardOutput(), ioEncoding, 'replace') + for line in output.splitlines(): + flag, path = line.split(" ", 1) + absname = os.path.join(repodir, os.path.normcase(path)) + if flag not in "?I": + if fname == '.': + if absname.startswith(dname): + return self.canBeCommitted + else: + if absname == name: + return self.canBeCommitted + + return self.canBeAdded + + def vcsAllRegisteredStates(self, names, dname, shortcut = True): + """ + Public method used to get the registered states of a number of files in the vcs. + + <b>Note:</b> If a shortcut is to be taken, the code will only check, if the named + directory has been scanned already. If so, it is assumed, that the states for + all files have been populated by the previous run. + + @param names dictionary with all filenames to be checked as keys + @param dname directory to check in (string) + @param shortcut flag indicating a shortcut should be taken (boolean) + @return the received dictionary completed with a combination of + canBeCommited and canBeAdded or None in order to signal an error + """ + if dname.endswith(os.sep): + dname = dname[:-1] + + found = False + for name in list(self.statusCache.keys()): + if os.path.dirname(name) == dname: + if shortcut: + found = True + break + if name in names: + found = True + names[name] = self.statusCache[name] + + if not found: + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return names + + ioEncoding = Preferences.getSystem("IOEncoding") + process = QProcess() + args = [] + args.append('status') + args.append('--all') + args.append('--noninteractive') + process.setWorkingDirectory(dname) + process.start('hg', args) + procStarted = process.waitForStarted() + if procStarted: + finished = process.waitForFinished(30000) + if finished and process.exitCode() == 0: + dirs = [x for x in names.keys() if os.path.isdir(x)] + output = \ + str(process.readAllStandardOutput(), ioEncoding, 'replace') + for line in output.splitlines(): + flag, path = line.split(" ", 1) + name = os.path.join(repodir, os.path.normcase(path)) + if name.startswith(dname): + if flag not in "?I": + if name in names: + names[name] = self.canBeCommitted + dirName = os.path.dirname(name) + if dirName in names: + names[dirName] = self.canBeCommitted + self.statusCache[name] = self.canBeCommitted + self.statusCache[dirName] = self.canBeCommitted + if dirs: + for d in dirs: + if name.startswith(d): + names[d] = self.canBeCommitted + dirs.remove(d) + break + else: + self.statusCache[name] = self.canBeAdded + dirName = os.path.dirname(name) + if dirName not in self.statusCache: + self.statusCache[dirName] = self.canBeAdded + + return names + + def clearStatusCache(self): + """ + Public method to clear the status cache. + """ + self.statusCache = {} + + def vcsName(self): + """ + Public method returning the name of the vcs. + + @return always 'Mercurial' (string) + """ + return "Mercurial" + + def vcsCleanup(self, name): + """ + Public method used to cleanup the working directory. + + @param name directory name to be cleaned up (string) + """ + patterns = ['*.orig', '*.rej'] + + entries = [] + for pat in patterns: + entries.extend(Utilities.direntries(name, True, pat)) + + for entry in entries: + try: + os.remove(entry) + except OSError: + pass + + def vcsCommandLine(self, name): + """ + Public method used to execute arbitrary mercurial commands. + + @param name directory name of the working directory (string) + """ + dlg = HgCommandDialog(self.commandHistory, name) + if dlg.exec_() == QDialog.Accepted: + command = dlg.getData() + commandList = Utilities.parseOptionString(command) + + # This moves any previous occurrence of these arguments to the head + # of the list. + if command in self.commandHistory: + self.commandHistory.remove(command) + self.commandHistory.insert(0, command) + + args = [] + self.addArguments(args, commandList) + + # find the root of the repo + repodir = name + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + dia = HgDialog(self.trUtf8('Mercurial command')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + + def vcsOptionsDialog(self, project, archive, editable = False, parent = None): + """ + Public method to get a dialog to enter repository info. + + @param project reference to the project object + @param archive name of the project in the repository (string) + @param editable flag indicating that the project name is editable (boolean) + @param parent parent widget (QWidget) + """ + return HgOptionsDialog(self, project, parent) + + def vcsNewProjectOptionsDialog(self, parent = None): + """ + Public method to get a dialog to enter repository info for getting a new project. + + @param parent parent widget (QWidget) + """ + return HgNewProjectOptionsDialog(self, parent) + + def vcsRepositoryInfos(self, ppath): + """ + Public method to retrieve information about the repository. + + @param ppath local path to get the repository infos (string) + @return string with ready formated info for display (string) + """ + info = [] + + process = QProcess() + args = [] + args.append('parents') + args.append('--template') + args.append('{rev}:{node|short}@@@{tags}@@@{author|xmlescape}@@@' + '{date|isodate}@@@{branches}\n') + process.setWorkingDirectory(ppath) + process.start('hg', args) + procStarted = process.waitForStarted() + if procStarted: + finished = process.waitForFinished(30000) + if finished and process.exitCode() == 0: + output = str(process.readAllStandardOutput(), + Preferences.getSystem("IOEncoding"), 'replace') + index = 0 + for line in output.splitlines(): + index += 1 + changeset, tags, author, date, branches = line.split("@@@") + cdate, ctime = date.split()[:2] + info.append("""<p><table>""") + info.append(QApplication.translate("mercurial", + """<tr><td><b>Parent #{0}</b></td><td></td></tr>\n""" + """<tr><td><b>Changeset</b></td><td>{1}</td></tr>""")\ + .format(index, changeset)) + if tags: + info.append(QApplication.translate("mercurial", + """<tr><td><b>Tags</b></td><td>{0}</td></tr>""")\ + .format('<br/>'.join(tags.split()))) + if branches: + info.append(QApplication.translate("mercurial", + """<tr><td><b>Branches</b></td><td>{0}</td></tr>""")\ + .format('<br/>'.join(branches.split()))) + info.append(QApplication.translate("mercurial", + """<tr><td><b>Last author</b></td><td>{0}</td></tr>\n""" + """<tr><td><b>Committed date</b></td><td>{1}</td></tr>\n""" + """<tr><td><b>Committed time</b></td><td>{2}</td></tr>""")\ + .format(author, cdate, ctime)) + info.append("""</table></p>""") + + url = "" + args = [] + args.append('showconfig') + args.append('paths.default') + process.setWorkingDirectory(ppath) + process.start('hg', args) + procStarted = process.waitForStarted() + if procStarted: + finished = process.waitForFinished(30000) + if finished and process.exitCode() == 0: + output = str(process.readAllStandardOutput(), + Preferences.getSystem("IOEncoding"), 'replace') + url = output.splitlines()[0].strip() + + return QApplication.translate('mercurial', + """<h3>Repository information</h3>\n""" + """<p><table>\n""" + """<tr><td><b>Mercurial V.</b></td><td>{0}</td></tr>\n""" + """<tr></tr>\n""" + """<tr><td><b>URL</b></td><td>{1}</td></tr>\n""" + """</table></p>\n""" + """{2}""" + ).format(self.versionStr, url, "\n".join(info)) + + ############################################################################ + ## Private Subversion specific methods are below. + ############################################################################ + + def __hgURL(self, url): + """ + Private method to format a url for Mercurial. + + @param url unformatted url string (string) + @return properly formated url for subversion (string) + """ + url = self.hgNormalizeURL(url) + url = url.split(':', 2) + if len(url) == 4: + scheme = url[0] + user = url[1] + host = url[2] + port, path = url[3].split("/",1) + return "%s:%s:%s:%s/%s" % (scheme, user, host, port, urllib.parse.quote(path)) + elif len(url) == 3: + scheme = url[0] + host = url[1] + port, path = url[2].split("/",1) + return "%s:%s:%s/%s" % (scheme, host, port, urllib.parse.quote(path)) + else: + scheme = url[0] + if scheme == "file": + return "%s:%s" % (scheme, urllib.parse.quote(url[1])) + else: + host, path = url[1][2:].split("/",1) + return "%s://%s/%s" % (scheme, host, urllib.parse.quote(path)) + + def hgNormalizeURL(self, url): + """ + Public method to normalize a url for Mercurial. + + @param url url string (string) + @return properly normalized url for subversion (string) + """ + url = url.replace('\\', '/') + if url.endswith('/'): + url = url[:-1] + urll = url.split('//') + return "%s//%s" % (urll[0], '/'.join(urll[1:])) + + def hgCopy(self, name, project): + """ + Public method used to copy a file/directory. + + @param name file/directory name to be copied (string) + @param project reference to the project object + @return flag indicating successfull operation (boolean) + """ + dlg = HgCopyDialog(name) + res = False + if dlg.exec_() == QDialog.Accepted: + target, force = dlg.getData() + + args = [] + args.append('copy') + self.addArguments(args, self.options['global']) + args.append("-v") + args.append(name) + args.append(target) + + dname, fname = self.splitPath(name) + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return False + + dia = HgDialog(self.trUtf8('Copying {0}') + .format(name)) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + res = dia.normalExit() + if res and \ + target.startswith(project.getProjectPath()): + if os.path.isdir(name): + project.copyDirectory(name, target) + else: + project.appendFile(target) + return res + + def hgListTagBranch(self, path, tags = True): + """ + Public method used to list the available tags or branches. + + @param path directory name of the project (string) + @param tags flag indicating listing of branches or tags + (False = branches, True = tags) + """ + self.tagbranchList = HgTagBranchListDialog(self) + self.tagbranchList.show() + if tags: + if not self.showedTags: + self.showedTags = True + allTagsBranchesList = self.allTagsBranchesList + else: + self.tagsList = [] + allTagsBranchesList = None + self.tagbranchList.start(path, tags, + self.tagsList, allTagsBranchesList) + else: + if not self.showedBranches: + self.showedBranches = True + allTagsBranchesList = self.allTagsBranchesList + else: + self.branchesList = [] + allTagsBranchesList = None + self.tagbranchList.start(path, tags, + self.branchesList, self.allTagsBranchesList) + + def hgAnnotate(self, name): + """ + Public method to show the output of the hg annotate command. + + @param name file name to show the annotations for (string) + """ + self.annotate = HgAnnotateDialog(self) + self.annotate.show() + self.annotate.start(name) + + def hgExtendedDiff(self, name): + """ + Public method used to view the difference of a file/directory to the + Mercurial repository. + + If name is a directory and is the project directory, all project files + are saved first. If name is a file (or list of files), which is/are being edited + and has unsaved modification, they can be saved or the operation may be aborted. + + This method gives the chance to enter the revisions to be compared. + + @param name file/directory name to be diffed (string) + """ + if isinstance(name, list): + names = name[:] + else: + names = [name] + for nam in names: + if os.path.isfile(nam): + editor = e5App().getObject("ViewManager").getOpenEditor(nam) + if editor and not editor.checkDirty() : + return + else: + project = e5App().getObject("Project") + if nam == project.ppath and not project.saveAllScripts(): + return + dlg = HgRevisionsSelectionDialog(self.tagsList, self.branchesList) + if dlg.exec_() == QDialog.Accepted: + revisions = dlg.getRevisions() + self.diff = HgDiffDialog(self) + self.diff.show() + self.diff.start(name, revisions) + + def hgLogLimited(self, name): + """ + Public method used to view the (limited) log of a file/directory from the + Mercurial repository. + + @param name file/directory name to show the log of (string) + """ + noEntries, ok = QInputDialog.getInteger(\ + None, + self.trUtf8("Mercurial Log"), + self.trUtf8("Select number of entries to show."), + self.getPlugin().getPreferences("LogLimit"), 1, 999999, 1) + if ok: + self.log = HgLogDialog(self) + self.log.show() + self.log.start(name, noEntries) + + def hgLogBrowser(self, path): + """ + Public method used to browse the log of a file/directory from the + Mercurial repository. + + @param path file/directory name to show the log of (string) + """ + self.logBrowser = HgLogBrowserDialog(self) + self.logBrowser.show() + self.logBrowser.start(path) + + def hgIncoming(self, name): + """ + Public method used to view the log of incoming changes from the + Mercurial repository. + + @param name file/directory name to show the log of (string) + """ + self.log = HgLogDialog(self, mode = "incoming") + self.log.show() + self.log.start(name) + + def hgOutgoing(self, name): + """ + Public method used to view the log of outgoing changes from the + Mercurial repository. + + @param name file/directory name to show the log of (string) + """ + self.log = HgLogDialog(self, mode = "outgoing") + self.log.show() + self.log.start(name) + + def hgPull(self, name): + """ + Public method used to pull changes from a remote Mercurial repository. + + @param name directory name of the project to be pulled to (string) + """ + args = [] + args.append('pull') + self.addArguments(args, self.options['global']) + args.append('-v') + + # find the root of the repo + repodir = self.splitPath(name)[0] + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + dia = HgDialog(self.trUtf8('Pulling from a remote Mercurial repository')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + res = dia.hasAddOrDelete() + self.checkVCSStatus() + + def hgPush(self, name): + """ + Public method used to push changes to a remote Mercurial repository. + + @param name directory name of the project to be pushed from (string) + """ + args = [] + args.append('push') + self.addArguments(args, self.options['global']) + args.append('-v') + + # find the root of the repo + repodir = self.splitPath(name)[0] + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + dia = HgDialog(self.trUtf8('Pushing to a remote Mercurial repository')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + res = dia.hasAddOrDelete() + self.checkVCSStatus() + + def hgInfo(self, ppath, mode = "heads"): + """ + Public method to show information about the heads of the repository. + + @param ppath local path to get the repository infos (string) + @keyparam mode mode of the operation (string, one of heads, parents, tip) + """ + if mode not in ("heads", "parents", "tip"): + mode = "heads" + + info = [] + + # find the root of the repo + repodir = self.splitPath(ppath)[0] + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + process = QProcess() + args = [] + args.append(mode) + args.append('--template') + args.append('{rev}:{node|short}@@@{tags}@@@{author|xmlescape}@@@' + '{date|isodate}@@@{branches}@@@{parents}\n') + + process.setWorkingDirectory(repodir) + process.start('hg', args) + procStarted = process.waitForStarted() + if procStarted: + finished = process.waitForFinished(30000) + if finished and process.exitCode() == 0: + output = str(process.readAllStandardOutput(), + Preferences.getSystem("IOEncoding"), 'replace') + index = 0 + for line in output.splitlines(): + index += 1 + changeset, tags, author, date, branches, parents = line.split("@@@") + cdate, ctime = date.split()[:2] + info.append("""<p><table>""") + if mode == "heads": + info.append(QApplication.translate("mercurial", + """<tr><td><b>Head #{0}</b></td><td></td></tr>\n""" + .format(index, changeset))) + elif mode == "parents": + info.append(QApplication.translate("mercurial", + """<tr><td><b>Parent #{0}</b></td><td></td></tr>\n""" + .format(index, changeset))) + elif mode == "tip": + info.append(QApplication.translate("mercurial", + """<tr><td><b>Tip</b></td><td></td></tr>\n""")) + info.append(QApplication.translate("mercurial", + """<tr><td><b>Changeset</b></td><td>{0}</td></tr>""")\ + .format(changeset)) + if tags: + info.append(QApplication.translate("mercurial", + """<tr><td><b>Tags</b></td><td>{0}</td></tr>""")\ + .format('<br/>'.join(tags.split()))) + if branches: + info.append(QApplication.translate("mercurial", + """<tr><td><b>Branches</b></td><td>{0}</td></tr>""")\ + .format('<br/>'.join(branches.split()))) + if parents: + info.append(QApplication.translate("mercurial", + """<tr><td><b>Parents</b></td><td>{0}</td></tr>""")\ + .format('<br/>'.join(parents.split()))) + info.append(QApplication.translate("mercurial", + """<tr><td><b>Last author</b></td><td>{0}</td></tr>\n""" + """<tr><td><b>Committed date</b></td><td>{1}</td></tr>\n""" + """<tr><td><b>Committed time</b></td><td>{2}</td></tr>\n""" + """</table></p>""")\ + .format(author, cdate, ctime)) + + dlg = VcsRepositoryInfoDialog(None, "\n".join(info)) + dlg.exec_() + + + def hgResolve(self, name): + """ + Public method used to resolve conflicts of a file/directory. + + @param name file/directory name to be resolved (string) + """ + args = [] + args.append('resolve') + self.addArguments(args, self.options['global']) + args.append("--mark") + + if isinstance(name, list): + dname, fnames = self.splitPathList(name) + self.addArguments(args, name) + else: + dname, fname = self.splitPath(name) + args.append(name) + + # find the root of the repo + repodir = dname + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return False + + dia = HgDialog( + self.trUtf8('Resolving files/directories')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + self.checkVCSStatus() + + def hgBranch(self, name): + """ + Public method used to set the tag in the Mercurial repository. + + @param name file/directory name to be tagged (string) + """ + dname, fname = self.splitPath(name) + + # find the root of the repo + repodir = str(dname) + while not os.path.isdir(os.path.join(repodir, self.adminDir)): + repodir = os.path.dirname(repodir) + if repodir == os.sep: + return + + name, ok = QInputDialog.getItem( + None, + self.trUtf8("Create Branch"), + self.trUtf8("Enter branch name"), + self.branchesList, + 0, True) + if ok and name: + args = [] + args.append('branch') + args.append(name) + + dia = HgDialog(self.trUtf8('Creating branch in the Mercurial repository')) + res = dia.startProcess(args, repodir) + if res: + dia.exec_() + + ############################################################################ + ## Methods to get the helper objects are below. + ############################################################################ + + def vcsGetProjectBrowserHelper(self, browser, project, isTranslationsBrowser = False): + """ + Public method to instanciate a helper object for the different project browsers. + + @param browser reference to the project browser object + @param project reference to the project object + @param isTranslationsBrowser flag indicating, the helper is requested for the + translations browser (this needs some special treatment) + @return the project browser helper object + """ + return HgProjectBrowserHelper(self, browser, project, isTranslationsBrowser) + + def vcsGetProjectHelper(self, project): + """ + Public method to instanciate a helper object for the project. + + @param project reference to the project object + @return the project helper object + """ + helper = self.__plugin.getProjectHelper() + helper.setObjects(self, project) + return helper + + ############################################################################ + ## Status Monitor Thread methods + ############################################################################ + + def _createStatusMonitorThread(self, interval, project): + """ + Protected method to create an instance of the VCS status monitor thread. + + @param project reference to the project object + @param interval check interval for the monitor thread in seconds (integer) + @return reference to the monitor thread (QThread) + """ + return HgStatusMonitorThread(interval, project.ppath, self)
--- a/changelog Mon Apr 12 17:45:51 2010 +0000 +++ b/changelog Mon Apr 12 18:00:42 2010 +0000 @@ -2,6 +2,7 @@ ---------- Version 5.0-snapshot-2010mmdd: - bug fixes +- added plugin for Mercurial version control system Version 5.0-snapshot-20100401: - bug fixes
--- a/eric5.e4p Mon Apr 12 17:45:51 2010 +0000 +++ b/eric5.e4p Mon Apr 12 18:00:42 2010 +0000 @@ -770,6 +770,32 @@ <Source>Cooperation/CooperationClient.py</Source> <Source>Cooperation/CooperationServer.py</Source> <Source>Preferences/ConfigurationPages/CooperationPage.py</Source> + <Source>Plugins/PluginVcsMercurial.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/__init__.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/hg.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgOptionsDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/ProjectBrowserHelper.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/Config.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgUtilities.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/__init__.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgStatusMonitorThread.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgTagDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgRevisionsSelectionDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.py</Source> + <Source>Plugins/VcsPlugins/vcsMercurial/HgCommandDialog.py</Source> </Sources> <Forms> <Form>PyUnit/UnittestDialog.ui</Form> @@ -975,6 +1001,23 @@ <Form>Preferences/ConfigurationPages/EditorKeywordsPage.ui</Form> <Form>Cooperation/ChatWidget.ui</Form> <Form>Preferences/ConfigurationPages/CooperationPage.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgOptionsDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgNewProjectOptionsDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgCommitDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgCopyDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgLogDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgMergeDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgTagDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgRevisionsSelectionDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.ui</Form> + <Form>Plugins/VcsPlugins/vcsMercurial/HgCommandDialog.ui</Form> </Forms> <Translations> <Translation>i18n/eric5_cs.qm</Translation> @@ -1056,6 +1099,8 @@ <Other>APIs/Python3/eric5.api</Other> <Other>.issues</Other> <Other>eric5.desktop</Other> + <Other>Plugins/VcsPlugins/vcsMercurial/icons/mercurial.png</Other> + <Other>Plugins/VcsPlugins/vcsMercurial/icons/preferences-mercurial.png</Other> </Others> <MainScript>eric5.py</MainScript> <Vcs>