diff --git a/include/botui/AboutWidget.h b/include/botui/AboutWidget.h index 8dd4b41f..16c42e63 100644 --- a/include/botui/AboutWidget.h +++ b/include/botui/AboutWidget.h @@ -19,6 +19,7 @@ class AboutWidget : public StandardWidget bool getEventModeState(); void setEventModeState(QString newState); + QString getRaspberryPiType(); signals: void eventModeEnabled(); diff --git a/src/AboutWidget.cpp b/src/AboutWidget.cpp index 8444147f..c063bfbf 100644 --- a/src/AboutWidget.cpp +++ b/src/AboutWidget.cpp @@ -18,16 +18,21 @@ AboutWidget::AboutWidget(Device *device, QWidget *parent) // Setup the UI performStandardSetup(tr("About")); - //Set up emission signals for Event Mode enabled/disabled + // Set up emission signals for Event Mode enabled/disabled setupConnections(this); - //Event Mode persistent state check + // Event Mode persistent state check bool eventModeState = getEventModeState(); - if(eventModeState){ + if (eventModeState) + { eventModeBackground(2); } - + + QString piType = getRaspberryPiType(); + + ui->piType->setText(piType); + const bool on = NetworkManager::ref().isOn(); // Version Number ui->version->setText(device->name() + " v" + device->version()); @@ -96,6 +101,42 @@ AboutWidget::~AboutWidget() delete ui; } +QString AboutWidget::getRaspberryPiType() +{ + QProcess process; + QString command = "awk '/Revision/ {print $3}' /proc/cpuinfo"; // Corrected command syntax + + process.start("bash", QStringList() << "-c" << command); + process.waitForFinished(); + QByteArray output = process.readAllStandardOutput(); // Fixed this line to use process directly + + QString piType; + if (process.exitStatus() == QProcess::NormalExit && process.exitCode() == 0) // Check exit code + { + qDebug() << "Successfully got Raspberry Pi Type:" << output.trimmed(); // Trim output to remove whitespace + + + if(output.trimmed() == "a020d3" || output.trimmed() == "a020d4") + { + piType = "3B+"; + } + else if(output.trimmed() == "a02082" || output.trimmed() == "a22082" || output.trimmed() == "a32082" || output.trimmed() == "a52082" || output.trimmed() == "a22083") + { + piType = "3B"; + } + else + { + piType = "Unknown"; + } + } + else + { + qDebug() << "Failed to get Raspberry Pi type. Exit Code:" << process.exitCode(); + } + + return piType; // Convert QByteArray to QString and trim +} + bool AboutWidget::getEventModeState() { QProcess eventModeProcess; @@ -152,7 +193,7 @@ void AboutWidget::eventModeBackground(int checked) ui->toggleSwitch->setEnabled(false); - if (checked == 2) //Enable Event Mode + if (checked == 2) // Enable Event Mode { setEventModeState("true"); @@ -160,13 +201,12 @@ void AboutWidget::eventModeBackground(int checked) NetworkManager::ref().deactivateAP(); ui->toggleSwitch->setEnabled(true); } - else //Disable Event Mode + else // Disable Event Mode { setEventModeState("false"); emit eventModeDisabled(); NetworkManager::ref().enableAP(); ui->toggleSwitch->setEnabled(true); - } } diff --git a/ui/AboutWidget.ui b/ui/AboutWidget.ui index b6710f7a..bf326af3 100644 --- a/ui/AboutWidget.ui +++ b/ui/AboutWidget.ui @@ -80,35 +80,6 @@ - - - - - 0 - 0 - - - - - Sans - 14 - false - false - - - - QLabel{ - background-color: transparent; -} - - - Version 30.0 - - - Qt::AlignCenter - - - @@ -128,6 +99,111 @@ + + + + 0 + + + 200 + + + 150 + + + + + + 0 + 0 + + + + + 160 + 16777215 + + + + + Sans + 14 + false + false + + + + QLabel{ + background-color: transparent; +} + + + Version 30.0 + + + Qt::AlignCenter + + + + + + + + 20 + 16777215 + + + + + 14 + + + + - + + + Qt::AlignCenter + + + + + + + + 125 + 16777215 + + + + + 14 + + + + Raspberry Pi: + + + + + + + + 100 + 16777215 + + + + + 14 + + + + + + + + +