Fix cropping of message bubble cropping on linux
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
from PyQt6.QtWidgets import (
|
from PyQt6.QtWidgets import (
|
||||||
QWidget, QVBoxLayout, QHBoxLayout, QLabel, QFrame,
|
QWidget, QVBoxLayout, QHBoxLayout, QLabel, QFrame,
|
||||||
QMainWindow
|
QMainWindow, QSizePolicy
|
||||||
)
|
)
|
||||||
from PyQt6.QtCore import Qt, pyqtSignal
|
from PyQt6.QtCore import Qt, pyqtSignal
|
||||||
|
|
||||||
@@ -14,6 +14,13 @@ class ChatBubble(QWidget):
|
|||||||
# Container for the actual bubble
|
# Container for the actual bubble
|
||||||
self.bubble = QFrame()
|
self.bubble = QFrame()
|
||||||
self.bubble.setObjectName("bubble")
|
self.bubble.setObjectName("bubble")
|
||||||
|
# Preferred/Preferred: bubble sizes to its content but doesn't
|
||||||
|
# expand to fill all available horizontal space (fixes Linux layout).
|
||||||
|
self.bubble.setSizePolicy(
|
||||||
|
QSizePolicy.Policy.Preferred,
|
||||||
|
QSizePolicy.Policy.Preferred,
|
||||||
|
)
|
||||||
|
self.bubble.setMaximumWidth(420)
|
||||||
|
|
||||||
bg_color = "#0084FF" if is_self else "#2a2a2e"
|
bg_color = "#0084FF" if is_self else "#2a2a2e"
|
||||||
text_color = "#FFFFFF"
|
text_color = "#FFFFFF"
|
||||||
@@ -35,9 +42,17 @@ class ChatBubble(QWidget):
|
|||||||
author_lbl.setStyleSheet(f"color: {author_color}; font-weight: bold; font-size: 11px; background: transparent;")
|
author_lbl.setStyleSheet(f"color: {author_color}; font-weight: bold; font-size: 11px; background: transparent;")
|
||||||
bubble_layout.addWidget(author_lbl)
|
bubble_layout.addWidget(author_lbl)
|
||||||
|
|
||||||
# Text
|
# Text — on Linux, word-wrapping QLabels inside HBoxLayouts can
|
||||||
|
# overflow their parent's painted area. Setting Preferred + minimum
|
||||||
|
# width of 0 lets the label wrap within whatever space the bubble
|
||||||
|
# actually receives rather than expanding the bubble outward.
|
||||||
self.text_lbl = QLabel(text)
|
self.text_lbl = QLabel(text)
|
||||||
self.text_lbl.setWordWrap(True)
|
self.text_lbl.setWordWrap(True)
|
||||||
|
self.text_lbl.setMinimumWidth(0)
|
||||||
|
self.text_lbl.setSizePolicy(
|
||||||
|
QSizePolicy.Policy.Preferred,
|
||||||
|
QSizePolicy.Policy.Preferred,
|
||||||
|
)
|
||||||
self.text_lbl.setStyleSheet(f"color: {text_color}; font-size: 13px; border: none; background: transparent;")
|
self.text_lbl.setStyleSheet(f"color: {text_color}; font-size: 13px; border: none; background: transparent;")
|
||||||
self.text_lbl.setOpenExternalLinks(False)
|
self.text_lbl.setOpenExternalLinks(False)
|
||||||
self.text_lbl.linkActivated.connect(on_link_clicked)
|
self.text_lbl.linkActivated.connect(on_link_clicked)
|
||||||
|
|||||||
Reference in New Issue
Block a user