#include <QVBoxLayout>
#include <QWidget>
+#include <QDockWidget>
+
#include "mainwindow.hpp"
#include "devicemanager.hpp"
using std::cerr;
using std::endl;
using std::list;
+using std::make_shared;
using std::map;
+using std::max;
using std::pair;
using std::shared_ptr;
using std::string;
const pv::util::Timestamp& start_time = view_->cursors()->first()->time();
const pv::util::Timestamp& end_time = view_->cursors()->second()->time();
- const uint64_t start_sample = start_time.convert_to<double>() * samplerate;
+ const uint64_t start_sample =
+ std::max((double)0, start_time.convert_to<double>() * samplerate);
const uint64_t end_sample = end_time.convert_to<double>() * samplerate;
sample_range = std::make_pair(start_sample, end_sample);
icon.addFile(QString(":/icons/sigrok-logo-notext.svg"));
setWindowIcon(icon);
- // Setup the central widget
- central_widget_ = new QWidget(this);
- vertical_layout_ = new QVBoxLayout(central_widget_);
- vertical_layout_->setSpacing(6);
- vertical_layout_->setContentsMargins(0, 0, 0, 0);
- setCentralWidget(central_widget_);
-
- view_ = new pv::view::View(session_, this);
+ // Set up the initial view
+ shared_ptr<pv::view::View> view = make_shared<pv::view::View>(session_, this);
+ shared_ptr<QDockWidget> dock = make_shared<QDockWidget>(tr("Untitled"), this);
+ dock->setWidget(view.get());
+ addDockWidget(Qt::TopDockWidgetArea, dock.get());
+ view_docks_[dock] = view;
- vertical_layout_->addWidget(view_);
+ view_ = view.get(); // view_ will be refactored later
// Setup the menu bar
pv::widgets::HidingMenuBar *const menu_bar =
{
// Set the title to include the device/file name
const shared_ptr<devices::Device> device = session_.device();
- if (!device)
+
+ if (!device) {
+ main_bar_->reset_device_selector();
return;
+ }
const string display_name = device->display_name(device_manager_);
setWindowTitle(tr("%1 - PulseView").arg(display_name.c_str()));