Skip to content

Commit ea333b7

Browse files
committed
[ui] StatusMessages: corrections + reverse items order
1 parent ef14402 commit ea333b7

File tree

4 files changed

+19
-17
lines changed

4 files changed

+19
-17
lines changed

meshroom/ui/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ def forceUIUpdate(self):
368368

369369
def showMessage(self, message, status=None, duration=5000):
370370
self._messageController.sendMessage(message, status, duration)
371-
371+
372372
def _retrieveThumbnailPath(self, filepath: str) -> str:
373373
"""
374374
Given the path of a project file, load this file and try to retrieve the path to its thumbnail, i.e. its

meshroom/ui/components/messaging.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def __init__(self, msg, status=None):
99
self.msg = msg
1010
self.status = status or "info"
1111
self.date = datetime.now()
12-
12+
1313
def dateStr(self, fullDate=False):
1414
dateFormat = "%H:%M:%S"
1515
if fullDate:
@@ -21,24 +21,24 @@ class MessageController(QObject):
2121
"""
2222
Handles messages sent from the Python side to the StatusBar component
2323
"""
24-
24+
2525
message = Signal(str, str, int)
2626
messagesChanged = Signal() # Signal to notify when messages list changes
27-
27+
2828
def __init__(self, parent):
2929
super().__init__(parent)
3030
self._messages = []
31-
31+
3232
def sendMessage(self, msg, status, duration):
3333
""" Sends a message that will be displayed on the status bar """
3434
self.message.emit(msg, status, duration)
35-
35+
3636
@Slot(str, str)
3737
def storeMessage(self, msg, status):
3838
""" Adds a new message in the stack """
3939
self._messages.append(Message(msg, status or "info"))
4040
self.messagesChanged.emit() # Notify QML that messages have changed
41-
41+
4242
def _getMessagesDict(self, fullDate=False):
4343
""" Get a dict with all stored messages """
4444
messages = []
@@ -49,11 +49,13 @@ def _getMessagesDict(self, fullDate=False):
4949
"text": msg.msg,
5050
})
5151
return messages
52-
52+
5353
def getMessages(self):
54-
""" Get the messages with simple date infos """
55-
return self._getMessagesDict()
56-
54+
""" Get the messages with simple date infos.
55+
Reverse the list to make sure we see the most recent item on top
56+
"""
57+
return self._getMessagesDict()[::-1]
58+
5759
@Slot(result=str)
5860
def getMessagesAsString(self):
5961
""" Return messages for clipboard copy
@@ -64,12 +66,12 @@ def getMessagesAsString(self):
6466
for msg in self._messages:
6567
messages.append(f"{msg.dateStr(True)} [{msg.status.upper():<7}] {msg.msg}")
6668
return "\n".join(messages)
67-
69+
6870
@Slot()
6971
def clearMessages(self):
7072
""" Clear all stored messages """
7173
self._messages.clear()
7274
self.messagesChanged.emit()
73-
75+
7476
# Property to expose messages to QML
7577
messages = Property("QVariantList", getMessages, notify=messagesChanged)

meshroom/ui/qml/Controls/StatusBar.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ RowLayout {
103103
// Add message to the message list
104104
_messageController.storeMessage(msg, status)
105105
}
106-
106+
107107
Connections {
108108
target: _messageController
109109
function onMessage(message, color, duration) {

meshroom/ui/qml/Controls/StatusMessages.qml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ ApplicationWindow {
2525
}
2626

2727
function getBackgroundColor(status) {
28-
// var color = Qt.darker(getColor(status), 1.2)
2928
var color = getColor(status)
3029
var alphaValue = status == "info" ? 0.05 : 0.1
3130
return Qt.rgba(color.r, color.g, color.b, alphaValue)
@@ -77,7 +76,7 @@ ApplicationWindow {
7776
}
7877

7978
MaterialToolButton {
80-
ToolTip.text: "Copy the content as a dict"
79+
ToolTip.text: "Copy the messages"
8180
text: MaterialIcons.content_copy
8281
font.pointSize: 16
8382
palette.base: systemPalette.base
@@ -107,6 +106,7 @@ ApplicationWindow {
107106
ListView {
108107
id: messageListView
109108
model: _messageController.messages
109+
verticalLayoutDirection: ListView.TopToBottom
110110
spacing: 5
111111

112112
delegate: Rectangle {
@@ -157,7 +157,7 @@ ApplicationWindow {
157157
// Empty state
158158
Text {
159159
anchors.centerIn: parent
160-
text: "No messages to display"
160+
text: "No message to display"
161161
color: Qt.darker(systemPalette.windowText, 1.5)
162162
font.pointSize: 12
163163
visible: messageListView.count === 0

0 commit comments

Comments
 (0)