Cabana: Reimplement HistoryLog::sizeHintForColumn to improve performance (#26393)

Reimplement sizeHintForColumn to improve performance
old-commit-hash: cdcc0fb369
taco
Dean Lee 3 years ago committed by GitHub
parent 2a6edbea60
commit 32ff5a5b1c
  1. 6
      tools/cabana/historylog.cc
  2. 3
      tools/cabana/historylog.h

@ -1,7 +1,6 @@
#include "tools/cabana/historylog.h" #include "tools/cabana/historylog.h"
#include <QFontDatabase> #include <QFontDatabase>
#include <QVBoxLayout>
// HistoryLogModel // HistoryLogModel
@ -89,3 +88,8 @@ HistoryLog::HistoryLog(QWidget *parent) : QTableView(parent) {
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
setStyleSheet("QTableView::item { border:0px; padding-left:5px; padding-right:5px; }"); setStyleSheet("QTableView::item { border:0px; padding-left:5px; padding-right:5px; }");
} }
int HistoryLog::sizeHintForColumn(int column) const {
// sizeHintForColumn is only called for column 0 (ResizeToContents)
return itemDelegate()->sizeHint(viewOptions(), model->index(0, 0)).width() + 1; // +1 for grid
}

@ -9,7 +9,7 @@
class HeaderView : public QHeaderView { class HeaderView : public QHeaderView {
public: public:
HeaderView(Qt::Orientation orientation, QWidget *parent = nullptr) : QHeaderView(orientation, parent) {} HeaderView(Qt::Orientation orientation, QWidget *parent = nullptr) : QHeaderView(orientation, parent) {}
QSize sectionSizeFromContents(int logicalIndex) const; QSize sectionSizeFromContents(int logicalIndex) const override;
}; };
class HistoryLogModel : public QAbstractTableModel { class HistoryLogModel : public QAbstractTableModel {
@ -40,5 +40,6 @@ public:
void setMessage(const QString &message_id) { model->setMessage(message_id); } void setMessage(const QString &message_id) { model->setMessage(message_id); }
void updateState() { model->updateState(); } void updateState() { model->updateState(); }
private: private:
int sizeHintForColumn(int column) const override;
HistoryLogModel *model; HistoryLogModel *model;
}; };

Loading…
Cancel
Save