projectexplorer: added functionality for opening a folder in another tab/window
This commit is contained in:
@@ -176,6 +176,33 @@ void MainWindow::SetTaskbarButtonProgress(int value, int max)
|
||||
}
|
||||
#endif
|
||||
|
||||
void MainWindow::FolderOpen(Project *p, Item *i, bool floating)
|
||||
{
|
||||
ProjectPanel* panel = PanelManager::instance()->CreatePanel<ProjectPanel>(this);
|
||||
|
||||
panel->set_project(p);
|
||||
panel->set_root(i);
|
||||
|
||||
// Tabify with source project panel
|
||||
foreach (ProjectPanel* proj_panel, project_panels_) {
|
||||
if (proj_panel->project() == p) {
|
||||
tabifyDockWidget(proj_panel, panel);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
panel->setFloating(floating);
|
||||
|
||||
panel->show();
|
||||
panel->raise();
|
||||
|
||||
// If the panel is closed, just destroy it
|
||||
panel->SetSignalInsteadOfClose(true);
|
||||
connect(panel, &ProjectPanel::CloseRequested, this, &MainWindow::FolderCloseRequested);
|
||||
|
||||
folder_panels_.append(panel);
|
||||
}
|
||||
|
||||
void MainWindow::SetFullscreen(bool fullscreen)
|
||||
{
|
||||
if (fullscreen) {
|
||||
@@ -251,6 +278,12 @@ void MainWindow::ProjectClose(Project *p)
|
||||
}
|
||||
}
|
||||
|
||||
foreach (ProjectPanel* panel, folder_panels_) {
|
||||
if (panel->project() == p) {
|
||||
panel->close();
|
||||
}
|
||||
}
|
||||
|
||||
// Close any open sequences from project
|
||||
QList<ItemPtr> open_sequences = p->get_items_of_type(Item::kSequence);
|
||||
|
||||
@@ -326,6 +359,14 @@ void MainWindow::ProjectCloseRequested()
|
||||
Core::instance()->CloseProject(p, true);
|
||||
}
|
||||
|
||||
void MainWindow::FolderCloseRequested()
|
||||
{
|
||||
ProjectPanel* panel = static_cast<ProjectPanel*>(sender());
|
||||
|
||||
folder_panels_.removeOne(panel);
|
||||
panel->deleteLater();
|
||||
}
|
||||
|
||||
TimelinePanel* MainWindow::AppendTimelinePanel()
|
||||
{
|
||||
TimelinePanel* panel = AppendPanelInternal<TimelinePanel>(timeline_panels_);
|
||||
|
||||
Reference in New Issue
Block a user