    if (isMaximized()) {
      setGeometry(QApplication::desktop()->availableGeometry(this));
    }
    restoreState(settings.window_state);
    messages_widget->restoreHeaderState(settings.message_header_state);
  
    qRegisterMetaType<uint64_t>("uint64_t");
    qRegisterMetaType<SourceSet>("SourceSet");
    qRegisterMetaType<ReplyMsgType>("ReplyMsgType");
    installMessageHandler([this](ReplyMsgType type, const std::string msg) {
 
</s> remove   message_header_state = s.value("message_header_state_v2").toByteArray();
 </s> add   message_header_state = s.value("message_header_state_v3").toByteArray(); </s> remove     painter->translate(header()->sectionSize(i), 0);
 </s> add     painter->translate(header()->sectionSize(header()->logicalIndex(i)), 0); </s> remove   view->header()->setSectionsMovable(false);
 </s> add   // Must be called before setting any header parameters to avoid overriding
  restoreHeaderState(settings.message_header_state);

  view->header()->setSectionsMovable(true);

    if (isMaximized()) {
      setGeometry(QApplication::desktop()->availableGeometry(this));
    }
    restoreState(settings.window_state);

  
    qRegisterMetaType<uint64_t>("uint64_t");
    qRegisterMetaType<SourceSet>("SourceSet");
    qRegisterMetaType<ReplyMsgType>("ReplyMsgType");
    installMessageHandler([this](ReplyMsgType type, const std::string msg) {
keep keep keep keep replace keep keep keep keep keep
 cabana: make head section movable (#27971)

* set sections movable

* change setting key to v3

* add comment

* remove restorestate from MainWindow 
tools/cabana/mainwin.cc