Merge branch 'master' into rational_slider
This commit is contained in:
@@ -71,7 +71,7 @@ void MainStatusBar::UpdateStatus()
|
||||
if (manager_->GetTaskCount() == 1) {
|
||||
showMessage(t->GetTitle());
|
||||
} else {
|
||||
showMessage(tr("Running %1 background task(s)").arg(manager_->GetTaskCount()));
|
||||
showMessage(tr("Running %n background task(s)", nullptr, manager_->GetTaskCount()));
|
||||
}
|
||||
|
||||
bar_->setVisible(true);
|
||||
|
||||
@@ -261,6 +261,27 @@ ScopePanel *MainWindow::AppendScopePanel()
|
||||
return AppendFloatingPanelInternal<ScopePanel>(scope_panels_);
|
||||
}
|
||||
|
||||
void MainWindow::OpenNodeInViewer(ViewerOutput *node)
|
||||
{
|
||||
if (viewer_panels_.contains(node)) {
|
||||
// This node already has a viewer, raise it
|
||||
viewer_panels_.value(node)->raise();
|
||||
} else {
|
||||
// Create a viewer for this node
|
||||
ViewerPanel* viewer = PanelManager::instance()->CreatePanel<ViewerPanel>(this);
|
||||
|
||||
viewer->SetSignalInsteadOfClose(true);
|
||||
viewer->setFloating(true);
|
||||
viewer->setVisible(true);
|
||||
viewer->ConnectViewerNode(node);
|
||||
|
||||
connect(viewer, &ViewerPanel::CloseRequested, this, &MainWindow::ViewerCloseRequested);
|
||||
connect(node, &ViewerOutput::RemovedFromGraph, this, &MainWindow::ViewerWithPanelRemovedFromGraph);
|
||||
|
||||
viewer_panels_.insert(node, viewer);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::SetFullscreen(bool fullscreen)
|
||||
{
|
||||
if (fullscreen) {
|
||||
@@ -481,6 +502,22 @@ void MainWindow::ProjectCloseRequested()
|
||||
Core::instance()->CloseProject(p, true);
|
||||
}
|
||||
|
||||
void MainWindow::ViewerCloseRequested()
|
||||
{
|
||||
ViewerPanel* panel = static_cast<ViewerPanel*>(sender());
|
||||
|
||||
viewer_panels_.remove(viewer_panels_.key(panel));
|
||||
|
||||
panel->deleteLater();
|
||||
}
|
||||
|
||||
void MainWindow::ViewerWithPanelRemovedFromGraph()
|
||||
{
|
||||
ViewerOutput* vo = static_cast<ViewerOutput*>(sender());
|
||||
viewer_panels_.take(vo)->deleteLater();
|
||||
disconnect(vo, &ViewerOutput::RemovedFromGraph, this, &MainWindow::ViewerWithPanelRemovedFromGraph);
|
||||
}
|
||||
|
||||
void MainWindow::FloatingPanelCloseRequested()
|
||||
{
|
||||
PanelWidget* panel = static_cast<PanelWidget*>(sender());
|
||||
|
||||
@@ -71,6 +71,8 @@ public:
|
||||
|
||||
ScopePanel* AppendScopePanel();
|
||||
|
||||
void OpenNodeInViewer(ViewerOutput* node);
|
||||
|
||||
enum ProgressStatus {
|
||||
kProgressNone,
|
||||
kProgressShow,
|
||||
@@ -155,6 +157,7 @@ private:
|
||||
PixelSamplerPanel* pixel_sampler_panel_;
|
||||
QList<ScopePanel*> scope_panels_;
|
||||
NodeTablePanel* table_panel_;
|
||||
QMap<ViewerOutput*, ViewerPanel*> viewer_panels_;
|
||||
|
||||
#ifdef Q_OS_WINDOWS
|
||||
unsigned int taskbar_btn_id_;
|
||||
@@ -173,6 +176,10 @@ private slots:
|
||||
|
||||
void ProjectCloseRequested();
|
||||
|
||||
void ViewerCloseRequested();
|
||||
|
||||
void ViewerWithPanelRemovedFromGraph();
|
||||
|
||||
void FloatingPanelCloseRequested();
|
||||
|
||||
void StatusBarDoubleClicked();
|
||||
|
||||
Reference in New Issue
Block a user