From 9636432bd565f56634ffba73d073af67b06ed4ed Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 9 Feb 2014 21:43:24 +0100 Subject: [PATCH] Move completion widget when statusbar moves. --- qutebrowser/widgets/completion.py | 13 +++++++++++-- qutebrowser/widgets/mainwindow.py | 1 + qutebrowser/widgets/statusbar/__init__.py | 10 ++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/qutebrowser/widgets/completion.py b/qutebrowser/widgets/completion.py index 7ffa1aa90..f6445da8c 100644 --- a/qutebrowser/widgets/completion.py +++ b/qutebrowser/widgets/completion.py @@ -83,6 +83,7 @@ class CompletionView(QTreeView): ignore_next = False enabled = True completing = False + height = QPoint(0, 200) def __init__(self, parent=None): super().__init__(parent) @@ -128,12 +129,20 @@ class CompletionView(QTreeView): """ bottomleft = geom.topLeft() bottomright = geom.topRight() - delta = QPoint(0, 200) - topleft = bottomleft - delta + topleft = bottomleft - self.height assert topleft.x() < bottomright.x() assert topleft.y() < bottomright.y() self.setGeometry(QRect(topleft, bottomright)) + def move_to_bar(self, pos): + """Move the completion area to the statusbar geometry. + + Slot for the moved signal of the statusbar. + pos -- A QPoint containing the statusbar position. + + """ + self.move(pos - self.height) + def cmd_text_changed(self, text): """Check if completions are available and activate them. diff --git a/qutebrowser/widgets/mainwindow.py b/qutebrowser/widgets/mainwindow.py index f64af2764..939266dfe 100644 --- a/qutebrowser/widgets/mainwindow.py +++ b/qutebrowser/widgets/mainwindow.py @@ -61,6 +61,7 @@ class MainWindow(QMainWindow): self.vbox.addWidget(self.status) self.status.resized.connect(self.completion.resize_to_bar) + self.status.moved.connect(self.completion.move_to_bar) self.tabs.cur_progress.connect(self.status.prog.set_progress) self.tabs.cur_load_finished.connect(self.status.prog.load_finished) self.tabs.cur_load_started.connect(lambda: diff --git a/qutebrowser/widgets/statusbar/__init__.py b/qutebrowser/widgets/statusbar/__init__.py index fb2cc9bf3..ecfe7dfb5 100644 --- a/qutebrowser/widgets/statusbar/__init__.py +++ b/qutebrowser/widgets/statusbar/__init__.py @@ -35,6 +35,7 @@ class StatusBar(QWidget): txt = None prog = None resized = pyqtSignal('QRect') + moved = pyqtSignal('QPoint') fgcolor = None bgcolor = None _stylesheet = """ @@ -98,3 +99,12 @@ class StatusBar(QWidget): """ super().resizeEvent(e) self.resized.emit(self.geometry()) + + def moveEvent(self, e): + """Extend moveEvent of QWidget to emit a moved signal afterwards. + + e -- The QMoveEvent. + + """ + super().moveEvent(e) + self.moved.emit(e.pos())