From 911f169b5e6f16e604782a37296273a1b71a8e24 Mon Sep 17 00:00:00 2001 From: sourceworx Date: Sat, 4 Apr 2026 14:29:18 +0200 Subject: [PATCH] Visual updates --- CMakeLists.txt | 2 +- bc.h | 4 ++ bcvaluedelegate.cpp | 41 +++++---------------- docker4BionxControl/CMakeLists.txt | 24 ------------ docker4BionxControl/Dockerfile | 34 ----------------- docker4BionxControl/MainWindow.cpp | 17 --------- docker4BionxControl/MainWindow.hpp | 14 ------- docker4BionxControl/aarch64-toolchain.cmake | 25 ------------- docker4BionxControl/main.cpp | 11 ------ docker4BionxControl/runme.txt | 0 main.cpp | 3 +- resources/bc_light.qss | 2 + resources/bikeinfo.xml | 2 +- 13 files changed, 19 insertions(+), 160 deletions(-) delete mode 100644 docker4BionxControl/CMakeLists.txt delete mode 100644 docker4BionxControl/Dockerfile delete mode 100644 docker4BionxControl/MainWindow.cpp delete mode 100644 docker4BionxControl/MainWindow.hpp delete mode 100644 docker4BionxControl/aarch64-toolchain.cmake delete mode 100644 docker4BionxControl/main.cpp delete mode 100644 docker4BionxControl/runme.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 66afb32..17fe98a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ qt_add_executable(BionxControl WIN32 MACOSX_BUNDLE bcdriverstatewidget.cpp bcdriverstatewidget.h bcdrivertinycan.cpp bcdrivertinycan.h bcmainwindow.cpp bcmainwindow.h bcmainwindow.ui - bcthemeswitchbutton.cpp bcthemeswitchbutton.h + bcthemebutton.cpp bcthemebutton.h bctoggleswitch.cpp bctoggleswitch.h bctransmitter.cpp bctransmitter.h bcvalue.cpp bcvalue.h diff --git a/bc.h b/bc.h index ca5b07b..7a43029 100644 --- a/bc.h +++ b/bc.h @@ -64,6 +64,10 @@ namespace BCTags inline constexpr auto Yes = "Yes"_L1; inline constexpr auto No = "No"_L1; + + inline constexpr auto Host = "bionxcontrol"_L1; + + } /** diff --git a/bcvaluedelegate.cpp b/bcvaluedelegate.cpp index 678faa8..4b607c1 100644 --- a/bcvaluedelegate.cpp +++ b/bcvaluedelegate.cpp @@ -62,8 +62,10 @@ QWidget* BCValueDelegate::createEditor(QWidget *parent, const QStyleOptionViewIt const BCValue& bcValue = *(_valueList[ index.row() ].get()); + BCValue::ValueRange params; + bool hasData = bcValue.hasValuesForSlider( params ); - //qDebug() << " --- Create Editor: " << bcValue.label() << " value: " << params.value << " min: " << params.min << " max: " << params.max << " ratio:" << bcValue.calcMinMaxRatio()*100.0 << '%'; + qDebug() << " --- Create Editor: " << bcValue.label() << " value: " << params.value << " min: " << params.min << " max: " << params.max << " ratio:" << bcValue.calcMinMaxRatio()*100.0 << '%'; if( bcValue.isBoolean() ) { @@ -72,17 +74,15 @@ QWidget* BCValueDelegate::createEditor(QWidget *parent, const QStyleOptionViewIt // Signal für sofortige Updates connect(toggleSwitch, &BCToggleSwitch::toggled, this, [this, toggleSwitch](bool checked) - { - qDebug() << "--- toggled: " << checked; - // Commit data sofort bei Änderung - emit const_cast(this)->commitData(toggleSwitch); - }); + { + qDebug() << "--- toggled: " << checked; + // Commit data sofort bei Änderung + emit const_cast(this)->commitData(toggleSwitch); + }); return toggleSwitch; } - BCValue::ValueRange params; - bool hasData = bcValue.hasValuesForSlider( params ); if( !hasData ) return nullptr; @@ -95,17 +95,6 @@ QWidget* BCValueDelegate::createEditor(QWidget *parent, const QStyleOptionViewIt // Commit data sofort bei Änderung emit const_cast(this)->commitData(valueSlider); }); - - /* - // Signal für sofortige Updates - connect(valueSlider, &BCValueSlider::valueCommited, this, [this, valueSlider](int newValue) - { - qDebug() << " --- value set:" << newValue; - // Commit data sofort bei Änderung - emit const_cast(this)->commitData(valueSlider); - }); - */ - return valueSlider; } @@ -125,18 +114,6 @@ void BCValueDelegate::updateEditorGeometry(QWidget* editor, const QStyleOptionVi const BCValue& bcValue = *(_valueList[ index.row()].get()); QRect editorRect = bcValue.isBoolean() ? adjustEditorRect(option.rect, 0, 6, -130, -6) : adjustEditorRect(option.rect, 0, 0, 8, 0); - - /* - if( !bcValue.isBoolean()) - { - editorRect = adjustEditorRect( option.rect,0,0,8,0 ); - } - else - { - editorRect = adjustEditorRect(option.rect, 0, 6, -130, -6); - } - */ - editor->setGeometry(editorRect); } @@ -161,7 +138,7 @@ void BCValueDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, c } model->setData(index, reValue, Qt::EditRole); - return; + } diff --git a/docker4BionxControl/CMakeLists.txt b/docker4BionxControl/CMakeLists.txt deleted file mode 100644 index 8cad5f8..0000000 --- a/docker4BionxControl/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -cmake_minimum_required(VERSION 3.16) -project(HelloWorldQt6 VERSION 1.0.0 LANGUAGES CXX) - -# Wir nutzen modernes C++ -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -# Qt-spezifische Automatismen aktivieren -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTORCC ON) - -# Qt6 Widgets-Modul suchen -find_package(Qt6 REQUIRED COMPONENTS Widgets) - -# Executable definieren und Quelldateien hinzufügen -add_executable(HelloWorldApp - main.cpp - MainWindow.cpp - MainWindow.hpp -) - -# Qt6 Bibliotheken linken -target_link_libraries(HelloWorldApp PRIVATE Qt6::Widgets) \ No newline at end of file diff --git a/docker4BionxControl/Dockerfile b/docker4BionxControl/Dockerfile deleted file mode 100644 index 777cfc3..0000000 --- a/docker4BionxControl/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -# Wir nutzen Debian Trixie als Basis für das aktuelle Raspberry Pi OS -FROM debian:trixie - -# Verhindert interaktive Prompts während der Installation -ENV DEBIAN_FRONTEND=noninteractive - -# 1. Multiarch für arm64 aktivieren -RUN dpkg --add-architecture arm64 && \ - apt-get update && \ - apt-get upgrade -y - -# 2. Host-Build-Tools und Cross-Compiler installieren -RUN apt-get install -y \ - build-essential \ - crossbuild-essential-arm64 \ - cmake \ - ninja-build \ - git \ - pkg-config - -# 3. Qt6 für den HOST installieren (für moc, uic, etc.) -RUN apt-get install -y \ - qt6-base-dev \ - qt6-tools-dev-tools - -# 4. Qt6 Bibliotheken für das TARGET (arm64) installieren -RUN apt-get install -y \ - qt6-base-dev:arm64 \ - libglvnd-dev:arm64 - -# Aufräumen -RUN apt-get clean && rm -rf /var/lib/apt/lists/* - -WORKDIR /workspace diff --git a/docker4BionxControl/MainWindow.cpp b/docker4BionxControl/MainWindow.cpp deleted file mode 100644 index 19835d1..0000000 --- a/docker4BionxControl/MainWindow.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "MainWindow.hpp" - -MainWindow::MainWindow(QWidget *parent) - : QMainWindow(parent) -{ - // Button erstellen - m_helloButton = new QPushButton("Hello World", this); - - // Den Button zum zentralen Widget des Fensters machen - setCentralWidget(m_helloButton); - - // Eine angenehme Startgröße für das Fenster setzen - resize(400, 300); - - // Ein kleines Extra: Klick auf den Button schließt die App - connect(m_helloButton, &QPushButton::clicked, this, &QMainWindow::close); -} diff --git a/docker4BionxControl/MainWindow.hpp b/docker4BionxControl/MainWindow.hpp deleted file mode 100644 index b87a40d..0000000 --- a/docker4BionxControl/MainWindow.hpp +++ /dev/null @@ -1,14 +0,0 @@ -#pragma once - -#include -#include - -class MainWindow : public QMainWindow { - Q_OBJECT - -public: - explicit MainWindow(QWidget *parent = nullptr); - -private: - QPushButton *m_helloButton; -}; diff --git a/docker4BionxControl/aarch64-toolchain.cmake b/docker4BionxControl/aarch64-toolchain.cmake deleted file mode 100644 index cf27c13..0000000 --- a/docker4BionxControl/aarch64-toolchain.cmake +++ /dev/null @@ -1,25 +0,0 @@ -# Name des Zielsystems -set(CMAKE_SYSTEM_NAME Linux) -set(CMAKE_SYSTEM_PROCESSOR aarch64) - -# Die Cross-Compiler aus dem Debian-Paket -set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc) -set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++) - -# Wo das System nach Bibliotheken und Headern suchen soll (Sysroot) -set(CMAKE_SYSROOT /) - -# Pfade für pkg-config anpassen, damit es die arm64 .pc Dateien findet -set(ENV{PKG_CONFIG_DIR} "") -set(ENV{PKG_CONFIG_LIBDIR} "/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig") -set(ENV{PKG_CONFIG_SYSROOT_DIR} ${CMAKE_SYSROOT}) - -# Suchverhalten für find_package(), find_library() etc. -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # Programme (wie moc) auf dem Host suchen -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) # Libs nur im Target (arm64) suchen -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # Header nur im Target (arm64) suchen -set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) # CMake-Pakete nur im Target suchen - -# *** WICHTIG FÜR QT6 *** -# Sagt Qt, wo es die Host-Tools für das Code-Generieren findet -set(QT_HOST_PATH "/usr") diff --git a/docker4BionxControl/main.cpp b/docker4BionxControl/main.cpp deleted file mode 100644 index 7aeec86..0000000 --- a/docker4BionxControl/main.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include "MainWindow.hpp" - -int main(int argc, char *argv[]) { - QApplication app(argc, argv); - - MainWindow window; - window.show(); - - return app.exec(); -} diff --git a/docker4BionxControl/runme.txt b/docker4BionxControl/runme.txt deleted file mode 100644 index e69de29..0000000 diff --git a/main.cpp b/main.cpp index 58ee69f..0ab90c8 100644 --- a/main.cpp +++ b/main.cpp @@ -47,8 +47,9 @@ int main(int argc, char *argv[]) QApplication app(argc, argv); BCMainWindow mainWindow; + //mainWindow.resize(800, 480); - if (QSysInfo::machineHostName() == "BionxControl") + if (QSysInfo::machineHostName() == BCTags::Host ) { mainWindow.setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); mainWindow.showFullScreen(); diff --git a/resources/bc_light.qss b/resources/bc_light.qss index 31b57ae..3ccdf42 100644 --- a/resources/bc_light.qss +++ b/resources/bc_light.qss @@ -253,6 +253,8 @@ QLineEdit:disabled { } +/* QSlider { background: hotpink; } +*/ diff --git a/resources/bikeinfo.xml b/resources/bikeinfo.xml index e9e1618..8bb0ad1 100644 --- a/resources/bikeinfo.xml +++ b/resources/bikeinfo.xml @@ -41,7 +41,7 @@ - +