From 8987b77f2b8a8b4586f0eea259ea2d7f57c8efea Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 2 Dec 2025 17:26:37 +0530 Subject: [PATCH] DRYer --- src/calibre/gui2/chat_widget.py | 6 ++++++ src/calibre/gui2/dialogs/llm_book.py | 2 +- src/calibre/gui2/llm.py | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/chat_widget.py b/src/calibre/gui2/chat_widget.py index 74720e0cd6..64eb599ad2 100644 --- a/src/calibre/gui2/chat_widget.py +++ b/src/calibre/gui2/chat_widget.py @@ -122,6 +122,9 @@ class Input(QWidget): b.clicked.connect(self.send_requested) l.addWidget(b, alignment=Qt.AlignmentFlag.AlignCenter) + def setFocus(self, reason) -> None: + self.text_input.setFocus(reason) + @property def value(self) -> str: return self.text_input.value @@ -161,6 +164,9 @@ class ChatWidget(QWidget): self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) self.line_spacing = self.browser.fontMetrics().lineSpacing() + def setFocus(self, reason) -> None: + self.input.setFocus(reason) + def wrap_content_in_padding_table(self, html: str, background_color: str = '') -> str: style = f'style="background-color: {background_color}"' if background_color else '' return f'''
{html}
''' diff --git a/src/calibre/gui2/dialogs/llm_book.py b/src/calibre/gui2/dialogs/llm_book.py index 85e2451f28..dcd34d414b 100644 --- a/src/calibre/gui2/dialogs/llm_book.py +++ b/src/calibre/gui2/dialogs/llm_book.py @@ -259,7 +259,7 @@ class LLMBookDialog(Dialog): self.llm.close_requested.connect(self.accept) l.addWidget(llm) self.bb.setVisible(False) - self.llm.result_display.input.text_input.setFocus(Qt.FocusReason.OtherFocusReason) + self.llm.result_display.input.setFocus(Qt.FocusReason.OtherFocusReason) def sizeHint(self): return QSize(600, 750) diff --git a/src/calibre/gui2/llm.py b/src/calibre/gui2/llm.py index 0b1258bc90..6a0d9404ec 100644 --- a/src/calibre/gui2/llm.py +++ b/src/calibre/gui2/llm.py @@ -240,6 +240,9 @@ class ConverseWidget(QWidget): self.show_initial_message() self.update_cost() + def setFocus(self, reason) -> None: + self.result_display.input.setFocus(reason) + def language_instruction(self): lang = ui_language_as_english() return f'If you can speak in {lang}, then respond in {lang}.'