From cb4d0ee809bbff4f280b106884f24bebbd72443d Mon Sep 17 00:00:00 2001 From: Vishal Date: Mon, 5 Sep 2022 20:33:47 +0530 Subject: [PATCH 1/3] PB-ID Copy Button --- .../ba_data/python/bastd/actor/popuptext.py | 4 +-- .../ba_data/python/bastd/ui/serverdialog.py | 25 ++++++++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/assets/src/ba_data/python/bastd/actor/popuptext.py b/assets/src/ba_data/python/bastd/actor/popuptext.py index d078e7ea..ab270dd7 100644 --- a/assets/src/ba_data/python/bastd/actor/popuptext.py +++ b/assets/src/ba_data/python/bastd/actor/popuptext.py @@ -36,9 +36,9 @@ class PopupText(ba.Actor): if len(color) == 3: color = (color[0], color[1], color[2], 1.0) pos = (position[0] + offset[0] + random_offset * - (0.5 - random.random()), position[1] + offset[0] + + (0.5 - random.random()), position[1] + offset[1] + random_offset * (0.5 - random.random()), position[2] + - offset[0] + random_offset * (0.5 - random.random())) + offset[2] + random_offset * (0.5 - random.random())) self.node = ba.newnode('text', attrs={ diff --git a/assets/src/ba_data/python/bastd/ui/serverdialog.py b/assets/src/ba_data/python/bastd/ui/serverdialog.py index f972d068..a497a55d 100644 --- a/assets/src/ba_data/python/bastd/ui/serverdialog.py +++ b/assets/src/ba_data/python/bastd/ui/serverdialog.py @@ -20,9 +20,9 @@ class ServerDialogWindow(ba.Window): self._dialog_id = data['dialogID'] txt = ba.Lstr(translate=('serverResponses', data['text']), subs=data.get('subs', [])).evaluate() - txt = txt.strip() + self.txt = txt.strip() txt_scale = 1.5 - txt_height = (_ba.get_string_height(txt, suppress_warning=True) * + txt_height = (_ba.get_string_height(self.txt, suppress_warning=True) * txt_scale) self._width = 500 self._height = 130 + min(200, txt_height) @@ -43,11 +43,13 @@ class ServerDialogWindow(ba.Window): scale=txt_scale, h_align='center', v_align='center', - text=txt, + text=self.txt, maxwidth=self._width * 0.85, max_height=(self._height - 110)) show_cancel = data.get('showCancel', True) + show_copy = ba.clipboard_is_supported() self._cancel_button: ba.Widget | None + self._copy_button: ba.Widget | None if show_cancel: self._cancel_button = ba.buttonwidget( parent=self._root_widget, @@ -56,11 +58,22 @@ class ServerDialogWindow(ba.Window): autoselect=True, label=ba.Lstr(resource='cancelText'), on_activate_call=self._cancel_press) + elif show_copy: + self._cancel_button = None + self._copy_button = ba.buttonwidget( + parent=self._root_widget, + position=(30, 30), + size=(160, 60), + autoselect=True, + label=ba.Lstr(resource='copyText'), + on_activate_call=self._copy_press) else: self._cancel_button = None + self._copy_button = None self._ok_button = ba.buttonwidget( parent=self._root_widget, position=((self._width - 182) if show_cancel else + (self._width - 182) if show_copy else (self._width * 0.5 - 80), 30), size=(160, 60), autoselect=True, @@ -71,6 +84,10 @@ class ServerDialogWindow(ba.Window): start_button=self._ok_button, selected_child=self._ok_button) + def _copy_press(self) -> None: + ba.clipboard_set_text(self.txt) + ba.screenmessage("Copied To Clipboard", color = (0, 1, 0)) + def _ok_press(self) -> None: if ba.time(ba.TimeType.REAL, ba.TimeFormat.MILLISECONDS) - self._starttime < 1000: @@ -93,4 +110,4 @@ class ServerDialogWindow(ba.Window): 'dialogID': self._dialog_id, 'response': 0 }) - ba.containerwidget(edit=self._root_widget, transition='out_scale') + ba.containerwidget(edit=self._root_widget, transition='out_scale') \ No newline at end of file From 92b80eae1e481aeb18653fc48556db11ed2c7e13 Mon Sep 17 00:00:00 2001 From: Vishal Date: Mon, 5 Sep 2022 20:41:18 +0530 Subject: [PATCH 2/3] Fixing Pylint --- assets/src/ba_data/python/bastd/ui/serverdialog.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/src/ba_data/python/bastd/ui/serverdialog.py b/assets/src/ba_data/python/bastd/ui/serverdialog.py index a497a55d..482b00a2 100644 --- a/assets/src/ba_data/python/bastd/ui/serverdialog.py +++ b/assets/src/ba_data/python/bastd/ui/serverdialog.py @@ -86,7 +86,7 @@ class ServerDialogWindow(ba.Window): def _copy_press(self) -> None: ba.clipboard_set_text(self.txt) - ba.screenmessage("Copied To Clipboard", color = (0, 1, 0)) + ba.screenmessage('Copied To Clipboard', color = (0, 1, 0)) def _ok_press(self) -> None: if ba.time(ba.TimeType.REAL, @@ -110,4 +110,4 @@ class ServerDialogWindow(ba.Window): 'dialogID': self._dialog_id, 'response': 0 }) - ba.containerwidget(edit=self._root_widget, transition='out_scale') \ No newline at end of file + ba.containerwidget(edit=self._root_widget, transition='out_scale') From 5c286a8078bd78dee199170c435155976980ba04 Mon Sep 17 00:00:00 2001 From: Vishal Date: Mon, 5 Sep 2022 21:59:10 +0530 Subject: [PATCH 3/3] An Update --- CONTRIBUTORS.md | 4 ++++ .../src/ba_data/python/bastd/ui/serverdialog.py | 16 ++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index ae0de83b..79ecd547 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -35,3 +35,7 @@ ### Easy10781 - Added feature + +### Vishal332008 +- Bug Fixer +- Modder \ No newline at end of file diff --git a/assets/src/ba_data/python/bastd/ui/serverdialog.py b/assets/src/ba_data/python/bastd/ui/serverdialog.py index 482b00a2..24086fc9 100644 --- a/assets/src/ba_data/python/bastd/ui/serverdialog.py +++ b/assets/src/ba_data/python/bastd/ui/serverdialog.py @@ -20,12 +20,12 @@ class ServerDialogWindow(ba.Window): self._dialog_id = data['dialogID'] txt = ba.Lstr(translate=('serverResponses', data['text']), subs=data.get('subs', [])).evaluate() - self.txt = txt.strip() + txt = txt.strip() txt_scale = 1.5 - txt_height = (_ba.get_string_height(self.txt, suppress_warning=True) * + txt_height = (_ba.get_string_height(txt, suppress_warning=True) * txt_scale) self._width = 500 - self._height = 130 + min(200, txt_height) + self._height = 160 + min(200, txt_height) uiscale = ba.app.ui.uiscale super().__init__(root_widget=ba.containerwidget( size=(self._width, self._height), @@ -43,11 +43,11 @@ class ServerDialogWindow(ba.Window): scale=txt_scale, h_align='center', v_align='center', - text=self.txt, + text=txt, maxwidth=self._width * 0.85, max_height=(self._height - 110)) show_cancel = data.get('showCancel', True) - show_copy = ba.clipboard_is_supported() + self.copy_text = data.get('copyText', None) self._cancel_button: ba.Widget | None self._copy_button: ba.Widget | None if show_cancel: @@ -58,7 +58,7 @@ class ServerDialogWindow(ba.Window): autoselect=True, label=ba.Lstr(resource='cancelText'), on_activate_call=self._cancel_press) - elif show_copy: + elif self.copy_text is not None: self._cancel_button = None self._copy_button = ba.buttonwidget( parent=self._root_widget, @@ -73,7 +73,7 @@ class ServerDialogWindow(ba.Window): self._ok_button = ba.buttonwidget( parent=self._root_widget, position=((self._width - 182) if show_cancel else - (self._width - 182) if show_copy else + (self._width - 182) if self.copy_text is not None else (self._width * 0.5 - 80), 30), size=(160, 60), autoselect=True, @@ -85,7 +85,7 @@ class ServerDialogWindow(ba.Window): selected_child=self._ok_button) def _copy_press(self) -> None: - ba.clipboard_set_text(self.txt) + ba.clipboard_set_text(self.copy_text) ba.screenmessage('Copied To Clipboard', color = (0, 1, 0)) def _ok_press(self) -> None: