Show system messages when users join/leave room
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user