From 6232b560b5ef05f5d99d307bd5b18c19a7eca043 Mon Sep 17 00:00:00 2001 From: "PANIK\\chris" Date: Sun, 11 Jan 2026 01:13:56 +0100 Subject: [PATCH] Added missing files. --- bcvaluewidget.cpp | 67 ++++++++++++++++++++++++++++++ bcvaluewidget.h | 32 +++++++++++++++ bcvaluewidget.ui | 95 +++++++++++++++++++++++++++++++++++++++++++ resources/update.png | Bin 0 -> 1591 bytes 4 files changed, 194 insertions(+) create mode 100644 bcvaluewidget.cpp create mode 100644 bcvaluewidget.h create mode 100644 bcvaluewidget.ui create mode 100644 resources/update.png diff --git a/bcvaluewidget.cpp b/bcvaluewidget.cpp new file mode 100644 index 0000000..872a376 --- /dev/null +++ b/bcvaluewidget.cpp @@ -0,0 +1,67 @@ + +#include +#include + + + +BCValueWidget::BCValueWidget(const BCValue& bcValue, QWidget *parent ) + : QWidget(parent), _bcValue{bcValue} +{ + setupUi(this); + + _slider->setStyle(new BCSliderStyle()); + setAutoFillBackground(true); + + + /* + _slider = new QSlider(Qt::Horizontal, this); + _slider->setRange(0, 100); + _slider->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + + _slider->setSingleStep(1); + _slider->setPageStep(10); + _slider->setStyle(new BCSliderStyle()); + + _commitButton = new QPushButton(this); + _commitButton->setIcon(style()->standardIcon(QStyle::SP_DialogResetButton)); + _commitButton->setFixedSize(32, 32); + + auto *layout = new QHBoxLayout(this); + // Deine gewünschten Margins für 36px Zeilenhöhe + layout->setContentsMargins(2, 2, 2, 2); + layout->setSpacing(4); + + layout->addWidget(_slider); + layout->addWidget(_commitButton); + setLayout(layout); + */ + // Wenn Slider bewegt wird -> Signal nach außen senden + connect(_slider, &QSlider::valueChanged, this, [this](int val) + { + emit valueChanged(val); + }); + + // Wenn Reset gedrückt wird -> Slider auf 0 (löst auch valueChanged aus) + connect(_commitButton, &QPushButton::clicked, this, [this](){ + _slider->setValue(0); + }); + _commitButton->setVisible( false); +} + +int BCValueWidget::getValue() const +{ + return _slider->value(); +} + +void BCValueWidget::setValue(int val) +{ + // WICHTIG: Block Signals verhindern Endlosschleifen, falls das Model + // das Widget während des Updates neu setzt (passiert manchmal bei Live-Updates). + if (val != _slider->value()) + { + bool blocked = _slider->blockSignals(true); + _slider->setValue(val); + _slider->blockSignals(blocked); + } +} + diff --git a/bcvaluewidget.h b/bcvaluewidget.h new file mode 100644 index 0000000..776217b --- /dev/null +++ b/bcvaluewidget.h @@ -0,0 +1,32 @@ +#ifndef BCVALUEWIDGET_H +#define BCVALUEWIDGET_H + + +#include +#include + +class QSlider; +class QPushButton; +class BCValue; + +class BCValueWidget : public QWidget, private Ui::BCValueWidget +{ + Q_OBJECT + +public: + + explicit BCValueWidget(const BCValue& bcValue, QWidget *parent = nullptr); + + int getValue() const; + void setValue(int val); + +signals: + + void valueChanged(int value); + +private: + + const BCValue& _bcValue; + +}; +#endif // BCVALUEWIDGET_H diff --git a/bcvaluewidget.ui b/bcvaluewidget.ui new file mode 100644 index 0000000..d054130 --- /dev/null +++ b/bcvaluewidget.ui @@ -0,0 +1,95 @@ + + + BCValueWidget + + + + 0 + 0 + 60 + 24 + + + + + 60 + 24 + + + + Form + + + + 0 + + + QLayout::SizeConstraint::SetMinimumSize + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Orientation::Horizontal + + + + + + + + 24 + 24 + + + + + 16777212 + 16777215 + + + + PointingHandCursor + + + + + + + :/update.png:/update.png + + + + 24 + 24 + + + + QToolButton::ToolButtonPopupMode::InstantPopup + + + Qt::ToolButtonStyle::ToolButtonIconOnly + + + true + + + + + + + + + + diff --git a/resources/update.png b/resources/update.png new file mode 100644 index 0000000000000000000000000000000000000000..2cca881def8bcd04e0867098ba1bd10d391e5afc GIT binary patch literal 1591 zcmZ8hdpOg382`>~S}nKIF=QQ_k{WYaGiMcT*ks8qRys6^5@GZt_c)}6NFp@1)rxW{ zNgH`8BDS@yI!JVg73-W-D-XxcZ`JwdywCIbem?K}ytn85<9phh=8i<55C8xq#e?Jn zv8@W)TF|>kZ9WGgSiFzBE4U#rc?&rjhg`f|0B9~)z8IEKCjPK}?4bnWOP79tCNYg+Nf%|HuEI3V=EQg>aw&<=EQU z+rrr2`>JX*+24CzfV9fgpiXMvGJTxzkor-DwN>2)XgNybTMFWwp<_%?NG^U6JLF}1 zbEW1M5t-9OxMZK&882v2RuYvn17F3-<4>HrCIn7hV@}g)(HxXR zgb0nhyAM+-obIK!ZnVSkxpk7acRU0J52Kl9ti0TYIp?asl*fj&J6i8f$yO*7zp zfB3)x{&X_V#jNzHWzG_Lk0>C?cOE~$soh#P=-g;2{>wyO8b-%XmDMqMi6^mZTsR>wT6$P8u+gumi7}$xou6`O`WFO%mE)>?) z*ig*7d+}%Id6~0^9n_HlC)85iJR=sY87m+DWh|nK?{&*+c_A&Ybr-1>%FNjj5A%!C z6Ii_zQYDJGUI4!8^37{4ZKB$r&6r2Zf?Mu+zq#g*EJrSI7j`og>zQV`YJ!5=7dpi$ zJ?Et+nz4oGDdX0HYwBz<7N3?r%k=fx61`)utRdAn%pb-~OvIg=B}w`AHOHA#$M7Iv627c_e8cZc4~`H zBRZ{`t%vWUjK?l1;78y^VTi%zNXxh=WEGJ#aj&5jbL;rmYKG$H3;km(BU%wy+sZB7 z<-MF1!?~igCpSB}3WZnlAH&`Ctievt`1d2##YM7(;Q&uU{N3g!FdU=O06#8zwx*;nV_|)r9Wc{(YY^A|;etSp?ChtBXpl z#$-Z3g)L`W2249sG$F=E6E!Z)IX%1p568C0ZsMwQOGpX4cCy&e*yJA Bs1E=D literal 0 HcmV?d00001