    replay->setSegmentCacheLimit(settings.cached_segment_limit);
    replay->installEventFilter(event_filter, this);
    QObject::connect(replay, &Replay::segmentsMerged, this, &CANMessages::eventsMerged);
    QObject::connect(replay, &Replay::streamStarted, this, &CANMessages::streamStarted);
    if (replay->load()) {
      replay->start();
      return true;
 
</s> remove     return !sigs.empty() ? QString::number(get_raw_value((uint8_t *)m.dat.data(), m.dat.size(), *sigs[index.column() - 1]))
                         : toHex(m.dat);
 </s> add     return !sigs.empty() ? QString::number(m.sig_values[index.column() - 1]) : toHex(m.data); </s> remove   int prev_row_count = messages.size();
 </s> add  </s> remove 
int HistoryLog::sizeHintForColumn(int column) const {
  return -1;
}
 </s> add 
  QObject::connect(replay, &Replay::seekedTo, this, &CANMessages::seekedTo);
    replay->setSegmentCacheLimit(settings.cached_segment_limit);
    replay->installEventFilter(event_filter, this);
  QObject::connect(replay, &Replay::seekedTo, this, &CANMessages::seekedTo);
    QObject::connect(replay, &Replay::segmentsMerged, this, &CANMessages::eventsMerged);
    QObject::connect(replay, &Replay::streamStarted, this, &CANMessages::streamStarted);
    if (replay->load()) {
      replay->start();
      return true;
keep add keep keep keep keep keep
 Cabana: display all logs in log view (#26659)

* fetch more

* clear log in showevent

* fix wrong time value

* check list size

* fix canmessages::process

* cache all events

* improve segment cache

* cleanup 
tools/cabana/canmessages.cc