Show system messages when users join/leave room

This commit is contained in:
Peter Stockings
2026-03-03 23:26:58 +11:00
parent b29b540331
commit 2e31eab0ca

View File

@@ -29,6 +29,8 @@ class RoomWidget(QWidget):
self.room_code = ""
self.expected_vlc_events = []
self.last_reported_time_ms = 0
self.current_users = []
self._is_first_user_update = True
self._setup_ui()
@@ -176,6 +178,8 @@ class RoomWidget(QWidget):
self.set_room_code_display(room_code)
self.room_file_badge.setText(f"📄 {file_name}")
self.chat_messages.setHtml("Welcome to the room! 👋")
self.current_users = []
self._is_first_user_update = True
if file_path:
self.vlc_player.load_media(file_path, start_time_s)
@@ -183,6 +187,8 @@ class RoomWidget(QWidget):
def cleanup(self):
self.vlc_player.stop()
self.current_users = []
self._is_first_user_update = True
def set_room_code_display(self, text: str):
self.room_code_display.setText(f"Room: {text}")
@@ -339,6 +345,21 @@ class RoomWidget(QWidget):
self.add_system_message(f"{username} seeked to {fmt(position_s)}")
def update_users(self, users: list):
if self._is_first_user_update:
self._is_first_user_update = False
else:
joined = set(users) - set(self.current_users)
left = set(self.current_users) - set(users)
for user in joined:
if user != self.username:
self.add_system_message(f"👋 {user} joined the room")
for user in left:
if user != self.username:
self.add_system_message(f"🚪 {user} left the room")
self.current_users = users
self.users_lbl.setText(f"{len(users)} watching: {', '.join(users)}")
def add_chat_message(self, author: str, text: str, timestamp: int):