diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-09-19 11:31:21 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-09-19 14:41:26 +0200 |
commit | 66ea339c2e6041ae6d62baa16e9a94204dbe6ee4 (patch) | |
tree | 4ed855b5abf7821f4fbdfbc4ed1d1da8e4179b08 | |
parent | 8aef7bf362b9535f23f8d3f8e50ebc5e1a2f7202 (diff) |
Polish the terminal example
- Fix clang/clazy warnings about QString::arg() multiple arguments,
QList detaching (constFirst())
- Use automatic enum registration for determining settings
- Streamline code, shorten some lines
- Use translated blankString everywhere
Pick-to: 6.4
Change-Id: Icc8d2bb98995efef6eb1de2b6ea2143134abfb47
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r-- | examples/serialport/terminal/mainwindow.cpp | 6 | ||||
-rw-r--r-- | examples/serialport/terminal/settingsdialog.cpp | 53 |
2 files changed, 31 insertions, 28 deletions
diff --git a/examples/serialport/terminal/mainwindow.cpp b/examples/serialport/terminal/mainwindow.cpp index 78bdf371..56cf998d 100644 --- a/examples/serialport/terminal/mainwindow.cpp +++ b/examples/serialport/terminal/mainwindow.cpp @@ -16,7 +16,7 @@ MainWindow::MainWindow(QWidget *parent) : m_ui(new Ui::MainWindow), m_status(new QLabel), m_console(new Console), - m_settings(new SettingsDialog), + m_settings(new SettingsDialog(this)), //! [1] m_serial(new QSerialPort(this)) //! [1] @@ -68,8 +68,8 @@ void MainWindow::openSerialPort() m_ui->actionDisconnect->setEnabled(true); m_ui->actionConfigure->setEnabled(false); showStatusMessage(tr("Connected to %1 : %2, %3, %4, %5, %6") - .arg(p.name).arg(p.stringBaudRate).arg(p.stringDataBits) - .arg(p.stringParity).arg(p.stringStopBits).arg(p.stringFlowControl)); + .arg(p.name, p.stringBaudRate, p.stringDataBits, + p.stringParity, p.stringStopBits, p.stringFlowControl)); } else { QMessageBox::critical(this, tr("Error"), m_serial->errorString()); diff --git a/examples/serialport/terminal/settingsdialog.cpp b/examples/serialport/terminal/settingsdialog.cpp index a3353d02..c949e2cd 100644 --- a/examples/serialport/terminal/settingsdialog.cpp +++ b/examples/serialport/terminal/settingsdialog.cpp @@ -50,13 +50,15 @@ void SettingsDialog::showPortInfo(int idx) if (idx == -1) return; + const QString blankString = tr(::blankString); + const QStringList list = m_ui->serialPortInfoListBox->itemData(idx).toStringList(); - m_ui->descriptionLabel->setText(tr("Description: %1").arg(list.count() > 1 ? list.at(1) : tr(blankString))); - m_ui->manufacturerLabel->setText(tr("Manufacturer: %1").arg(list.count() > 2 ? list.at(2) : tr(blankString))); - m_ui->serialNumberLabel->setText(tr("Serial number: %1").arg(list.count() > 3 ? list.at(3) : tr(blankString))); - m_ui->locationLabel->setText(tr("Location: %1").arg(list.count() > 4 ? list.at(4) : tr(blankString))); - m_ui->vidLabel->setText(tr("Vendor Identifier: %1").arg(list.count() > 5 ? list.at(5) : tr(blankString))); - m_ui->pidLabel->setText(tr("Product Identifier: %1").arg(list.count() > 6 ? list.at(6) : tr(blankString))); + m_ui->descriptionLabel->setText(tr("Description: %1").arg(list.value(1, blankString))); + m_ui->manufacturerLabel->setText(tr("Manufacturer: %1").arg(list.value(2, blankString))); + m_ui->serialNumberLabel->setText(tr("Serial number: %1").arg(list.value(3, blankString))); + m_ui->locationLabel->setText(tr("Location: %1").arg(list.value(4, blankString))); + m_ui->vidLabel->setText(tr("Vendor Identifier: %1").arg(list.value(5, blankString))); + m_ui->pidLabel->setText(tr("Product Identifier: %1").arg(list.value(6, blankString))); } void SettingsDialog::apply() @@ -118,24 +120,25 @@ void SettingsDialog::fillPortsParameters() void SettingsDialog::fillPortsInfo() { m_ui->serialPortInfoListBox->clear(); - QString description; - QString manufacturer; - QString serialNumber; + const QString blankString = tr(::blankString); const auto infos = QSerialPortInfo::availablePorts(); + for (const QSerialPortInfo &info : infos) { QStringList list; - description = info.description(); - manufacturer = info.manufacturer(); - serialNumber = info.serialNumber(); + const QString description = info.description(); + const QString manufacturer = info.manufacturer(); + const QString serialNumber = info.serialNumber(); + const auto vendorId = info.vendorIdentifier(); + const auto productId = info.productIdentifier(); list << info.portName() << (!description.isEmpty() ? description : blankString) << (!manufacturer.isEmpty() ? manufacturer : blankString) << (!serialNumber.isEmpty() ? serialNumber : blankString) << info.systemLocation() - << (info.vendorIdentifier() ? QString::number(info.vendorIdentifier(), 16) : blankString) - << (info.productIdentifier() ? QString::number(info.productIdentifier(), 16) : blankString); + << (vendorId ? QString::number(vendorId, 16) : blankString) + << (productId ? QString::number(productId, 16) : blankString); - m_ui->serialPortInfoListBox->addItem(list.first(), list); + m_ui->serialPortInfoListBox->addItem(list.constFirst(), list); } m_ui->serialPortInfoListBox->addItem(tr("Custom")); @@ -148,25 +151,25 @@ void SettingsDialog::updateSettings() if (m_ui->baudRateBox->currentIndex() == 4) { m_currentSettings.baudRate = m_ui->baudRateBox->currentText().toInt(); } else { - m_currentSettings.baudRate = static_cast<QSerialPort::BaudRate>( - m_ui->baudRateBox->itemData(m_ui->baudRateBox->currentIndex()).toInt()); + const auto baudRateData = m_ui->baudRateBox->currentData(); + m_currentSettings.baudRate = baudRateData.value<QSerialPort::BaudRate>(); } m_currentSettings.stringBaudRate = QString::number(m_currentSettings.baudRate); - m_currentSettings.dataBits = static_cast<QSerialPort::DataBits>( - m_ui->dataBitsBox->itemData(m_ui->dataBitsBox->currentIndex()).toInt()); + const auto dataBitsData = m_ui->dataBitsBox->currentData(); + m_currentSettings.dataBits = dataBitsData.value<QSerialPort::DataBits>(); m_currentSettings.stringDataBits = m_ui->dataBitsBox->currentText(); - m_currentSettings.parity = static_cast<QSerialPort::Parity>( - m_ui->parityBox->itemData(m_ui->parityBox->currentIndex()).toInt()); + const auto parityData = m_ui->parityBox->currentData(); + m_currentSettings.parity = parityData.value<QSerialPort::Parity>(); m_currentSettings.stringParity = m_ui->parityBox->currentText(); - m_currentSettings.stopBits = static_cast<QSerialPort::StopBits>( - m_ui->stopBitsBox->itemData(m_ui->stopBitsBox->currentIndex()).toInt()); + const auto stopBitsData = m_ui->stopBitsBox->currentData(); + m_currentSettings.stopBits = stopBitsData.value<QSerialPort::StopBits>(); m_currentSettings.stringStopBits = m_ui->stopBitsBox->currentText(); - m_currentSettings.flowControl = static_cast<QSerialPort::FlowControl>( - m_ui->flowControlBox->itemData(m_ui->flowControlBox->currentIndex()).toInt()); + const auto flowControlData = m_ui->flowControlBox->currentData(); + m_currentSettings.flowControl = flowControlData.value<QSerialPort::FlowControl>(); m_currentSettings.stringFlowControl = m_ui->flowControlBox->currentText(); m_currentSettings.localEchoEnabled = m_ui->localEchoCheckBox->isChecked(); |