#ifndef WIDGET_H #define WIDGET_H #include class CdcUpdater; class QSerialPortInfo; class QLineEdit; class QPushButton; class QProgressBar; class QLabel; class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = nullptr); ~Widget(); void start(); protected: void onCdcDeviceDiscovered(const QSerialPortInfo &info); void onSelectButtonClicked(); void onUpdateFinished(); void dragEnterEvent(QDragEnterEvent *event) final; void dropEvent(QDropEvent *event) final; void setControlsEnabled(bool enabled); void setProgress(int32_t progress); void setMessage(const QString &message); private: QLineEdit *m_fileEditor = nullptr; QPushButton *m_selectButton = nullptr; QPushButton *m_startButton = nullptr; std::shared_ptr m_updater; bool m_updating = false; QProgressBar *m_progressBar = nullptr; QLabel *m_messageLabel = nullptr; }; #endif // WIDGET_H