    widget->setLayout(main_layout);
    return widget;
  }
  
  QWidget * Setup::network_setup() {
  
    QVBoxLayout *main_layout = new QVBoxLayout();
    main_layout->setContentsMargins(50, 50, 50, 50);
  
    main_layout->addWidget(title_label("Connect to WiFi"), 0, Qt::AlignTop);
  
    WifiUI *wifi = new WifiUI(this, 6);
    main_layout->addWidget(wifi);
    QObject::connect(wifi, &WifiUI::openKeyboard, this, [=]() {
      this->continue_btn->setVisible(false);
    });
    QObject::connect(wifi, &WifiUI::closeKeyboard, this, [=]() {
      this->continue_btn->setVisible(true);
    });
  
    continue_btn = new QPushButton("Continue");
    main_layout->addWidget(continue_btn);
    QObject::connect(continue_btn, SIGNAL(released()), this, SLOT(nextPage()));
  
    QWidget *widget = new QWidget();
    widget->setLayout(main_layout);
    return widget;
  }
 
</s> remove   QObject::connect(parent, SIGNAL(sidebarPressed()), w, SLOT(sidebarChange()));
  QObject::connect(w, SIGNAL(openKeyboard()), parent, SLOT(closeSidebar()));
  QObject::connect(w, SIGNAL(closeKeyboard()), parent, SLOT(openSidebar()));
 </s> add  </s> remove   connect(wifi, SIGNAL(successfulConnection(QString)), this, SLOT(successfulConnection(QString)));

 </s> add  </s> remove   inputField = new InputField(this, 8);
  connect(inputField, SIGNAL(emitText(QString)), this, SLOT(receiveText(QString)));
  connect(inputField, SIGNAL(cancel()), this, SLOT(abortTextInput()));
  inputField->setContentsMargins(100,0,100,0);
  s->addWidget(inputField);

 </s> add  </s> remove   s = new QStackedLayout;// inputField, mainPage, SSH settings
  inputField = new InputField(this, 8);
  connect(inputField, SIGNAL(emitText(QString)), this, SLOT(receiveText(QString)));
  connect(inputField, SIGNAL(cancel()), this, SLOT(abortTextInput()));
  inputField->setContentsMargins(100,0,100,0);
  s->addWidget(inputField);
 </s> add   s = new QStackedLayout; // mainPage, SSH settings </s> remove   QPushButton* advancedSettings = new QPushButton("Advanced");
  advancedSettings->setStyleSheet(R"(margin-right: 30px)");
  advancedSettings->setFixedSize(300, 100);
  connect(advancedSettings, &QPushButton::released, [=](){s->setCurrentIndex(2);});
  vlayout->addSpacing(10);
  vlayout->addWidget(advancedSettings, 0, Qt::AlignRight);
  vlayout->addSpacing(10);
 </s> add   if (show_advanced) {
    QPushButton* advancedSettings = new QPushButton("Advanced");
    advancedSettings->setStyleSheet(R"(margin-right: 30px)");
    advancedSettings->setFixedSize(300, 100);
    connect(advancedSettings, &QPushButton::released, [=](){s->setCurrentIndex(1);});
    vlayout->addSpacing(10);
    vlayout->addWidget(advancedSettings, 0, Qt::AlignRight);
    vlayout->addSpacing(10);
  }
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
    widget->setLayout(main_layout);
    return widget;
  }
  
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
QWidget * Setup::getting_started() {
  QLabel *body = new QLabel("Before we get on the road, let's finish\ninstallation and cover some details.");
  body->setAlignment(Qt::AlignHCenter);
  body->setStyleSheet(R"(font-size: 80px;)");
  return build_page("Getting Started", body, true, false);
}
  
    QWidget *widget = new QWidget();
    widget->setLayout(main_layout);
    return widget;
  }
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace keep keep keep keep keep
 Qt UI refactoring + improvements (#20033) 
selfdrive/ui/qt/setup/setup.cc