diff -r 185fac480ed2 -r 41dd2bfee4e4 MqttMonitor/MqttMonitorWidget.py --- a/MqttMonitor/MqttMonitorWidget.py Wed Sep 12 19:36:33 2018 +0200 +++ b/MqttMonitor/MqttMonitorWidget.py Wed Sep 12 19:59:06 2018 +0200 @@ -72,12 +72,10 @@ self.__messagesQosFormat.setFontItalic(True) self.__isAlternate = False - self.__followLatestMessage = True # TODO: Messages Edit improvements: - # 1. add check box for self.__followLatestMessage - # 2. add capability to search - # 3. add capability to save contents to a file + # 1. add capability to search + # 2. add capability to save contents to a file for logLevel in (MqttClient.LogDisabled, MqttClient.LogDebug, @@ -91,9 +89,8 @@ self.logLevelComboBox.count() - 1) # TODO: Log Edit improvements: - # 1. add check box for self.__followLatestLogMessage - # 2. add capability to search - # 3. add configuration capability for colors + # 1. add capability to search + # 2. add configuration capability for colors self.__logMessagesBackgrounds = { MqttClient.LogDebug: QBrush(Qt.white), @@ -104,7 +101,6 @@ MqttClient.LogDisabled: QBrush(Qt.magenta) # reuse LogDisabled for unknown log levels } - self.__followLatestLogMessage = True self.brokerWidget.setCurrentIndex(0) @@ -292,6 +288,8 @@ # always show unknown log levels pass + scrollbarValue = self.logEdit.verticalScrollBar().value() + textCursor = self.logEdit.textCursor() if not self.logEdit.document().isEmpty(): textCursor.movePosition(QTextCursor.End) @@ -311,8 +309,11 @@ txt = self.tr("{0}: {1}").format(mqttLogLevelString(level), message) self.logEdit.insertPlainText(Utilities.filterAnsiSequences(txt)) - if self.__followLatestLogMessage: + + if self.followLogMessagesCheckBox.isChecked(): self.logEdit.ensureCursorVisible() + else: + self.logEdit.verticalScrollBar().setValue(scrollbarValue) @pyqtSlot(str, bytes, int, bool) def __messageReceived(self, topic, payload, qos, retain): @@ -749,6 +750,8 @@ @param qos quality of service indicator (0, 1, 2) @type int """ + scrollbarValue = self.messagesEdit.verticalScrollBar().value() + textCursor = self.messagesEdit.textCursor() if not self.messagesEdit.document().isEmpty(): textCursor.movePosition(QTextCursor.End) @@ -777,8 +780,10 @@ self.messagesEdit.insertPlainText( Utilities.filterAnsiSequences(payloadStr)) - if self.__followLatestMessage: + if self.followMessagesCheckBox.isChecked(): self.messagesEdit.ensureCursorVisible() + else: + self.messagesEdit.verticalScrollBar().setValue(scrollbarValue) self.__isAlternate = not self.__isAlternate