Added code to choose the way incoming and outgoing logs are shown.

Sat, 17 Apr 2010 16:43:18 +0000

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 17 Apr 2010 16:43:18 +0000
changeset 181
4af57f97c1bc
parent 180
40ac468c2558
child 182
5fb26c972892

Added code to choose the way incoming and outgoing logs are shown.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Plugins.VcsPlugins.vcsMercurial.HgLogDialog.html file | annotate | diff | comparison | revisions
Plugins/PluginVcsMercurial.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.ui file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/hg.py file | annotate | diff | comparison | revisions
--- 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()
Binary file Documentation/Help/source.qch has changed
--- 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):
         """

eric ide

mercurial