Changeset - 420befa2304c
[Not reviewed]
default
0 2 0
Hasan Yavuz Ă–ZDERYA - 10 years ago 2015-05-26 06:57:24
hy@ozderya.net
keep user entered port names in the port list
2 files changed with 25 insertions and 0 deletions:
0 comments (0 inline, 0 general)
portcontrol.cpp
Show inline comments
 
@@ -42,6 +42,10 @@ PortControl::PortControl(QSerialPort* po
 
                     SELECT<const QString&>::OVERLOAD_OF(&QComboBox::activated),
 
                     this, &PortControl::selectPort);
 

	
 
    QObject::connect(ui->cbPortList,
 
                     SELECT<const QString&>::OVERLOAD_OF(&QComboBox::activated),
 
                     this, &PortControl::onPortNameChanged);
 

	
 
    QObject::connect(ui->cbBaudRate,
 
                     SELECT<const QString&>::OVERLOAD_OF(&QComboBox::activated),
 
                     this, &PortControl::selectBaudRate);
 
@@ -105,11 +109,15 @@ void PortControl::loadPortList()
 

	
 
    ui->cbPortList->clear();
 

	
 
    discoveredPorts.clear();
 
    for (auto port : QSerialPortInfo::availablePorts())
 
    {
 
        ui->cbPortList->addItem(port.portName());
 
        discoveredPorts << port.portName();
 
    }
 

	
 
    ui->cbPortList->addItems(userEnteredPorts);
 

	
 
    // find current selection in the new list, maybe it doesn't exist anymore?
 
    int currentSelectionIndex = ui->cbPortList->findText(currentSelection);
 
    if (currentSelectionIndex >= 0)
 
@@ -245,3 +253,13 @@ void PortControl::enableSkipByte(bool en
 
{
 
    ui->pbSkipByte->setDisabled(enabled);
 
}
 

	
 
void PortControl::onPortNameChanged(QString portName)
 
{
 
    // was this a user entered name?
 
    if(!discoveredPorts.contains(portName) &&
 
       !userEnteredPorts.contains(portName))
 
    {
 
        userEnteredPorts << portName;
 
    }
 
}
portcontrol.h
Show inline comments
 
@@ -23,6 +23,7 @@
 
#include <QWidget>
 
#include <QButtonGroup>
 
#include <QSerialPort>
 
#include <QStringList>
 

	
 
namespace Ui {
 
class PortControl;
 
@@ -46,6 +47,9 @@ private:
 
    QButtonGroup stopBitsButtons;
 
    QButtonGroup flowControlButtons;
 

	
 
    QStringList discoveredPorts; // list of port names returned by availablePorts
 
    QStringList userEnteredPorts; // list of port names entered by user
 

	
 
public slots:
 
    void loadPortList();
 
    void loadBaudRateList();
 
@@ -59,6 +63,9 @@ public slots:
 
    void selectStopBits(int stopBits); // stopBits must be one of QSerialPort::StopBits
 
    void selectFlowControl(int flowControl); // flowControl must be one of QSerialPort::FlowControl
 

	
 
private slots:
 
    void onPortNameChanged(QString portName);
 

	
 
signals:
 
    void skipByteRequested();
 
    void portToggled(bool open);
0 comments (0 inline, 0 general)