viewer: allow switching open sequences

This commit is contained in:
itsmattkc
2020-03-21 22:18:17 +11:00
parent 3c3543a2a9
commit 51f02ea01b
19 changed files with 207 additions and 70 deletions
+1
View File
@@ -20,6 +20,7 @@ add_subdirectory(footageviewer)
add_subdirectory(node)
add_subdirectory(param)
add_subdirectory(project)
add_subdirectory(sequenceviewer)
add_subdirectory(taskmanager)
add_subdirectory(timebased)
add_subdirectory(timeline)
+2 -1
View File
@@ -30,6 +30,7 @@
#include "project/item/sequence/sequence.h"
#include "widget/menu/menushared.h"
#include "widget/projecttoolbar/projecttoolbar.h"
#include "window/mainwindow/mainwindow.h"
ProjectPanel::ProjectPanel(QWidget *parent) :
PanelWidget(parent)
@@ -154,7 +155,7 @@ void ProjectPanel::ItemDoubleClickSlot(Item *item)
PanelManager::instance()->MostRecentlyFocused<FootageViewerPanel>()->SetFootage(static_cast<Footage*>(item));
} else if (item->type() == Item::kSequence) {
// Open this sequence in the Timeline
Sequence::Open(static_cast<Sequence*>(item));
Core::instance()->main_window()->OpenSequence(static_cast<Sequence*>(item));
}
}
+22
View File
@@ -0,0 +1,22 @@
# Olive - Non-Linear Video Editor
# Copyright (C) 2019 Olive Team
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set(OLIVE_SOURCES
${OLIVE_SOURCES}
panel/sequenceviewer/sequenceviewer.h
panel/sequenceviewer/sequenceviewer.cpp
PARENT_SCOPE
)
@@ -0,0 +1,18 @@
#include "sequenceviewer.h"
SequenceViewerPanel::SequenceViewerPanel(QWidget *parent) :
ViewerPanel(parent)
{
// FIXME: This won't work if there's ever more than one of this panel
setObjectName("SequenceViewerPanel");
// Set strings
Retranslate();
}
void SequenceViewerPanel::Retranslate()
{
ViewerPanel::Retranslate();
SetTitle(tr("Sequence Viewer"));
}
+16
View File
@@ -0,0 +1,16 @@
#ifndef SEQUENCEVIEWERPANEL_H
#define SEQUENCEVIEWERPANEL_H
#include "panel/viewer/viewer.h"
class SequenceViewerPanel : public ViewerPanel
{
public:
SequenceViewerPanel(QWidget* parent);
protected:
virtual void Retranslate() override;
};
#endif // SEQUENCEVIEWERPANEL_H
+8
View File
@@ -33,6 +33,14 @@ void ViewerPanelBase::ConnectTimeBasedPanel(TimeBasedPanel *panel)
connect(panel, &TimeBasedPanel::ShuttleRightRequested, this, &ViewerPanelBase::ShuttleRight);
}
void ViewerPanelBase::DisconnectTimeBasedPanel(TimeBasedPanel *panel)
{
disconnect(panel, &TimeBasedPanel::PlayPauseRequested, this, &ViewerPanelBase::PlayPause);
disconnect(panel, &TimeBasedPanel::ShuttleLeftRequested, this, &ViewerPanelBase::ShuttleLeft);
disconnect(panel, &TimeBasedPanel::ShuttleStopRequested, this, &ViewerPanelBase::ShuttleStop);
disconnect(panel, &TimeBasedPanel::ShuttleRightRequested, this, &ViewerPanelBase::ShuttleRight);
}
VideoRenderBackend *ViewerPanelBase::video_renderer() const
{
return static_cast<ViewerWidget*>(GetTimeBasedWidget())->video_renderer();
+2
View File
@@ -20,6 +20,8 @@ public:
void ConnectTimeBasedPanel(TimeBasedPanel* panel);
void DisconnectTimeBasedPanel(TimeBasedPanel* panel);
VideoRenderBackend* video_renderer() const;
};