projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
MainWindow: Add separator
[pulseview.git]
/
pv
/
mainwindow.cpp
diff --git
a/pv/mainwindow.cpp
b/pv/mainwindow.cpp
index 22e4e80e10f6a2ad3b803abcedfd4a88f5500bec..f0840bca8372c445d7851e0245c67c5397820bf2 100644
(file)
--- a/
pv/mainwindow.cpp
+++ b/
pv/mainwindow.cpp
@@
-247,6
+247,7
@@
shared_ptr<Session> MainWindow::add_session()
int index = session_selector_.addTab(window, name);
session_selector_.setCurrentIndex(index);
int index = session_selector_.addTab(window, name);
session_selector_.setCurrentIndex(index);
+ last_focused_session_ = session;
window->setDockNestingEnabled(true);
window->setDockNestingEnabled(true);
@@
-283,6
+284,9
@@
void MainWindow::remove_session(shared_ptr<Session> session)
session_windows_.erase(session);
session_windows_.erase(session);
+ if (last_focused_session_ == session)
+ last_focused_session_.reset();
+
sessions_.remove_if([&](shared_ptr<Session> s) {
return s == session; });
sessions_.remove_if([&](shared_ptr<Session> s) {
return s == session; });
@@
-342,9
+346,13
@@
void MainWindow::setup_ui()
run_stop_button_->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
run_stop_button_->setShortcut(QKeySequence(Qt::Key_Space));
run_stop_button_->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
run_stop_button_->setShortcut(QKeySequence(Qt::Key_Space));
+ QFrame *separator = new QFrame();
+ separator->setFrameStyle(QFrame::VLine | QFrame::Raised);
+
QHBoxLayout* layout = new QHBoxLayout();
layout->setContentsMargins(2, 2, 2, 2);
layout->addWidget(new_session_button_);
QHBoxLayout* layout = new QHBoxLayout();
layout->setContentsMargins(2, 2, 2, 2);
layout->addWidget(new_session_button_);
+ layout->addWidget(separator);
layout->addWidget(run_stop_button_);
static_tab_widget_ = new QWidget();
layout->addWidget(run_stop_button_);
static_tab_widget_ = new QWidget();
@@
-487,14
+495,12
@@
void MainWindow::on_add_view(const QString &title, views::ViewType type,
void MainWindow::on_focus_changed()
{
void MainWindow::on_focus_changed()
{
- static shared_ptr<Session> prev_session;
-
shared_ptr<views::ViewBase> view = get_active_view();
if (view) {
for (shared_ptr<Session> session : sessions_) {
if (session->has_view(view)) {
shared_ptr<views::ViewBase> view = get_active_view();
if (view) {
for (shared_ptr<Session> session : sessions_) {
if (session->has_view(view)) {
- if (session !=
prev_session
) {
+ if (session !=
last_focused_session_
) {
// Activate correct tab if necessary
shared_ptr<Session> tab_session = get_tab_session(
session_selector_.currentIndex());
// Activate correct tab if necessary
shared_ptr<Session> tab_session = get_tab_session(
session_selector_.currentIndex());
@@
-505,7
+511,6
@@
void MainWindow::on_focus_changed()
on_focused_session_changed(session);
}
on_focused_session_changed(session);
}
- prev_session = session;
break;
}
}
break;
}
}
@@
-517,6
+522,8
@@
void MainWindow::on_focus_changed()
void MainWindow::on_focused_session_changed(shared_ptr<Session> session)
{
void MainWindow::on_focused_session_changed(shared_ptr<Session> session)
{
+ last_focused_session_ = session;
+
setWindowTitle(session->name() + " - " + WindowTitle);
// Update the state of the run/stop button, too
setWindowTitle(session->name() + " - " + WindowTitle);
// Update the state of the run/stop button, too
@@
-530,16
+537,19
@@
void MainWindow::on_new_session_clicked()
void MainWindow::on_run_stop_clicked()
{
void MainWindow::on_run_stop_clicked()
{
- Session &session = get_active_view()->session();
+ shared_ptr<Session> session = last_focused_session_;
+
+ if (!session)
+ return;
- switch (session
.
get_capture_state()) {
+ switch (session
->
get_capture_state()) {
case Session::Stopped:
case Session::Stopped:
- session
.
start_capture([&](QString message) {
+ session
->
start_capture([&](QString message) {
session_error("Capture failed", message); });
break;
case Session::AwaitingTrigger:
case Session::Running:
session_error("Capture failed", message); });
break;
case Session::AwaitingTrigger:
case Session::Running:
- session
.
stop_capture();
+ session
->
stop_capture();
break;
}
}
break;
}
}
@@
-560,9
+570,7
@@
void MainWindow::on_session_name_changed()
}
// Refresh window title if the affected session has focus
}
// Refresh window title if the affected session has focus
- shared_ptr<views::ViewBase> view = get_active_view();
-
- if (view && session->has_view(view))
+ if (session == last_focused_session_.get())
setWindowTitle(session->name() + " - " + WindowTitle);
}
setWindowTitle(session->name() + " - " + WindowTitle);
}
@@
-572,12
+580,8
@@
void MainWindow::on_capture_state_changed(QObject *obj)
// Ignore if caller is not the currently focused session
// unless there is only one session
// Ignore if caller is not the currently focused session
// unless there is only one session
- if (sessions_.size() > 1) {
- Session &focused_session = get_active_view()->session();
-
- if (caller != &focused_session)
- return;
- }
+ if ((sessions_.size() > 1) && (caller != last_focused_session_.get()))
+ return;
int state = caller->get_capture_state();
int state = caller->get_capture_state();