projectexplorer: added functionality for opening a folder in another tab/window
This commit is contained in:
@@ -37,7 +37,7 @@ FootageViewerPanel::FootageViewerPanel(QWidget *parent) :
|
||||
Retranslate();
|
||||
}
|
||||
|
||||
QList<Footage *> FootageViewerPanel::GetSelectedFootage()
|
||||
QList<Footage *> FootageViewerPanel::GetSelectedFootage() const
|
||||
{
|
||||
return {static_cast<FootageViewerWidget*>(GetTimeBasedWidget())->GetFootage()};
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ class FootageViewerPanel : public ViewerPanelBase, public FootageManagementPanel
|
||||
public:
|
||||
FootageViewerPanel(QWidget* parent);
|
||||
|
||||
virtual QList<Footage*> GetSelectedFootage() override;
|
||||
virtual QList<Footage*> GetSelectedFootage() const override;
|
||||
|
||||
void SetFootage(Footage* f);
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ OLIVE_NAMESPACE_ENTER
|
||||
|
||||
class FootageManagementPanel {
|
||||
public:
|
||||
virtual QList<Footage*> GetSelectedFootage() = 0;
|
||||
virtual QList<Footage*> GetSelectedFootage() const = 0;
|
||||
};
|
||||
|
||||
OLIVE_NAMESPACE_EXIT
|
||||
|
||||
@@ -72,7 +72,7 @@ ProjectPanel::ProjectPanel(QWidget *parent) :
|
||||
Retranslate();
|
||||
}
|
||||
|
||||
Project *ProjectPanel::project()
|
||||
Project *ProjectPanel::project() const
|
||||
{
|
||||
return explorer_->project();
|
||||
}
|
||||
@@ -102,17 +102,24 @@ void ProjectPanel::set_project(Project *p)
|
||||
}
|
||||
}
|
||||
|
||||
QList<Item *> ProjectPanel::SelectedItems()
|
||||
void ProjectPanel::set_root(Item *item)
|
||||
{
|
||||
explorer_->set_root(item);
|
||||
|
||||
Retranslate();
|
||||
}
|
||||
|
||||
QList<Item *> ProjectPanel::SelectedItems() const
|
||||
{
|
||||
return explorer_->SelectedItems();
|
||||
}
|
||||
|
||||
Folder *ProjectPanel::GetSelectedFolder()
|
||||
Folder *ProjectPanel::GetSelectedFolder() const
|
||||
{
|
||||
return explorer_->GetSelectedFolder();
|
||||
}
|
||||
|
||||
ProjectViewModel *ProjectPanel::model()
|
||||
ProjectViewModel *ProjectPanel::model() const
|
||||
{
|
||||
return explorer_->model();
|
||||
}
|
||||
@@ -157,7 +164,11 @@ void ProjectPanel::Edit(Item* item)
|
||||
|
||||
void ProjectPanel::Retranslate()
|
||||
{
|
||||
SetTitle(tr("Project"));
|
||||
if (explorer_->root_index().isValid()) {
|
||||
SetTitle(tr("Folder"));
|
||||
} else {
|
||||
SetTitle(tr("Project"));
|
||||
}
|
||||
|
||||
UpdateSubtitle();
|
||||
}
|
||||
@@ -187,14 +198,30 @@ void ProjectPanel::ShowNewMenu()
|
||||
|
||||
void ProjectPanel::UpdateSubtitle()
|
||||
{
|
||||
if (project() == nullptr) {
|
||||
SetSubtitle(tr("(none)"));
|
||||
if (project()) {
|
||||
QString project_title = QStringLiteral("[*]%1").arg(project()->name());
|
||||
|
||||
if (explorer_->root_index().isValid()) {
|
||||
QString folder_path;
|
||||
|
||||
Item* item = static_cast<Item*>(explorer_->root_index().internalPointer());
|
||||
|
||||
do {
|
||||
folder_path.prepend(QStringLiteral("/%1").arg(item->name()));
|
||||
|
||||
item = item->parent();
|
||||
} while (item != project()->root());
|
||||
|
||||
project_title.append(folder_path);
|
||||
}
|
||||
|
||||
SetSubtitle(project_title);
|
||||
} else {
|
||||
SetSubtitle(QStringLiteral("[*]%1").arg(project()->name()));
|
||||
SetSubtitle(tr("(none)"));
|
||||
}
|
||||
}
|
||||
|
||||
QList<Footage *> ProjectPanel::GetSelectedFootage()
|
||||
QList<Footage *> ProjectPanel::GetSelectedFootage() const
|
||||
{
|
||||
QList<Item*> items = SelectedItems();
|
||||
QList<Footage*> footage;
|
||||
|
||||
@@ -37,16 +37,18 @@ class ProjectPanel : public PanelWidget, public FootageManagementPanel
|
||||
public:
|
||||
ProjectPanel(QWidget* parent);
|
||||
|
||||
Project* project();
|
||||
Project* project() const;
|
||||
void set_project(Project* p);
|
||||
|
||||
QList<Item*> SelectedItems();
|
||||
void set_root(Item* item);
|
||||
|
||||
Folder* GetSelectedFolder();
|
||||
QList<Item*> SelectedItems() const;
|
||||
|
||||
virtual QList<Footage*> GetSelectedFootage() override;
|
||||
Folder* GetSelectedFolder() const;
|
||||
|
||||
ProjectViewModel* model();
|
||||
virtual QList<Footage*> GetSelectedFootage() const override;
|
||||
|
||||
ProjectViewModel* model() const;
|
||||
|
||||
virtual void SelectAll() override;
|
||||
virtual void DeselectAll() override;
|
||||
|
||||
Reference in New Issue
Block a user