Here is the updated patchset: # HG changeset patch # User Simon Giesecke <sgiese...@mozilla.com> # Date 1562663911 -7200 # Tue Jul 09 11:18:31 2019 +0200 # Node ID 273b4ae25ccb8e26ca8b27b61861a621abcfb71f # Parent 7f3142453cd546d701a7455cab9568cce08d9974 Bugfix: do not return matcher function, but use it for calling diff
diff -r 7f3142453cd5 -r 273b4ae25ccb hgviewlib/hggraph.py --- a/hgviewlib/hggraph.py Wed Jun 26 13:55:23 2019 +0200 +++ b/hgviewlib/hggraph.py Tue Jul 09 11:18:31 2019 +0200 @@ -64,9 +64,9 @@ # backward compat with mercurial < 5.0 if tuple(map(int, hgversion.split('.', 2)[:2])) < (5, 0): if files is None: - return match.always(repo.root, repo.getcwd()) + matchfn = match.always(repo.root, repo.getcwd()) else: - return match.exact(repo.root, repo.getcwd(), files) + matchfn = match.exact(repo.root, repo.getcwd(), files) else: if files is None: matchfn = match.always() # HG changeset patch # User Simon Giesecke <sgiese...@mozilla.com> # Date 1564495318 -7200 # Tue Jul 30 16:01:58 2019 +0200 # Node ID 9b01ad1b0ee86c2eba0a5b9f903228ce7c5400f5 # Parent 273b4ae25ccb8e26ca8b27b61861a621abcfb71f Bugfix: support conversion of QString to unicode Removed unused import for methodcaller Inlined redundant lambda diff -r 273b4ae25ccb -r 9b01ad1b0ee8 hgviewlib/qt4/hgrepoviewer.py --- a/hgviewlib/qt4/hgrepoviewer.py Tue Jul 09 11:18:31 2019 +0200 +++ b/hgviewlib/qt4/hgrepoviewer.py Tue Jul 30 16:01:58 2019 +0200 @@ -14,7 +14,6 @@ import re import errno from functools import partial -from operator import methodcaller from PyQt4 import QtCore, QtGui, Qsci @@ -87,11 +86,10 @@ self.setupModels(fromhead) self._setupQuickOpen() - to_utf8 = methodcaller('encode', 'utf-8') if self.cfg.getFileDescriptionView() == 'asfile': - fileselcallback = compose(self.displaySelectedFile, to_utf8) + fileselcallback = compose(self.displaySelectedFile, tounicode) else: - fileselcallback = compose(self.textview_status.displayFile, to_utf8) + fileselcallback = compose(self.textview_status.displayFile, tounicode) self.tableView_filelist.file_selected[str].connect(fileselcallback) self.tableView_filelist.file_selected[str, int].connect(fileselcallback) diff -r 273b4ae25ccb -r 9b01ad1b0ee8 hgviewlib/util.py --- a/hgviewlib/util.py Tue Jul 09 11:18:31 2019 +0200 +++ b/hgviewlib/util.py Tue Jul 30 16:01:58 2019 +0200 @@ -30,6 +30,8 @@ """ if isinstance(text, unicode): return text + elif hasattr(text, 'toUtf8'): # a QString + return text.toUtf8().data() else: text = str(text) for encoding in ('utf-8', 'iso-8859-15', 'cp1252'): # HG changeset patch # User Simon Giesecke <sgiese...@mozilla.com> # Date 1564495420 -7200 # Tue Jul 30 16:03:40 2019 +0200 # Node ID 093ed6e5aa51b1a454a13c5b171221a6e8169d77 # Parent 9b01ad1b0ee86c2eba0a5b9f903228ce7c5400f5 Bugfix: status may be a QVariant diff -r 9b01ad1b0ee8 -r 093ed6e5aa51 hgviewlib/qt4/hgrepoviewer.py --- a/hgviewlib/qt4/hgrepoviewer.py Tue Jul 30 16:01:58 2019 +0200 +++ b/hgviewlib/qt4/hgrepoviewer.py Tue Jul 30 16:03:40 2019 +0200 @@ -294,6 +294,8 @@ status = settings.value(entryname) if status is None: status = 1 + elif isinstance(status, QtCore.QVariant): + status = int(status.toBool()) else: try: status = int(status) On Mon, Jul 29, 2019 at 2:40 PM Simon Giesecke <sgiese...@mozilla.com> wrote: > > > Hi, > > On Sat, Jul 27, 2019 at 1:12 AM Mads Kiilerich <m...@kiilerich.com> wrote: >> >> On 7/26/19 4:08 PM, Simon Giesecke wrote: >> > Hi, >> > >> > I needed the following patches to get hgview (with the Qt frontend) >> > basically running on my Fedora 30 instance. Please consider merging them. >> >> >> I confirm they make the QT frontend work - tested with Mercurial 4.9. >> >> (The curses frontend is however still broken. And migration to Python 3 >> will very soon be necessary for Fedora packaging.) > > > Yes that's true, I can check migrating to Python 3, but probably some > dependencies will need to be migrated first. > >> > # HG changeset patch >> > # User Simon Giesecke <sgiese...@mozilla.com> >> > # Date 1562663911 -7200 >> > # Tue Jul 09 11:18:31 2019 +0200 >> > # Node ID 273b4ae25ccb8e26ca8b27b61861a621abcfb71f >> > # Parent 7f3142453cd546d701a7455cab9568cce08d9974 >> > Bugfix: do not return matcher function, but use it for calling diff >> >> >> Fixing a trivial recent regression for Mercurial < 5.0 from >> http://hg.logilab.org/review/hgview/rev/15113c412f4c . >> >> >> > >> > # HG changeset patch >> > # User Simon Giesecke <sgiese...@mozilla.com> >> > # Date 1562664056 -7200 >> > # Tue Jul 09 11:20:56 2019 +0200 >> > # Node ID e73ef9c7f73339207df78209f8b9ed384c166aad >> > # Parent 273b4ae25ccb8e26ca8b27b61861a621abcfb71f >> > Bugfix: status may be a QVariant >> >> >> Is it known what introduced this change? Is the old behaviour still >> relevant? > > > Unfortunately, I have no idea. I am not familiar with PyQt4 or sip, I was > just trying to do some minimal changes to make it work. > > Probably this is not the best approach, following > https://www.riverbankcomputing.com/static/Docs/PyQt4/python_v3.html#qvariant > (this is about Python3, but I did not find any equivalent documentation > regarding Python2) and > https://www.riverbankcomputing.com/static/Docs/PyQt4/pyqt_qvariant.html, > which sounds as if converting to int should actually work. So maybe this is > more a bug in PyQt4, and my change just works around that? > > Unfortunately, I have no idea when hgview last worked, since I am a new user. > >> > diff --git a/hgviewlib/qt4/hgrepoviewer.py b/hgviewlib/qt4/hgrepoviewer.py >> > --- a/hgviewlib/qt4/hgrepoviewer.py >> > +++ b/hgviewlib/qt4/hgrepoviewer.py >> > @@ -299,6 +299,9 @@ class HgRepoViewer(ActionsMixin, HgDialo >> > else: >> > try: >> > status = int(status) >> > + except TypeError: >> > + # assume status is a QVariant >> > + status = int(status.toBool()) >> > except ValueError: >> > # for backward compatibility >> > status = {'false': False , 'true': >> > True}.get(status.lower(), status) >> >> >> Instead of catching the generic TypeError, how about something like: >> >> status = settings.value(entryname) >> if status is None: >> status = 1 >> + elif isinstance(status, QtCore.QVariant): >> + status = int(status.toBool()) >> else: >> try: >> status = int(status) >> > > Yes, that's probably better, I will change the patch to do just that. Thanks > for the suggestion! > > Best wishes > Simon _______________________________________________ Python-Projects mailing list Python-Projects@lists.logilab.org https://lists.logilab.org/mailman/listinfo/python-projects