]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.cpp
DecoderStack: Fix "data may be unitialized" error
[pulseview.git] / pv / mainwindow.cpp
index f777bfd6ca932da01450ef000c2e3aad0bd1a7cf..7fe09fb732e9789ca8be26a958a4057a50e5a0fe 100644 (file)
@@ -44,6 +44,7 @@
 #include "dialogs/about.hpp"
 #include "toolbars/mainbar.hpp"
 #include "view/view.hpp"
+#include "views/trace/standardbar.hpp"
 
 #include <stdint.h>
 #include <stdarg.h>
@@ -160,7 +161,7 @@ shared_ptr<views::ViewBase> MainWindow::get_active_view() const
 shared_ptr<views::ViewBase> MainWindow::add_view(const QString &title,
        views::ViewType type, Session &session)
 {
-       QMainWindow *main_window;
+       QMainWindow *main_window = nullptr;
        for (auto entry : session_windows_)
                if (entry.first.get() == &session)
                        main_window = entry.second;
@@ -204,17 +205,23 @@ shared_ptr<views::ViewBase> MainWindow::add_view(const QString &title,
 
                        shared_ptr<MainBar> main_bar = session.main_bar();
                        if (!main_bar) {
-                               main_bar = make_shared<MainBar>(session, *this);
+                               /* Initial view, create the main bar */
+                               main_bar = make_shared<MainBar>(session, this, v.get());
                                dock_main->addToolBar(main_bar.get());
                                session.set_main_bar(main_bar);
 
                                connect(main_bar.get(), SIGNAL(new_view(Session*)),
                                        this, SLOT(on_new_view(Session*)));
-                       }
-                       main_bar->action_view_show_cursors()->setChecked(v->cursors_shown());
 
-                       connect(v.get(), SIGNAL(always_zoom_to_fit_changed(bool)),
-                               main_bar.get(), SLOT(on_always_zoom_to_fit_changed(bool)));
+                               main_bar->action_view_show_cursors()->setChecked(v->cursors_shown());
+                       } else {
+                               /* Additional view, create a standard bar */
+                               pv::views::trace::StandardBar *standard_bar =
+                                       new pv::views::trace::StandardBar(session, this, v.get());
+                               dock_main->addToolBar(standard_bar);
+
+                               standard_bar->action_view_show_cursors()->setChecked(v->cursors_shown());
+                       }
                }
 
                return v;