From 52f82a101d3bb7bbe2c780c47d716acfdad4e147 Mon Sep 17 00:00:00 2001 From: Emendir Date: Sat, 22 Feb 2025 18:48:36 +0100 Subject: [PATCH] better chat page handling --- ToDo.md | 4 ++++ src/__main__.py | 6 ++---- src/endra_app/__main__.py | 10 ++++------ src/endra_app/chat_page.py | 10 ++++++++++ src/endra_app/main.py | 8 ++++++-- src/endra_app/side_bar.py | 9 ++++++--- tests/test_app.py | 7 ++++--- 7 files changed, 36 insertions(+), 18 deletions(-) diff --git a/ToDo.md b/ToDo.md index 292231c..9ac3463 100644 --- a/ToDo.md +++ b/ToDo.md @@ -5,3 +5,7 @@ ## Bugs - on app crashing, cursor doesn't work anywhere on all screens + +## Cleanup +- TEMP_HARDCODED_KEY +- \ No newline at end of file diff --git a/src/__main__.py b/src/__main__.py index 4f7e54f..e902dff 100644 --- a/src/__main__.py +++ b/src/__main__.py @@ -1,4 +1,2 @@ -import sys -import os -os.chdir(os.path.dirname(__file__)) -os.system(f"{sys.executable} -m endra_app") \ No newline at end of file +from endra_app.main import main +main() diff --git a/src/endra_app/__main__.py b/src/endra_app/__main__.py index 3009e3d..29c376a 100644 --- a/src/endra_app/__main__.py +++ b/src/endra_app/__main__.py @@ -1,6 +1,4 @@ -if __package__ is None: # if this script is executed directly not as part of a package - import os ,sys - os.system(f"{sys.executable} {os.path.dirname(os.path.dirname(__file__))}") -else: - from .main import run_app - run_app() \ No newline at end of file +import os +import sys +os.chdir(os.path.dirname(os.path.dirname(__file__))) +os.system(f"{sys.executable} .") diff --git a/src/endra_app/chat_page.py b/src/endra_app/chat_page.py index b856e73..ffe8595 100644 --- a/src/endra_app/chat_page.py +++ b/src/endra_app/chat_page.py @@ -70,10 +70,17 @@ class MessagePageView(BoxLayout): ) self.message_editor = MessageEditor() self.add_widget(self.message_editor) + + def deactivate(self): + self.disabled=True + def activate(self): + self.disabled=False class MessagePage(MessagePageView): def __init__(self, main, correspondence: Correspondence | None, **kwargs): super().__init__(**kwargs) + self.deactivate() + self.main = main self.correspondence = correspondence @@ -82,6 +89,8 @@ class MessagePage(MessagePageView): def load_correspondence(self, correspondence): self.correspondence = correspondence self.reload_messages() + self.activate() + def reload_messages(self): logger.info("Reloading chat messages...") @@ -97,6 +106,7 @@ class MessagePage(MessagePageView): self.correspondence.add_message( self.message_editor.get_message_content() ) + self.message_editor.text_input_txbx.text = "" self.reload_messages() def add_widget_to_scroll(self, message): diff --git a/src/endra_app/main.py b/src/endra_app/main.py index 5909ba8..594e094 100644 --- a/src/endra_app/main.py +++ b/src/endra_app/main.py @@ -37,6 +37,10 @@ class MainApp(App): # Add side-bar and central page self.side_bar = SideBar(self, self.profile) self.chat_page = MessagePage(self, None) + if self.profile: + correspondences = self.profile.get_active_correspondences() + if len(correspondences) > 0: + self.chat_page.load_correspondence(self.profile.get_correspondence(list(correspondences)[0])) root.add_widget(self.side_bar) root.add_widget(self.chat_page) @@ -70,9 +74,9 @@ class MainApp(App): profile.terminate() -def run_app(): +def main(): MainApp().run() if __name__ == '__main__': - run_app() + main() diff --git a/src/endra_app/side_bar.py b/src/endra_app/side_bar.py index 9de1d7e..7443c34 100644 --- a/src/endra_app/side_bar.py +++ b/src/endra_app/side_bar.py @@ -73,13 +73,16 @@ class SideBar(SideBarView): self.remove_all_widgets() if self.profile: - for correspondence_id in self.profile.get_active_correspondences(): + active_correspondences=self.profile.get_active_correspondences() + for correspondence_id in active_correspondences: self.add_widget_to_scroll(self.profile.get_correspondence(correspondence_id)) - + + def create_correspondence(self, instance=None): logger.info("Creating correspondence...") - self.profile.create_correspondence() + correspondence = self.profile.create_correspondence() self.reload_correspondences() + self.main.chat_page.load_correspondence(correspondence) def add_widget_to_scroll(self, correspondence): widget = CorrespondenceHeader( diff --git a/tests/test_app.py b/tests/test_app.py index c492e5b..5feae33 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -5,8 +5,9 @@ import walytis_beta_api as walytis_api from endra_app import config from endra_app.config import APPDATA_DIR import os +import endra_app from endra_app import main -from endra_app.main import run_app +from endra_app.main import main walytis_api.log.PRINT_DEBUG = False @@ -14,7 +15,7 @@ _testing_utils.assert_is_loaded_from_source( source_dir=os.path.join(os.path.dirname(__file__), "..", ".."), module=config ) _testing_utils.assert_is_loaded_from_source( - source_dir=os.path.join(os.path.dirname(__file__), "..", ".."), module=main + source_dir=os.path.join(os.path.dirname(__file__), "..", ".."), module=endra_app ) print(APPDATA_DIR) if os.path.exists(APPDATA_DIR): @@ -25,4 +26,4 @@ APPDATA_BACKUP_DIR = os.path.join( ) print(APPDATA_BACKUP_DIR) shutil.copytree(APPDATA_BACKUP_DIR, APPDATA_DIR) -run_app() +main()