MainWindow: Include device/file name in window title
[pulseview.git] / pv / mainwindow.cpp
index d1418b5921befe0dfdf85b0ac5dedfa07fd6310c..142eb3f1c08960a8db7be4cbfe964574c5aa8d1c 100644 (file)
 #include <QVBoxLayout>
 #include <QWidget>
 
-#include "mainwindow.h"
-
-#include "devicemanager.h"
-#include "dialogs/about.h"
-#include "dialogs/connect.h"
-#include "dialogs/storeprogress.h"
-#include "toolbars/samplingbar.h"
-#include "view/logicsignal.h"
-#include "view/view.h"
+#include "mainwindow.hpp"
+
+#include "devicemanager.hpp"
+#include "dialogs/about.hpp"
+#include "dialogs/connect.hpp"
+#include "dialogs/storeprogress.hpp"
+#include "toolbars/samplingbar.hpp"
+#include "view/logicsignal.hpp"
+#include "view/view.hpp"
 #ifdef ENABLE_DECODE
-#include "widgets/decodermenu.h"
+#include "widgets/decodermenu.hpp"
 #endif
 
 #include <inttypes.h>
@@ -270,6 +270,8 @@ void MainWindow::setup_ui()
        // Setup session_ events
        connect(&session_, SIGNAL(capture_state_changed(int)), this,
                SLOT(capture_state_changed(int)));
+       connect(&session_, SIGNAL(device_selected()), this,
+               SLOT(device_selected()));
 }
 
 void MainWindow::save_ui_settings()
@@ -559,4 +561,15 @@ void MainWindow::capture_state_changed(int state)
        sampling_bar_->set_capture_state((pv::SigSession::capture_state)state);
 }
 
+void MainWindow::device_selected()
+{
+       // Set the title to include the device/file name
+       const shared_ptr<sigrok::Device> device = session_.device();
+       if (!device)
+               return;
+
+       const string display_name = device_manager_.get_display_name(device);
+       setWindowTitle(tr("%1 - PulseView").arg(display_name.c_str()));
+}
+
 } // namespace pv