mirror of
https://github.com/Serial-Studio/Serial-Studio.git
synced 2025-01-31 17:42:55 +08:00
Windows-specific improvments
This commit is contained in:
parent
f3b8e6b409
commit
02ae0e0db1
@ -99,6 +99,7 @@ CONFIG += silent
|
|||||||
# Unity build
|
# Unity build
|
||||||
#-----------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
CONFIG += unity_build
|
||||||
CONFIG(unity_build) {
|
CONFIG(unity_build) {
|
||||||
CONFIG += ltcg # Enable linker optimization
|
CONFIG += ltcg # Enable linker optimization
|
||||||
DEFINES += UNITY_BUILD=1 # Enable unity build
|
DEFINES += UNITY_BUILD=1 # Enable unity build
|
||||||
|
@ -51,6 +51,7 @@ Window {
|
|||||||
property bool firstChange: true
|
property bool firstChange: true
|
||||||
property bool isMaximized: false
|
property bool isMaximized: false
|
||||||
property bool isMinimized: false
|
property bool isMinimized: false
|
||||||
|
property alias showIcon: _title.showIcon
|
||||||
property alias isFullscreen: _title.isFullscreen
|
property alias isFullscreen: _title.isFullscreen
|
||||||
readonly property int customFlags: Qt.Window |
|
readonly property int customFlags: Qt.Window |
|
||||||
Qt.CustomizeWindowHint |
|
Qt.CustomizeWindowHint |
|
||||||
|
@ -42,6 +42,7 @@ Rectangle {
|
|||||||
// Window controls
|
// Window controls
|
||||||
//
|
//
|
||||||
property Window window
|
property Window window
|
||||||
|
property bool showIcon: false
|
||||||
property bool closeEnabled: true
|
property bool closeEnabled: true
|
||||||
property bool isFullscreen: false
|
property bool isFullscreen: false
|
||||||
property bool minimizeEnabled: true
|
property bool minimizeEnabled: true
|
||||||
@ -81,14 +82,11 @@ Rectangle {
|
|||||||
|
|
||||||
// Calculations for Windows/Linux layout
|
// Calculations for Windows/Linux layout
|
||||||
else {
|
else {
|
||||||
// Default spacer
|
|
||||||
margin = 10
|
margin = 10
|
||||||
|
|
||||||
// Add space for fullscreen button
|
if (root.showIcon)
|
||||||
if (fullscreenEnabled)
|
margin += 24
|
||||||
margin += 18
|
|
||||||
|
|
||||||
// Add extra spacer if icon is visible
|
|
||||||
if (margin > 10)
|
if (margin > 10)
|
||||||
margin += 8
|
margin += 8
|
||||||
}
|
}
|
||||||
@ -305,16 +303,12 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
WindowButton {
|
WindowButton {
|
||||||
width: 16
|
visible: root.showIcon
|
||||||
height: 16
|
enabled: root.showIcon
|
||||||
rotation: 90
|
|
||||||
textColor: root.textColor
|
textColor: root.textColor
|
||||||
visible: root.fullscreenEnabled
|
highlightColor: root.textColor
|
||||||
enabled: root.fullscreenEnabled
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
onClicked: root.toggleFullscreen()
|
source: "qrc:/images/icon-window.svg"
|
||||||
highlightColor: Cpp_ThemeManager.highlight
|
|
||||||
name: root.isFullscreen ? "restore" : "fullscreen"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@ -359,7 +353,6 @@ Rectangle {
|
|||||||
window.close()
|
window.close()
|
||||||
root.closed()
|
root.closed()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -369,82 +369,10 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// RX/TX LEDs
|
// Vertical spacer
|
||||||
//
|
//
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
|
||||||
RowLayout {
|
|
||||||
spacing: app.spacing
|
|
||||||
|
|
||||||
anchors {
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
verticalCenter: parent.verticalCenter
|
|
||||||
}
|
|
||||||
|
|
||||||
Item {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
|
||||||
|
|
||||||
Widgets.LED {
|
|
||||||
id: _rx
|
|
||||||
enabled: false
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: Cpp_IO_Manager
|
|
||||||
function onRx() {
|
|
||||||
_rx.flash()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
text: "RX"
|
|
||||||
font.bold: true
|
|
||||||
font.pixelSize: 18
|
|
||||||
font.family: app.monoFont
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
|
||||||
color: _rx.enabled ? Cpp_ThemeManager.ledEnabled : Cpp_ThemeManager.ledDisabled
|
|
||||||
}
|
|
||||||
|
|
||||||
Widgets.Icon {
|
|
||||||
width: 32
|
|
||||||
height: 32
|
|
||||||
source: "qrc:/icons/ethernet.svg"
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
|
||||||
color: Cpp_ThemeManager.ledDisabled
|
|
||||||
}
|
|
||||||
|
|
||||||
Label {
|
|
||||||
text: "TX"
|
|
||||||
font.bold: true
|
|
||||||
font.pixelSize: 18
|
|
||||||
font.family: app.monoFont
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
|
||||||
color: _tx.enabled ? Cpp_ThemeManager.ledEnabled : Cpp_ThemeManager.ledDisabled
|
|
||||||
}
|
|
||||||
|
|
||||||
Widgets.LED {
|
|
||||||
id: _tx
|
|
||||||
enabled: false
|
|
||||||
layoutDirection: Qt.RightToLeft
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: Cpp_IO_Manager
|
|
||||||
function onTx() {
|
|
||||||
_tx.flash()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Item {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,8 +196,8 @@ MenuBar {
|
|||||||
DecentMenuItem {
|
DecentMenuItem {
|
||||||
sequence: "f11"
|
sequence: "f11"
|
||||||
onTriggered: app.mainWindow.toggleFullscreen()
|
onTriggered: app.mainWindow.toggleFullscreen()
|
||||||
text: app.mainWindow.fullScreen ? qsTr("Exit full screen") :
|
text: app.mainWindow.isFullscreen ? qsTr("Exit full screen") :
|
||||||
qsTr("Enter full screen")
|
qsTr("Enter full screen")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,8 +62,8 @@ RowLayout {
|
|||||||
//
|
//
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: _dot
|
id: _dot
|
||||||
width: 18
|
width: 14
|
||||||
height: 18
|
height: 14
|
||||||
radius: width / 2
|
radius: width / 2
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
color: root.enabled ? Cpp_ThemeManager.ledEnabled : Cpp_ThemeManager.ledDisabled
|
color: root.enabled ? Cpp_ThemeManager.ledEnabled : Cpp_ThemeManager.ledDisabled
|
||||||
|
@ -45,6 +45,7 @@ FramelessWindow.CustomWindow {
|
|||||||
//
|
//
|
||||||
// Customize window border
|
// Customize window border
|
||||||
//
|
//
|
||||||
|
showIcon: true
|
||||||
borderWidth: 1
|
borderWidth: 1
|
||||||
fullscreenEnabled: true
|
fullscreenEnabled: true
|
||||||
borderColor: Qt.darker(Cpp_ThemeManager.toolbarGradient2, 1.5)
|
borderColor: Qt.darker(Cpp_ThemeManager.toolbarGradient2, 1.5)
|
||||||
@ -167,12 +168,8 @@ FramelessWindow.CustomWindow {
|
|||||||
// Startup code
|
// Startup code
|
||||||
//
|
//
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
// Load welcome guide
|
|
||||||
terminal.showWelcomeGuide()
|
terminal.showWelcomeGuide()
|
||||||
|
root.showMainWindow()
|
||||||
// Display the window & check for updates in 500 ms (we do this so that
|
|
||||||
// we wait for the window to read settings before showing it)
|
|
||||||
timer.start()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -223,15 +220,6 @@ FramelessWindow.CustomWindow {
|
|||||||
property alias autoUpdater: root.automaticUpdates
|
property alias autoUpdater: root.automaticUpdates
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Startup timer
|
|
||||||
//
|
|
||||||
Timer {
|
|
||||||
id: timer
|
|
||||||
interval: 500
|
|
||||||
onTriggered: root.showMainWindow()
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// macOS menubar loader
|
// macOS menubar loader
|
||||||
//
|
//
|
||||||
@ -247,11 +235,6 @@ FramelessWindow.CustomWindow {
|
|||||||
RowLayout {
|
RowLayout {
|
||||||
spacing: app.spacing
|
spacing: app.spacing
|
||||||
height: titlebar.height
|
height: titlebar.height
|
||||||
opacity: enabled ? 1 : 0
|
|
||||||
enabled: !root.showMacControls || isFullscreen
|
|
||||||
visible: !root.showMacControls || isFullscreen
|
|
||||||
|
|
||||||
Behavior on opacity {NumberAnimation{}}
|
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
@ -262,17 +245,98 @@ FramelessWindow.CustomWindow {
|
|||||||
topMargin: root.shadowMargin + (!root.showMacControls ? 1 : 0)
|
topMargin: root.shadowMargin + (!root.showMacControls ? 1 : 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Menubar
|
||||||
|
//
|
||||||
PlatformDependent.Menubar {
|
PlatformDependent.Menubar {
|
||||||
id: menubar
|
id: menubar
|
||||||
opacity: 0.8
|
opacity: enabled ? 0.8 : 0
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
enabled: !root.showMacControls || isFullscreen
|
||||||
|
visible: !root.showMacControls || isFullscreen
|
||||||
|
|
||||||
|
Behavior on opacity {NumberAnimation{}}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Leaving this layout for future usage...
|
//
|
||||||
|
// Spacer
|
||||||
|
//
|
||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// RX LED
|
||||||
|
//
|
||||||
|
LED {
|
||||||
|
id: _rx
|
||||||
|
enabled: false
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: Cpp_IO_Manager
|
||||||
|
function onRx() {
|
||||||
|
_rx.flash()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// RX label
|
||||||
|
//
|
||||||
|
Label {
|
||||||
|
text: "RX"
|
||||||
|
font.bold: true
|
||||||
|
font.family: app.monoFont
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
color: _rx.enabled ? Cpp_ThemeManager.ledEnabled : Cpp_ThemeManager.ledDisabled
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// RX/TX middleman icon
|
||||||
|
//
|
||||||
|
Icon {
|
||||||
|
width: 24
|
||||||
|
height: 24
|
||||||
|
source: "qrc:/icons/ethernet.svg"
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
color: Cpp_ThemeManager.ledDisabled
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// TX Label
|
||||||
|
//
|
||||||
|
Label {
|
||||||
|
text: "TX"
|
||||||
|
font.bold: true
|
||||||
|
font.family: app.monoFont
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
color: _tx.enabled ? Cpp_ThemeManager.ledEnabled : Cpp_ThemeManager.ledDisabled
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// TX LED
|
||||||
|
//
|
||||||
|
LED {
|
||||||
|
id: _tx
|
||||||
|
enabled: false
|
||||||
|
layoutDirection: Qt.RightToLeft
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: Cpp_IO_Manager
|
||||||
|
function onTx() {
|
||||||
|
_tx.flash()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Spacer
|
||||||
|
//
|
||||||
|
Item {
|
||||||
|
width: app.spacing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -34,8 +34,8 @@
|
|||||||
"alternativeHighlight":"#53ab27",
|
"alternativeHighlight":"#53ab27",
|
||||||
"setupPanelBackground":"#e8e8e8",
|
"setupPanelBackground":"#e8e8e8",
|
||||||
"paneWindowBackground":"#f1f1f1",
|
"paneWindowBackground":"#f1f1f1",
|
||||||
"ledEnabled":"#0072C3",
|
"ledEnabled":"#fe696e",
|
||||||
"ledDisabled":"#686868",
|
"ledDisabled":"#0072C3",
|
||||||
"csvCheckbox":"#2e895c",
|
"csvCheckbox":"#2e895c",
|
||||||
"connectButtonChecked":"#fe696e",
|
"connectButtonChecked":"#fe696e",
|
||||||
"connectButtonUnchecked":"#26cd40",
|
"connectButtonUnchecked":"#26cd40",
|
||||||
|
@ -118,15 +118,15 @@ int Client::mqttVersion() const
|
|||||||
{
|
{
|
||||||
switch (m_client.version())
|
switch (m_client.version())
|
||||||
{
|
{
|
||||||
case QMQTT::V3_1_0:
|
case QMQTT::V3_1_0:
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
case QMQTT::V3_1_1:
|
case QMQTT::V3_1_1:
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,8 +206,8 @@ StringList Client::qosLevels() const
|
|||||||
// clang-format off
|
// clang-format off
|
||||||
return StringList {
|
return StringList {
|
||||||
tr("0: At most once"),
|
tr("0: At most once"),
|
||||||
tr("1: At least once"),
|
tr("1: At least once"),
|
||||||
tr("2: Exactly once")
|
tr("2: Exactly once")
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
}
|
}
|
||||||
@ -235,12 +235,12 @@ StringList Client::sslProtocols() const
|
|||||||
{
|
{
|
||||||
return StringList {
|
return StringList {
|
||||||
tr("System default"),
|
tr("System default"),
|
||||||
"TLS v1.0",
|
"TLS v1.0",
|
||||||
"TLS v1.1",
|
"TLS v1.1",
|
||||||
"TLS v1.2",
|
"TLS v1.2",
|
||||||
"DTLS v1.0",
|
"DTLS v1.0",
|
||||||
"DTLS v1.2",
|
"DTLS v1.2",
|
||||||
"DTLS v1.3"
|
"DTLS v1.3"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,11 +277,8 @@ void Client::disconnectFromHost()
|
|||||||
*/
|
*/
|
||||||
void Client::setQos(const quint8 qos)
|
void Client::setQos(const quint8 qos)
|
||||||
{
|
{
|
||||||
if (qos >= 0 && qos <= 2)
|
m_client.setWillQos(qos);
|
||||||
{
|
emit qosChanged();
|
||||||
m_client.setWillQos(qos);
|
|
||||||
emit qosChanged();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -378,14 +375,14 @@ void Client::setMqttVersion(const int versionIndex)
|
|||||||
{
|
{
|
||||||
switch (versionIndex)
|
switch (versionIndex)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
m_client.setVersion(QMQTT::V3_1_0);
|
m_client.setVersion(QMQTT::V3_1_0);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
m_client.setVersion(QMQTT::V3_1_1);
|
m_client.setVersion(QMQTT::V3_1_1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
emit mqttVersionChanged();
|
emit mqttVersionChanged();
|
||||||
@ -467,99 +464,99 @@ void Client::onError(const QMQTT::ClientError error)
|
|||||||
|
|
||||||
switch (error)
|
switch (error)
|
||||||
{
|
{
|
||||||
case QMQTT::UnknownError:
|
case QMQTT::UnknownError:
|
||||||
str = tr("Unknown error");
|
str = tr("Unknown error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketConnectionRefusedError:
|
case QMQTT::SocketConnectionRefusedError:
|
||||||
str = tr("Connection refused");
|
str = tr("Connection refused");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketRemoteHostClosedError:
|
case QMQTT::SocketRemoteHostClosedError:
|
||||||
str = tr("Remote host closed the connection");
|
str = tr("Remote host closed the connection");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketHostNotFoundError:
|
case QMQTT::SocketHostNotFoundError:
|
||||||
str = tr("Host not found");
|
str = tr("Host not found");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketAccessError:
|
case QMQTT::SocketAccessError:
|
||||||
str = tr("Socket access error");
|
str = tr("Socket access error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketResourceError:
|
case QMQTT::SocketResourceError:
|
||||||
str = tr("Socket resource error");
|
str = tr("Socket resource error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketTimeoutError:
|
case QMQTT::SocketTimeoutError:
|
||||||
str = tr("Socket timeout");
|
str = tr("Socket timeout");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketDatagramTooLargeError:
|
case QMQTT::SocketDatagramTooLargeError:
|
||||||
str = tr("Socket datagram too large");
|
str = tr("Socket datagram too large");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketNetworkError:
|
case QMQTT::SocketNetworkError:
|
||||||
str = tr("Network error");
|
str = tr("Network error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketAddressInUseError:
|
case QMQTT::SocketAddressInUseError:
|
||||||
str = tr("Address in use");
|
str = tr("Address in use");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketAddressNotAvailableError:
|
case QMQTT::SocketAddressNotAvailableError:
|
||||||
str = tr("Address not available");
|
str = tr("Address not available");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketUnsupportedSocketOperationError:
|
case QMQTT::SocketUnsupportedSocketOperationError:
|
||||||
str = tr("Unsupported socket operation");
|
str = tr("Unsupported socket operation");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketUnfinishedSocketOperationError:
|
case QMQTT::SocketUnfinishedSocketOperationError:
|
||||||
str = tr("Unfinished socket operation");
|
str = tr("Unfinished socket operation");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketProxyAuthenticationRequiredError:
|
case QMQTT::SocketProxyAuthenticationRequiredError:
|
||||||
str = tr("Proxy authentication required");
|
str = tr("Proxy authentication required");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketSslHandshakeFailedError:
|
case QMQTT::SocketSslHandshakeFailedError:
|
||||||
str = tr("SSL handshake failed");
|
str = tr("SSL handshake failed");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketProxyConnectionRefusedError:
|
case QMQTT::SocketProxyConnectionRefusedError:
|
||||||
str = tr("Proxy connection refused");
|
str = tr("Proxy connection refused");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketProxyConnectionClosedError:
|
case QMQTT::SocketProxyConnectionClosedError:
|
||||||
str = tr("Proxy connection closed");
|
str = tr("Proxy connection closed");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketProxyConnectionTimeoutError:
|
case QMQTT::SocketProxyConnectionTimeoutError:
|
||||||
str = tr("Proxy connection timeout");
|
str = tr("Proxy connection timeout");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketProxyNotFoundError:
|
case QMQTT::SocketProxyNotFoundError:
|
||||||
str = tr("Proxy not found");
|
str = tr("Proxy not found");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketProxyProtocolError:
|
case QMQTT::SocketProxyProtocolError:
|
||||||
str = tr("Proxy protocol error");
|
str = tr("Proxy protocol error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketOperationError:
|
case QMQTT::SocketOperationError:
|
||||||
str = tr("Operation error");
|
str = tr("Operation error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketSslInternalError:
|
case QMQTT::SocketSslInternalError:
|
||||||
str = tr("SSL internal error");
|
str = tr("SSL internal error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketSslInvalidUserDataError:
|
case QMQTT::SocketSslInvalidUserDataError:
|
||||||
str = tr("Invalid SSL user data");
|
str = tr("Invalid SSL user data");
|
||||||
break;
|
break;
|
||||||
case QMQTT::SocketTemporaryError:
|
case QMQTT::SocketTemporaryError:
|
||||||
str = tr("Socket temprary error");
|
str = tr("Socket temprary error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::MqttUnacceptableProtocolVersionError:
|
case QMQTT::MqttUnacceptableProtocolVersionError:
|
||||||
str = tr("Unacceptable MQTT protocol");
|
str = tr("Unacceptable MQTT protocol");
|
||||||
break;
|
break;
|
||||||
case QMQTT::MqttIdentifierRejectedError:
|
case QMQTT::MqttIdentifierRejectedError:
|
||||||
str = tr("MQTT identifier rejected");
|
str = tr("MQTT identifier rejected");
|
||||||
break;
|
break;
|
||||||
case QMQTT::MqttServerUnavailableError:
|
case QMQTT::MqttServerUnavailableError:
|
||||||
str = tr("MQTT server unavailable");
|
str = tr("MQTT server unavailable");
|
||||||
break;
|
break;
|
||||||
case QMQTT::MqttBadUserNameOrPasswordError:
|
case QMQTT::MqttBadUserNameOrPasswordError:
|
||||||
str = tr("Bad MQTT username or password");
|
str = tr("Bad MQTT username or password");
|
||||||
break;
|
break;
|
||||||
case QMQTT::MqttNotAuthorizedError:
|
case QMQTT::MqttNotAuthorizedError:
|
||||||
str = tr("MQTT authorization error");
|
str = tr("MQTT authorization error");
|
||||||
break;
|
break;
|
||||||
case QMQTT::MqttNoPingResponse:
|
case QMQTT::MqttNoPingResponse:
|
||||||
str = tr("MQTT no ping response");
|
str = tr("MQTT no ping response");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
str = "";
|
str = "";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!str.isEmpty())
|
if (!str.isEmpty())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user