diff options
Diffstat (limited to 'src/serialport/qserialportinfo_unix.cpp')
-rw-r--r-- | src/serialport/qserialportinfo_unix.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/serialport/qserialportinfo_unix.cpp b/src/serialport/qserialportinfo_unix.cpp index 7322a3c..9637581 100644 --- a/src/serialport/qserialportinfo_unix.cpp +++ b/src/serialport/qserialportinfo_unix.cpp @@ -100,7 +100,7 @@ QList<QSerialPortInfo> availablePortsByFiltersOfDevices() foreach (const QString &deviceFilePath, filteredDeviceFilePaths()) { QSerialPortInfoPrivate priv; priv.device = deviceFilePath; - priv.portName = QSerialPortPrivate::portNameFromSystemLocation(deviceFilePath); + priv.portName = QSerialPortInfoPrivate::portNameFromSystemLocation(deviceFilePath); serialPortInfoList.append(priv); } @@ -202,7 +202,7 @@ QList<QSerialPortInfo> availablePortsBySysfs() } priv.portName = targetPath.mid(lastIndexOfSlash + 1); - priv.device = QSerialPortPrivate::portNameToSystemLocation(priv.portName); + priv.device = QSerialPortInfoPrivate::portNameToSystemLocation(priv.portName); serialPortInfoList.append(priv); } @@ -401,4 +401,18 @@ bool QSerialPortInfo::isValid() const return f.exists(); } +QString QSerialPortInfoPrivate::portNameToSystemLocation(const QString &source) +{ + return (source.startsWith(QLatin1Char('/')) + || source.startsWith(QStringLiteral("./")) + || source.startsWith(QStringLiteral("../"))) + ? source : (QStringLiteral("/dev/") + source); +} + +QString QSerialPortInfoPrivate::portNameFromSystemLocation(const QString &source) +{ + return source.startsWith(QStringLiteral("/dev/")) + ? source.mid(5) : source; +} + QT_END_NAMESPACE |