summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2015-03-09 19:34:31 +0100
committerFlorian Bruhin <git@the-compiler.org>2015-03-19 06:21:08 +0100
commite8b689ab5098cef92a45324955dda3d0966245da (patch)
tree4f6f323202ab12bfef67a1125810c17e5ae66a38
parent20c3e8dd52379c21a6e53ab14304c6a4317d7361 (diff)
downloadqutebrowser-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.py15
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)