- Auto-scroll standard aktiv

- Tag-Filter wird gespeichert
- Tag Monitor kann bei einem Tag jetzt pro Key mehrere Werte in einer Tabelle anzeigen
- Bug für Clear behoben
This commit is contained in:
2026-06-23 23:19:06 +02:00
parent 92168ee5dc
commit d3229c7b64
29 changed files with 342 additions and 380 deletions

View File

@@ -6,11 +6,16 @@
#include <QPushButton>
#include <QTableWidget>
#include <QStringList>
#include <QMap>
// TagPanel displays the most recent data for a single tag (e.g. [WDG]).
// Key=value pairs are shown in a table that updates in-place.
// A "Copy" button copies the current values to the clipboard.
// No timestamp is shown here timestamps belong in the Raw view.
// If a value contains ';', it is treated as a LIST: the key is shown once
// and each list element gets its own row below it (key cell left empty
// for the continuation rows, like a merged-cell look).
// Example: Devs=trackdisk.device;input.device
// Devs trackdisk.device
// input.device
class TagPanel : public QGroupBox
{
Q_OBJECT
@@ -29,10 +34,16 @@ private slots:
private:
void parseKeyValue(const QString &value);
void showRaw(const QString &value);
void ensureRow(const QString &key);
// Replaces all rows belonging to `key` with one row per value in `values`.
void setKeyValues(const QString &key, const QStringList &values);
QString m_tag;
QTableWidget *m_table = nullptr;
QLabel *m_rawLabel = nullptr;
QStringList m_keys;
// Track which table rows belong to which key, so repeated updates can
// replace the previous rows instead of appending duplicates.
// Maps key -> (first row index, row count)
struct KeyRange { int firstRow; int count; };
QMap<QString, KeyRange> m_keyRanges;
};