aboutsummaryrefslogtreecommitdiffstats
path: root/llamachat/ui.py
diff options
context:
space:
mode:
Diffstat (limited to 'llamachat/ui.py')
-rw-r--r--llamachat/ui.py23
1 files changed, 19 insertions, 4 deletions
diff --git a/llamachat/ui.py b/llamachat/ui.py
index 11fffae..3ea3598 100644
--- a/llamachat/ui.py
+++ b/llamachat/ui.py
@@ -594,9 +594,21 @@ class ChatWindow(QMainWindow):
self.attach_label.hide()
right_layout.addWidget(self.attach_label)
+ self.status_row = QWidget()
+ status_row = QHBoxLayout(self.status_row)
+ status_row.setContentsMargins(0, 0, 0, 0)
+ status_row.setSpacing(6)
self.status_label = QLabel()
- self.status_label.hide()
- right_layout.addWidget(self.status_label)
+ self.status_label.setWordWrap(True)
+ status_row.addWidget(self.status_label, 1)
+ self.status_dismiss = QToolButton()
+ self.status_dismiss.setText("✕")
+ self.status_dismiss.setToolTip("Dismiss this message")
+ self.status_dismiss.setAutoRaise(True)
+ self.status_dismiss.clicked.connect(self.hide_status)
+ status_row.addWidget(self.status_dismiss, 0, Qt.AlignTop)
+ self.status_row.hide()
+ right_layout.addWidget(self.status_row)
self.input = QPlainTextEdit()
self.input.setPlaceholderText(
@@ -1683,10 +1695,13 @@ class ChatWindow(QMainWindow):
if error
else "padding: 4px;"
)
- self.status_label.show()
+ # Every status message is dismissable: errors persist until something
+ # replaces them, and a transient one can be cleared early too.
+ self.status_dismiss.show()
+ self.status_row.show()
def hide_status(self) -> None:
- self.status_label.hide()
+ self.status_row.hide()
# -- window behaviour -------------------------------------------------