  }
  
  void MainWindow::loadFile(const QString &fn) {
    if (!fn.isEmpty()) {
      QFile file(fn);
      if (file.open(QIODevice::ReadOnly)) {
        auto dbc_name = QFileInfo(fn).baseName();
        QString error;
        bool ret = dbc()->open(dbc_name, file.readAll(), &error);
        if (ret) {
 
</s>
    QString dbc_fn = fn;

    // Prompt user to load auto saved file if it exists.
    if (QFile::exists(fn + AUTO_SAVE_EXTENSION)) {
      auto ret = QMessageBox::question(this, tr("Auto saved DBC found"), tr("Auto saved DBC file from previous session found. Do you want to load it instead?"));
      if (ret == QMessageBox::Yes) {
        dbc_fn += AUTO_SAVE_EXTENSION;
        UndoStack::instance()->resetClean(); // Force user to save on close so the auto saved file is not lost
      }
    }

    QFile file(dbc_fn);
  }
  
  void MainWindow::loadFile(const QString &fn) {
    if (!fn.isEmpty()) {
    QString dbc_fn = fn;

    // Prompt user to load auto saved file if it exists.
    if (QFile::exists(fn + AUTO_SAVE_EXTENSION)) {
      auto ret = QMessageBox::question(this, tr("Auto saved DBC found"), tr("Auto saved DBC file from previous session found. Do you want to load it instead?"));
      if (ret == QMessageBox::Yes) {
        dbc_fn += AUTO_SAVE_EXTENSION;
        UndoStack::instance()->resetClean(); // Force user to save on close so the auto saved file is not lost
      }
    }

    QFile file(dbc_fn);
      if (file.open(QIODevice::ReadOnly)) {
        auto dbc_name = QFileInfo(fn).baseName();
        QString error;
        bool ret = dbc()->open(dbc_name, file.readAll(), &error);
        if (ret) {
keep keep keep keep replace keep keep keep keep keep
 cabana: create autosave file when there are unsaved changes (#27542)
tools/cabana/mainwin.cc