Sat, 17 Apr 2010 16:43:18 +0000
Added code to choose the way incoming and outgoing logs are shown.
--- a/APIs/Python3/eric5.api Sat Apr 17 16:20:11 2010 +0000 +++ b/APIs/Python3/eric5.api Sat Apr 17 16:43:18 2010 +0000 @@ -2869,7 +2869,7 @@ 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.HgLogBrowserDialog.HgLogBrowserDialog?1(vcs, mode = "log", 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()
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html Sat Apr 17 16:20:11 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html Sat Apr 17 16:43:18 2010 +0000 @@ -168,13 +168,16 @@ </table> <a NAME="HgLogBrowserDialog.__init__" ID="HgLogBrowserDialog.__init__"></a> <h4>HgLogBrowserDialog (Constructor)</h4> -<b>HgLogBrowserDialog</b>(<i>vcs, parent = None</i>) +<b>HgLogBrowserDialog</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)
--- a/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html Sat Apr 17 16:20:11 2010 +0000 +++ b/Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html Sat Apr 17 16:43:18 2010 +0000 @@ -102,7 +102,7 @@ reference to the vcs object </dd><dt><i>mode</i></dt> <dd> -mode of the dialog (string, one of log, incoming, outgoing) +mode of the dialog (string; one of log, incoming, outgoing) </dd><dt><i>parent</i></dt> <dd> parent widget (QWidget)
--- a/Plugins/PluginVcsMercurial.py Sat Apr 17 16:20:11 2010 +0000 +++ b/Plugins/PluginVcsMercurial.py Sat Apr 17 16:43:18 2010 +0000 @@ -143,6 +143,7 @@ self.__mercurialDefaults = { "StopLogOnCopy" : True, # used in log browser + "UseLogBrowser" : True, "LogLimit" : 100, "CommitMessages" : 20, } @@ -188,7 +189,7 @@ @param key the key of the value to get @return the requested setting """ - if key in ["StopLogOnCopy"]: + if key in ["StopLogOnCopy", "UseLogBrowser"]: return Preferences.toBool(Preferences.Prefs.settings.value( "Mercurial/" + key, self.__mercurialDefaults[key])) elif key in ["LogLimit", "CommitMessages"]:
--- a/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py Sat Apr 17 16:20:11 2010 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py Sat Apr 17 16:43:18 2010 +0000 @@ -33,6 +33,7 @@ # set initial values self.logSpinBox.setValue(self.__plugin.getPreferences("LogLimit")) self.commitSpinBox.setValue(self.__plugin.getPreferences("CommitMessages")) + self.logBrowserCheckBox.setChecked(self.__plugin.getPreferences("UseLogBrowser")) def save(self): """ @@ -40,6 +41,7 @@ """ self.__plugin.setPreferences("LogLimit", self.logSpinBox.value()) self.__plugin.setPreferences("CommitMessages", self.commitSpinBox.value()) + self.__plugin.setPreferences("UseLogBrowser", self.logBrowserCheckBox.isChecked()) @pyqtSlot() def on_configButton_clicked(self):
--- a/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui Sat Apr 17 16:20:11 2010 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui Sat Apr 17 16:43:18 2010 +0000 @@ -10,7 +10,7 @@ <height>384</height> </rect> </property> - <layout class="QVBoxLayout"> + <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <widget class="QLabel" name="headerLabel"> <property name="text"> @@ -119,6 +119,25 @@ </widget> </item> <item> + <widget class="QGroupBox" name="groupBox_3"> + <property name="title"> + <string>Incoming / Outgoing</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QCheckBox" name="logBrowserCheckBox"> + <property name="toolTip"> + <string>Select to show the incoming and outgoing log in a log browser dialog</string> + </property> + <property name="text"> + <string>Use Log Browser for incoming / outgoing log</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> <widget class="QPushButton" name="configButton"> <property name="toolTip"> <string>Edit the mercurial config file</string> @@ -143,6 +162,12 @@ </item> </layout> </widget> + <tabstops> + <tabstop>logSpinBox</tabstop> + <tabstop>commitSpinBox</tabstop> + <tabstop>logBrowserCheckBox</tabstop> + <tabstop>configButton</tabstop> + </tabstops> <resources/> <connections/> </ui>
--- a/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py Sat Apr 17 16:20:11 2010 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py Sat Apr 17 16:43:18 2010 +0000 @@ -38,11 +38,12 @@ MessageColumn = 5 TagsColumn = 6 - def __init__(self, vcs, parent = None): + 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) """ QDialog.__init__(self, parent) @@ -55,6 +56,10 @@ self.filesTree.header().setSortIndicator(0, Qt.AscendingOrder) self.vcs = vcs + if mode in ("log", "incoming", "outgoing"): + self.mode = mode + else: + self.mode = "log" self.__maxDate = QDate() self.__minDate = QDate() @@ -371,12 +376,14 @@ self.inputGroup.show() args = [] - args.append('log') + args.append(self.mode) 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 self.mode in ("incoming", "outgoing"): + args.append("--newest-first") if startRev is not None: args.append('--rev') args.append('{0}:0'.format(startRev)) @@ -472,6 +479,7 @@ noEntries = 0 log = {"message" : []} changedPaths = [] + initialText = True for s in self.buf: if s != "@@@\n": try: @@ -480,6 +488,7 @@ key = "" value = s if key == "change": + initialText = False log["revision"] = value.strip() elif key == "user": log["author"] = value.strip() @@ -519,6 +528,8 @@ elif key == "tags": log["tags"] = value.strip().split() else: + if initialText: + continue if value.strip(): log["message"].append(value.strip()) else:
--- a/Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py Sat Apr 17 16:20:11 2010 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py Sat Apr 17 16:43:18 2010 +0000 @@ -31,7 +31,7 @@ Constructor @param vcs reference to the vcs object - @param mode mode of the dialog (string, one of log, incoming, outgoing) + @param mode mode of the dialog (string; one of log, incoming, outgoing) @param parent parent widget (QWidget) """ QWidget.__init__(self, parent)
--- a/Plugins/VcsPlugins/vcsMercurial/hg.py Sat Apr 17 16:20:11 2010 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/hg.py Sat Apr 17 16:43:18 2010 +0000 @@ -1254,9 +1254,14 @@ @param name file/directory name to show the log of (string) """ - self.log = HgLogDialog(self, mode = "incoming") - self.log.show() - self.log.start(name) + if self.getPlugin().getPreferences("UseLogBrowser"): + self.logBrowser = HgLogBrowserDialog(self, mode = "incoming") + self.logBrowser.show() + self.logBrowser.start(name) + else: + self.log = HgLogDialog(self, mode = "incoming") + self.log.show() + self.log.start(name) def hgOutgoing(self, name): """ @@ -1265,9 +1270,14 @@ @param name file/directory name to show the log of (string) """ - self.log = HgLogDialog(self, mode = "outgoing") - self.log.show() - self.log.start(name) + if self.getPlugin().getPreferences("UseLogBrowser"): + self.logBrowser = HgLogBrowserDialog(self, mode = "outgoing") + self.logBrowser.show() + self.logBrowser.start(name) + else: + self.log = HgLogDialog(self, mode = "outgoing") + self.log.show() + self.log.start(name) def hgPull(self, name): """