better chat page handling

This commit is contained in:
Emendir
2025-02-22 18:48:36 +01:00
parent 9e80207b0e
commit 52f82a101d
7 changed files with 36 additions and 18 deletions

View File

@@ -5,3 +5,7 @@
## Bugs
- on app crashing, cursor doesn't work anywhere on all screens
## Cleanup
- TEMP_HARDCODED_KEY
-

View File

@@ -1,4 +1,2 @@
import sys
import os
os.chdir(os.path.dirname(__file__))
os.system(f"{sys.executable} -m endra_app")
from endra_app.main import main
main()

View File

@@ -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()
import os
import sys
os.chdir(os.path.dirname(os.path.dirname(__file__)))
os.system(f"{sys.executable} .")

View File

@@ -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):

View File

@@ -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()

View File

@@ -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(

View File

@@ -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()