diff --git a/desktop-client/main.py b/desktop-client/main.py
index 7e9b68d..606d62e 100644
--- a/desktop-client/main.py
+++ b/desktop-client/main.py
@@ -4,7 +4,7 @@ import ctypes
from PyQt6.QtWidgets import (
QApplication, QMainWindow, QStackedWidget, QWidget, QVBoxLayout,
QHBoxLayout, QLabel, QLineEdit, QPushButton, QFileDialog, QMessageBox,
- QFrame, QSlider
+ QFrame, QSlider, QTextEdit
)
from PyQt6.QtCore import Qt, pyqtSignal, QObject, QTimer
from PyQt6.QtGui import QFont, QIcon, QColor
@@ -253,10 +253,10 @@ class VlcSyncApp(QMainWindow):
self.users_lbl = QLabel("0 watching")
self.users_lbl.setObjectName("usersLbl")
- self.chat_messages = QLabel("Welcome to the room! 👋\n")
- self.chat_messages.setAlignment(Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignLeft)
- self.chat_messages.setWordWrap(True)
- # We should really use a QScrollArea or QTextEdit here eventually
+ self.chat_messages = QTextEdit()
+ self.chat_messages.setObjectName("chatMessages")
+ self.chat_messages.setReadOnly(True)
+ self.chat_messages.setHtml("Welcome to the room! 👋")
chat_input_layout = QHBoxLayout()
self.chat_input = QLineEdit()
@@ -496,7 +496,7 @@ class VlcSyncApp(QMainWindow):
self.room_file_badge.setText(f"📄 {self.local_file_name}")
self.create_room_btn.setText("Create Room")
self.join_room_btn.setText("Join Room")
- self.chat_messages.setText("Welcome to the room! 👋
")
+ self.chat_messages.setHtml("Welcome to the room! 👋")
if self.local_file_path:
self.vlc_player.load_media(self.local_file_path)
@@ -512,7 +512,7 @@ class VlcSyncApp(QMainWindow):
chat_history = msg.get("chatHistory", [])
if chat_history:
- self.chat_messages.setText("Welcome to the room! 👋
")
+ self.chat_messages.setHtml("Welcome to the room! 👋")
for chat in chat_history:
self.on_chat_message(chat.get("username", "Unknown"), chat.get("message", ""), chat.get("timestamp", 0))
@@ -524,14 +524,12 @@ class VlcSyncApp(QMainWindow):
time_str = dt.strftime("%I:%M %p")
- current = self.chat_messages.text()
- new_msg = f"{author}: {text} {time_str}
"
- self.chat_messages.setText(current + new_msg)
+ new_msg = f"{author}: {text} {time_str}"
+ self.chat_messages.append(new_msg)
def on_system_message(self, text: str):
- current = self.chat_messages.text()
- new_msg = f"{text}
"
- self.chat_messages.setText(current + new_msg)
+ new_msg = f"{text}"
+ self.chat_messages.append(new_msg)
def on_users_updated(self, users: list):
self.users_lbl.setText(f"{len(users)} watching: {', '.join(users)}")
@@ -724,6 +722,33 @@ class VlcSyncApp(QMainWindow):
color: #3ea6ff;
font-size: 12px;
}
+
+ #chatMessages {
+ background-color: transparent;
+ border: none;
+ color: #f1f1f1;
+ }
+
+ #chatMessages QScrollBar:vertical {
+ border: none;
+ background: transparent;
+ width: 8px;
+ margin: 0px;
+ }
+ #chatMessages QScrollBar::handle:vertical {
+ background: #555;
+ min-height: 20px;
+ border-radius: 4px;
+ }
+ #chatMessages QScrollBar::handle:vertical:hover {
+ background: #666;
+ }
+ #chatMessages QScrollBar::add-line:vertical, #chatMessages QScrollBar::sub-line:vertical {
+ height: 0px;
+ }
+ #chatMessages QScrollBar::add-page:vertical, #chatMessages QScrollBar::sub-page:vertical {
+ background: none;
+ }
""")
if __name__ == "__main__":