cabana: set time column to fixed width (#27117)

improve column width
pull/27118/head
Dean Lee 2 years ago committed by GitHub
parent 0eed31f1a6
commit f0078eafac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      tools/cabana/historylog.cc

@ -170,11 +170,16 @@ std::deque<HistoryLogModel::Message> HistoryLogModel::fetchData(uint64_t from_ti
// HeaderView // HeaderView
QSize HeaderView::sectionSizeFromContents(int logicalIndex) const { QSize HeaderView::sectionSizeFromContents(int logicalIndex) const {
int default_size = qMax(100, rect().width() / model()->columnCount()); static QSize time_col_size = fontMetrics().boundingRect({0, 0, 200, 200}, defaultAlignment(), "000000.000").size() + QSize(10, 6);
const QString text = model()->headerData(logicalIndex, this->orientation(), Qt::DisplayRole).toString(); if (logicalIndex == 0) {
const QRect rect = fontMetrics().boundingRect({0, 0, default_size, 2000}, defaultAlignment(), text); return time_col_size;
QSize size = rect.size() + QSize{10, 6}; } else {
return {qMax(size.width(), default_size), size.height()}; int default_size = qMax(100, (rect().width() - time_col_size.width()) / (model()->columnCount() - 1));
const QString text = model()->headerData(logicalIndex, this->orientation(), Qt::DisplayRole).toString();
const QRect rect = fontMetrics().boundingRect({0, 0, default_size, 2000}, defaultAlignment(), text);
QSize size = rect.size() + QSize{10, 6};
return QSize{qMax(size.width(), default_size), size.height()};
}
} }
void HeaderView::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const { void HeaderView::paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const {

Loading…
Cancel
Save