From 1f6ae3e0ed97c319dcff7e80f585af29a4566637 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 4 Feb 2014 20:59:39 +0100 Subject: [PATCH] Add possible workaround for model invalidate(). --- qutebrowser/utils/completion.py | 5 +---- qutebrowser/widgets/completion.py | 6 ++++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/qutebrowser/utils/completion.py b/qutebrowser/utils/completion.py index 7cd42b811..acd8907d1 100644 --- a/qutebrowser/utils/completion.py +++ b/qutebrowser/utils/completion.py @@ -314,10 +314,7 @@ class CompletionFilterModel(QSortFilterProxyModel): srcmodel.sort(sortcol) except NotImplementedError: self.sort(sortcol) - # FIXME we should call self.invalidate() here so sorting actually works. - # However, this seems to provoke a lot of weird problems, like - # random race condition segfaults :( - # self.invalidate() + self.invalidate() def filterAcceptsRow(self, row, parent): """Custom filter implementation. diff --git a/qutebrowser/widgets/completion.py b/qutebrowser/widgets/completion.py index 0453b145a..3b3856ace 100644 --- a/qutebrowser/widgets/completion.py +++ b/qutebrowser/widgets/completion.py @@ -80,6 +80,12 @@ class CompletionView(QTreeView): self.setHeaderHidden(True) self.setIndentation(0) self.setItemsExpandable(False) + # FIXME This is a workaround for weird race conditions with invalid + # item indexes leading to segfaults in Qt. + # + # Some background: http://bugs.quassel-irc.org/issues/663 + # The proposed fix there was later reverted because it didn't help. + self.setUniformRowHeights(True) self.hide() # FIXME set elidemode