/*************************************************************************** BionxControl © 2025 -2026 christoph holzheuer christoph.holzheuer@gmail.com Using: mhs_can_drv.c © 2011 - 2023 by MHS-Elektronik GmbH & Co. KG, Germany Klaus Demlehner, klaus@mhs-elektronik.de @see www.mhs-elektronik.de Based on Bionx data type descriptions from: BigXionFlasher USB V 0.2.4 rev. 97 © 2011-2013 by Thomas Koenig @see www.bigxionflasher.org Bionx Bike Info © 2018 Thorsten Schmidt (tschmidt@ts-soft.de) @see www.ts-soft.de This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. @see https://github.com/bikemike/bionx-bikeinfo ***************************************************************************/ #include #include #include BCDeviceView::BCDeviceView(QWidget *parent) : QTableView(parent) { setModel( &_valueModel ); //resizeColumnsToContents(); //horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // __fix! ziemlich wildes ge-pointere, hier _itemDelegate = new BCAnimatedDelegate( _valueModel.getValueList(), this); setItemDelegate( _itemDelegate ); } void BCDeviceView::setDeviceID( BCDevice::ID deviceID ) { _devideID = deviceID; } BCDevice::ID BCDeviceView::getDeviceID() const { return _devideID; } /** * @brief Gibt eine Referenz auf der ValueList zurück. */ const BCValueList& BCDeviceView::getValueListX() { return _valueModel.getValueList(); } /** * @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(); if(_devideID == deviceID) _valueModel.takeValueList( valueList ); } /** * @brief SLOT, der aufgerufen wird, wenn ein Value geändert wurde. Gibt dem ItemDelegate Bescheid. */ void BCDeviceView::updateValue(int index, BCValue::Flag state, uint32_t rawValue ) { _valueModel.updateValue( index, state, rawValue ); _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(totalWidth * 0.60); // Setzen der Breite horizontalHeader()->resizeSection(0, col0Width); }