5 |
5 |
6 """ |
6 """ |
7 Module implementing the MQTT Monitor widget. |
7 Module implementing the MQTT Monitor widget. |
8 """ |
8 """ |
9 |
9 |
|
10 import collections |
|
11 import contextlib |
|
12 import copy |
10 import os |
13 import os |
11 import collections |
|
12 import copy |
|
13 import contextlib |
|
14 |
14 |
15 from PyQt6.QtCore import pyqtSlot, Qt, QTimer, QFileInfo, QPoint |
15 from PyQt6.QtCore import pyqtSlot, Qt, QTimer, QFileInfo, QPoint |
16 from PyQt6.QtGui import QFont, QTextCursor, QBrush, QColor |
16 from PyQt6.QtGui import QFont, QTextCursor, QBrush, QColor |
17 from PyQt6.QtWidgets import QWidget, QDialog, QMenu |
17 from PyQt6.QtWidgets import QWidget, QDialog, QMenu |
18 |
18 |
|
19 from EricWidgets.EricApplication import ericApp |
19 from EricWidgets import EricMessageBox, EricFileDialog |
20 from EricWidgets import EricMessageBox, EricFileDialog |
20 from EricWidgets.EricPathPicker import EricPathPickerModes |
21 from EricWidgets.EricPathPicker import EricPathPickerModes |
21 |
22 |
22 from .Ui_MqttMonitorWidget import Ui_MqttMonitorWidget |
23 from .Ui_MqttMonitorWidget import Ui_MqttMonitorWidget |
23 |
24 |
60 self.__iconSuffix = "dark" if usesDarkPalette else "light" |
61 self.__iconSuffix = "dark" if usesDarkPalette else "light" |
61 |
62 |
62 self.__connectedToBroker = False |
63 self.__connectedToBroker = False |
63 self.__brokerStatusTopicSubscribed = False |
64 self.__brokerStatusTopicSubscribed = False |
64 |
65 |
65 self.pixmapLabel.setPixmap(UI.PixmapCache.getPixmap( |
66 with contextlib.suppress(AttributeError): |
66 os.path.join("MqttMonitor", "icons", |
67 # backward compatibility |
67 "mqtt48-{0}".format(self.__iconSuffix)) |
68 if not ericApp().usesSmallScreen(): |
68 )) |
69 self.pixmapLabel.setPixmap(UI.PixmapCache.getPixmap( |
|
70 os.path.join("MqttMonitor", "icons", |
|
71 "mqtt48-{0}".format(self.__iconSuffix)) |
|
72 )) |
69 |
73 |
70 self.publishPayloadFilePicker.setMode( |
74 self.publishPayloadFilePicker.setMode( |
71 EricPathPickerModes.OPEN_FILE_MODE) |
75 EricPathPickerModes.OPEN_FILE_MODE) |
72 self.publishPayloadFilePicker.setFilters(self.tr("All Files (*)")) |
76 self.publishPayloadFilePicker.setFilters(self.tr("All Files (*)")) |
73 |
77 |
555 """ |
559 """ |
556 msg = mqttReasonCode(rc, packetType) |
560 msg = mqttReasonCode(rc, packetType) |
557 self.__flashBrokerStatusLabel(msg) |
561 self.__flashBrokerStatusLabel(msg) |
558 |
562 |
559 if properties: |
563 if properties: |
560 self.__showProperties("Subscribe", properties) |
564 self.__showProperties("Unsubscribe", properties) |
561 |
565 |
562 self.__topicUnsubscribed(mid) |
566 self.__topicUnsubscribed(mid) |
563 |
567 |
564 ####################################################################### |
568 ####################################################################### |
565 ## Slots handling UI interactions |
569 ## Slots handling UI interactions |