From fe0ee4f0f90e88ff637c4fac72b01d54429bd793 Mon Sep 17 00:00:00 2001 From: wuhai Date: Thu, 28 Mar 2024 18:01:10 +0800 Subject: [PATCH] chore: update files of project --- .../Source/xToolsBroadcastAssistant.cpp | 24 +- .../Source/xToolsBroadcastAssistant.ui | 11 +- .../String/Source/xToolsStringAssistant.cpp | 3 - .../String/Source/xToolsStringAssistant.ui | 13 +- Source/Common/Common/xToolsDataStructure.cpp | 355 +++++------------- Source/Common/Common/xToolsDataStructure.h | 76 +--- Source/Common/Common/xToolsInterface.cpp | 4 +- Source/Common/Common/xToolsInterface.h | 4 +- .../CommonUI/xToolsResponseOptionComboBox.cpp | 16 +- .../xToolsWebSocketMessageTypeComboBox.cpp | 9 +- Source/ToolBox/ToolBoxUI/xToolsToolBoxUi.cpp | 6 +- Source/Tools/Tools/xToolsEmitterTool.cpp | 2 +- Source/Tools/Tools/xToolsPrestorerTool.cpp | 2 +- Source/Tools/Tools/xToolsResponserTool.cpp | 4 +- 14 files changed, 153 insertions(+), 376 deletions(-) diff --git a/Source/Assistants/Broadcast/Source/xToolsBroadcastAssistant.cpp b/Source/Assistants/Broadcast/Source/xToolsBroadcastAssistant.cpp index 1d476d6b..23388eec 100644 --- a/Source/Assistants/Broadcast/Source/xToolsBroadcastAssistant.cpp +++ b/Source/Assistants/Broadcast/Source/xToolsBroadcastAssistant.cpp @@ -15,6 +15,7 @@ #include "xToolsBroadcastThread.h" #include "xToolsDataStructure.h" +#include "xToolsInterface.h" xToolsBroadcastAssistant::xToolsBroadcastAssistant(QWidget* parent) : QWidget(parent) @@ -34,15 +35,10 @@ xToolsBroadcastAssistant::xToolsBroadcastAssistant(QWidget* parent) info += bytesString; ui->textBrowserInformation->append(info); }); - connect(ui->comboBoxBroadcastFormat, - &QComboBox::currentTextChanged, - this, - [=](const QString& text) { - Q_UNUSED(text); - xToolsDataStructure::setLineEditTextFormat(ui->lineEditBroadcastData, - ui->comboBoxBroadcastFormat->currentData() - .toInt()); - }); + connect(ui->comboBoxBroadcastFormat, &QComboBox::currentTextChanged, this, [=]() { + auto format = ui->comboBoxBroadcastFormat->currentData().toInt(); + xToolsInterface::setLineEditValidator(ui->lineEditBroadcastData, format); + }); connect(ui->pushButtonBroadcast, &QPushButton::clicked, this, @@ -74,14 +70,8 @@ void xToolsBroadcastAssistant::updateUiState(bool started) void xToolsBroadcastAssistant::initUi() { ui->textBrowserInformation->document()->setMaximumBlockCount(2000); - initUiBroadcastAddress(); initUiBroadcastInterval(); - - xToolsDataStructure::setComboBoxTextInputFormat(ui->comboBoxBroadcastFormat); - xToolsDataStructure::setComboBoxTextOutputFormat(ui->comboBoxOutputFormat); - xToolsDataStructure::setupSuffix(ui->comboBoxBroadcastPrefix); - xToolsDataStructure::setupSuffix(ui->comboBoxBroadcastSuffix); } void xToolsBroadcastAssistant::initUiBroadcastAddress() @@ -137,14 +127,14 @@ QByteArray xToolsBroadcastAssistant::packetData() QByteArray bytes; int prefixType = ui->comboBoxBroadcastPrefix->currentData().toInt(); - QByteArray prefix = xToolsDataStructure::prefix(prefixType).toLatin1(); + QByteArray prefix = xToolsDataStructure::affixesData(prefixType); int format = ui->comboBoxBroadcastFormat->currentData().toInt(); QString text = ui->lineEditBroadcastData->text(); QByteArray data = xToolsDataStructure::stringToByteArray(text, format); int suffixType = ui->comboBoxBroadcastSuffix->currentData().toInt(); - QByteArray suffix = xToolsDataStructure::suffix(suffixType).toLatin1(); + QByteArray suffix = xToolsDataStructure::affixesData(suffixType); bytes.append(prefix); bytes.append(data); diff --git a/Source/Assistants/Broadcast/Source/xToolsBroadcastAssistant.ui b/Source/Assistants/Broadcast/Source/xToolsBroadcastAssistant.ui index 7296efcb..9f271101 100644 --- a/Source/Assistants/Broadcast/Source/xToolsBroadcastAssistant.ui +++ b/Source/Assistants/Broadcast/Source/xToolsBroadcastAssistant.ui @@ -53,7 +53,7 @@ - + @@ -137,7 +137,7 @@ - + @@ -231,6 +231,13 @@ + + + xToolsAffixesComboBox + QComboBox +
xToolsAffixesComboBox.h
+
+
diff --git a/Source/Assistants/String/Source/xToolsStringAssistant.cpp b/Source/Assistants/String/Source/xToolsStringAssistant.cpp index b6820ed6..5d3d4534 100644 --- a/Source/Assistants/String/Source/xToolsStringAssistant.cpp +++ b/Source/Assistants/String/Source/xToolsStringAssistant.cpp @@ -16,9 +16,6 @@ xToolsStringAssistant::xToolsStringAssistant(QWidget* parent) , ui(new Ui::xToolsStringAssistant) { ui->setupUi(this); - xToolsDataStructure::setComboBoxTextInputFormat(ui->inputFormatComboBox); - xToolsDataStructure::setComboBoxTextOutputFormat(ui->outputFormatComboBox); - connect(ui->textEdit, &QTextEdit::textChanged, this, &xToolsStringAssistant::onTextEditTextChanged); connect(ui->inputFormatComboBox, static_cast(&QComboBox::currentIndexChanged), diff --git a/Source/Assistants/String/Source/xToolsStringAssistant.ui b/Source/Assistants/String/Source/xToolsStringAssistant.ui index 64651a40..62b720bd 100644 --- a/Source/Assistants/String/Source/xToolsStringAssistant.ui +++ b/Source/Assistants/String/Source/xToolsStringAssistant.ui @@ -7,7 +7,7 @@ 0 0 510 - 260 + 264 @@ -66,7 +66,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -113,6 +113,13 @@ + + + xToolsTextFormatComboBox + QComboBox +
xtoolstextformatcombobox.h
+
+
diff --git a/Source/Common/Common/xToolsDataStructure.cpp b/Source/Common/Common/xToolsDataStructure.cpp index 460cde38..4a77536f 100644 --- a/Source/Common/Common/xToolsDataStructure.cpp +++ b/Source/Common/Common/xToolsDataStructure.cpp @@ -164,23 +164,18 @@ QString xToolsDataStructure::formatString(const QString &str, int format) } } -QString xToolsDataStructure::cookedString(int escapeCharacter, const QString &str) -{ - return xToolsDataStructure::cookEscapeCharacter(escapeCharacter, str); -} - -QString xToolsDataStructure::cookEscapeCharacter(int option, const QString &str) +QString xToolsDataStructure::cookEscapeCharacter(int escapeCharacter, const QString &str) { QString newStr = str; - if (option == EscapeCharacterR) { + if (escapeCharacter == EscapeCharacterR) { newStr.replace("\\r", "\r"); - } else if (option == EscapeCharacterN) { + } else if (escapeCharacter == EscapeCharacterN) { newStr.replace("\\n", "\n"); - } else if (option == EscapeCharacterRN) { + } else if (escapeCharacter == EscapeCharacterRN) { newStr.replace("\\r\\n", "\r\n"); - } else if (option == EscapeCharacterNR) { + } else if (escapeCharacter == EscapeCharacterNR) { newStr.replace("\\n\\r", "\n\\r"); - } else if (option == EscapeCharacterRAndN) { + } else if (escapeCharacter == EscapeCharacterRAndN) { newStr.replace("\\r", "\r"); newStr.replace("\\n", "\n"); } @@ -188,6 +183,55 @@ QString xToolsDataStructure::cookEscapeCharacter(int option, const QString &str) return newStr; } +QString xToolsDataStructure::affixesString(int affixes) +{ + if (affixes == AffixesN) { + return QString("\n"); + } else if (affixes == AffixesR) { + return QString("\r"); + } else if (affixes == AffixesNR) { + return QString("\n\r"); + } else if (affixes == AffixesRN) { + return QString("\r\n"); + } else { + return QString(""); + } +} + +QString xToolsDataStructure::affixesName(int affixes) +{ + if (xToolsDataStructure::AffixesNone == affixes) { + return "None"; + } else if (xToolsDataStructure::AffixesR == affixes) { + return "\\r"; + } else if (xToolsDataStructure::AffixesN == affixes) { + return "\\n"; + } else if (xToolsDataStructure::AffixesRN == affixes) { + return "\\r\\n"; + } else if (xToolsDataStructure::AffixesNR == affixes) { + return "\\n\\r"; + } + + return "None"; +} + +QByteArray xToolsDataStructure::affixesData(int affixes) +{ + if (affixes == xToolsDataStructure::AffixesNone) { + return QByteArray(""); + } else if (affixes == xToolsDataStructure::AffixesR) { + return QByteArray("\r"); + } else if (affixes == xToolsDataStructure::AffixesN) { + return QByteArray("\n"); + } else if (affixes == xToolsDataStructure::AffixesRN) { + return QByteArray("\r\n"); + } else if (affixes == xToolsDataStructure::AffixesNR) { + return QByteArray("\n\r"); + } + + return QByteArray(""); +} + #ifdef X_TOOLS_ENABLE_HIGH_DPI_POLICY QVariantList xToolsDataStructure::supportedHighDpiPolicies() { @@ -227,271 +271,50 @@ bool xToolsDataStructure::isValidHighDpiPolicy(int policy) } #endif -QString xToolsDataStructure::cookedAffixes(int affixes) +QVariantList xToolsDataStructure::supportedWebSocketSendingTypes() { - if (affixes == AffixesN) { - return QString("\n"); - } else if (affixes == AffixesR) { - return QString("\r"); - } else if (affixes == AffixesNR) { - return QString("\n\r"); - } else if (affixes == AffixesRN) { - return QString("\r\n"); - } else { - return QString(""); + QMetaEnum metaEnum = QMetaEnum::fromType(); + QVariantList list; + for (int i = 0; i < metaEnum.keyCount(); i++) { + list.append(metaEnum.value(i)); } + return list; } -QString xToolsDataStructure::affixesName(int affixes) +QString xToolsDataStructure::webSocketSendingTypeName(int type) { - if (xToolsDataStructure::AffixesNone == affixes) { - return "None"; - } else if (xToolsDataStructure::AffixesR == affixes) { - return "//r"; - } else if (xToolsDataStructure::AffixesN == affixes) { - return "//n"; - } else if (xToolsDataStructure::AffixesRN == affixes) { - return "//r//n"; - } else if (xToolsDataStructure::AffixesNR == affixes) { - return "//n//r"; + static QMap typeMap; + if (typeMap.isEmpty()) { + typeMap.insert(WebSocketSendingTypeText, tr("Text")); + typeMap.insert(WebSocketSendingTypeBinary, tr("Binary")); } - return "None"; + return typeMap.value(type, "Unknown"); } -QByteArray xToolsDataStructure::affixesData(int affixes) +QVariantList xToolsDataStructure::supportedResponseOptions() { - if (affixes == xToolsDataStructure::AffixesNone) { - return QByteArray(""); - } else if (affixes == xToolsDataStructure::AffixesR) { - return QByteArray("\r"); - } else if (affixes == xToolsDataStructure::AffixesN) { - return QByteArray("\n"); - } else if (affixes == xToolsDataStructure::AffixesRN) { - return QByteArray("\r\n"); - } else if (affixes == xToolsDataStructure::AffixesNR) { - return QByteArray("\n\r"); + QMetaEnum metaEnum = QMetaEnum::fromType(); + QVariantList list; + for (int i = 0; i < metaEnum.keyCount(); i++) { + list.append(metaEnum.value(i)); + } + return list; +} + +QString xToolsDataStructure::responseOptionName(int option) +{ + static QMap optionMap; + if (optionMap.isEmpty()) { + // clang-format off + optionMap.insert(ResponseOptionDisable, tr("Disable")); + optionMap.insert(ResponseOptionEcho, tr("Echo")); + optionMap.insert(ResponseOptionAlways, tr("Data Received")); + optionMap.insert(ResponseOptionInputEqualReference, tr("Rx Data Equal Reference Data")); + optionMap.insert(ResponseOptionInputContainReference, tr("Rx Data Contain Reference Data")); + optionMap.insert(ResponseOptionInputDiscontainReference, tr("Rx Data Discontain Reference Data")); + // clang-format on } - return QByteArray(""); -} - -void xToolsDataStructure::setComboBoxTextOutputFormat(QComboBox *comboBox) -{ - if (comboBox) { - QMap formatMap; - formatMap.insert(TextFormatBin, QString("BIN")); - formatMap.insert(TextFormatOct, QString("OCT")); - formatMap.insert(TextFormatDec, QString("DEC")); - formatMap.insert(TextFormatHex, QString("HEX")); - formatMap.insert(TextFormatUtf8, QString("UTF8")); - formatMap.insert(TextFormatAscii, QString("ASCII")); - formatMap.insert(TextFormatSystem, QString("SYSTEM")); - setComboBoxItems(comboBox, formatMap, TextFormatHex); - } -} - -void xToolsDataStructure::setComboBoxTextInputFormat(QComboBox *comboBox) -{ - if (comboBox) { - if (comboBox) { - QMap formatMap; - formatMap.insert(TextFormatBin, QString("BIN")); - formatMap.insert(TextFormatOct, QString("OTC")); - formatMap.insert(TextFormatDec, QString("DEC")); - formatMap.insert(TextFormatHex, QString("HEX")); - formatMap.insert(TextFormatAscii, QString("ASCII")); - formatMap.insert(TextFormatSystem, QString("SYSTEM")); - setComboBoxItems(comboBox, formatMap, TextFormatSystem); - } - } -} - -void xToolsDataStructure::setComboBoxTextWebSocketSendingType(QComboBox *comboBox) -{ - if (comboBox) { - comboBox->addItem(tr("BIN"), xToolsDataStructure::WebSocketSendingTypeBin); - comboBox->addItem(tr("TEXT"), xToolsDataStructure::WebSocketSendingTypeText); - } -} - -void xToolsDataStructure::setLineEditTextFormat(QLineEdit *lineEdit, TextFormat format) -{ - QMap regExpMap; - QRegularExpression binRegExp = QRegularExpression("([01][01][01][01][01][01][01][01][ ])*"); - QRegularExpression otcRegExp = QRegularExpression("([0-7][0-7][ ])*"); - QRegularExpression decRegExp = QRegularExpression("([0-9][0-9][ ])*"); - QRegularExpression hexRegExp = QRegularExpression("([0-9a-fA-F][0-9a-fA-F][ ])*"); - QRegularExpression asciiRegExp = QRegularExpression("([ -~])*"); - regExpMap.insert(xToolsDataStructure::TextFormatBin, new QRegularExpressionValidator(binRegExp)); - regExpMap.insert(xToolsDataStructure::TextFormatOct, new QRegularExpressionValidator(otcRegExp)); - regExpMap.insert(xToolsDataStructure::TextFormatDec, new QRegularExpressionValidator(decRegExp)); - regExpMap.insert(xToolsDataStructure::TextFormatHex, new QRegularExpressionValidator(hexRegExp)); - regExpMap.insert(xToolsDataStructure::TextFormatAscii, - new QRegularExpressionValidator(asciiRegExp)); - regExpMap.insert(xToolsDataStructure::TextFormatSystem, Q_NULLPTR); - - if (lineEdit) { - if (lineEdit->validator()) { - delete lineEdit->validator(); - lineEdit->setValidator(Q_NULLPTR); - } - - if (regExpMap.contains(format)) { - QRegularExpressionValidator *validator = regExpMap.value(format); - lineEdit->setValidator(validator); - } else { - lineEdit->setValidator(Q_NULLPTR); - } - } -} - -void xToolsDataStructure::setLineEditTextFormat(QLineEdit *lineEdit, int format) -{ - auto cookedFormat = static_cast(format); - xToolsDataStructure::setLineEditTextFormat(lineEdit, cookedFormat); -} - -QString xToolsDataStructure::suffix(SAKEmnuSuffixType type) -{ - return suffix(int(type)); -} - -QString xToolsDataStructure::suffix(int type) -{ - switch (type) { - case SuffixsTypeNone: - return ""; - case SuffixsTypeR: - return "\r"; - case SuffixsTypeN: - return "\n"; - case SuffixsTypeRN: - return "\r\n"; - case SuffixsTypeNR: - return "\n\r"; - default: - return ""; - } -} - -QString xToolsDataStructure::friendlySuffix(SAKEmnuSuffixType type) -{ - switch (type) { - case SuffixsTypeNone: - return tr("None"); - case SuffixsTypeR: - return "\\r"; - case SuffixsTypeN: - return "\\n"; - case SuffixsTypeRN: - return "\\r\\n"; - case SuffixsTypeNR: - return "\\n\\r"; - default: - return tr("None"); - } -} - -QString xToolsDataStructure::prefix(int type) -{ - switch (type) { - case PrefixTypeNone: - return ""; - case PrefixTypeR: - return "\r"; - case PrefixTypeN: - return "\n"; - case PrefixTypeRN: - return "\r\n"; - case PrefixTypeNR: - return "\n\r"; - default: - return ""; - } -} - -QString xToolsDataStructure::friendlyPrefix(SAKEnumPrefixType type) -{ - switch (type) { - case PrefixTypeNone: - return ""; - case PrefixTypeR: - return "\\r"; - case PrefixTypeN: - return "\\n"; - case PrefixTypeRN: - return "\\r\\n"; - case PrefixTypeNR: - return "\\n\\r"; - default: - return ""; - } -} - -void xToolsDataStructure::setupSuffix(QComboBox *comboBox) -{ - if (comboBox) { - QMap formatMap; - formatMap.insert(SuffixsTypeNone, friendlySuffix(SuffixsTypeNone)); - formatMap.insert(SuffixsTypeR, friendlySuffix(SuffixsTypeR)); - formatMap.insert(SuffixsTypeN, friendlySuffix(SuffixsTypeN)); - formatMap.insert(SuffixsTypeRN, friendlySuffix(SuffixsTypeRN)); - formatMap.insert(SuffixsTypeNR, friendlySuffix(SuffixsTypeNR)); - setComboBoxItems(comboBox, formatMap, SuffixsTypeNone); - } -} - -void xToolsDataStructure::formattingInputText(QTextEdit *textEdit, int model) -{ - if (textEdit) { - textEdit->blockSignals(true); - QString plaintext = textEdit->toPlainText(); - if (!plaintext.isEmpty()) { - auto cookedModel = static_cast(model); - QString cookedString = xToolsDataStructure::formatString(plaintext, cookedModel); - textEdit->setText(cookedString); - textEdit->moveCursor(QTextCursor::End); - } - textEdit->blockSignals(false); - } -} - -void xToolsDataStructure::setComboBoxItems(QComboBox *comboBox, - QMap &formatMap, - int currentData) -{ - if (comboBox) { - comboBox->clear(); - QMapIterator mapIterator(formatMap); - QStandardItemModel *itemModel = new QStandardItemModel(comboBox); - while (mapIterator.hasNext()) { - mapIterator.next(); - QStandardItem *item = new QStandardItem(mapIterator.value()); - item->setToolTip(mapIterator.value()); - itemModel->appendRow(item); - } - comboBox->setModel(itemModel); - comboBox->setCurrentIndex(currentData); - - // Reset the iterator... - while (mapIterator.hasPrevious()) { - mapIterator.previous(); - } - - // Set item data of combo box - int index = 0; - while (mapIterator.hasNext()) { - mapIterator.next(); - comboBox->setItemData(index, QVariant::fromValue(mapIterator.key())); - index += 1; - } - - // Try to set the current index. - for (int i = 0; i < comboBox->count(); i++) { - if (comboBox->itemData(i).toInt() == currentData) { - comboBox->setCurrentIndex(i); - } - } - } + return optionMap.value(option, "Unknown"); } diff --git a/Source/Common/Common/xToolsDataStructure.h b/Source/Common/Common/xToolsDataStructure.h index a1194cc3..69097306 100644 --- a/Source/Common/Common/xToolsDataStructure.h +++ b/Source/Common/Common/xToolsDataStructure.h @@ -47,13 +47,12 @@ public: EscapeCharacterRAndN }; Q_ENUM(EscapeCharacter) - Q_INVOKABLE static QString cookedString(int escapeCharacter, const QString &str); - Q_INVOKABLE static QString cookEscapeCharacter(int option, const QString &str); + Q_INVOKABLE static QString cookEscapeCharacter(int escapeCharacter, const QString &str); public: enum SAKEnumAffixes { AffixesNone, AffixesR, AffixesN, AffixesRN, AffixesNR }; Q_ENUM(SAKEnumAffixes) - Q_INVOKABLE static QString cookedAffixes(int affixes); + Q_INVOKABLE static QString affixesString(int affixes); Q_INVOKABLE static QString affixesName(int affixes); Q_INVOKABLE static QByteArray affixesData(int affixes); @@ -75,67 +74,26 @@ public: Q_INVOKABLE static bool isValidHighDpiPolicy(int policy); #endif -public: public: // Web socket sending type - enum SAKEnumWebSocketSendingType { + enum WebSocketSendingType { WebSocketSendingTypeText, - WebSocketSendingTypeBin, + WebSocketSendingTypeBinary, }; - Q_ENUM(SAKEnumWebSocketSendingType); + Q_ENUM(WebSocketSendingType); + Q_INVOKABLE static QVariantList supportedWebSocketSendingTypes(); + Q_INVOKABLE static QString webSocketSendingTypeName(int type); public: - enum SAKEmnuSuffixType { - SuffixsTypeNone, - SuffixsTypeR, - SuffixsTypeN, - SuffixsTypeRN, - SuffixsTypeNR + enum ResponseOption { + ResponseOptionDisable, + ResponseOptionEcho, // Response the data that received. + ResponseOptionAlways, // Response the data that set by user when data received. + ResponseOptionInputEqualReference, + ResponseOptionInputContainReference, + ResponseOptionInputDiscontainReference }; - Q_ENUM(SAKEmnuSuffixType); - -public: - enum SAKEnumPrefixType { PrefixTypeNone, PrefixTypeR, PrefixTypeN, PrefixTypeRN, PrefixTypeNR }; - Q_ENUM(SAKEnumPrefixType); - -public: - /** - * @brief setComboBoxTextOutputFormat: Add output text format items to combo box. - * @param comboBox: Targat combo box. - */ - static void setComboBoxTextOutputFormat(QComboBox *comboBox); - - /** - * @brief setComboBoxTextInputFormat: Add input text format items to combo Box. - * @param comboBox: Target combo box. - */ - static void setComboBoxTextInputFormat(QComboBox *comboBox); - - /** - * @brief setComboBoxTextWebSocketSendingType: Add supported types to combo box. - * @param comboBox: Target combo box. - */ - static void setComboBoxTextWebSocketSendingType(QComboBox *comboBox); - - /** - * @brief setLineEditTextFormat: Formating input - * @param lineEdit: Target component - * @param format: (SAKEnumTextInputFormat) - */ - static void setLineEditTextFormat(QLineEdit *lineEdit, TextFormat format); - static void setLineEditTextFormat(QLineEdit *lineEdit, int format); - - static QString suffix(SAKEmnuSuffixType type); - static QString suffix(int type); - static QString friendlySuffix(SAKEmnuSuffixType type); - static QString prefix(int type); - static QString friendlyPrefix(SAKEnumPrefixType type); - static void setupSuffix(QComboBox *comboBox); - - static void formattingInputText(QTextEdit *textEdit, int model); - -private: - static void setComboBoxItems(QComboBox *comboBox, - QMap &formatMap, - int currentData); + Q_ENUM(ResponseOption) + Q_INVOKABLE static QVariantList supportedResponseOptions(); + Q_INVOKABLE static QString responseOptionName(int option); }; diff --git a/Source/Common/Common/xToolsInterface.cpp b/Source/Common/Common/xToolsInterface.cpp index d1c41748..4c3d02f1 100644 --- a/Source/Common/Common/xToolsInterface.cpp +++ b/Source/Common/Common/xToolsInterface.cpp @@ -235,9 +235,7 @@ QByteArray xToolsInterface::arrayToHex(const QByteArray &array, char separator) return hex; } -void xToolsInterface::setLineEditValidator(QLineEdit *lineEdit, - SAKEnumValidatorType type, - int maxLength) +void xToolsInterface::setLineEditValidator(QLineEdit *lineEdit, int type, int maxLength) { QMap regExpMap; regExpMap.insert(ValidatorBin, QRegularExpression("([01][01][01][01][01][01][01][01][ ])*")); diff --git a/Source/Common/Common/xToolsInterface.h b/Source/Common/Common/xToolsInterface.h index 66f093a2..9a95e843 100644 --- a/Source/Common/Common/xToolsInterface.h +++ b/Source/Common/Common/xToolsInterface.h @@ -58,9 +58,7 @@ public: * @param lineEdit: Target line edit. * @param type: See ValidatorType for more information. */ - static void setLineEditValidator(QLineEdit *lineEdit, - SAKEnumValidatorType type, - int maxLength = INT_MAX); + static void setLineEditValidator(QLineEdit *lineEdit, int type, int maxLength = INT_MAX); static void setComboBoxIndexFromSettings(QSettings *settings, QString key, QComboBox *comboBox); static void setSettingsValueFromComboBoxIndex(QSettings *settings, QString key, diff --git a/Source/Common/CommonUI/xToolsResponseOptionComboBox.cpp b/Source/Common/CommonUI/xToolsResponseOptionComboBox.cpp index a1e205ce..2a964b69 100644 --- a/Source/Common/CommonUI/xToolsResponseOptionComboBox.cpp +++ b/Source/Common/CommonUI/xToolsResponseOptionComboBox.cpp @@ -13,15 +13,9 @@ xToolsResponseOptionComboBox::xToolsResponseOptionComboBox(QWidget* parent) : xToolsComboBox(parent) { -#if 0 - addItem(tr("Disable"), SAKDataStructure::ResponseOptionDisable); -#endif - addItem(tr("Echo", "widget", __LINE__), xToolsDataStructure::ResponseOptionEcho); - addItem(tr("Always", "widget", __LINE__), xToolsDataStructure::ResponseOptionAlways); - addItem(tr("RxEqualReference", "widget", __LINE__), - xToolsDataStructure::ResponseOptionInputEqualReference); - addItem(tr("RxContainReference", "widget", __LINE__), - xToolsDataStructure::ResponseOptionInputContainReference); - addItem(tr("RxDiscontainReference", "widget", __LINE__), - xToolsDataStructure::ResponseOptionInputDiscontainReference); + auto options = xToolsDataStructure::supportedResponseOptions(); + for (auto& option : options) { + auto name = xToolsDataStructure::responseOptionName(option.toInt()); + addItem(name, option.toInt()); + } } diff --git a/Source/Common/CommonUI/xToolsWebSocketMessageTypeComboBox.cpp b/Source/Common/CommonUI/xToolsWebSocketMessageTypeComboBox.cpp index 55fd1466..111c3a55 100644 --- a/Source/Common/CommonUI/xToolsWebSocketMessageTypeComboBox.cpp +++ b/Source/Common/CommonUI/xToolsWebSocketMessageTypeComboBox.cpp @@ -8,9 +8,14 @@ **************************************************************************************************/ #include "xToolsWebSocketMessageTypeComboBox.h" +#include "xToolsDataStructure.h" + xToolsWebSocketMessageTypeComboBox::xToolsWebSocketMessageTypeComboBox(QWidget* parent) : xToolsComboBox{parent} { - addItem("Bin", 0); - addItem("Text", 1); + auto types = xToolsDataStructure::supportedWebSocketSendingTypes(); + for (auto &type : types) { + auto name = xToolsDataStructure::webSocketSendingTypeName(type.toInt()); + addItem(name, type.toInt()); + } } diff --git a/Source/ToolBox/ToolBoxUI/xToolsToolBoxUi.cpp b/Source/ToolBox/ToolBoxUI/xToolsToolBoxUi.cpp index b9327c70..46bcd2ac 100644 --- a/Source/ToolBox/ToolBoxUI/xToolsToolBoxUi.cpp +++ b/Source/ToolBox/ToolBoxUI/xToolsToolBoxUi.cpp @@ -192,7 +192,7 @@ void xToolsToolBoxUi::try2send() QByteArray suffixData = xToolsDataStructure::affixesData(suffix); QString input = ui->comboBoxInputText->currentText(); - input = xToolsDataStructure::cookedString(esc, input); + input = xToolsDataStructure::cookEscapeCharacter(esc, input); int format = ui->comboBoxInputFormat->currentData().toInt(); QByteArray bytes = xToolsInterface::string2array(input, format); if (ctx.appendCrc) { @@ -294,8 +294,8 @@ QByteArray xToolsToolBoxUi::calculateCrc(const QByteArray& bytes, bool fixedOrig int format = ui->comboBoxInputFormat->currentData().toInt(); QString input = ui->comboBoxInputText->currentText(); int esc = ctx.escapeCharacter; - - input = xToolsDataStructure::cookedString(esc, input); + + input = xToolsDataStructure::cookEscapeCharacter(esc, input); inputBytes = xToolsInterface::string2array(input, format); } diff --git a/Source/Tools/Tools/xToolsEmitterTool.cpp b/Source/Tools/Tools/xToolsEmitterTool.cpp index 1c9cc141..f3b9ff84 100644 --- a/Source/Tools/Tools/xToolsEmitterTool.cpp +++ b/Source/Tools/Tools/xToolsEmitterTool.cpp @@ -265,7 +265,7 @@ QByteArray xToolsEmitterTool::itemBytes(const xToolsEmitterTool::Data &item) { QByteArray bytes; QString text = item.itemText; - text = xToolsDataStructure::cookedString(item.itemEscapeCharacter, text); + text = xToolsDataStructure::cookEscapeCharacter(item.itemEscapeCharacter, text); bytes = xToolsInterface::string2array(text, item.itemTextFormat); QByteArray prefix = xToolsDataStructure::affixesData(item.itemPrefix); QByteArray suffix = xToolsDataStructure::affixesData(item.itemSuffix); diff --git a/Source/Tools/Tools/xToolsPrestorerTool.cpp b/Source/Tools/Tools/xToolsPrestorerTool.cpp index 0f7af721..0a64a3c5 100644 --- a/Source/Tools/Tools/xToolsPrestorerTool.cpp +++ b/Source/Tools/Tools/xToolsPrestorerTool.cpp @@ -144,7 +144,7 @@ QByteArray xToolsPrestorerTool::itemBytes(const Item &item) { QByteArray bytes; QString text = item.itemText; - text = xToolsDataStructure::cookedString(item.itemEscapeCharacter, text); + text = xToolsDataStructure::cookEscapeCharacter(item.itemEscapeCharacter, text); bytes = xToolsInterface::string2array(text, item.itemTextFormat); xToolsCrcInterface sakCrc; QByteArray prefix = xToolsDataStructure::affixesData(item.itemPrefix); diff --git a/Source/Tools/Tools/xToolsResponserTool.cpp b/Source/Tools/Tools/xToolsResponserTool.cpp index 50c86c85..9f12dc77 100644 --- a/Source/Tools/Tools/xToolsResponserTool.cpp +++ b/Source/Tools/Tools/xToolsResponserTool.cpp @@ -264,7 +264,7 @@ QByteArray xToolsResponserTool::referenceBytes(const ResponserItem &item) const { QByteArray bytes; QString text = item.itemReferenceText; - text = xToolsDataStructure::cookedString(item.itemReferenceEscapeCharacter, text); + text = xToolsDataStructure::cookEscapeCharacter(item.itemReferenceEscapeCharacter, text); bytes = xToolsInterface::string2array(text, item.itemReferenceTextFormat); QByteArray prefix = xToolsDataStructure::affixesData(item.itemReferencePrefix); QByteArray suffix = xToolsDataStructure::affixesData(item.itemReferenceSuffix); @@ -288,7 +288,7 @@ QByteArray xToolsResponserTool::responseBytes(const ResponserItem &item) const { QByteArray bytes; QString text = item.itemResponseText; - text = xToolsDataStructure::cookedString(item.itemResponseEscapeCharacter, text); + text = xToolsDataStructure::cookEscapeCharacter(item.itemResponseEscapeCharacter, text); bytes = xToolsInterface::string2array(text, item.itemResponseTextFormat); QByteArray prefix = xToolsDataStructure::affixesData(item.itemResponsePrefix); QByteArray suffix = xToolsDataStructure::affixesData(item.itemResponseSuffix);