From 30ff0bface71f54cfad292952cc8d94598e37db2 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 18 Apr 2023 06:08:08 +0800 Subject: [PATCH] canaba: display the opened dbc files in the window title bar. (#27939) * show dbc file name on the window title * Show all dbc files opened on each bus * check d --- tools/cabana/mainwin.cc | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tools/cabana/mainwin.cc b/tools/cabana/mainwin.cc index 838f6021fe..922ea7a9e2 100644 --- a/tools/cabana/mainwin.cc +++ b/tools/cabana/mainwin.cc @@ -474,24 +474,34 @@ void MainWindow::updateLoadSaveMenus() { open_dbc_for_source->setEnabled(sources.size() > 0); open_dbc_for_source->clear(); + std::map dbc_files; for (uint8_t source : sources_sorted) { if (source >= 64) continue; // Sent and blocked buses are handled implicitly QAction *action = new QAction(this); auto d = dbc()->findDBCFile(source); QString name = tr("no DBC"); - if (d && !d->second->name().isEmpty()) { - name = tr("%1").arg(d->second->name()); - } else if (d) { - name = "untitled"; + if (d) { + if (!d->second->name().isEmpty()) { + name = tr("%1").arg(d->second->name()); + } else { + name = "untitled"; + } + dbc_files[d->second->filename].push_back(QString::number(source)); } - action->setText(tr("Bus %1 (current: %2)").arg(source).arg(name)); action->setData(source); QObject::connect(action, &QAction::triggered, this, &MainWindow::openFileForSource); open_dbc_for_source->addAction(action); } + + QStringList title; + for (auto &[filename, sources] : dbc_files) { + QString bus = dbc_files.size() == 1 ? "all" : sources.join(","); + title.push_back("[" + bus + "]" + QFileInfo(filename).baseName()); + } + setWindowFilePath(title.join(" | ")); } void MainWindow::updateRecentFiles(const QString &fn) {