diff options
author | Florian Bruhin <git@the-compiler.org> | 2015-03-09 19:34:31 +0100 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2015-03-19 06:21:08 +0100 |
commit | e8b689ab5098cef92a45324955dda3d0966245da (patch) | |
tree | 4f6f323202ab12bfef67a1125810c17e5ae66a38 | |
parent | 20c3e8dd52379c21a6e53ab14304c6a4317d7361 (diff) | |
download | qutebrowser-e8b689ab5098cef92a45324955dda3d0966245da.tar.gz qutebrowser-e8b689ab5098cef92a45324955dda3d0966245da.zip |
Adjust prompt size hint based on content.
See #26.
Fixes #506.
Related to 06cc982ab51cc9e3142765f6429fdfa5869664b4.
-rw-r--r-- | qutebrowser/mainwindow/statusbar/prompt.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/qutebrowser/mainwindow/statusbar/prompt.py b/qutebrowser/mainwindow/statusbar/prompt.py index 7e1296141..3b6f211ec 100644 --- a/qutebrowser/mainwindow/statusbar/prompt.py +++ b/qutebrowser/mainwindow/statusbar/prompt.py @@ -21,7 +21,8 @@ import functools -from PyQt5.QtWidgets import QHBoxLayout, QWidget, QLineEdit +from PyQt5.QtCore import QSize +from PyQt5.QtWidgets import QHBoxLayout, QWidget, QLineEdit, QSizePolicy from qutebrowser.mainwindow.statusbar import textbase, prompter from qutebrowser.utils import objreg, utils @@ -35,6 +36,16 @@ class PromptLineEdit(misc.MinimalLineEditMixin, QLineEdit): def __init__(self, parent=None): QLineEdit.__init__(self, parent) misc.MinimalLineEditMixin.__init__(self) + self.textChanged.connect(self.updateGeometry) + + def sizeHint(self): + """Dynamically calculate the needed size.""" + height = super().sizeHint().height() + text = self.text() + if not text: + text = 'x' + width = self.fontMetrics().width(text) + return QSize(width, height) class Prompt(QWidget): @@ -58,6 +69,8 @@ class Prompt(QWidget): self._hbox.addWidget(self.txt) self.lineedit = PromptLineEdit() + self.lineedit.setSizePolicy(QSizePolicy.MinimumExpanding, + QSizePolicy.Fixed) self._hbox.addWidget(self.lineedit) prompter_obj = prompter.Prompter(win_id) |