diff --git a/channelwidget.cpp b/channelwidget.cpp index ce2366a..5615280 100644 --- a/channelwidget.cpp +++ b/channelwidget.cpp @@ -3,6 +3,7 @@ #include "channelwidget.h" #include +#include ChannelWidget::ChannelWidget(uint16_t deviceSerial, uint16_t channelNumber, struct eismultiplexer* multiplexer, QWidget *parent) @@ -36,13 +37,19 @@ void ChannelWidget::onChannelToggled(bool checked) channel_t channelFlag = static_cast(1 << channelNumber); if (checked) { if (eismultiplexer_connect_channel(multiplexer, channelFlag) < 0) { + QMessageBox::warning(this, tr("Connection Failed"), + tr("Failed to connect channel %1 on device %2").arg(channelNumber).arg(deviceSerial)); qWarning() << "Failed to connect channel" << channelNumber << "on device" << deviceSerial; checkbox->setChecked(false); + setEnabled(false); // Gray out the widget } } else { if (eismultiplexer_disconnect_channel(multiplexer, channelFlag) < 0) { + QMessageBox::warning(this, tr("Disconnection Failed"), + tr("Failed to disconnect channel %1 on device %2").arg(channelNumber).arg(deviceSerial)); qWarning() << "Failed to disconnect channel" << channelNumber << "on device" << deviceSerial; checkbox->setChecked(true); + setEnabled(false); // Gray out the widget } } } diff --git a/channelwidget.h b/channelwidget.h index b3c5191..02f427d 100644 --- a/channelwidget.h +++ b/channelwidget.h @@ -27,7 +27,7 @@ private: uint16_t channelNumber; struct eismultiplexer* multiplexer; QCheckBox* checkbox; - QLabel* label; + QLabel* label; // No need for tr() function, QObject already provides it }; #endif // CHANNELWIDGET_H diff --git a/mainwindow.cpp b/mainwindow.cpp index a6da879..38a0796 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -2,6 +2,7 @@ #include "mainwindow.h" #include +#include #include MainWindow::MainWindow(QWidget *parent) @@ -48,7 +49,9 @@ void MainWindow::enumerateDevices() size_t count = 0; uint16_t* serials = eismultiplexer_list_available_devices(&count); - if (!serials) { + if (!serials || count == 0) { + QMessageBox::warning(this, tr("No Devices Found"), + tr("No EIS multiplexer devices were found. Please connect a device and try again.")); qWarning() << "No EIS multiplexer devices found"; return; } @@ -67,6 +70,8 @@ void MainWindow::enumerateDevices() } eismultiplexer_disconnect(&multiplexer); } else { + QMessageBox::warning(this, tr("Connection Failed"), + tr("Failed to connect to device with serial %1").arg(serial)); qWarning() << "Failed to connect to device with serial" << serial; } } diff --git a/mainwindow.h b/mainwindow.h index c4d297b..999d9fd 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -22,6 +22,8 @@ public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow() override; + // No need for tr() function, QObject already provides it + private: void enumerateDevices(); void setupUi();