From a0dabeef1b84ff4719bab0bce3cfa2e2a8495491 Mon Sep 17 00:00:00 2001 From: Soham Biswas Date: Sun, 16 Oct 2022 14:33:06 +0530 Subject: [PATCH 1/8] Add visibility toggle to prompts --- qutebrowser/mainwindow/prompt.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 5d3bced59..50dd3b28d 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -291,6 +291,7 @@ class PromptContainer(QWidget): self._layout.setContentsMargins(10, 10, 10, 10) self._win_id = win_id self._prompt: Optional[_BasePrompt] = None + self._visible = True self.setObjectName('PromptContainer') self.setAttribute(Qt.WA_StyledBackground, True) @@ -492,6 +493,20 @@ class PromptContainer(QWidget): assert len(folders) == 1 self.prompt_accept(folders[0]) + @cmdutils.register(instance='prompt-container', scope='window') + def prompt_toggle(self): + """ + Toggle visibility of prompts. + """ + self._visible = not self._visible + + def show(self) -> None: + if not self._visible: + message.warning("Prompt is currently hidden." + " Use `prompt-toggle` to show prompts.") + return + super().show() + class LineEdit(QLineEdit): @@ -535,6 +550,7 @@ class _BasePrompt(QWidget): self._vbox = QVBoxLayout(self) self._vbox.setSpacing(15) self._key_grid = None + self._base_commands = [('prompt-toggle', 'Toggle prompt\nvisibility')] def __repr__(self): return utils.get_repr(self, question=self.question, constructor=True) @@ -562,7 +578,7 @@ class _BasePrompt(QWidget): labels = [] has_bindings = False - for cmd, text in self._allowed_commands(): + for cmd, text in self._allowed_commands() + self._base_commands: bindings = all_bindings.get(cmd, []) if bindings: has_bindings = True From 465d44c43414af2166f83bb5ccac88724972f186 Mon Sep 17 00:00:00 2001 From: Soham Biswas Date: Sun, 16 Oct 2022 14:46:08 +0530 Subject: [PATCH 2/8] fix flake8 errors --- qutebrowser/mainwindow/prompt.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 50dd3b28d..29c343120 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -495,9 +495,7 @@ class PromptContainer(QWidget): @cmdutils.register(instance='prompt-container', scope='window') def prompt_toggle(self): - """ - Toggle visibility of prompts. - """ + """Toggle visibility of prompts.""" self._visible = not self._visible def show(self) -> None: From 9ac4d9b4df5051ea161b6630dcd9942e5092854e Mon Sep 17 00:00:00 2001 From: Soham Biswas Date: Sun, 16 Oct 2022 14:54:20 +0530 Subject: [PATCH 3/8] fix pylint issue --- qutebrowser/mainwindow/prompt.py | 1 + 1 file changed, 1 insertion(+) diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 29c343120..436abac16 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -499,6 +499,7 @@ class PromptContainer(QWidget): self._visible = not self._visible def show(self) -> None: + """Overriden method of QWidget.""" if not self._visible: message.warning("Prompt is currently hidden." " Use `prompt-toggle` to show prompts.") From db09f203cd69f4badabc0c6e9e86856cdf8a4e2f Mon Sep 17 00:00:00 2001 From: Soham Biswas Date: Sun, 16 Oct 2022 15:24:56 +0530 Subject: [PATCH 4/8] simplify code --- qutebrowser/mainwindow/prompt.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 436abac16..284b2d416 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -291,7 +291,6 @@ class PromptContainer(QWidget): self._layout.setContentsMargins(10, 10, 10, 10) self._win_id = win_id self._prompt: Optional[_BasePrompt] = None - self._visible = True self.setObjectName('PromptContainer') self.setAttribute(Qt.WA_StyledBackground, True) @@ -493,18 +492,12 @@ class PromptContainer(QWidget): assert len(folders) == 1 self.prompt_accept(folders[0]) - @cmdutils.register(instance='prompt-container', scope='window') + @cmdutils.register( + instance='prompt-container', scope='window', + modes=[usertypes.KeyMode.prompt]) def prompt_toggle(self): """Toggle visibility of prompts.""" - self._visible = not self._visible - - def show(self) -> None: - """Overriden method of QWidget.""" - if not self._visible: - message.warning("Prompt is currently hidden." - " Use `prompt-toggle` to show prompts.") - return - super().show() + self.hide() if self.isVisible() else self.show() class LineEdit(QLineEdit): From 256e1afbadbe011fb3e9410da7e2ae9fe4b75793 Mon Sep 17 00:00:00 2001 From: Soham Biswas Date: Sun, 16 Oct 2022 15:31:24 +0530 Subject: [PATCH 5/8] remove list comprehension --- qutebrowser/mainwindow/prompt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 284b2d416..6be2b0e4b 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -497,7 +497,7 @@ class PromptContainer(QWidget): modes=[usertypes.KeyMode.prompt]) def prompt_toggle(self): """Toggle visibility of prompts.""" - self.hide() if self.isVisible() else self.show() + self.setVisible(not self.isVisible()) class LineEdit(QLineEdit): From cc66da24ea420726afc7f12fad593993d4af22b2 Mon Sep 17 00:00:00 2001 From: Soham Biswas Date: Sun, 16 Oct 2022 16:46:59 +0530 Subject: [PATCH 6/8] rename base commands on class level and add yesno prompt --- qutebrowser/mainwindow/prompt.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 6be2b0e4b..2f9363d64 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -494,7 +494,7 @@ class PromptContainer(QWidget): @cmdutils.register( instance='prompt-container', scope='window', - modes=[usertypes.KeyMode.prompt]) + modes=[usertypes.KeyMode.prompt, usertypes.KeyMode.yesno]) def prompt_toggle(self): """Toggle visibility of prompts.""" self.setVisible(not self.isVisible()) @@ -542,7 +542,7 @@ class _BasePrompt(QWidget): self._vbox = QVBoxLayout(self) self._vbox.setSpacing(15) self._key_grid = None - self._base_commands = [('prompt-toggle', 'Toggle prompt\nvisibility')] + self._BASE_COMMANDS = [('prompt-toggle', 'Toggle prompt visibility')] def __repr__(self): return utils.get_repr(self, question=self.question, constructor=True) @@ -570,7 +570,7 @@ class _BasePrompt(QWidget): labels = [] has_bindings = False - for cmd, text in self._allowed_commands() + self._base_commands: + for cmd, text in self._allowed_commands() + self._BASE_COMMANDS: bindings = all_bindings.get(cmd, []) if bindings: has_bindings = True From 2640685b6cd3573bdfe9eaaba8fe2c42c722c707 Mon Sep 17 00:00:00 2001 From: Soham Biswas Date: Sun, 16 Oct 2022 18:21:54 +0530 Subject: [PATCH 7/8] add better prompt message --- qutebrowser/mainwindow/prompt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 2f9363d64..acc8e90c8 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -535,6 +535,7 @@ class _BasePrompt(QWidget): """Base class for all prompts.""" KEY_MODE = usertypes.KeyMode.prompt + _BASE_COMMANDS = [('prompt-toggle', 'Show/hide the currently shown prompt.')] def __init__(self, question, parent=None): super().__init__(parent) @@ -542,7 +543,6 @@ class _BasePrompt(QWidget): self._vbox = QVBoxLayout(self) self._vbox.setSpacing(15) self._key_grid = None - self._BASE_COMMANDS = [('prompt-toggle', 'Toggle prompt visibility')] def __repr__(self): return utils.get_repr(self, question=self.question, constructor=True)