summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2014-11-27 16:18:42 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2014-12-01 16:01:31 +0100
commit8c097b8a5a2b86eeb7b5b075ec30982b9e130b57 (patch)
tree0a377c5aab327762346a2f22f4500c3acf577eeb /examples
parentc56674063f03be35a0202bbc935f310ef9ace0c3 (diff)
Allow to setup custom device in Terminal example
Terminal example allows to select only available devices which are received from QSPI. Now it is possible to enter and to open of any custom device. Change-Id: I83172a346cb5dc0e20c217957133e9e3e506d8a4 Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/serialport/terminal/settingsdialog.cpp34
-rw-r--r--examples/serialport/terminal/settingsdialog.h1
2 files changed, 25 insertions, 10 deletions
diff --git a/examples/serialport/terminal/settingsdialog.cpp b/examples/serialport/terminal/settingsdialog.cpp
index 494cf898..42147e67 100644
--- a/examples/serialport/terminal/settingsdialog.cpp
+++ b/examples/serialport/terminal/settingsdialog.cpp
@@ -41,6 +41,8 @@
QT_USE_NAMESPACE
+static const char blankString[] = QT_TRANSLATE_NOOP("SettingsDialog", "N/A");
+
SettingsDialog::SettingsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::SettingsDialog)
@@ -57,6 +59,8 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
this, SLOT(showPortInfo(int)));
connect(ui->baudRateBox, SIGNAL(currentIndexChanged(int)),
this, SLOT(checkCustomBaudRatePolicy(int)));
+ connect(ui->serialPortInfoListBox, SIGNAL(currentIndexChanged(int)),
+ this, SLOT(checkCustomDevicePathPolicy(int)));
fillPortsParameters();
fillPortsInfo();
@@ -76,15 +80,16 @@ SettingsDialog::Settings SettingsDialog::settings() const
void SettingsDialog::showPortInfo(int idx)
{
- if (idx != -1) {
- QStringList list = ui->serialPortInfoListBox->itemData(idx).toStringList();
- ui->descriptionLabel->setText(tr("Description: %1").arg(list.at(1)));
- ui->manufacturerLabel->setText(tr("Manufacturer: %1").arg(list.at(2)));
- ui->serialNumberLabel->setText(tr("Serial number: %1").arg(list.at(3)));
- ui->locationLabel->setText(tr("Location: %1").arg(list.at(4)));
- ui->vidLabel->setText(tr("Vendor Identifier: %1").arg(list.at(5)));
- ui->pidLabel->setText(tr("Product Identifier: %1").arg(list.at(6)));
- }
+ if (idx == -1)
+ return;
+
+ QStringList list = ui->serialPortInfoListBox->itemData(idx).toStringList();
+ ui->descriptionLabel->setText(tr("Description: %1").arg(list.count() > 1 ? list.at(1) : tr(blankString)));
+ ui->manufacturerLabel->setText(tr("Manufacturer: %1").arg(list.count() > 2 ? list.at(2) : tr(blankString)));
+ ui->serialNumberLabel->setText(tr("Serial number: %1").arg(list.count() > 3 ? list.at(3) : tr(blankString)));
+ ui->locationLabel->setText(tr("Location: %1").arg(list.count() > 4 ? list.at(4) : tr(blankString)));
+ ui->vidLabel->setText(tr("Vendor Identifier: %1").arg(list.count() > 5 ? list.at(5) : tr(blankString)));
+ ui->pidLabel->setText(tr("Product Identifier: %1").arg(list.count() > 6 ? list.at(6) : tr(blankString)));
}
void SettingsDialog::apply()
@@ -104,6 +109,14 @@ void SettingsDialog::checkCustomBaudRatePolicy(int idx)
}
}
+void SettingsDialog::checkCustomDevicePathPolicy(int idx)
+{
+ bool isCustomPath = !ui->serialPortInfoListBox->itemData(idx).isValid();
+ ui->serialPortInfoListBox->setEditable(isCustomPath);
+ if (isCustomPath)
+ ui->serialPortInfoListBox->clearEditText();
+}
+
void SettingsDialog::fillPortsParameters()
{
ui->baudRateBox->addItem(QStringLiteral("9600"), QSerialPort::Baud9600);
@@ -138,7 +151,6 @@ void SettingsDialog::fillPortsParameters()
void SettingsDialog::fillPortsInfo()
{
ui->serialPortInfoListBox->clear();
- static const QString blankString = QObject::tr("N/A");
QString description;
QString manufacturer;
QString serialNumber;
@@ -157,6 +169,8 @@ void SettingsDialog::fillPortsInfo()
ui->serialPortInfoListBox->addItem(list.first(), list);
}
+
+ ui->serialPortInfoListBox->addItem(QStringLiteral("Custom"));
}
void SettingsDialog::updateSettings()
diff --git a/examples/serialport/terminal/settingsdialog.h b/examples/serialport/terminal/settingsdialog.h
index 774ea679..d6c9d5e2 100644
--- a/examples/serialport/terminal/settingsdialog.h
+++ b/examples/serialport/terminal/settingsdialog.h
@@ -79,6 +79,7 @@ private slots:
void showPortInfo(int idx);
void apply();
void checkCustomBaudRatePolicy(int idx);
+ void checkCustomDevicePathPolicy(int idx);
private:
void fillPortsParameters();