From c9ae6cd5a24331c1817f24cd1992146eff74836b Mon Sep 17 00:00:00 2001 From: henry L Date: Mon, 6 Apr 2026 16:48:26 -0500 Subject: [PATCH 1/6] Changed Layout and removed rate displays --- src/Widgets/Dial/Composite.cpp | 8 ++++---- src/Windowing/WidgetsRecreation.cpp | 28 ++++++++++++++-------------- src/Windowing/WidgetsRecreation.hpp | 4 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Widgets/Dial/Composite.cpp b/src/Widgets/Dial/Composite.cpp index a3f1e3b..64a38de 100644 --- a/src/Widgets/Dial/Composite.cpp +++ b/src/Widgets/Dial/Composite.cpp @@ -15,9 +15,9 @@ CompositeDial::CompositeDial(QWidget* parent) this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); this->setLayout(MajorOrganizer); MajorOrganizer->setAlignment(Qt::AlignHCenter); - MajorOrganizer->setAlignment(DialNameLabel, Qt::AlignHCenter | Qt::AlignTop); - MajorOrganizer->addWidget(DialNameLabel, 0, 0, 1, 1); - MajorOrganizer->addWidget(DialRateDuo, 1, 0, 5, 1); + // MajorOrganizer->setAlignment(DialNameLabel, Qt::AlignCenter); + MajorOrganizer->addWidget(DialNameLabel, 0, 0); + MajorOrganizer->addWidget(DialRateDuo, 0, 1); // Set dial-rate combo layout DialRateDuo->setLayout(DuoOrganizer); @@ -30,7 +30,7 @@ CompositeDial::CompositeDial(QWidget* parent) DialNameLabel->setScaledContents(true); DialNameLabel->setFont(DialNameFont); DialNameLabel->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); - DialNameLabel->setAlignment(Qt::AlignHCenter | Qt::AlignTop); + DialNameLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); // Set how the dial-rate combo resizes QSizePolicy expandPolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index 2010607..93d95a2 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -45,7 +45,7 @@ Widgets::Widgets() { SetupAttitudeDials(); // SetupTimeHistoryPlotQChart(); // <- old plot SetupMultiPlot(); // <-new multiplot - SetupAttQtysRatesDisplay(); + // SetupAttQtysRatesDisplay(); // <- No need anymore SetupButtons(); SetupStatusColumn(); SetGridColumnsMinimums(); @@ -68,17 +68,17 @@ void Widgets::resizeEvent(QResizeEvent* event) { void Widgets::SetRoll(double roll) { RollDial->SetDialAngle(roll); - RollQtyRate->SetQuantity(roll); + // RollQtyRate->SetQuantity(roll); } void Widgets::SetPitch(double pitch) { PitchDial->SetDialAngle(pitch); - PitchQtyRate->SetQuantity(pitch); + // PitchQtyRate->SetQuantity(pitch); } void Widgets::SetYaw(double yaw) { YawDial->SetDialAngle(yaw); - YawQtyRate->SetQuantity(yaw); + // YawQtyRate->SetQuantity(yaw); } void Widgets::SetRollRate(double roll) { @@ -112,9 +112,9 @@ void Widgets::SetupCentralWidget() { void Widgets::SetupAttitudeDials() { AttitudeDialRow = new QFrame(MajorContainer); - MajorLayout->addWidget(AttitudeDialRow, 0, 0); + MajorLayout->addWidget(AttitudeDialRow, 0, 1); - AttitudeDialOrganizer = new QHBoxLayout(AttitudeDialRow); + AttitudeDialOrganizer = new QVBoxLayout(AttitudeDialRow); AttitudeDialOrganizer->setContentsMargins(20, 20, 20, 20); AttitudeDialRow->setLayout(AttitudeDialOrganizer); @@ -138,15 +138,15 @@ void Widgets::SetupAttitudeDials() { void Widgets::SetGridColumnsMinimums() { if (!MajorLayout) { return; }; const QRect& dims = centralWidget()->geometry(); - MajorLayout->setColumnMinimumWidth(0, 2 * dims.width() / 3); - MajorLayout->setColumnMinimumWidth(1, dims.width() / 3); + MajorLayout->setColumnMinimumWidth(0, 4 * dims.width() / 5); + MajorLayout->setColumnMinimumWidth(1, 1 * dims.width() / 5); } // void Widgets::SetGridColumnsMinimums() void Widgets::SetGridRowsMinimums() { if (!MajorLayout) { return; } const QRect& dims = centralWidget()->geometry(); - MajorLayout->setRowMinimumHeight(0, dims.height() / 3); - MajorLayout->setRowMinimumHeight(1, 2 * dims.height() / 3); + MajorLayout->setRowMinimumHeight(0, 4 * dims.height() / 5); + MajorLayout->setRowMinimumHeight(1, 1 * dims.height() / 5); } // void Widgets::SetGridRowsMinimums() // Buttons {{{ @@ -172,13 +172,13 @@ void Widgets::SetupButtons() { void Widgets::SetupStatusColumn() { StatusColumn = new QGroupBox(tr("Operate"), this); - MajorLayout->addWidget(StatusColumn, 1, 1); + MajorLayout->addWidget(StatusColumn, 1, 0, 1, 2); QSizePolicy vhexpanding; vhexpanding.setVerticalPolicy(QSizePolicy::MinimumExpanding); vhexpanding.setHorizontalPolicy(QSizePolicy::MinimumExpanding); - StatusColumnOrganizer = new QVBoxLayout(StatusColumn); + StatusColumnOrganizer = new QHBoxLayout(StatusColumn); LoadTestRoutineButton->setSizePolicy(vhexpanding); StatusColumnOrganizer->addWidget(LoadTestRoutineButton); @@ -210,7 +210,7 @@ void Widgets::SetAllButtonTextSize() { void Widgets::SetupMultiPlot() { Plots = new MultiPlotContainer(this, 3); - MajorLayout->addWidget(Plots, 1, 0); + MajorLayout->addWidget(Plots, 0, 0); QList allPlots = Plots->GetPlots(); Plot::AxisInfo axInfo; @@ -274,7 +274,7 @@ void Widgets::SetupTimeHistoryPlotQChart() { void Widgets::SetupAttQtysRatesDisplay() { AttQtysRates = new QtyRateDisplay(tr(""), this); - MajorLayout->addWidget(AttQtysRates, 0, 1); + MajorLayout->addWidget(AttQtysRates, 1, 0); RollQtyRate = new QtyRateRow(tr("Roll"), AttQtysRates); RollQtyRate->SetQuantityUnits("°"); diff --git a/src/Windowing/WidgetsRecreation.hpp b/src/Windowing/WidgetsRecreation.hpp index 3da5513..3167843 100644 --- a/src/Windowing/WidgetsRecreation.hpp +++ b/src/Windowing/WidgetsRecreation.hpp @@ -34,7 +34,7 @@ class Widgets : public QMainWindow { void SetGridRowsMinimums(); QFrame* AttitudeDialRow; - QHBoxLayout* AttitudeDialOrganizer; + QVBoxLayout* AttitudeDialOrganizer; CompositeDial* RollDial; CompositeDial* PitchDial; @@ -56,7 +56,7 @@ class Widgets : public QMainWindow { // im not entirely sure of this part QGroupBox* StatusColumn; - QVBoxLayout* StatusColumnOrganizer; + QHBoxLayout* StatusColumnOrganizer; QPushButton* LoadTestRoutineButton; QPushButton* ArmedButton; QPushButton* QuantityCalculatorButton; From 701a49691731bc51adc2d225d5e063f55e07b811 Mon Sep 17 00:00:00 2001 From: henry L Date: Wed, 8 Apr 2026 16:21:46 -0500 Subject: [PATCH 2/6] Sample Border change between armed and disarmed state --- src/Windowing/WidgetsRecreation.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index 93d95a2..2c71ea6 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -172,6 +172,27 @@ void Widgets::SetupButtons() { void Widgets::SetupStatusColumn() { StatusColumn = new QGroupBox(tr("Operate"), this); + StatusColumn->setObjectName("statusColumn"); + + StatusColumn->setStyleSheet( + "QGroupBox#statusColumn[status='armed'] {" + " border: 2px solid red;" + " border-radius: 5px;" + " margin-top: 20px;" + "}" + "QGroupBox#statusColumn[status='disarmed'] {" + " border: 2px solid Yellow;" + " border-radius: 5px;" + " margin-top: 20px;" + "}" + "QGroupBox#statusColumn::title {" + " subcontrol-origin: margin;" + " subcontrol-position: top left;" + " padding: 0 0px;" + "}" + ); + StatusColumn->setProperty("status", "disarmed"); + MajorLayout->addWidget(StatusColumn, 1, 0, 1, 2); QSizePolicy vhexpanding; @@ -325,11 +346,16 @@ void Widgets::OnArmedButtonPressed() { // Active state - green color ArmedButton->setText(tr("Armed")); ArmedButton->setStyleSheet(" QPushButton { background-color: red; color: white; } } "); + StatusColumn->setProperty("status", "armed"); } else { // Inactive state - default color ArmedButton->setText(tr("Disarmed")); ArmedButton->setStyleSheet(" QPushButton { background-color: Yellow; color: Black; } } "); + StatusColumn->setProperty("status", "disarmed"); } + StatusColumn->style()->unpolish(StatusColumn); + StatusColumn->style()->polish(StatusColumn); + StatusColumn->update(); } // void Widgets::OnArmedButtonPressed() // }}} } // namespace VSCL::FromPpt From b29614129cc2b2b530cb9800953c03b51a017fac Mon Sep 17 00:00:00 2001 From: henry L Date: Mon, 13 Apr 2026 17:40:59 -0500 Subject: [PATCH 3/6] Refractored status collumn border colors to function setGroupBoxStatus for expandability. --- .clangd | 2 +- CMakeLists.txt | 1 + cmake/cpp.cmake | 3 +- src/Widgets/Displays/StatusCollector.cpp | 40 ++++++++++++++++++++++++ src/Widgets/Displays/StatusCollector.hpp | 26 +++++++++++++++ src/Windowing/WidgetsRecreation.cpp | 32 +++++-------------- 6 files changed, 77 insertions(+), 27 deletions(-) create mode 100644 src/Widgets/Displays/StatusCollector.cpp create mode 100644 src/Widgets/Displays/StatusCollector.hpp diff --git a/.clangd b/.clangd index e15f8e6..6401b34 100644 --- a/.clangd +++ b/.clangd @@ -1,4 +1,4 @@ CompileFlags: - Add: [-xc++, -Wall] + Add: [-xc++, -Wall, -std=c++20] Remove: [-mno-direct-extern-access] CompilationDatabase: build diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bfdbdb..c17e6b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,7 @@ project(rig_gui set(CMAKE_EXPORT_COMPILE_COMMANDS true) set(CMAKE_AUTOMOC ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) +set(CMAKE_CXX_STANDARD 20) find_package(Qt6 REQUIRED COMPONENTS Core Gui Qml Quick Widgets QuickWidgets Charts) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") diff --git a/cmake/cpp.cmake b/cmake/cpp.cmake index 5797a34..8bf6d65 100644 --- a/cmake/cpp.cmake +++ b/cmake/cpp.cmake @@ -28,7 +28,8 @@ set(DISPLAYER_SOURCES "${WIDGETS_SRC_DIR}/Displays/QuantitiesRatesDisplay.cpp" "${WIDGETS_SRC_DIR}/Displays/QuantitiesRatesRow.cpp" "${WIDGETS_SRC_DIR}/Displays/RateLabel.cpp" - "${WIDGETS_SRC_DIR}/Displays/MultiPlotContainer.cpp") + "${WIDGETS_SRC_DIR}/Displays/MultiPlotContainer.cpp" + "${WIDGETS_SRC_DIR}/Displays/StatusCollector.cpp") set(WIDGET_SOURCES ${WINDOWING_SOURCES} diff --git a/src/Widgets/Displays/StatusCollector.cpp b/src/Widgets/Displays/StatusCollector.cpp new file mode 100644 index 0000000..5ed692e --- /dev/null +++ b/src/Widgets/Displays/StatusCollector.cpp @@ -0,0 +1,40 @@ +#include "StatusCollector.hpp" + +#include +#include + +namespace VSCL{ + +QString buildStatusStyleSheet(const std::string& objectName, Status status) { + std::string color = StatusColorMap.at(status); + + std::string sheet = std::format( + "QGroupBox#{} {{" + " border: 2px {};" + " border-radius: 5px;" + " margin-top: 20px;" + "}}" + "QGroupBox#statusColumn::title {{" + " subcontrol-origin: margin;" + " subcontrol-position: top left;" + " padding: 0 0px;" + "}}", + objectName, + color + ); + + return QString::fromStdString(sheet); +}; + +void setGroupBoxStatus(QGroupBox *box, Status status) { + const std::string objectName = box->objectName().toStdString(); + QString sheet = buildStatusStyleSheet(objectName, status); + + box->setStyleSheet(sheet); + + box->style()->unpolish(box); + box->style()->polish(box); + box->update(); +} + +} // namespace VSCL \ No newline at end of file diff --git a/src/Widgets/Displays/StatusCollector.hpp b/src/Widgets/Displays/StatusCollector.hpp new file mode 100644 index 0000000..360062d --- /dev/null +++ b/src/Widgets/Displays/StatusCollector.hpp @@ -0,0 +1,26 @@ +#pragma once +#include +#include +#include +#include + +namespace VSCL { +enum class Status { + Armed, // Red + Disarmed, // Yellow + Standby, // Blue + Opened, // Green + Closed // Grey +}; + +static const std::map StatusColorMap = { + {Status::Armed, "solid red"}, + {Status::Disarmed, "solid yellow"}, + {Status::Standby, "solid blue"}, + {Status::Opened, "solid green"}, + {Status::Closed, "solid gray"} +}; + +QString buildStatusStyleSheet(const std::string& objectName, Status status); +void setGroupBoxStatus(QGroupBox* box, Status status); +} // namespace VSCL \ No newline at end of file diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index 2c71ea6..be5925c 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -1,9 +1,11 @@ #include #include #include +#include #include "WidgetsRecreation.hpp" #include "Plotting/Backend/CoreQChart.hpp" +#include "Widgets/Displays/statusCollector.hpp" // stupid temp thing {{{ static void stupid_make_data(VSCL::Plot::EmbeddablePlot2D* plot) { @@ -174,24 +176,7 @@ void Widgets::SetupStatusColumn() { StatusColumn = new QGroupBox(tr("Operate"), this); StatusColumn->setObjectName("statusColumn"); - StatusColumn->setStyleSheet( - "QGroupBox#statusColumn[status='armed'] {" - " border: 2px solid red;" - " border-radius: 5px;" - " margin-top: 20px;" - "}" - "QGroupBox#statusColumn[status='disarmed'] {" - " border: 2px solid Yellow;" - " border-radius: 5px;" - " margin-top: 20px;" - "}" - "QGroupBox#statusColumn::title {" - " subcontrol-origin: margin;" - " subcontrol-position: top left;" - " padding: 0 0px;" - "}" - ); - StatusColumn->setProperty("status", "disarmed"); + setGroupBoxStatus(StatusColumn, Status::Disarmed); MajorLayout->addWidget(StatusColumn, 1, 0, 1, 2); @@ -343,19 +328,16 @@ void Widgets::OnArmedButtonPressed() { bArmedButtonActive = !bArmedButtonActive; if (bArmedButtonActive) { - // Active state - green color + // Armed state - Red ArmedButton->setText(tr("Armed")); ArmedButton->setStyleSheet(" QPushButton { background-color: red; color: white; } } "); - StatusColumn->setProperty("status", "armed"); + setGroupBoxStatus(StatusColumn, Status::Armed); } else { - // Inactive state - default color + // Disarmed state - Yellow ArmedButton->setText(tr("Disarmed")); ArmedButton->setStyleSheet(" QPushButton { background-color: Yellow; color: Black; } } "); - StatusColumn->setProperty("status", "disarmed"); + setGroupBoxStatus(StatusColumn, Status::Disarmed); } - StatusColumn->style()->unpolish(StatusColumn); - StatusColumn->style()->polish(StatusColumn); - StatusColumn->update(); } // void Widgets::OnArmedButtonPressed() // }}} } // namespace VSCL::FromPpt From 77fde844b337672b6bce6dcc65812034549760fa Mon Sep 17 00:00:00 2001 From: henry L Date: Mon, 13 Apr 2026 17:41:25 -0500 Subject: [PATCH 4/6] oops missed one file --- src/Windowing/WidgetsRecreation.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index be5925c..e540a6b 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include "WidgetsRecreation.hpp" #include "Plotting/Backend/CoreQChart.hpp" From db5f75f973b1ce3e6857a74bb786b5bfa54a7bca Mon Sep 17 00:00:00 2001 From: henry L Date: Wed, 15 Apr 2026 16:34:04 -0500 Subject: [PATCH 5/6] Changed Button layout, and added set style sheet for buttons. --- src/Widgets/Displays/StatusCollector.cpp | 27 ++++++++++-- src/Widgets/Displays/StatusCollector.hpp | 23 ++++++---- src/Windowing/WidgetsRecreation.cpp | 56 ++++++++++++------------ src/Windowing/WidgetsRecreation.hpp | 6 +-- 4 files changed, 70 insertions(+), 42 deletions(-) diff --git a/src/Widgets/Displays/StatusCollector.cpp b/src/Widgets/Displays/StatusCollector.cpp index 5ed692e..8ba8af0 100644 --- a/src/Widgets/Displays/StatusCollector.cpp +++ b/src/Widgets/Displays/StatusCollector.cpp @@ -10,7 +10,7 @@ QString buildStatusStyleSheet(const std::string& objectName, Status status) { std::string sheet = std::format( "QGroupBox#{} {{" - " border: 2px {};" + " border: 2px solid {};" " border-radius: 5px;" " margin-top: 20px;" "}}" @@ -24,7 +24,7 @@ QString buildStatusStyleSheet(const std::string& objectName, Status status) { ); return QString::fromStdString(sheet); -}; +} void setGroupBoxStatus(QGroupBox *box, Status status) { const std::string objectName = box->objectName().toStdString(); @@ -37,4 +37,25 @@ void setGroupBoxStatus(QGroupBox *box, Status status) { box->update(); } -} // namespace VSCL \ No newline at end of file +QString buildButtonStyleSheet(Status status) { + std::string color = StatusColorMap.at(status); + + std::string sheet = std::format( + " QPushButton {{ background-color: {}; color: black; }}", + color + ); + + return QString::fromStdString(sheet); +} + +void setButtonStatus(QPushButton* button, Status status) { + QString sheet = buildButtonStyleSheet(status); + + button->setStyleSheet(sheet); + + button->style()->unpolish(button); + button->style()->polish(button); + button->update(); +} + +} // namespace VSCL diff --git a/src/Widgets/Displays/StatusCollector.hpp b/src/Widgets/Displays/StatusCollector.hpp index 360062d..d25c760 100644 --- a/src/Widgets/Displays/StatusCollector.hpp +++ b/src/Widgets/Displays/StatusCollector.hpp @@ -3,24 +3,31 @@ #include #include #include +#include namespace VSCL { enum class Status { Armed, // Red - Disarmed, // Yellow - Standby, // Blue + Disarmed, // White + Standby, // White # true/false of Standby + Active, // Yellow Opened, // Green - Closed // Grey + Closed // Grey }; static const std::map StatusColorMap = { - {Status::Armed, "solid red"}, - {Status::Disarmed, "solid yellow"}, - {Status::Standby, "solid blue"}, - {Status::Opened, "solid green"}, - {Status::Closed, "solid gray"} + {Status::Armed, "red"}, + {Status::Disarmed, "#fbfbfb"}, + {Status::Standby, "yellow"}, + {Status::Active, "#fbfbfb"}, + {Status::Opened, "green"}, + {Status::Closed, "gray"} }; QString buildStatusStyleSheet(const std::string& objectName, Status status); void setGroupBoxStatus(QGroupBox* box, Status status); + +QString buildButtonStyleSheet(Status status); +void setButtonStatus(QPushButton* button, Status status); + } // namespace VSCL \ No newline at end of file diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index e540a6b..9c6e220 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -94,7 +94,6 @@ void Widgets::SetYawRate(double yaw) { YawQtyRate->SetRate(yaw); } - // Layout and Widgets Setup {{{ void Widgets::SetupCentralWidget() { MajorContainer = new QWidget(this); @@ -152,23 +151,24 @@ void Widgets::SetGridRowsMinimums() { // Buttons {{{ void Widgets::SetupButtons() { - LoadTestRoutineButton = new QPushButton(this); - LoadTestRoutineButton->setText(tr("Load Test Routine")); + StandbyIndicator = new QPushButton(this); + StandbyIndicator->setText(tr("Standby")); + setButtonStatus(StandbyIndicator, Status::Standby); - ArmedButton = new QPushButton(this); - ArmedButton->setText(tr("Disarmed")); - ArmedButton->setStyleSheet(" QPushButton { background-color: Yellow; color: Black; } } "); - connect(ArmedButton, &QPushButton::clicked, this, &Widgets::OnArmedButtonPressed); + ArmedIndicator = new QPushButton(this); + ArmedIndicator->setText(tr("Disarmed")); + setButtonStatus(ArmedIndicator, Status::Disarmed); + // connect(ArmedIndicator, &QPushButton::clicked, this, &Widgets::OnArmedButtonPressed); - QuantityCalculatorButton = new QPushButton(this); - QuantityCalculatorButton->setText(tr("Calculate Quantity")); + InitiateButton = new QPushButton(this); + InitiateButton->setText(tr("Initiate")); - LogOpenButton = new QPushButton(this); - LogOpenButton->setText(tr("Open Log")); + // LogOpenButton = new QPushButton(this); + // LogOpenButton->setText(tr("Open Log")); AbortButton = new QPushButton(this); AbortButton->setText(tr("Abort")); - AbortButton->setStyleSheet(" QPushButton { background-color: red } "); + AbortButton->setStyleSheet(" QPushButton { background-color: red ; color: white} "); } // void Widgets::SetupButtons() void Widgets::SetupStatusColumn() { @@ -184,17 +184,17 @@ void Widgets::SetupStatusColumn() { vhexpanding.setHorizontalPolicy(QSizePolicy::MinimumExpanding); StatusColumnOrganizer = new QHBoxLayout(StatusColumn); - LoadTestRoutineButton->setSizePolicy(vhexpanding); - StatusColumnOrganizer->addWidget(LoadTestRoutineButton); + StandbyIndicator->setSizePolicy(vhexpanding); + StatusColumnOrganizer->addWidget(StandbyIndicator); - ArmedButton->setSizePolicy(vhexpanding); - StatusColumnOrganizer->addWidget(ArmedButton); + ArmedIndicator->setSizePolicy(vhexpanding); + StatusColumnOrganizer->addWidget(ArmedIndicator); - QuantityCalculatorButton->setSizePolicy(vhexpanding); - StatusColumnOrganizer->addWidget(QuantityCalculatorButton); + InitiateButton->setSizePolicy(vhexpanding); + StatusColumnOrganizer->addWidget(InitiateButton); - LogOpenButton->setSizePolicy(vhexpanding); - StatusColumnOrganizer->addWidget(LogOpenButton); + // LogOpenButton->setSizePolicy(vhexpanding); + // StatusColumnOrganizer->addWidget(LogOpenButton); AbortButton->setSizePolicy(vhexpanding); StatusColumnOrganizer->addWidget(AbortButton); @@ -204,10 +204,10 @@ void Widgets::SetupStatusColumn() { void Widgets::SetAllButtonTextSize() { ButtonFont.setPixelSize(ButtonFontAdjustment.AdjustPxSize(window())); - LoadTestRoutineButton->setFont(ButtonFont); - ArmedButton->setFont(ButtonFont); - QuantityCalculatorButton->setFont(ButtonFont); - LogOpenButton->setFont(ButtonFont); + StandbyIndicator->setFont(ButtonFont); + ArmedIndicator->setFont(ButtonFont); + InitiateButton->setFont(ButtonFont); + // LogOpenButton->setFont(ButtonFont); AbortButton->setFont(ButtonFont); StatusColumn->setFont(ButtonFont); } // void Widgets::SetAllButtonTextSize() @@ -328,13 +328,13 @@ void Widgets::OnArmedButtonPressed() { if (bArmedButtonActive) { // Armed state - Red - ArmedButton->setText(tr("Armed")); - ArmedButton->setStyleSheet(" QPushButton { background-color: red; color: white; } } "); + ArmedIndicator->setText(tr("Armed")); + setButtonStatus(ArmedIndicator, Status::Armed); setGroupBoxStatus(StatusColumn, Status::Armed); } else { // Disarmed state - Yellow - ArmedButton->setText(tr("Disarmed")); - ArmedButton->setStyleSheet(" QPushButton { background-color: Yellow; color: Black; } } "); + ArmedIndicator->setText(tr("Disarmed")); + setButtonStatus(ArmedIndicator, Status::Disarmed); setGroupBoxStatus(StatusColumn, Status::Disarmed); } } // void Widgets::OnArmedButtonPressed() diff --git a/src/Windowing/WidgetsRecreation.hpp b/src/Windowing/WidgetsRecreation.hpp index 3167843..cd6a148 100644 --- a/src/Windowing/WidgetsRecreation.hpp +++ b/src/Windowing/WidgetsRecreation.hpp @@ -57,9 +57,9 @@ class Widgets : public QMainWindow { // im not entirely sure of this part QGroupBox* StatusColumn; QHBoxLayout* StatusColumnOrganizer; - QPushButton* LoadTestRoutineButton; - QPushButton* ArmedButton; - QPushButton* QuantityCalculatorButton; + QPushButton* StandbyIndicator; + QPushButton* ArmedIndicator; + QPushButton* InitiateButton; QPushButton* LogOpenButton; QPushButton* AbortButton; bool bArmedButtonActive = false; // Track armed button state From 5fd8e1cd8afa9bcf931995e9402aa3a6e501949d Mon Sep 17 00:00:00 2001 From: henry L Date: Wed, 15 Apr 2026 16:36:23 -0500 Subject: [PATCH 6/6] oops --- src/Widgets/Displays/StatusCollector.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Widgets/Displays/StatusCollector.hpp b/src/Widgets/Displays/StatusCollector.hpp index d25c760..4e7defe 100644 --- a/src/Widgets/Displays/StatusCollector.hpp +++ b/src/Widgets/Displays/StatusCollector.hpp @@ -18,8 +18,8 @@ enum class Status { static const std::map StatusColorMap = { {Status::Armed, "red"}, {Status::Disarmed, "#fbfbfb"}, - {Status::Standby, "yellow"}, - {Status::Active, "#fbfbfb"}, + {Status::Standby, "#fbfbfb"}, + {Status::Active, "yellow"}, {Status::Opened, "green"}, {Status::Closed, "gray"} };