More fancyfications.

This commit is contained in:
2026-01-06 13:58:02 +01:00
parent c21bb2cf4e
commit 6c15d99119
7 changed files with 193 additions and 40 deletions

View File

@@ -30,6 +30,8 @@
***************************************************************************/
#include <QHeaderView>
#include <bcdeviceview.h>
#include <bcanimateddelegate.h>
@@ -44,18 +46,13 @@ BCDeviceView::BCDeviceView(QWidget *parent)
// __fix! ziemlich wildes ge-pointere, hier
_itemDelegate = new BCAnimatedDelegate( _valueModel.getValueList(), this);
setItemDelegate( _itemDelegate );
qDebug() << " --- View size I: " << this->size();
}
void BCDeviceView::setDeviceID( BCDevice::ID deviceID )
{
qDebug() << " --- View size II: " << this->size();
_devideID = deviceID;
_devideID = deviceID;
}
BCDevice::ID BCDeviceView::getDeviceID() const
@@ -64,7 +61,9 @@ BCDevice::ID BCDeviceView::getDeviceID() const
}
/**
* @brief Gibt eine Referenz auf der ValueList zurück.
*/
const BCValueList& BCDeviceView::getValueListX()
{
@@ -72,8 +71,10 @@ const BCValueList& BCDeviceView::getValueListX()
}
// __FIX ist das ok so?
/**
* @brief SLOT, der aufgerufen wird, wenn die ValueList vom XML-Lader fertig geladen wurde.
* Die DeviceView nimmt die ValueList dann in Besitz.
*/
void BCDeviceView::onValueListReady( BCDevice::ID deviceID, BCValueList valueList )
{
qDebug() << " --- onValueListReady: " << deviceID << ": " << valueList.size();
@@ -81,11 +82,28 @@ void BCDeviceView::onValueListReady( BCDevice::ID deviceID, BCValueList valueLis
_valueModel.takeValueList( valueList );
}
/**
* @brief SLOT, der aufgerufen wird, wenn ein Value geändert wurde. Gibt dem ItemDelegate Bescheid.
*/
void BCDeviceView::onValueUpdated(int index, BCValue::State state, const QString& newVisibleValue )
{
_valueModel.onValueUpdated( index, state, newVisibleValue);
_itemDelegate->onHighlightRow( index );
}
void BCDeviceView::resizeEvent(QResizeEvent *event)
{
// Zuerst die Basisklasse aufrufen (Wichtig für Layouts!)
QWidget::resizeEvent(event);
// Berechnung: 40% der aktuellen Breite
// Tipp: viewport()->width() ist genauer als width(), da es Scrollbars rausrechnet!
int totalWidth = viewport()->width();
int col0Width = static_cast<int>(totalWidth * 0.60);
// Setzen der Breite
horizontalHeader()->resizeSection(0, col0Width);
}