diff --git a/message_box_size/config_dialog.py b/message_box_size/config_dialog.py index 58a07a2..7f5eb24 100644 --- a/message_box_size/config_dialog.py +++ b/message_box_size/config_dialog.py @@ -28,6 +28,7 @@ class MessageBoxSizeConfigDialog(SettingsDialog): def on_setting(self, value, data): self.plugin.config[data] = value + self.plugin.set_input_height(value) class SizeSpinSetting(SpinSetting): diff --git a/message_box_size/msg_box_size.py b/message_box_size/msg_box_size.py index c590cd9..452d289 100644 --- a/message_box_size/msg_box_size.py +++ b/message_box_size/msg_box_size.py @@ -1,25 +1,41 @@ +from __future__ import annotations + +from typing import cast + from functools import partial +from gajim.gui.message_input import MessageInputTextView + from gajim.plugins import GajimPlugin from gajim.plugins.plugins_i18n import _ + from message_box_size.config_dialog import MessageBoxSizeConfigDialog class MsgBoxSizePlugin(GajimPlugin): - def init(self): + def init(self) -> None: # pylint: disable=attribute-defined-outside-init - self.description = _('Allows you to adjust the height' - ' of the message input.') + self.description = _('Allows you to adjust the height ' + 'of the message input.') self.config_dialog = partial(MessageBoxSizeConfigDialog, self) self.gui_extension_points = { - 'chat_control_base': (self._on_connect_chat_control, - self._on_disconnect_chat_control) + 'message_input': (self._on_message_input_created, None) } - self.config_default_values = {'HEIGHT': (20, ''),} + self.config_default_values = { + 'HEIGHT': (20, ''), + } + self._message_input = None - def _on_connect_chat_control(self, control): - control.msg_textview.set_size_request(-1, self.config['HEIGHT']) + def _on_message_input_created(self, + message_input: MessageInputTextView + ) -> None: - @staticmethod - def _on_disconnect_chat_control(control): - control.msg_textview.set_size_request(-1, -1) + self._message_input = message_input + self.set_input_height(cast(int, self.config['HEIGHT'])) + + def deactivate(self) -> None: + self.set_input_height(-1) + + def set_input_height(self, height: int) -> None: + assert self._message_input is not None + self._message_input.set_size_request(-1, height) diff --git a/message_box_size/plugin-manifest.json b/message_box_size/plugin-manifest.json index a4ce12d..b831f19 100644 --- a/message_box_size/plugin-manifest.json +++ b/message_box_size/plugin-manifest.json @@ -14,8 +14,8 @@ "win32" ], "requirements": [ - "gajim>=1.4.0" + "gajim>=1.5.0" ], "short_name": "message_box_size", - "version": "1.4.1" + "version": "1.4.2" } \ No newline at end of file