// Copyright (C) 2018 Benjamin Balga // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include #include #include namespace SerialTerminal { namespace Internal { class SerialDeviceModel : public QAbstractListModel { Q_OBJECT public: explicit SerialDeviceModel(QObject *parent = nullptr); QString portName(int index) const; QStringList baudRates() const; qint32 baudRate(int index) const; int indexForBaudRate(qint32 baudRate) const; void disablePort(const QString &portName); void enablePort(const QString &portName); int indexForPort(const QString &portName) const; void update(); Qt::ItemFlags flags(const QModelIndex &index) const final; int rowCount(const QModelIndex &parent) const final; QVariant data(const QModelIndex &index, int role) const final; private: QList m_ports; QSet m_disabledPorts; QList m_baudRates; }; } // namespace Internal } // namespace SerialTerminal