diff --git a/tools/cabana/mainwin.cc b/tools/cabana/mainwin.cc index 9b52b6823d..35e067316b 100644 --- a/tools/cabana/mainwin.cc +++ b/tools/cabana/mainwin.cc @@ -39,7 +39,6 @@ MainWindow::MainWindow() : QMainWindow() { setGeometry(QApplication::desktop()->availableGeometry(this)); } restoreState(settings.window_state); - messages_widget->restoreHeaderState(settings.message_header_state); qRegisterMetaType("uint64_t"); qRegisterMetaType("SourceSet"); diff --git a/tools/cabana/messageswidget.cc b/tools/cabana/messageswidget.cc index 2a21cd908d..e74b852617 100644 --- a/tools/cabana/messageswidget.cc +++ b/tools/cabana/messageswidget.cc @@ -34,7 +34,11 @@ MessagesWidget::MessagesWidget(QWidget *parent) : QWidget(parent) { view->setItemsExpandable(false); view->setIndentation(0); view->setRootIsDecorated(false); - view->header()->setSectionsMovable(false); + // Must be called before setting any header parameters to avoid overriding + restoreHeaderState(settings.message_header_state); + + view->header()->setSectionsMovable(true); + main_layout->addWidget(view); // suppress @@ -289,7 +293,7 @@ void MessageView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, auto y = option.rect.y(); painter->translate(visualRect(model()->index(0, 0)).x() - indentation() - .5, -.5); for (int i = 0; i < header()->count(); ++i) { - painter->translate(header()->sectionSize(i), 0); + painter->translate(header()->sectionSize(header()->logicalIndex(i)), 0); painter->drawLine(0, y, 0, y + option.rect.height()); } painter->setPen(old_pen); diff --git a/tools/cabana/settings.cc b/tools/cabana/settings.cc index 07fb312c3b..f759324988 100644 --- a/tools/cabana/settings.cc +++ b/tools/cabana/settings.cc @@ -30,7 +30,7 @@ void Settings::save() { s.setValue("geometry", geometry); s.setValue("video_splitter_state", video_splitter_state); s.setValue("recent_files", recent_files); - s.setValue("message_header_state_v2", message_header_state); + s.setValue("message_header_state_v3", message_header_state); s.setValue("chart_series_type", chart_series_type); s.setValue("theme", theme); s.setValue("sparkline_range", sparkline_range); @@ -53,7 +53,7 @@ void Settings::load() { geometry = s.value("geometry").toByteArray(); video_splitter_state = s.value("video_splitter_state").toByteArray(); recent_files = s.value("recent_files").toStringList(); - message_header_state = s.value("message_header_state_v2").toByteArray(); + message_header_state = s.value("message_header_state_v3").toByteArray(); chart_series_type = s.value("chart_series_type", 0).toInt(); theme = s.value("theme", 0).toInt(); sparkline_range = s.value("sparkline_range", 15).toInt();