From c9ae6cd5a24331c1817f24cd1992146eff74836b Mon Sep 17 00:00:00 2001 From: henry L Date: Mon, 6 Apr 2026 16:48:26 -0500 Subject: [PATCH 01/18] 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 02/18] 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 03/18] 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 04/18] 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 05/18] 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 06/18] 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"} }; From 35ec8770b2d0500467e04270f246aa706672287e Mon Sep 17 00:00:00 2001 From: henry L Date: Wed, 15 Apr 2026 16:39:25 -0500 Subject: [PATCH 07/18] oops x2 --- src/Windowing/WidgetsRecreation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index 9c6e220..71696da 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -158,7 +158,7 @@ void Widgets::SetupButtons() { ArmedIndicator = new QPushButton(this); ArmedIndicator->setText(tr("Disarmed")); setButtonStatus(ArmedIndicator, Status::Disarmed); - // connect(ArmedIndicator, &QPushButton::clicked, this, &Widgets::OnArmedButtonPressed); + connect(ArmedIndicator, &QPushButton::clicked, this, &Widgets::OnArmedButtonPressed); InitiateButton = new QPushButton(this); InitiateButton->setText(tr("Initiate")); From 2ec449e3ebd852e2685e6cd9de0dbd4767291289 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 20 Apr 2026 14:05:48 -0500 Subject: [PATCH 08/18] Case sensitivity in header incl --- src/Windowing/WidgetsRecreation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index 9c6e220..f01ecc9 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -4,7 +4,7 @@ #include "WidgetsRecreation.hpp" #include "Plotting/Backend/CoreQChart.hpp" -#include "Widgets/Displays/statusCollector.hpp" +#include "Widgets/Displays/StatusCollector.hpp" // stupid temp thing {{{ static void stupid_make_data(VSCL::Plot::EmbeddablePlot2D* plot) { From d85f0ea440faef0e7e6b480038ab8f2c7294f4df Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 20 Apr 2026 14:12:14 -0500 Subject: [PATCH 09/18] Introduce linting --- .clang-tidy | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .clang-tidy diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..e6a2fa9 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,18 @@ +Checks: "readability-identifier-naming" +HeaderFileExtensions: ["hpp"] +ImplementationFileExtensions: ["cpp"] +HeaderFilterRegex: "(src)" +ExcludeHeaderFilterRegex: "(_deps)" +CheckOptions: + readability-identifier-naming.ClassCase: CamelCase + readability-identifier-naming.StructCase: CamelCase + readability-identifier-naming.FunctionCase: CamelCase + readability-identifier-naming.MethodCase: CamelCase + readability-identifier-naming.MemberCase: CamelCase + + readability-identifier-naming.ParameterCase: lower_case + readability-identifier-naming.MacroDefinitionCase: UPPER_CASE + readability-identifier-naming.GlobalConstantCase: UPPER_CASE + readability-identifier-naming.GlobalConstantPointerCase: UPPER_CASE + readability-identifier-naming.EnumCase: UPPER_CASE + readability-identifier-naming.EnumConstantCase: UPPER_CASE From a05951a4e9beb3f5208150be0d26682ca494e2ca Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 20 Apr 2026 14:45:43 -0500 Subject: [PATCH 10/18] Enforce linting --- src/Plotting/Appearance.hpp | 10 ++--- src/Plotting/Axes.hpp | 20 +++++----- src/Plotting/Backend/CoreQChart.cpp | 26 ++++++------ src/Plotting/Backend/CoreQChart.hpp | 4 +- src/Plotting/Plot2D.cpp | 24 +++++------ src/Plotting/Plot2D.hpp | 16 ++++---- src/Plotting/Series.hpp | 2 +- src/Util/Filesystem/UserPaths.cpp | 2 +- src/Util/Filesystem/UserPaths.hpp | 8 ++-- src/Util/Sizing.hpp | 12 +++--- src/Widgets/Dial/Attitude.cpp | 14 +++---- src/Widgets/Dial/Attitude.hpp | 16 ++++---- .../Displays/QuantitiesRatesDisplay.cpp | 2 +- .../Displays/QuantitiesRatesDisplay.hpp | 2 +- src/Widgets/Displays/QuantitiesRatesRow.cpp | 14 +++---- src/Widgets/Displays/QuantitiesRatesRow.hpp | 8 ++-- src/Widgets/Displays/StatusCollector.cpp | 18 ++++----- src/Widgets/Displays/StatusCollector.hpp | 36 ++++++++--------- src/Windowing/DevWindow.cpp | 10 ++--- src/Windowing/DevWindow.hpp | 8 ++-- src/Windowing/NumericTestWidget.cpp | 4 +- src/Windowing/NumericTestWidget.hpp | 2 +- src/Windowing/WidgetsRecreation.cpp | 40 +++++++++---------- src/Windowing/WidgetsRecreation.hpp | 2 +- test/fs.cpp | 4 +- 25 files changed, 152 insertions(+), 152 deletions(-) diff --git a/src/Plotting/Appearance.hpp b/src/Plotting/Appearance.hpp index 678e0dd..78982b5 100644 --- a/src/Plotting/Appearance.hpp +++ b/src/Plotting/Appearance.hpp @@ -10,15 +10,15 @@ namespace VSCL::Plot { // Normalized in RGB space. typedef std::array ColorRGB; -static const std::map StandardColor = { +static const std::map STANDARD_COLOR = { { "Red", ColorRGB{ 1.0, 0.0, 0.0 } }, { "Green", ColorRGB{ 0.0, 1.0, 0.0 } }, { "Blue", ColorRGB{ 0.0, 0.0, 1.0 } }, }; -enum class LineStyle : uint8_t { - Solid = 1, - Dashed = 2, - Dotted = 3, +enum class LINE_STYLE : uint8_t { + SOLID = 1, + DASHED = 2, + DOTTED = 3, }; } // namespace VSCL::Plot diff --git a/src/Plotting/Axes.hpp b/src/Plotting/Axes.hpp index d9dea03..431c797 100644 --- a/src/Plotting/Axes.hpp +++ b/src/Plotting/Axes.hpp @@ -6,21 +6,21 @@ namespace VSCL::Plot { -enum class Axis : std::uint8_t { - Time = 0, - Quantity = 1, +enum class AXIS : std::uint8_t { + TIME = 0, + QUANTITY = 1, }; -enum class AxisScaling : std::uint8_t { - Linear = 0, - Log10 = 1, - Ln = 2, - Inverted = 3 +enum class AXIS_SCALING : std::uint8_t { + LINEAR = 0, + LOG10 = 1, + LN = 2, + INVERTED = 3 }; struct AxisInfo { - Axis InfoOf; - AxisScaling Scaling = AxisScaling::Linear; + AXIS InfoOf; + AXIS_SCALING Scaling = AXIS_SCALING::LINEAR; std::array Range = { 0.0, 1.0 }; double MajorSpacing = 1; diff --git a/src/Plotting/Backend/CoreQChart.cpp b/src/Plotting/Backend/CoreQChart.cpp index 736fac8..6ab8ef2 100644 --- a/src/Plotting/Backend/CoreQChart.cpp +++ b/src/Plotting/Backend/CoreQChart.cpp @@ -20,7 +20,7 @@ PlotQChart::PlotQChart(QWidget* parent) LogTimeAxisQt->setLinePenColor(QColorConstants::Black); LogTimeAxisQt->setLabelFormat("%g"); LogTimeAxisQt->setGridLineVisible(false); - SetAxis(Axis::Time, GetAxisInfoView(Axis::Time)); + SetAxis(AXIS::TIME, GetAxisInfoView(AXIS::TIME)); PlotChart->addAxis(QuantityAxisQt, Qt::AlignLeft); QuantityAxisQt->setLinePenColor(QColorConstants::Black); @@ -30,7 +30,7 @@ PlotQChart::PlotQChart(QWidget* parent) LogQuantityAxisQt->setLinePenColor(QColorConstants::Black); LogQuantityAxisQt->setLabelFormat("%g"); LogQuantityAxisQt->setGridLineVisible(false); - SetAxis(Axis::Quantity, GetAxisInfoView(Axis::Quantity)); + SetAxis(AXIS::QUANTITY, GetAxisInfoView(AXIS::QUANTITY)); PlotChart->legend()->setVisible(false); PlotChart->setTheme(QChart::ChartThemeLight); @@ -45,7 +45,7 @@ PlotQChart::~PlotQChart() { delete PlotChart; } -void PlotQChart::SetAxis(const Axis axis, const AxisInfo& info) { +void PlotQChart::SetAxis(const AXIS axis, const AxisInfo& info) { EmbeddablePlot2D::SetAxis(axis, info); const AxisInfo& ax = GetAxisInfoView(axis); @@ -55,11 +55,11 @@ void PlotQChart::SetAxis(const Axis axis, const AxisInfo& info) { double lobd = ax.Range[0]; switch (axis) { - case Axis::Time: + case AXIS::TIME: axlinqt = TimeAxisQt; axlogqt = LogTimeAxisQt; break; - case Axis::Quantity: + case AXIS::QUANTITY: default: axlinqt = QuantityAxisQt; axlogqt = LogQuantityAxisQt; @@ -69,7 +69,7 @@ void PlotQChart::SetAxis(const Axis axis, const AxisInfo& info) { if (!axlinqt || !axlogqt) { return; }; switch (ax.Scaling) { - case AxisScaling::Log10: + case AXIS_SCALING::LOG10: axlinqt->setVisible(false); axlogqt->setVisible(); @@ -79,7 +79,7 @@ void PlotQChart::SetAxis(const Axis axis, const AxisInfo& info) { axqt = axlogqt; break; - case AxisScaling::Ln: + case AXIS_SCALING::LN: axlinqt->setVisible(false); axlogqt->setVisible(); @@ -89,7 +89,7 @@ void PlotQChart::SetAxis(const Axis axis, const AxisInfo& info) { axqt = axlogqt; break; - case AxisScaling::Linear: + case AXIS_SCALING::LINEAR: default: axlogqt->setVisible(false); axlinqt->setVisible(); @@ -135,13 +135,13 @@ void PlotQChart::Plot() { serie->setColor(QColor::fromRgbF(color[0], color[1], color[2], 1.0)); switch (sinfo.Style) { - case LineStyle::Dashed: + case LINE_STYLE::DASHED: std::cerr << "Dashed lines not implemented for Qt Charts.\n"; break; - case LineStyle::Dotted: + case LINE_STYLE::DOTTED: std::cerr << "Dotted lines not implemented for Qt Charts.\n"; break; - case LineStyle::Solid: + case LINE_STYLE::SOLID: default: break; } @@ -160,8 +160,8 @@ void PlotQChart::AddSeries() { AddSeries({ }); } -void PlotQChart::AddSeries(const SeriesInfo& newInfo) { - EmbeddablePlot2D::AddSeries(newInfo); +void PlotQChart::AddSeries(const SeriesInfo& new_info) { + EmbeddablePlot2D::AddSeries(new_info); QLineSeries* newSeries = new QLineSeries(PlotChart); PlotChart->addSeries(newSeries); diff --git a/src/Plotting/Backend/CoreQChart.hpp b/src/Plotting/Backend/CoreQChart.hpp index 9ee46c1..fc956d6 100644 --- a/src/Plotting/Backend/CoreQChart.hpp +++ b/src/Plotting/Backend/CoreQChart.hpp @@ -17,13 +17,13 @@ class QCHART_BACKEND PlotQChart : virtual public EmbeddablePlot2D { PlotQChart(QWidget* parent); virtual ~PlotQChart(); - virtual void SetAxis(const Axis axis, const AxisInfo& info) override; + virtual void SetAxis(const AXIS axis, const AxisInfo& info) override; virtual void SetTitle(const std::string& title) override; virtual void Plot() override; virtual void EraseAllData() override; virtual void AddSeries() override; - virtual void AddSeries(const SeriesInfo& newInfo) override; + virtual void AddSeries(const SeriesInfo& new_info) override; private: QChart* PlotChart; diff --git a/src/Plotting/Plot2D.cpp b/src/Plotting/Plot2D.cpp index 7364a3b..2f6632f 100644 --- a/src/Plotting/Plot2D.cpp +++ b/src/Plotting/Plot2D.cpp @@ -12,11 +12,11 @@ void EmbeddablePlot2D::AddPoint(uint8_t idx, double time, double quantity, bool oldTime.push_back(time); oldQty.push_back(quantity); - Plot::AxisInfo axInfo = this->GetAxisInfoView(Plot::Axis::Time); + Plot::AxisInfo axInfo = this->GetAxisInfoView(Plot::AXIS::TIME); double maxTime = oldTime.back(); double minTime = std::max(0.0, maxTime - 10.0); axInfo.Range = { minTime, minTime + 10.0 }; - SetAxis(Plot::Axis::Time, axInfo); + SetAxis(Plot::AXIS::TIME, axInfo); if (update) Plot(); } @@ -43,12 +43,12 @@ void EmbeddablePlot2D::AddPoints( const std::vector& times, const std::vector& quantities, bool update) { AddPoints(0, times, quantities, update); } -void EmbeddablePlot2D::SetAxis(const Axis axis, const AxisInfo& info) { +void EmbeddablePlot2D::SetAxis(const AXIS axis, const AxisInfo& info) { switch (axis) { - case Axis::Time: + case AXIS::TIME: TimeAxis = info; break; - case Axis::Quantity: + case AXIS::QUANTITY: QuantityAxis = info; break; } @@ -69,12 +69,12 @@ void EmbeddablePlot2D::EraseAllData() { Plot(); } -const AxisInfo& EmbeddablePlot2D::GetAxisInfoView(Axis axis) const { +const AxisInfo& EmbeddablePlot2D::GetAxisInfoView(AXIS axis) const { switch (axis) { - case Axis::Time: + case AXIS::TIME: return TimeAxis; break; - case Axis::Quantity: + case AXIS::QUANTITY: default: return QuantityAxis; break; @@ -89,7 +89,7 @@ void EmbeddablePlot2D::AddSeries(std::string& name) { Series.push_back(serie); Plot(); } -void EmbeddablePlot2D::AddSeries(const SeriesInfo& newInfo) { Series.push_back(newInfo); Plot(); }; +void EmbeddablePlot2D::AddSeries(const SeriesInfo& new_info) { Series.push_back(new_info); Plot(); }; SeriesInfo EmbeddablePlot2D::GetSeriesByName(std::string& name) { for (const SeriesInfo& serie : Series) { @@ -113,10 +113,10 @@ const SeriesInfo& EmbeddablePlot2D::GetSeriesViewByName(std::string& name) const return Series[0]; } -void EmbeddablePlot2D::SetSeries(std::string& name, SeriesInfo& newInfo) { +void EmbeddablePlot2D::SetSeries(std::string& name, SeriesInfo& new_info) { for (SeriesInfo& serie : Series) { if (serie.Name == name) { - serie = newInfo; + serie = new_info; return; } } @@ -124,7 +124,7 @@ void EmbeddablePlot2D::SetSeries(std::string& name, SeriesInfo& newInfo) { std::cout << "Warning: Series of name " << name << " not found. Doing nothing.\n"; } -void EmbeddablePlot2D::SetSeries(uint8_t idx, SeriesInfo& newInfo) { Series[idx] = newInfo; } +void EmbeddablePlot2D::SetSeries(uint8_t idx, SeriesInfo& new_info) { Series[idx] = new_info; } void EmbeddablePlot2D::RemoveSeries(uint8_t idx) { Series.erase(Series.begin() + idx); } void EmbeddablePlot2D::RemoveSeries(std::string& name) { diff --git a/src/Plotting/Plot2D.hpp b/src/Plotting/Plot2D.hpp index 9ce5a39..67c5982 100644 --- a/src/Plotting/Plot2D.hpp +++ b/src/Plotting/Plot2D.hpp @@ -27,7 +27,7 @@ class PLOT_API EmbeddablePlot2D : virtual public QWidget { void AddPoints(const std::vector& times, const std::vector& quantities, bool update = false); // Set axis properites based on the struct - virtual void SetAxis(const Axis axis, const AxisInfo& info); + virtual void SetAxis(const AXIS axis, const AxisInfo& info); // Set the main title virtual void SetTitle(const std::string& title); @@ -38,7 +38,7 @@ class PLOT_API EmbeddablePlot2D : virtual public QWidget { // Clear data that was being stored. virtual void EraseAllData(); - const AxisInfo& GetAxisInfoView(Axis axis) const; + const AxisInfo& GetAxisInfoView(AXIS axis) const; /* * Series data. @@ -49,13 +49,13 @@ class PLOT_API EmbeddablePlot2D : virtual public QWidget { // Add a named series. void AddSeries(std::string& name); // Add a series using the following info. - virtual void AddSeries(const SeriesInfo& newInfo); + virtual void AddSeries(const SeriesInfo& new_info); SeriesInfo GetSeriesByName(std::string& name); const SeriesInfo& GetSeriesViewByName(std::string& name) const; - void SetSeries(std::string& name, SeriesInfo& newInfo); - void SetSeries(uint8_t idx, SeriesInfo& newInfo); + void SetSeries(std::string& name, SeriesInfo& new_info); + void SetSeries(uint8_t idx, SeriesInfo& new_info); // Remove the series at the given index. void RemoveSeries(uint8_t idx); @@ -78,12 +78,12 @@ class PLOT_API EmbeddablePlot2D : virtual public QWidget { virtual void SetColor(ColorRGB& color); bool GetDrawGridState() { return DrawGrid; }; - void SetDrawGridState(bool newState) { DrawGrid = newState; }; + void SetDrawGridState(bool new_state) { DrawGrid = new_state; }; private: std::string Title; - AxisInfo TimeAxis = { Axis::Time }; - AxisInfo QuantityAxis = { Axis::Quantity }; + AxisInfo TimeAxis = { AXIS::TIME }; + AxisInfo QuantityAxis = { AXIS::QUANTITY }; std::vector Series; bool DrawGrid = false; diff --git a/src/Plotting/Series.hpp b/src/Plotting/Series.hpp index 5e8c83e..d8f0b11 100644 --- a/src/Plotting/Series.hpp +++ b/src/Plotting/Series.hpp @@ -14,6 +14,6 @@ struct SeriesInfo { ColorRGB Color = {1.0, 0.0, 0.0}; double Alpha = 1.0; - LineStyle Style = LineStyle::Solid; + LINE_STYLE Style = LINE_STYLE::SOLID; }; } // namespace VSCL::Plot diff --git a/src/Util/Filesystem/UserPaths.cpp b/src/Util/Filesystem/UserPaths.cpp index dd02dcd..386ac57 100644 --- a/src/Util/Filesystem/UserPaths.cpp +++ b/src/Util/Filesystem/UserPaths.cpp @@ -43,7 +43,7 @@ bool MakeStandardAppPaths() { if (!fs::exists(app_dir)) { fs::create_directories(app_dir); } bool all_success = true; - std::for_each(StandardPaths.begin(), StandardPaths.end(), + std::for_each(STANDARD_PATHS.begin(), STANDARD_PATHS.end(), [&](const fs::path& subdir) { fs::path full_path = app_dir / subdir; diff --git a/src/Util/Filesystem/UserPaths.hpp b/src/Util/Filesystem/UserPaths.hpp index 619425a..d21bbaa 100644 --- a/src/Util/Filesystem/UserPaths.hpp +++ b/src/Util/Filesystem/UserPaths.hpp @@ -8,16 +8,16 @@ namespace VSCL::FS { -enum class UserPath : uint8_t { - Data, Config, Script +enum class USER_PATH : uint8_t { + DATA, CONFIG, SCRIPT }; -static constexpr std::array StandardPaths = { +static constexpr std::array STANDARD_PATHS = { "data", "config", "script" }; static constexpr std::string_view GetStandardPath(const std::string_view& path) { - return *std::ranges::find(StandardPaths, path); + return *std::ranges::find(STANDARD_PATHS, path); } std::filesystem::path GetUserAppData(); diff --git a/src/Util/Sizing.hpp b/src/Util/Sizing.hpp index 31f621d..1765b21 100644 --- a/src/Util/Sizing.hpp +++ b/src/Util/Sizing.hpp @@ -6,8 +6,8 @@ namespace VSCL::Util { -static constexpr uint32_t MinimumWidth = 720; -static constexpr uint32_t MinimumHeight = 480; +static constexpr uint32_t MINIMUM_WIDTH = 720; +static constexpr uint32_t MINIMUM_HEIGHT = 480; struct FontAdjustment { /* @@ -21,12 +21,12 @@ struct FontAdjustment { */ bool AdjustToWidth = false; - static const uint32_t AdjustPxSize(uint32_t pxAtMin, QWidget* win, bool adjustToWidth=false) { - uint32_t dim = adjustToWidth ? win->width() : win->height(); - uint32_t adj = adjustToWidth ? MinimumWidth : MinimumHeight; + static const uint32_t AdjustPxSize(uint32_t px_at_min, QWidget* win, bool adjust_to_width=false) { + uint32_t dim = adjust_to_width ? win->width() : win->height(); + uint32_t adj = adjust_to_width ? MINIMUM_WIDTH : MINIMUM_HEIGHT; float delta = (float)(dim - adj) / (float)adj; - return pxAtMin * (uint32_t)std::ceil(1 + delta); + return px_at_min * (uint32_t)std::ceil(1 + delta); } const uint32_t AdjustPxSize(QWidget* win) const { diff --git a/src/Widgets/Dial/Attitude.cpp b/src/Widgets/Dial/Attitude.cpp index 0225c90..8d16f8b 100644 --- a/src/Widgets/Dial/Attitude.cpp +++ b/src/Widgets/Dial/Attitude.cpp @@ -46,14 +46,14 @@ QPoint AttitudeDial::HandEndingCenteredNominal() const { return Origin + QPoint{ linex, liney }; } -void AttitudeDial::SetRangeType(RangeType newRangeType) { - RangeTypeMode = newRangeType; +void AttitudeDial::SetRangeType(RANGE_TYPE new_range_type) { + RangeTypeMode = new_range_type; switch (RangeTypeMode) { - case RangeType::LowestNominal: + case RANGE_TYPE::LOWEST_NOMINAL: RangeHandlerFunction = std::bind(&AttitudeDial::HandEndingLowestNominal, this); break; - case RangeType::CenteredNominal: + case RANGE_TYPE::CENTERED_NOMINAL: default: RangeHandlerFunction = std::bind(&AttitudeDial::HandEndingCenteredNominal, this); break; @@ -85,12 +85,12 @@ void AttitudeDial::PaintTicks(QPainter* painter) { case 3: // major ticker[0] = 0.85; tickcolor = Palette.MajorTick; - cossin = MajorTicks[i]; + cossin = MAJOR_TICKS[i]; break; default: // minor ticker[0] = 0.95; tickcolor = Palette.MinorTick; - cossin = MinorTicks[i - 4]; + cossin = MINOR_TICKS[i - 4]; break; } @@ -127,7 +127,7 @@ void AttitudeDial::PaintCap(QPainter* painter) { painter->drawEllipse(Origin, r, r); } // AttitudeDial::PaintCap() -void AttitudeDial::SetPalette(AttitudeDialPalette& newPalette) { Palette = newPalette; } +void AttitudeDial::SetPalette(AttitudeDialPalette& new_palette) { Palette = new_palette; } AttitudeDialPalette AttitudeDial::GetPalette() const { return Palette; } const AttitudeDialPalette& AttitudeDial::GetPaletteView() const { return Palette; } diff --git a/src/Widgets/Dial/Attitude.hpp b/src/Widgets/Dial/Attitude.hpp index 4d81b13..ebe16e6 100644 --- a/src/Widgets/Dial/Attitude.hpp +++ b/src/Widgets/Dial/Attitude.hpp @@ -21,15 +21,15 @@ class AttitudeDial : public QWidget { AttitudeDial(QWidget* parent); void SetDialAngle(double value); - void SetPalette(AttitudeDialPalette& newPalette); + void SetPalette(AttitudeDialPalette& new_palette); AttitudeDialPalette GetPalette() const; const AttitudeDialPalette& GetPaletteView() const; - enum class RangeType : uint8_t { - CenteredNominal, - LowestNominal + enum class RANGE_TYPE : uint8_t { + CENTERED_NOMINAL, + LOWEST_NOMINAL }; - void SetRangeType(RangeType newRangeType); + void SetRangeType(RANGE_TYPE new_range_type); virtual void paintEvent(QPaintEvent* event) override; @@ -42,7 +42,7 @@ class AttitudeDial : public QWidget { AttitudeDialPalette Palette; std::array Range = { -180, 180 }; - RangeType RangeTypeMode = RangeType::CenteredNominal; + RANGE_TYPE RangeTypeMode = RANGE_TYPE::CENTERED_NOMINAL; QPoint HandEndingLowestNominal() const; QPoint HandEndingCenteredNominal() const; std::function RangeHandlerFunction = nullptr; @@ -52,11 +52,11 @@ class AttitudeDial : public QWidget { void PaintHand(QPainter* painter); void PaintCap(QPainter* painter); - static constexpr std::array, 4> MajorTicks = {{ + static constexpr std::array, 4> MAJOR_TICKS = {{ { 1.0, 0.0 }, { 0.0, 1.0 }, { -1.0, 0.0 }, { 0.0, -1.0 } }}; - static constexpr std::array, 4> MinorTicks = {{ + static constexpr std::array, 4> MINOR_TICKS = {{ { 0.7071067811865475, 0.7071067811865475 }, { 0.7071067811865475, -0.7071067811865475 }, { -0.7071067811865475, -0.7071067811865475 }, { -0.7071067811865475, 0.7071067811865475 } }}; diff --git a/src/Widgets/Displays/QuantitiesRatesDisplay.cpp b/src/Widgets/Displays/QuantitiesRatesDisplay.cpp index 888ebcb..10ac802 100644 --- a/src/Widgets/Displays/QuantitiesRatesDisplay.cpp +++ b/src/Widgets/Displays/QuantitiesRatesDisplay.cpp @@ -11,6 +11,6 @@ QtyRateDisplay::QtyRateDisplay(const QString& title, QWidget* parent) }; const QList& QtyRateDisplay::GetRowsView() const { return Rows; } -void QtyRateDisplay::AddRow(QtyRateRow* newRow) { Rows.append(newRow); Organizer->addWidget(newRow); } +void QtyRateDisplay::AddRow(QtyRateRow* new_row) { Rows.append(new_row); Organizer->addWidget(new_row); } } // namespace VSCL diff --git a/src/Widgets/Displays/QuantitiesRatesDisplay.hpp b/src/Widgets/Displays/QuantitiesRatesDisplay.hpp index 95fd802..20f7164 100644 --- a/src/Widgets/Displays/QuantitiesRatesDisplay.hpp +++ b/src/Widgets/Displays/QuantitiesRatesDisplay.hpp @@ -17,7 +17,7 @@ class QtyRateDisplay : public QGroupBox { const QList& GetRowsView() const; protected: - void AddRow(QtyRateRow* newRow); + void AddRow(QtyRateRow* new_row); private: QList Rows; diff --git a/src/Widgets/Displays/QuantitiesRatesRow.cpp b/src/Widgets/Displays/QuantitiesRatesRow.cpp index 564f99f..bfdb72c 100644 --- a/src/Widgets/Displays/QuantitiesRatesRow.cpp +++ b/src/Widgets/Displays/QuantitiesRatesRow.cpp @@ -28,8 +28,8 @@ void QtyRateRow::resizeEvent(QResizeEvent* event) { } void QtyRateRow::AdjustFontSize() { - uint32_t tpt = static_cast(TitleFontAdjustment.AdjustPxSize(window())); - if (tpt <= TitleFontAdjustment.PxSizeAtMinimum) { + uint32_t tpt = static_cast(TITLE_FONT_ADJUSTMENT.AdjustPxSize(window())); + if (tpt <= TITLE_FONT_ADJUSTMENT.PxSizeAtMinimum) { setTitle(tr("")); TitleFont.setPixelSize(1); } @@ -40,17 +40,17 @@ void QtyRateRow::AdjustFontSize() { setFont(TitleFont); - LabelFont.setPixelSize(NumericFontAdjustment.AdjustPxSize(window())); + LabelFont.setPixelSize(NUMERIC_FONT_ADJUSTMENT.AdjustPxSize(window())); QuantityLabel->setFont(LabelFont); RateLabel->setFont(LabelFont); } -void QtyRateRow::SetQuantity(double newQuantity) { - Quantity = newQuantity; +void QtyRateRow::SetQuantity(double new_quantity) { + Quantity = new_quantity; QuantityLabel->setText(QString::number(Quantity) + QuantityUnits); } -void QtyRateRow::SetRate(double newRate) { - Rate = newRate; +void QtyRateRow::SetRate(double new_rate) { + Rate = new_rate; RateLabel->setText(QString::number(Rate) + RateUnits); } diff --git a/src/Widgets/Displays/QuantitiesRatesRow.hpp b/src/Widgets/Displays/QuantitiesRatesRow.hpp index 8010a04..a015476 100644 --- a/src/Widgets/Displays/QuantitiesRatesRow.hpp +++ b/src/Widgets/Displays/QuantitiesRatesRow.hpp @@ -16,8 +16,8 @@ class QtyRateRow : public QGroupBox { QtyRateRow(const QString& title, QtyRateDisplay* parent); virtual void resizeEvent(QResizeEvent* event); - void SetQuantity(double newQuantity); - void SetRate(double newRate); + void SetQuantity(double new_quantity); + void SetRate(double new_rate); void SetQuantityUnits(const QString& units); void SetRateUnits(const QString& units); @@ -39,8 +39,8 @@ class QtyRateRow : public QGroupBox { QLabel* RateLabel; void AdjustFontSize(); - static constexpr Util::FontAdjustment TitleFontAdjustment { 8, false }; - static constexpr Util::FontAdjustment NumericFontAdjustment { 8, false }; + static constexpr Util::FontAdjustment TITLE_FONT_ADJUSTMENT { 8, false }; + static constexpr Util::FontAdjustment NUMERIC_FONT_ADJUSTMENT { 8, false }; }; // class QtyRateDisplay } // namespace VSCL diff --git a/src/Widgets/Displays/StatusCollector.cpp b/src/Widgets/Displays/StatusCollector.cpp index 8ba8af0..e65d65b 100644 --- a/src/Widgets/Displays/StatusCollector.cpp +++ b/src/Widgets/Displays/StatusCollector.cpp @@ -5,8 +5,8 @@ namespace VSCL{ -QString buildStatusStyleSheet(const std::string& objectName, Status status) { - std::string color = StatusColorMap.at(status); +QString BuildStatusStyleSheet(const std::string& object_name, STATUS status) { + std::string color = STATUS_COLOR_MAP.at(status); std::string sheet = std::format( "QGroupBox#{} {{" @@ -19,16 +19,16 @@ QString buildStatusStyleSheet(const std::string& objectName, Status status) { " subcontrol-position: top left;" " padding: 0 0px;" "}}", - objectName, + object_name, color ); return QString::fromStdString(sheet); } -void setGroupBoxStatus(QGroupBox *box, Status status) { +void SetGroupBoxStatus(QGroupBox *box, STATUS status) { const std::string objectName = box->objectName().toStdString(); - QString sheet = buildStatusStyleSheet(objectName, status); + QString sheet = BuildStatusStyleSheet(objectName, status); box->setStyleSheet(sheet); @@ -37,8 +37,8 @@ void setGroupBoxStatus(QGroupBox *box, Status status) { box->update(); } -QString buildButtonStyleSheet(Status status) { - std::string color = StatusColorMap.at(status); +QString BuildButtonStyleSheet(STATUS status) { + std::string color = STATUS_COLOR_MAP.at(status); std::string sheet = std::format( " QPushButton {{ background-color: {}; color: black; }}", @@ -48,8 +48,8 @@ QString buildButtonStyleSheet(Status status) { return QString::fromStdString(sheet); } -void setButtonStatus(QPushButton* button, Status status) { - QString sheet = buildButtonStyleSheet(status); +void SetButtonStatus(QPushButton* button, STATUS status) { + QString sheet = BuildButtonStyleSheet(status); button->setStyleSheet(sheet); diff --git a/src/Widgets/Displays/StatusCollector.hpp b/src/Widgets/Displays/StatusCollector.hpp index 4e7defe..0871ca0 100644 --- a/src/Widgets/Displays/StatusCollector.hpp +++ b/src/Widgets/Displays/StatusCollector.hpp @@ -6,28 +6,28 @@ #include namespace VSCL { -enum class Status { - Armed, // Red - Disarmed, // White - Standby, // White # true/false of Standby - Active, // Yellow - Opened, // Green - Closed // Grey +enum class STATUS { + ARMED, // Red + DISARMED, // White + STANDBY, // White # true/false of Standby + ACTIVE, // Yellow + OPENED, // Green + CLOSED // Grey }; -static const std::map StatusColorMap = { - {Status::Armed, "red"}, - {Status::Disarmed, "#fbfbfb"}, - {Status::Standby, "#fbfbfb"}, - {Status::Active, "yellow"}, - {Status::Opened, "green"}, - {Status::Closed, "gray"} +static const std::map STATUS_COLOR_MAP = { + {STATUS::ARMED, "red"}, + {STATUS::DISARMED, "#fbfbfb"}, + {STATUS::STANDBY, "#fbfbfb"}, + {STATUS::ACTIVE, "yellow"}, + {STATUS::OPENED, "green"}, + {STATUS::CLOSED, "gray"} }; -QString buildStatusStyleSheet(const std::string& objectName, Status status); -void setGroupBoxStatus(QGroupBox* box, Status status); +QString BuildStatusStyleSheet(const std::string& object_name, STATUS status); +void SetGroupBoxStatus(QGroupBox* box, STATUS status); -QString buildButtonStyleSheet(Status status); -void setButtonStatus(QPushButton* button, 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/DevWindow.cpp b/src/Windowing/DevWindow.cpp index 669ec7a..097786c 100644 --- a/src/Windowing/DevWindow.cpp +++ b/src/Windowing/DevWindow.cpp @@ -13,7 +13,7 @@ DevWindow::DevWindow() { AttitudeDial* dial = new AttitudeDial(this); - NumericDisplaysTest = new NumericTestWidget(this, dial, [dial](int newValue) { dial->SetDialAngle(newValue); }); + NumericDisplaysTest = new NumericTestWidget(this, dial, [dial](int new_value) { dial->SetDialAngle(new_value); }); setCentralWidget(Stacker); Stacker->addWidget(MainQuick); @@ -40,13 +40,13 @@ void DevWindow::SetQMLFromPath(const QUrl& path) { void DevWindow::SwapSetting() { switch (CurrentSetting) { - case DevWindow::NumericTesting: + case DevWindow::NUMERIC_TESTING: Stacker->setCurrentIndex(1); - CurrentSetting = DevWindow::QMLView; + CurrentSetting = DevWindow::QML_VIEW; break; - case DevWindow::QMLView: + case DevWindow::QML_VIEW: Stacker->setCurrentIndex(0); - CurrentSetting = DevWindow::NumericTesting; + CurrentSetting = DevWindow::NUMERIC_TESTING; break; } } diff --git a/src/Windowing/DevWindow.hpp b/src/Windowing/DevWindow.hpp index 71eafcc..7bbe608 100644 --- a/src/Windowing/DevWindow.hpp +++ b/src/Windowing/DevWindow.hpp @@ -21,9 +21,9 @@ class DevWindow : public QMainWindow { public: DevWindow(); - enum Setting { - QMLView, - NumericTesting + enum SETTING { + QML_VIEW, + NUMERIC_TESTING }; void SetQMLFromPath(const QUrl& path); @@ -38,7 +38,7 @@ private slots: void About(); private: - Setting CurrentSetting = Setting::NumericTesting; + SETTING CurrentSetting = SETTING::NUMERIC_TESTING; QStackedWidget* Stacker; /* diff --git a/src/Windowing/NumericTestWidget.cpp b/src/Windowing/NumericTestWidget.cpp index aa2d810..e9a2899 100644 --- a/src/Windowing/NumericTestWidget.cpp +++ b/src/Windowing/NumericTestWidget.cpp @@ -5,11 +5,11 @@ namespace VSCL { NumericTestWidget::NumericTestWidget( - QWidget* parent, QWidget* whatToTest, + QWidget* parent, QWidget* what_to_test, std::function method) : QWidget(parent) , TesterSpinbox(new QDoubleSpinBox(this)) - , WidgetBeingTested(whatToTest) { + , WidgetBeingTested(what_to_test) { QGridLayout* grid = new QGridLayout(this); grid->setContentsMargins(25, 25, 25, 25); diff --git a/src/Windowing/NumericTestWidget.hpp b/src/Windowing/NumericTestWidget.hpp index bf72f81..6c8da67 100644 --- a/src/Windowing/NumericTestWidget.hpp +++ b/src/Windowing/NumericTestWidget.hpp @@ -9,7 +9,7 @@ class NumericTestWidget : public QWidget { Q_OBJECT; public: - NumericTestWidget(QWidget* parent, QWidget* whatToTest, + NumericTestWidget(QWidget* parent, QWidget* what_to_test, std::function method); virtual void setVisible(bool visible) override; diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index f01ecc9..c1366b2 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -7,7 +7,7 @@ #include "Widgets/Displays/StatusCollector.hpp" // stupid temp thing {{{ -static void stupid_make_data(VSCL::Plot::EmbeddablePlot2D* plot) { +static void StupidMakeData(VSCL::Plot::EmbeddablePlot2D* plot) { double ph1, ph2, ph3; std::srand(std::chrono::system_clock::now().time_since_epoch().count() + 1); @@ -38,8 +38,8 @@ Widgets::Widgets() { // Geometry and window characteristics setWindowTitle(tr("VSCL Gyroscopic Test Rig")); - setMinimumSize(Util::MinimumWidth, Util::MinimumHeight); - resize(Util::MinimumWidth, Util::MinimumHeight); + setMinimumSize(Util::MINIMUM_WIDTH, Util::MINIMUM_HEIGHT); + resize(Util::MINIMUM_WIDTH, Util::MINIMUM_HEIGHT); // Set up the static layout SetupCentralWidget(); @@ -153,11 +153,11 @@ void Widgets::SetGridRowsMinimums() { void Widgets::SetupButtons() { StandbyIndicator = new QPushButton(this); StandbyIndicator->setText(tr("Standby")); - setButtonStatus(StandbyIndicator, Status::Standby); + SetButtonStatus(StandbyIndicator, STATUS::STANDBY); ArmedIndicator = new QPushButton(this); ArmedIndicator->setText(tr("Disarmed")); - setButtonStatus(ArmedIndicator, Status::Disarmed); + SetButtonStatus(ArmedIndicator, STATUS::DISARMED); // connect(ArmedIndicator, &QPushButton::clicked, this, &Widgets::OnArmedButtonPressed); InitiateButton = new QPushButton(this); @@ -175,7 +175,7 @@ void Widgets::SetupStatusColumn() { StatusColumn = new QGroupBox(tr("Operate"), this); StatusColumn->setObjectName("statusColumn"); - setGroupBoxStatus(StatusColumn, Status::Disarmed); + SetGroupBoxStatus(StatusColumn, STATUS::DISARMED); MajorLayout->addWidget(StatusColumn, 1, 0, 1, 2); @@ -228,7 +228,7 @@ void Widgets::SetupMultiPlot() { std::array RPY = {"Roll", "Pitch", "Yaw"}; auto angle = RPY.begin(); - auto color = Plot::StandardColor.begin(); + auto color = Plot::STANDARD_COLOR.begin(); for (Plot::EmbeddablePlot2D* p : allPlots) { std::string name = *angle; @@ -240,8 +240,8 @@ void Widgets::SetupMultiPlot() { p->AddSeries(info); justWtv.Title = name; - p->SetAxis(Plot::Axis::Quantity, justWtv); - p->SetAxis(Plot::Axis::Time, axInfo); + p->SetAxis(Plot::AXIS::QUANTITY, justWtv); + p->SetAxis(Plot::AXIS::TIME, axInfo); angle++; color++; @@ -256,25 +256,25 @@ void Widgets::SetupTimeHistoryPlotQChart() { axInfo.Range = { 0, 10 }; axInfo.MajorSpacing = 1; axInfo.MinorSpacing = 0.5; - Plot->SetAxis(Plot::Axis::Time, axInfo); + Plot->SetAxis(Plot::AXIS::TIME, axInfo); Plot::SeriesInfo rollInfo; rollInfo.Name = "Roll"; - rollInfo.Color = Plot::StandardColor.at("Red"); + rollInfo.Color = Plot::STANDARD_COLOR.at("Red"); Plot::SeriesInfo pitchInfo; pitchInfo.Name = "Pitch"; - pitchInfo.Color = Plot::StandardColor.at("Green"); + pitchInfo.Color = Plot::STANDARD_COLOR.at("Green"); Plot::SeriesInfo yawInfo; yawInfo.Name = "Yaw"; - yawInfo.Color = Plot::StandardColor.at("Blue"); + yawInfo.Color = Plot::STANDARD_COLOR.at("Blue"); Plot->AddSeries(rollInfo); Plot->AddSeries(pitchInfo); Plot->AddSeries(yawInfo); - stupid_make_data(Plot); + StupidMakeData(Plot); } // void Widgets::SetupTimeHistoryPlotQChart() void Widgets::SetupAttQtysRatesDisplay() { @@ -324,18 +324,18 @@ void Widgets::CreateActions() { } // void Widgets::CreateActions() void Widgets::OnArmedButtonPressed() { - bArmedButtonActive = !bArmedButtonActive; + BArmedButtonActive = !BArmedButtonActive; - if (bArmedButtonActive) { + if (BArmedButtonActive) { // Armed state - Red ArmedIndicator->setText(tr("Armed")); - setButtonStatus(ArmedIndicator, Status::Armed); - setGroupBoxStatus(StatusColumn, Status::Armed); + SetButtonStatus(ArmedIndicator, STATUS::ARMED); + SetGroupBoxStatus(StatusColumn, STATUS::ARMED); } else { // Disarmed state - Yellow ArmedIndicator->setText(tr("Disarmed")); - setButtonStatus(ArmedIndicator, Status::Disarmed); - setGroupBoxStatus(StatusColumn, Status::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 cd6a148..f6de03b 100644 --- a/src/Windowing/WidgetsRecreation.hpp +++ b/src/Windowing/WidgetsRecreation.hpp @@ -62,7 +62,7 @@ class Widgets : public QMainWindow { QPushButton* InitiateButton; QPushButton* LogOpenButton; QPushButton* AbortButton; - bool bArmedButtonActive = false; // Track armed button state + bool BArmedButtonActive = false; // Track armed button state Util::FontAdjustment ButtonFontAdjustment{ 12 }; void SetupButtons(); void SetupStatusColumn(); diff --git a/test/fs.cpp b/test/fs.cpp index 02d593e..4fad6ac 100644 --- a/test/fs.cpp +++ b/test/fs.cpp @@ -12,7 +12,7 @@ static constexpr std::string_view CONFIG_PATH_NAME = VSCL::FS::GetStandardPath("config"); static void CoutManyNames(void) { - std::ranges::for_each(VSCL::FS::StandardPaths, [](const std::string_view& str){ + std::ranges::for_each(VSCL::FS::STANDARD_PATHS, [](const std::string_view& str){ std::cout << str << "\n"; }); } @@ -32,7 +32,7 @@ int main(void) { CoutManyNames(); std::cout << "Checking for path existences: \n"; - std::for_each(VSCL::FS::StandardPaths.begin(), VSCL::FS::StandardPaths.end(), + std::for_each(VSCL::FS::STANDARD_PATHS.begin(), VSCL::FS::STANDARD_PATHS.end(), [&](const std::string_view& apppath){ std::filesystem::path subdir = whereapp / apppath; std::cout << (subdir) << " exists? "; From 519725e97718855639e6c19c14225b31128df1b5 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 20 Apr 2026 15:14:31 -0500 Subject: [PATCH 11/18] Change Enumeration Styling to CamelCase --- .clang-tidy | 4 +++- src/Plotting/Appearance.hpp | 2 +- src/Plotting/Axes.hpp | 8 ++++---- src/Plotting/Backend/CoreQChart.cpp | 22 +++++++++++----------- src/Plotting/Backend/CoreQChart.hpp | 2 +- src/Plotting/Plot2D.cpp | 16 ++++++++-------- src/Plotting/Plot2D.hpp | 8 ++++---- src/Plotting/Series.hpp | 2 +- src/Util/Filesystem/UserPaths.hpp | 2 +- src/Widgets/Dial/Attitude.cpp | 6 +++--- src/Widgets/Dial/Attitude.hpp | 6 +++--- src/Windowing/WidgetsRecreation.cpp | 6 +++--- 12 files changed, 43 insertions(+), 41 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index e6a2fa9..e2e7d60 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -9,10 +9,12 @@ CheckOptions: readability-identifier-naming.FunctionCase: CamelCase readability-identifier-naming.MethodCase: CamelCase readability-identifier-naming.MemberCase: CamelCase + readability-identifier-naming.EnumCase: CamelCase + readability-identifier-naming.ScopedEnumCase: CamelCase readability-identifier-naming.ParameterCase: lower_case readability-identifier-naming.MacroDefinitionCase: UPPER_CASE readability-identifier-naming.GlobalConstantCase: UPPER_CASE readability-identifier-naming.GlobalConstantPointerCase: UPPER_CASE - readability-identifier-naming.EnumCase: UPPER_CASE readability-identifier-naming.EnumConstantCase: UPPER_CASE + readability-identifier-naming.ScopedEnumConstantCase: UPPER_CASE diff --git a/src/Plotting/Appearance.hpp b/src/Plotting/Appearance.hpp index 78982b5..39d652e 100644 --- a/src/Plotting/Appearance.hpp +++ b/src/Plotting/Appearance.hpp @@ -16,7 +16,7 @@ static const std::map STANDARD_COLOR = { { "Blue", ColorRGB{ 0.0, 0.0, 1.0 } }, }; -enum class LINE_STYLE : uint8_t { +enum class LineStyle : uint8_t { SOLID = 1, DASHED = 2, DOTTED = 3, diff --git a/src/Plotting/Axes.hpp b/src/Plotting/Axes.hpp index 431c797..1b83364 100644 --- a/src/Plotting/Axes.hpp +++ b/src/Plotting/Axes.hpp @@ -6,12 +6,12 @@ namespace VSCL::Plot { -enum class AXIS : std::uint8_t { +enum class Axis : std::uint8_t { TIME = 0, QUANTITY = 1, }; -enum class AXIS_SCALING : std::uint8_t { +enum class AxisScaling : std::uint8_t { LINEAR = 0, LOG10 = 1, LN = 2, @@ -19,8 +19,8 @@ enum class AXIS_SCALING : std::uint8_t { }; struct AxisInfo { - AXIS InfoOf; - AXIS_SCALING Scaling = AXIS_SCALING::LINEAR; + Axis InfoOf; + AxisScaling Scaling = AxisScaling::LINEAR; std::array Range = { 0.0, 1.0 }; double MajorSpacing = 1; diff --git a/src/Plotting/Backend/CoreQChart.cpp b/src/Plotting/Backend/CoreQChart.cpp index 6ab8ef2..a861d73 100644 --- a/src/Plotting/Backend/CoreQChart.cpp +++ b/src/Plotting/Backend/CoreQChart.cpp @@ -20,7 +20,7 @@ PlotQChart::PlotQChart(QWidget* parent) LogTimeAxisQt->setLinePenColor(QColorConstants::Black); LogTimeAxisQt->setLabelFormat("%g"); LogTimeAxisQt->setGridLineVisible(false); - SetAxis(AXIS::TIME, GetAxisInfoView(AXIS::TIME)); + SetAxis(Axis::TIME, GetAxisInfoView(Axis::TIME)); PlotChart->addAxis(QuantityAxisQt, Qt::AlignLeft); QuantityAxisQt->setLinePenColor(QColorConstants::Black); @@ -30,7 +30,7 @@ PlotQChart::PlotQChart(QWidget* parent) LogQuantityAxisQt->setLinePenColor(QColorConstants::Black); LogQuantityAxisQt->setLabelFormat("%g"); LogQuantityAxisQt->setGridLineVisible(false); - SetAxis(AXIS::QUANTITY, GetAxisInfoView(AXIS::QUANTITY)); + SetAxis(Axis::QUANTITY, GetAxisInfoView(Axis::QUANTITY)); PlotChart->legend()->setVisible(false); PlotChart->setTheme(QChart::ChartThemeLight); @@ -45,7 +45,7 @@ PlotQChart::~PlotQChart() { delete PlotChart; } -void PlotQChart::SetAxis(const AXIS axis, const AxisInfo& info) { +void PlotQChart::SetAxis(const Axis axis, const AxisInfo& info) { EmbeddablePlot2D::SetAxis(axis, info); const AxisInfo& ax = GetAxisInfoView(axis); @@ -55,11 +55,11 @@ void PlotQChart::SetAxis(const AXIS axis, const AxisInfo& info) { double lobd = ax.Range[0]; switch (axis) { - case AXIS::TIME: + case Axis::TIME: axlinqt = TimeAxisQt; axlogqt = LogTimeAxisQt; break; - case AXIS::QUANTITY: + case Axis::QUANTITY: default: axlinqt = QuantityAxisQt; axlogqt = LogQuantityAxisQt; @@ -69,7 +69,7 @@ void PlotQChart::SetAxis(const AXIS axis, const AxisInfo& info) { if (!axlinqt || !axlogqt) { return; }; switch (ax.Scaling) { - case AXIS_SCALING::LOG10: + case AxisScaling::LOG10: axlinqt->setVisible(false); axlogqt->setVisible(); @@ -79,7 +79,7 @@ void PlotQChart::SetAxis(const AXIS axis, const AxisInfo& info) { axqt = axlogqt; break; - case AXIS_SCALING::LN: + case AxisScaling::LN: axlinqt->setVisible(false); axlogqt->setVisible(); @@ -89,7 +89,7 @@ void PlotQChart::SetAxis(const AXIS axis, const AxisInfo& info) { axqt = axlogqt; break; - case AXIS_SCALING::LINEAR: + case AxisScaling::LINEAR: default: axlogqt->setVisible(false); axlinqt->setVisible(); @@ -135,13 +135,13 @@ void PlotQChart::Plot() { serie->setColor(QColor::fromRgbF(color[0], color[1], color[2], 1.0)); switch (sinfo.Style) { - case LINE_STYLE::DASHED: + case LineStyle::DASHED: std::cerr << "Dashed lines not implemented for Qt Charts.\n"; break; - case LINE_STYLE::DOTTED: + case LineStyle::DOTTED: std::cerr << "Dotted lines not implemented for Qt Charts.\n"; break; - case LINE_STYLE::SOLID: + case LineStyle::SOLID: default: break; } diff --git a/src/Plotting/Backend/CoreQChart.hpp b/src/Plotting/Backend/CoreQChart.hpp index fc956d6..1eefefd 100644 --- a/src/Plotting/Backend/CoreQChart.hpp +++ b/src/Plotting/Backend/CoreQChart.hpp @@ -17,7 +17,7 @@ class QCHART_BACKEND PlotQChart : virtual public EmbeddablePlot2D { PlotQChart(QWidget* parent); virtual ~PlotQChart(); - virtual void SetAxis(const AXIS axis, const AxisInfo& info) override; + virtual void SetAxis(const Axis axis, const AxisInfo& info) override; virtual void SetTitle(const std::string& title) override; virtual void Plot() override; virtual void EraseAllData() override; diff --git a/src/Plotting/Plot2D.cpp b/src/Plotting/Plot2D.cpp index 2f6632f..e92770b 100644 --- a/src/Plotting/Plot2D.cpp +++ b/src/Plotting/Plot2D.cpp @@ -12,11 +12,11 @@ void EmbeddablePlot2D::AddPoint(uint8_t idx, double time, double quantity, bool oldTime.push_back(time); oldQty.push_back(quantity); - Plot::AxisInfo axInfo = this->GetAxisInfoView(Plot::AXIS::TIME); + Plot::AxisInfo axInfo = this->GetAxisInfoView(Plot::Axis::TIME); double maxTime = oldTime.back(); double minTime = std::max(0.0, maxTime - 10.0); axInfo.Range = { minTime, minTime + 10.0 }; - SetAxis(Plot::AXIS::TIME, axInfo); + SetAxis(Plot::Axis::TIME, axInfo); if (update) Plot(); } @@ -43,12 +43,12 @@ void EmbeddablePlot2D::AddPoints( const std::vector& times, const std::vector& quantities, bool update) { AddPoints(0, times, quantities, update); } -void EmbeddablePlot2D::SetAxis(const AXIS axis, const AxisInfo& info) { +void EmbeddablePlot2D::SetAxis(const Axis axis, const AxisInfo& info) { switch (axis) { - case AXIS::TIME: + case Axis::TIME: TimeAxis = info; break; - case AXIS::QUANTITY: + case Axis::QUANTITY: QuantityAxis = info; break; } @@ -69,12 +69,12 @@ void EmbeddablePlot2D::EraseAllData() { Plot(); } -const AxisInfo& EmbeddablePlot2D::GetAxisInfoView(AXIS axis) const { +const AxisInfo& EmbeddablePlot2D::GetAxisInfoView(Axis axis) const { switch (axis) { - case AXIS::TIME: + case Axis::TIME: return TimeAxis; break; - case AXIS::QUANTITY: + case Axis::QUANTITY: default: return QuantityAxis; break; diff --git a/src/Plotting/Plot2D.hpp b/src/Plotting/Plot2D.hpp index 67c5982..5fc1757 100644 --- a/src/Plotting/Plot2D.hpp +++ b/src/Plotting/Plot2D.hpp @@ -27,7 +27,7 @@ class PLOT_API EmbeddablePlot2D : virtual public QWidget { void AddPoints(const std::vector& times, const std::vector& quantities, bool update = false); // Set axis properites based on the struct - virtual void SetAxis(const AXIS axis, const AxisInfo& info); + virtual void SetAxis(const Axis axis, const AxisInfo& info); // Set the main title virtual void SetTitle(const std::string& title); @@ -38,7 +38,7 @@ class PLOT_API EmbeddablePlot2D : virtual public QWidget { // Clear data that was being stored. virtual void EraseAllData(); - const AxisInfo& GetAxisInfoView(AXIS axis) const; + const AxisInfo& GetAxisInfoView(Axis axis) const; /* * Series data. @@ -82,8 +82,8 @@ class PLOT_API EmbeddablePlot2D : virtual public QWidget { private: std::string Title; - AxisInfo TimeAxis = { AXIS::TIME }; - AxisInfo QuantityAxis = { AXIS::QUANTITY }; + AxisInfo TimeAxis = { .InfoOf = Axis::TIME }; + AxisInfo QuantityAxis = { .InfoOf = Axis::QUANTITY }; std::vector Series; bool DrawGrid = false; diff --git a/src/Plotting/Series.hpp b/src/Plotting/Series.hpp index d8f0b11..d04d98e 100644 --- a/src/Plotting/Series.hpp +++ b/src/Plotting/Series.hpp @@ -14,6 +14,6 @@ struct SeriesInfo { ColorRGB Color = {1.0, 0.0, 0.0}; double Alpha = 1.0; - LINE_STYLE Style = LINE_STYLE::SOLID; + LineStyle Style = LineStyle::SOLID; }; } // namespace VSCL::Plot diff --git a/src/Util/Filesystem/UserPaths.hpp b/src/Util/Filesystem/UserPaths.hpp index d21bbaa..0768bd2 100644 --- a/src/Util/Filesystem/UserPaths.hpp +++ b/src/Util/Filesystem/UserPaths.hpp @@ -8,7 +8,7 @@ namespace VSCL::FS { -enum class USER_PATH : uint8_t { +enum class UserPath : uint8_t { DATA, CONFIG, SCRIPT }; diff --git a/src/Widgets/Dial/Attitude.cpp b/src/Widgets/Dial/Attitude.cpp index 8d16f8b..d80b57a 100644 --- a/src/Widgets/Dial/Attitude.cpp +++ b/src/Widgets/Dial/Attitude.cpp @@ -46,14 +46,14 @@ QPoint AttitudeDial::HandEndingCenteredNominal() const { return Origin + QPoint{ linex, liney }; } -void AttitudeDial::SetRangeType(RANGE_TYPE new_range_type) { +void AttitudeDial::SetRangeType(RangeType new_range_type) { RangeTypeMode = new_range_type; switch (RangeTypeMode) { - case RANGE_TYPE::LOWEST_NOMINAL: + case RangeType::LOWEST_NOMINAL: RangeHandlerFunction = std::bind(&AttitudeDial::HandEndingLowestNominal, this); break; - case RANGE_TYPE::CENTERED_NOMINAL: + case RangeType::CENTERED_NOMINAL: default: RangeHandlerFunction = std::bind(&AttitudeDial::HandEndingCenteredNominal, this); break; diff --git a/src/Widgets/Dial/Attitude.hpp b/src/Widgets/Dial/Attitude.hpp index ebe16e6..21afc01 100644 --- a/src/Widgets/Dial/Attitude.hpp +++ b/src/Widgets/Dial/Attitude.hpp @@ -25,11 +25,11 @@ class AttitudeDial : public QWidget { AttitudeDialPalette GetPalette() const; const AttitudeDialPalette& GetPaletteView() const; - enum class RANGE_TYPE : uint8_t { + enum class RangeType : uint8_t { CENTERED_NOMINAL, LOWEST_NOMINAL }; - void SetRangeType(RANGE_TYPE new_range_type); + void SetRangeType(RangeType new_range_type); virtual void paintEvent(QPaintEvent* event) override; @@ -42,7 +42,7 @@ class AttitudeDial : public QWidget { AttitudeDialPalette Palette; std::array Range = { -180, 180 }; - RANGE_TYPE RangeTypeMode = RANGE_TYPE::CENTERED_NOMINAL; + RangeType RangeTypeMode = RangeType::CENTERED_NOMINAL; QPoint HandEndingLowestNominal() const; QPoint HandEndingCenteredNominal() const; std::function RangeHandlerFunction = nullptr; diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index c1366b2..0dd6770 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -240,8 +240,8 @@ void Widgets::SetupMultiPlot() { p->AddSeries(info); justWtv.Title = name; - p->SetAxis(Plot::AXIS::QUANTITY, justWtv); - p->SetAxis(Plot::AXIS::TIME, axInfo); + p->SetAxis(Plot::Axis::QUANTITY, justWtv); + p->SetAxis(Plot::Axis::TIME, axInfo); angle++; color++; @@ -256,7 +256,7 @@ void Widgets::SetupTimeHistoryPlotQChart() { axInfo.Range = { 0, 10 }; axInfo.MajorSpacing = 1; axInfo.MinorSpacing = 0.5; - Plot->SetAxis(Plot::AXIS::TIME, axInfo); + Plot->SetAxis(Plot::Axis::TIME, axInfo); Plot::SeriesInfo rollInfo; rollInfo.Name = "Roll"; From 4c1a927e1c536bee0464788e54b5bb05264ea0ec Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 20 Apr 2026 15:24:15 -0500 Subject: [PATCH 12/18] Setting member enum match case --- src/Windowing/DevWindow.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Windowing/DevWindow.hpp b/src/Windowing/DevWindow.hpp index 7bbe608..a232cca 100644 --- a/src/Windowing/DevWindow.hpp +++ b/src/Windowing/DevWindow.hpp @@ -21,7 +21,7 @@ class DevWindow : public QMainWindow { public: DevWindow(); - enum SETTING { + enum Setting { QML_VIEW, NUMERIC_TESTING }; @@ -38,7 +38,7 @@ private slots: void About(); private: - SETTING CurrentSetting = SETTING::NUMERIC_TESTING; + Setting CurrentSetting = Setting::NUMERIC_TESTING; QStackedWidget* Stacker; /* From 4340f669a4988a7d18e76a3144411b41c7e328b2 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 20 Apr 2026 15:26:41 -0500 Subject: [PATCH 13/18] STATUS to Status --- src/Widgets/Displays/StatusCollector.cpp | 8 ++++---- src/Widgets/Displays/StatusCollector.hpp | 26 ++++++++++++------------ src/Windowing/WidgetsRecreation.cpp | 14 ++++++------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/Widgets/Displays/StatusCollector.cpp b/src/Widgets/Displays/StatusCollector.cpp index e65d65b..6a591ad 100644 --- a/src/Widgets/Displays/StatusCollector.cpp +++ b/src/Widgets/Displays/StatusCollector.cpp @@ -5,7 +5,7 @@ namespace VSCL{ -QString BuildStatusStyleSheet(const std::string& object_name, STATUS status) { +QString BuildStatusStyleSheet(const std::string& object_name, Status status) { std::string color = STATUS_COLOR_MAP.at(status); std::string sheet = std::format( @@ -26,7 +26,7 @@ QString BuildStatusStyleSheet(const std::string& object_name, STATUS status) { return QString::fromStdString(sheet); } -void SetGroupBoxStatus(QGroupBox *box, STATUS status) { +void SetGroupBoxStatus(QGroupBox *box, Status status) { const std::string objectName = box->objectName().toStdString(); QString sheet = BuildStatusStyleSheet(objectName, status); @@ -37,7 +37,7 @@ void SetGroupBoxStatus(QGroupBox *box, STATUS status) { box->update(); } -QString BuildButtonStyleSheet(STATUS status) { +QString BuildButtonStyleSheet(Status status) { std::string color = STATUS_COLOR_MAP.at(status); std::string sheet = std::format( @@ -48,7 +48,7 @@ QString BuildButtonStyleSheet(STATUS status) { return QString::fromStdString(sheet); } -void SetButtonStatus(QPushButton* button, STATUS status) { +void SetButtonStatus(QPushButton* button, Status status) { QString sheet = BuildButtonStyleSheet(status); button->setStyleSheet(sheet); diff --git a/src/Widgets/Displays/StatusCollector.hpp b/src/Widgets/Displays/StatusCollector.hpp index 0871ca0..27b74ff 100644 --- a/src/Widgets/Displays/StatusCollector.hpp +++ b/src/Widgets/Displays/StatusCollector.hpp @@ -6,7 +6,7 @@ #include namespace VSCL { -enum class STATUS { +enum class Status { ARMED, // Red DISARMED, // White STANDBY, // White # true/false of Standby @@ -15,19 +15,19 @@ enum class STATUS { CLOSED // Grey }; -static const std::map STATUS_COLOR_MAP = { - {STATUS::ARMED, "red"}, - {STATUS::DISARMED, "#fbfbfb"}, - {STATUS::STANDBY, "#fbfbfb"}, - {STATUS::ACTIVE, "yellow"}, - {STATUS::OPENED, "green"}, - {STATUS::CLOSED, "gray"} +static const std::map STATUS_COLOR_MAP = { + {Status::ARMED, "red"}, + {Status::DISARMED, "#fbfbfb"}, + {Status::STANDBY, "#fbfbfb"}, + {Status::ACTIVE, "yellow"}, + {Status::OPENED, "green"}, + {Status::CLOSED, "gray"} }; -QString BuildStatusStyleSheet(const std::string& object_name, STATUS status); -void SetGroupBoxStatus(QGroupBox* box, STATUS status); +QString BuildStatusStyleSheet(const std::string& object_name, Status status); +void SetGroupBoxStatus(QGroupBox* box, Status status); -QString BuildButtonStyleSheet(STATUS status); -void SetButtonStatus(QPushButton* button, STATUS status); +QString BuildButtonStyleSheet(Status status); +void SetButtonStatus(QPushButton* button, Status status); -} // namespace VSCL \ No newline at end of file +} // namespace VSCL diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index 0dd6770..0d287ad 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -153,11 +153,11 @@ void Widgets::SetGridRowsMinimums() { void Widgets::SetupButtons() { StandbyIndicator = new QPushButton(this); StandbyIndicator->setText(tr("Standby")); - SetButtonStatus(StandbyIndicator, STATUS::STANDBY); + SetButtonStatus(StandbyIndicator, Status::STANDBY); ArmedIndicator = new QPushButton(this); ArmedIndicator->setText(tr("Disarmed")); - SetButtonStatus(ArmedIndicator, STATUS::DISARMED); + SetButtonStatus(ArmedIndicator, Status::DISARMED); // connect(ArmedIndicator, &QPushButton::clicked, this, &Widgets::OnArmedButtonPressed); InitiateButton = new QPushButton(this); @@ -175,7 +175,7 @@ void Widgets::SetupStatusColumn() { StatusColumn = new QGroupBox(tr("Operate"), this); StatusColumn->setObjectName("statusColumn"); - SetGroupBoxStatus(StatusColumn, STATUS::DISARMED); + SetGroupBoxStatus(StatusColumn, Status::DISARMED); MajorLayout->addWidget(StatusColumn, 1, 0, 1, 2); @@ -329,13 +329,13 @@ void Widgets::OnArmedButtonPressed() { if (BArmedButtonActive) { // Armed state - Red ArmedIndicator->setText(tr("Armed")); - SetButtonStatus(ArmedIndicator, STATUS::ARMED); - SetGroupBoxStatus(StatusColumn, STATUS::ARMED); + SetButtonStatus(ArmedIndicator, Status::ARMED); + SetGroupBoxStatus(StatusColumn, Status::ARMED); } else { // Disarmed state - Yellow ArmedIndicator->setText(tr("Disarmed")); - SetButtonStatus(ArmedIndicator, STATUS::DISARMED); - SetGroupBoxStatus(StatusColumn, STATUS::DISARMED); + SetButtonStatus(ArmedIndicator, Status::DISARMED); + SetGroupBoxStatus(StatusColumn, Status::DISARMED); } } // void Widgets::OnArmedButtonPressed() // }}} From 699cb4f80a52aae9a71bb336df0df871482d4775 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Mon, 20 Apr 2026 15:28:35 -0500 Subject: [PATCH 14/18] Remove hungarian prefix --- src/Windowing/WidgetsRecreation.cpp | 4 ++-- src/Windowing/WidgetsRecreation.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index 0d287ad..172f8b2 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -324,9 +324,9 @@ void Widgets::CreateActions() { } // void Widgets::CreateActions() void Widgets::OnArmedButtonPressed() { - BArmedButtonActive = !BArmedButtonActive; + ArmedButtonActive = !ArmedButtonActive; - if (BArmedButtonActive) { + if (ArmedButtonActive) { // Armed state - Red ArmedIndicator->setText(tr("Armed")); SetButtonStatus(ArmedIndicator, Status::ARMED); diff --git a/src/Windowing/WidgetsRecreation.hpp b/src/Windowing/WidgetsRecreation.hpp index f6de03b..8269e93 100644 --- a/src/Windowing/WidgetsRecreation.hpp +++ b/src/Windowing/WidgetsRecreation.hpp @@ -62,7 +62,7 @@ class Widgets : public QMainWindow { QPushButton* InitiateButton; QPushButton* LogOpenButton; QPushButton* AbortButton; - bool BArmedButtonActive = false; // Track armed button state + bool ArmedButtonActive = false; // Track armed button state Util::FontAdjustment ButtonFontAdjustment{ 12 }; void SetupButtons(); void SetupStatusColumn(); From cfc735fdeca24a4759a4bb9f0e1d0d83a46644ea Mon Sep 17 00:00:00 2001 From: JC Luna Date: Tue, 21 Apr 2026 17:02:46 -0500 Subject: [PATCH 15/18] Remove unfinished merge artifacts from .clangd --- .clangd | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.clangd b/.clangd index 98d9840..fabb9e2 100644 --- a/.clangd +++ b/.clangd @@ -1,9 +1,4 @@ CompileFlags: -<<<<<<< newLayout Add: [-xc++, -Wall, -std=c++20] - Remove: [-mno-direct-extern-access] -======= - Add: [-xc++, -Wall] Remove: [-mno-direct-extern-access, -fmodules-ts, -fmodule-mapper*, -fdeps-format*] ->>>>>>> main CompilationDatabase: build From a561141cf10f75e2714da827676c9efc20ffe2d6 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Tue, 21 Apr 2026 17:07:17 -0500 Subject: [PATCH 16/18] Use designated initializers --- src/Widgets/Dial/Composite.hpp | 5 ++++- src/Widgets/Displays/QuantitiesRatesRow.hpp | 11 +++++++++-- src/Widgets/Displays/RateLabel.hpp | 5 ++++- src/Windowing/WidgetsRecreation.hpp | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/Widgets/Dial/Composite.hpp b/src/Widgets/Dial/Composite.hpp index f3ccf1d..e2bc809 100644 --- a/src/Widgets/Dial/Composite.hpp +++ b/src/Widgets/Dial/Composite.hpp @@ -30,7 +30,10 @@ class CompositeDial : public QWidget { QGridLayout* MajorOrganizer; QLabel* DialNameLabel; QFont DialNameFont{ }; - Util::FontAdjustment TitleAdjustment{ 16, false }; + Util::FontAdjustment TitleAdjustment{ + .PxSizeAtMinimum=16, + .AdjustToWidth=false + }; QWidget* DialRateDuo; QGridLayout* DuoOrganizer; diff --git a/src/Widgets/Displays/QuantitiesRatesRow.hpp b/src/Widgets/Displays/QuantitiesRatesRow.hpp index a015476..ea5f607 100644 --- a/src/Widgets/Displays/QuantitiesRatesRow.hpp +++ b/src/Widgets/Displays/QuantitiesRatesRow.hpp @@ -39,8 +39,15 @@ class QtyRateRow : public QGroupBox { QLabel* RateLabel; void AdjustFontSize(); - static constexpr Util::FontAdjustment TITLE_FONT_ADJUSTMENT { 8, false }; - static constexpr Util::FontAdjustment NUMERIC_FONT_ADJUSTMENT { 8, false }; + static constexpr Util::FontAdjustment TITLE_FONT_ADJUSTMENT { + .PxSizeAtMinimum = 8, + .AdjustToWidth = false + }; + + static constexpr Util::FontAdjustment NUMERIC_FONT_ADJUSTMENT { + .PxSizeAtMinimum = 8, + .AdjustToWidth = false + }; }; // class QtyRateDisplay } // namespace VSCL diff --git a/src/Widgets/Displays/RateLabel.hpp b/src/Widgets/Displays/RateLabel.hpp index a322978..c943618 100644 --- a/src/Widgets/Displays/RateLabel.hpp +++ b/src/Widgets/Displays/RateLabel.hpp @@ -25,7 +25,10 @@ class RateLabel : public QLabel { QString QuantityUnitString = ""; QString TimeUnitString = "/s"; - Util::FontAdjustment FontAdjustment{ 10, false }; + Util::FontAdjustment FontAdjustment{ + .PxSizeAtMinimum=10, + .AdjustToWidth=false + }; QFont Font{}; }; // class RateLabel diff --git a/src/Windowing/WidgetsRecreation.hpp b/src/Windowing/WidgetsRecreation.hpp index 8269e93..8302594 100644 --- a/src/Windowing/WidgetsRecreation.hpp +++ b/src/Windowing/WidgetsRecreation.hpp @@ -63,7 +63,7 @@ class Widgets : public QMainWindow { QPushButton* LogOpenButton; QPushButton* AbortButton; bool ArmedButtonActive = false; // Track armed button state - Util::FontAdjustment ButtonFontAdjustment{ 12 }; + Util::FontAdjustment ButtonFontAdjustment{ .PxSizeAtMinimum=12 }; void SetupButtons(); void SetupStatusColumn(); void SetAllButtonTextSize(); From d928f0a99a709c0ada489b240dfb3ee51d4b3582 Mon Sep 17 00:00:00 2001 From: JC Luna Date: Tue, 21 Apr 2026 17:34:49 -0500 Subject: [PATCH 17/18] Abort button background is not red, text is now red --- src/Windowing/WidgetsRecreation.cpp | 17 ++++++----------- src/Windowing/WidgetsRecreation.hpp | 6 +++++- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index 172f8b2..dd2371a 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -44,9 +44,7 @@ Widgets::Widgets() { // Set up the static layout SetupCentralWidget(); SetupAttitudeDials(); - // SetupTimeHistoryPlotQChart(); // <- old plot SetupMultiPlot(); // <-new multiplot - // SetupAttQtysRatesDisplay(); // <- No need anymore SetupButtons(); SetupStatusColumn(); SetGridColumnsMinimums(); @@ -163,12 +161,11 @@ void Widgets::SetupButtons() { InitiateButton = new QPushButton(this); InitiateButton->setText(tr("Initiate")); - // LogOpenButton = new QPushButton(this); - // LogOpenButton->setText(tr("Open Log")); - AbortButton = new QPushButton(this); AbortButton->setText(tr("Abort")); - AbortButton->setStyleSheet(" QPushButton { background-color: red ; color: white} "); + AbortButton->setStyleSheet("color: red"); + + AbortFont.setBold(true); } // void Widgets::SetupButtons() void Widgets::SetupStatusColumn() { @@ -193,9 +190,6 @@ void Widgets::SetupStatusColumn() { InitiateButton->setSizePolicy(vhexpanding); StatusColumnOrganizer->addWidget(InitiateButton); - // LogOpenButton->setSizePolicy(vhexpanding); - // StatusColumnOrganizer->addWidget(LogOpenButton); - AbortButton->setSizePolicy(vhexpanding); StatusColumnOrganizer->addWidget(AbortButton); @@ -207,9 +201,10 @@ void Widgets::SetAllButtonTextSize() { StandbyIndicator->setFont(ButtonFont); ArmedIndicator->setFont(ButtonFont); InitiateButton->setFont(ButtonFont); - // LogOpenButton->setFont(ButtonFont); - AbortButton->setFont(ButtonFont); StatusColumn->setFont(ButtonFont); + + AbortFont.setPixelSize(AbortFontAdjustment.AdjustPxSize(window())); + AbortButton->setFont(AbortFont); } // void Widgets::SetAllButtonTextSize() // }}} diff --git a/src/Windowing/WidgetsRecreation.hpp b/src/Windowing/WidgetsRecreation.hpp index 8302594..bde32bd 100644 --- a/src/Windowing/WidgetsRecreation.hpp +++ b/src/Windowing/WidgetsRecreation.hpp @@ -26,6 +26,9 @@ class Widgets : public QMainWindow { private: QFont ButtonFont{ }; + Util::FontAdjustment ButtonFontAdjustment{ .PxSizeAtMinimum=12 }; + QFont AbortFont{ }; + Util::FontAdjustment AbortFontAdjustment{ .PxSizeAtMinimum=12 }; QWidget* MajorContainer; QGridLayout* MajorLayout; @@ -63,10 +66,11 @@ class Widgets : public QMainWindow { QPushButton* LogOpenButton; QPushButton* AbortButton; bool ArmedButtonActive = false; // Track armed button state - Util::FontAdjustment ButtonFontAdjustment{ .PxSizeAtMinimum=12 }; + void SetupButtons(); void SetupStatusColumn(); void SetAllButtonTextSize(); + private slots: void About(); void OnArmedButtonPressed(); From 6e4064bdb874ed8b47500956e6532ca7a6ee738b Mon Sep 17 00:00:00 2001 From: JC Luna Date: Tue, 21 Apr 2026 17:50:35 -0500 Subject: [PATCH 18/18] Use Qt formatter over stdlib one --- src/Widgets/Displays/StatusCollector.cpp | 43 +++++++++--------------- src/Widgets/Displays/StatusCollector.hpp | 2 +- src/Windowing/WidgetsRecreation.cpp | 1 + 3 files changed, 17 insertions(+), 29 deletions(-) diff --git a/src/Widgets/Displays/StatusCollector.cpp b/src/Widgets/Displays/StatusCollector.cpp index 6a591ad..2a4041e 100644 --- a/src/Widgets/Displays/StatusCollector.cpp +++ b/src/Widgets/Displays/StatusCollector.cpp @@ -1,34 +1,27 @@ #include "StatusCollector.hpp" -#include #include namespace VSCL{ - -QString BuildStatusStyleSheet(const std::string& object_name, Status status) { - std::string color = STATUS_COLOR_MAP.at(status); - - std::string sheet = std::format( - "QGroupBox#{} {{" - " border: 2px solid {};" +QString BuildStatusStyleSheet(const QString& object_name, Status status) { + const std::string& color = STATUS_COLOR_MAP.at(status); + return QString( + " QGroupBox#%1 {" + " border: 2px solid %2;" " border-radius: 5px;" " margin-top: 20px;" - "}}" - "QGroupBox#statusColumn::title {{" + "}" + " QGroupBox#statusColumn::title {" " subcontrol-origin: margin;" " subcontrol-position: top left;" " padding: 0 0px;" - "}}", - object_name, - color - ); - - return QString::fromStdString(sheet); + "}" + ).arg(object_name).arg(QString::fromStdString(color)); } void SetGroupBoxStatus(QGroupBox *box, Status status) { - const std::string objectName = box->objectName().toStdString(); - QString sheet = BuildStatusStyleSheet(objectName, status); + const QString objectName = box->objectName(); + const QString sheet = BuildStatusStyleSheet(objectName, status); box->setStyleSheet(sheet); @@ -38,19 +31,13 @@ void SetGroupBoxStatus(QGroupBox *box, Status status) { } QString BuildButtonStyleSheet(Status status) { - std::string color = STATUS_COLOR_MAP.at(status); - - std::string sheet = std::format( - " QPushButton {{ background-color: {}; color: black; }}", - color - ); - - return QString::fromStdString(sheet); + const std::string& color = STATUS_COLOR_MAP.at(status); + return QString(" QPushButton { background-color: %1; color: black; }") + .arg(QString::fromStdString(color)); } void SetButtonStatus(QPushButton* button, Status status) { - QString sheet = BuildButtonStyleSheet(status); - + const QString sheet = BuildButtonStyleSheet(status); button->setStyleSheet(sheet); button->style()->unpolish(button); diff --git a/src/Widgets/Displays/StatusCollector.hpp b/src/Widgets/Displays/StatusCollector.hpp index 27b74ff..b3a64d5 100644 --- a/src/Widgets/Displays/StatusCollector.hpp +++ b/src/Widgets/Displays/StatusCollector.hpp @@ -24,7 +24,7 @@ static const std::map STATUS_COLOR_MAP = { {Status::CLOSED, "gray"} }; -QString BuildStatusStyleSheet(const std::string& object_name, Status status); +QString BuildStatusStyleSheet(const QString& object_name, Status status); void SetGroupBoxStatus(QGroupBox* box, Status status); QString BuildButtonStyleSheet(Status status); diff --git a/src/Windowing/WidgetsRecreation.cpp b/src/Windowing/WidgetsRecreation.cpp index dd2371a..7b71200 100644 --- a/src/Windowing/WidgetsRecreation.cpp +++ b/src/Windowing/WidgetsRecreation.cpp @@ -156,6 +156,7 @@ void Widgets::SetupButtons() { ArmedIndicator = new QPushButton(this); ArmedIndicator->setText(tr("Disarmed")); SetButtonStatus(ArmedIndicator, Status::DISARMED); + // testing below // connect(ArmedIndicator, &QPushButton::clicked, this, &Widgets::OnArmedButtonPressed); InitiateButton = new QPushButton(this);