Merge branch 'master' into otio

This commit is contained in:
itsmattkc
2020-10-22 20:26:16 +11:00
149 changed files with 4350 additions and 2079 deletions
+2 -50
View File
@@ -121,32 +121,7 @@ MainMenu::MainMenu(MainWindow *parent) :
view_show_all_item_->setCheckable(true);
view_menu_->addSeparator();
frame_view_mode_group_ = new QActionGroup(this);
view_timecode_view_dropframe_item_ = view_menu_->AddItem("modedropframe", this, &MainMenu::TimecodeDisplayTriggered);
view_timecode_view_dropframe_item_->setData(Timecode::kTimecodeDropFrame);
view_timecode_view_dropframe_item_->setCheckable(true);
frame_view_mode_group_->addAction(view_timecode_view_dropframe_item_);
view_timecode_view_nondropframe_item_ = view_menu_->AddItem("modenondropframe", this, &MainMenu::TimecodeDisplayTriggered);
view_timecode_view_nondropframe_item_->setData(Timecode::kTimecodeNonDropFrame);
view_timecode_view_nondropframe_item_->setCheckable(true);
frame_view_mode_group_->addAction(view_timecode_view_nondropframe_item_);
view_timecode_view_seconds_item_ = view_menu_->AddItem("modeseconds", this, &MainMenu::TimecodeDisplayTriggered);
view_timecode_view_seconds_item_->setData(Timecode::kTimecodeSeconds);
view_timecode_view_seconds_item_->setCheckable(true);
frame_view_mode_group_->addAction(view_timecode_view_seconds_item_);
view_timecode_view_frames_item_ = view_menu_->AddItem("modeframes", this, &MainMenu::TimecodeDisplayTriggered);
view_timecode_view_frames_item_->setData(Timecode::kFrames);
view_timecode_view_frames_item_->setCheckable(true);
frame_view_mode_group_->addAction(view_timecode_view_frames_item_);
view_timecode_view_milliseconds_item_ = view_menu_->AddItem("milliseconds", this, &MainMenu::TimecodeDisplayTriggered);
view_timecode_view_milliseconds_item_->setData(Timecode::kMilliseconds);
view_timecode_view_milliseconds_item_->setCheckable(true);
frame_view_mode_group_->addAction(view_timecode_view_milliseconds_item_);
MenuShared::instance()->AddItemsForTimeRulerMenu(view_menu_);
view_menu_->addSeparator();
@@ -307,18 +282,6 @@ void MainMenu::ToolItemTriggered()
Core::instance()->SetTool(tool);
}
void MainMenu::TimecodeDisplayTriggered()
{
// Assume the sender is a QAction
QAction* action = static_cast<QAction*>(sender());
// Assume its data() is a member of Timecode::Display
Timecode::Display display = static_cast<Timecode::Display>(action->data().toInt());
// Set the current display mode
Core::instance()->SetTimecodeDisplay(display);
}
void MainMenu::FileMenuAboutToShow()
{
Project* active_project = Core::instance()->GetActiveProject().get();
@@ -349,13 +312,7 @@ void MainMenu::ViewMenuAboutToShow()
view_full_screen_item_->setChecked(parentWidget()->isFullScreen());
// Ensure checked timecode display mode is correct
QList<QAction*> timecode_display_actions = frame_view_mode_group_->actions();
foreach (QAction* a, timecode_display_actions) {
if (a->data() == Core::instance()->GetTimecodeDisplay()) {
a->setChecked(true);
break;
}
}
MenuShared::instance()->AboutToShowTimeRulerActions();
}
void MainMenu::ToolsMenuAboutToShow()
@@ -679,11 +636,6 @@ void MainMenu::Retranslate()
view_increase_track_height_item_->setText(tr("Increase Track Height"));
view_decrease_track_height_item_->setText(tr("Decrease Track Height"));
view_show_all_item_->setText(tr("Toggle Show All"));
view_timecode_view_frames_item_->setText(tr("Frames"));
view_timecode_view_dropframe_item_->setText(tr("Drop Frame"));
view_timecode_view_nondropframe_item_->setText(tr("Non-Drop Frame"));
view_timecode_view_milliseconds_item_->setText(tr("Milliseconds"));
view_timecode_view_seconds_item_->setText(tr("Seconds"));
// View menu (cont'd)
view_full_screen_item_->setText(tr("Full Screen"));
-14
View File
@@ -61,14 +61,6 @@ private slots:
*/
void ToolItemTriggered();
/**
* @brief A slot for the timecode display menu items
*
* Assumes a QAction* sender() and its data() is a member of enum Timecode::Display. Uses the data() to signal a
* timecode change throughout the rest of the application.
*/
void TimecodeDisplayTriggered();
/**
* @brief Slot triggered just before the File menu shows
*/
@@ -230,12 +222,6 @@ private:
QAction* view_increase_track_height_item_;
QAction* view_decrease_track_height_item_;
QAction* view_show_all_item_;
QActionGroup* frame_view_mode_group_;
QAction* view_timecode_view_dropframe_item_;
QAction* view_timecode_view_nondropframe_item_;
QAction* view_timecode_view_seconds_item_;
QAction* view_timecode_view_frames_item_;
QAction* view_timecode_view_milliseconds_item_;
QAction* view_full_screen_item_;
QAction* view_full_screen_viewer_item_;
+36 -35
View File
@@ -72,6 +72,7 @@ MainWindow::MainWindow(QWidget *parent) :
node_panel_ = PanelManager::instance()->CreatePanel<NodePanel>(this);
footage_viewer_panel_ = PanelManager::instance()->CreatePanel<FootageViewerPanel>(this);
param_panel_ = PanelManager::instance()->CreatePanel<ParamPanel>(this);
curve_panel_ = PanelManager::instance()->CreatePanel<CurvePanel>(this);
table_panel_ = PanelManager::instance()->CreatePanel<NodeTablePanel>(this);
sequence_viewer_panel_ = PanelManager::instance()->CreatePanel<SequenceViewerPanel>(this);
pixel_sampler_panel_ = PanelManager::instance()->CreatePanel<PixelSamplerPanel>(this);
@@ -81,20 +82,32 @@ MainWindow::MainWindow(QWidget *parent) :
AppendTimelinePanel();
audio_monitor_panel_ = PanelManager::instance()->CreatePanel<AudioMonitorPanel>(this);
// Make connections to sequence viewer
// Make node-related connections
connect(node_panel_, &NodePanel::NodesSelected, param_panel_, &ParamPanel::SelectNodes);
connect(node_panel_, &NodePanel::NodesDeselected, param_panel_, &ParamPanel::DeselectNodes);
connect(node_panel_, &NodePanel::NodesSelected, table_panel_, &NodeTablePanel::SelectNodes);
connect(node_panel_, &NodePanel::NodesDeselected, table_panel_, &NodeTablePanel::DeselectNodes);
connect(param_panel_, &ParamPanel::RequestSelectNode, node_panel_, &NodePanel::Select);
connect(param_panel_, &ParamPanel::FocusedNodeChanged, sequence_viewer_panel_, &ViewerPanel::SetGizmos);
// Connect time signals together
connect(sequence_viewer_panel_, &SequenceViewerPanel::TimeChanged, param_panel_, &ParamPanel::SetTimestamp);
connect(sequence_viewer_panel_, &SequenceViewerPanel::TimeChanged, table_panel_, &NodeTablePanel::SetTimestamp);
connect(sequence_viewer_panel_, &SequenceViewerPanel::TimeChanged, curve_panel_, &NodeTablePanel::SetTimestamp);
connect(param_panel_, &ParamPanel::TimeChanged, sequence_viewer_panel_, &SequenceViewerPanel::SetTimestamp);
connect(param_panel_, &ParamPanel::TimeChanged, table_panel_, &NodeTablePanel::SetTimestamp);
connect(param_panel_, &ParamPanel::FoundGizmos, sequence_viewer_panel_, &SequenceViewerPanel::SetGizmos);
connect(param_panel_, &ParamPanel::TimeChanged, curve_panel_, &NodeTablePanel::SetTimestamp);
connect(curve_panel_, &ParamPanel::TimeChanged, sequence_viewer_panel_, &SequenceViewerPanel::SetTimestamp);
connect(curve_panel_, &ParamPanel::TimeChanged, table_panel_, &NodeTablePanel::SetTimestamp);
connect(curve_panel_, &ParamPanel::TimeChanged, param_panel_, &NodeTablePanel::SetTimestamp);
// Connect node order signals
connect(param_panel_, &ParamPanel::NodeOrderChanged, curve_panel_, &CurvePanel::SetNodes);
connect(PanelManager::instance(), &PanelManager::FocusedPanelChanged, this, &MainWindow::FocusedPanelChanged);
sequence_viewer_panel_->ConnectTimeBasedPanel(param_panel_);
sequence_viewer_panel_->ConnectTimeBasedPanel(curve_panel_);
footage_viewer_panel_->ConnectPixelSamplerPanel(pixel_sampler_panel_);
sequence_viewer_panel_->ConnectPixelSamplerPanel(pixel_sampler_panel_);
@@ -240,26 +253,6 @@ ScopePanel *MainWindow::AppendScopePanel()
return AppendFloatingPanelInternal<ScopePanel>(scope_panels_);
}
CurvePanel *MainWindow::AppendCurvePanel()
{
CurvePanel* p = AppendFloatingPanelInternal<CurvePanel>(curve_panels_);
sequence_viewer_panel_->ConnectTimeBasedPanel(p);
return p;
/*connect(panel, &TimelinePanel::TimeChanged, curve_panel_, &CurvePanel::SetTime);
connect(curve_panel_, &CurvePanel::TimeChanged, panel, &TimelinePanel::SetTime);
connect(param_panel_, &ParamPanel::SelectedInputChanged, curve_panel_, &CurvePanel::SetInput);
connect(param_panel_, &ParamPanel::TimebaseChanged, curve_panel_, &CurvePanel::SetTimebase);
connect(param_panel_, &ParamPanel::TimeTargetChanged, curve_panel_, &CurvePanel::SetTimeTarget);
connect(param_panel_, &ParamPanel::TimeChanged, curve_panel_, &CurvePanel::SetTime);
connect(curve_panel_, &CurvePanel::TimeChanged, sequence_viewer_panel_, &SequenceViewerPanel::SetTime);
connect(curve_panel_, &CurvePanel::TimeChanged, param_panel_, &ParamPanel::SetTime);
sequence_viewer_panel_->ConnectTimeBasedPanel(curve_panel_);
connect(sequence_viewer_panel_, &SequenceViewerPanel::TimeChanged, curve_panel_, &CurvePanel::SetTime);*/
}
void MainWindow::SetFullscreen(bool fullscreen)
{
if (fullscreen) {
@@ -326,19 +319,6 @@ void MainWindow::ProjectOpen(Project *p)
void MainWindow::ProjectClose(Project *p)
{
// Close project from project panel
foreach (ProjectPanel* panel, project_panels_) {
if (panel->project() == p) {
RemoveProjectPanel(panel);
}
}
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);
@@ -365,6 +345,20 @@ void MainWindow::ProjectClose(Project *p)
}
}
}
// Close any extra folder panels
foreach (ProjectPanel* panel, folder_panels_) {
if (panel->project() == p) {
panel->close();
}
}
// Close project from project panel
foreach (ProjectPanel* panel, project_panels_) {
if (panel->project() == p) {
RemoveProjectPanel(panel);
}
}
}
void MainWindow::SetApplicationProgressStatus(ProgressStatus status)
@@ -495,12 +489,14 @@ TimelinePanel* MainWindow::AppendTimelinePanel()
TimelinePanel* panel = AppendPanelInternal<TimelinePanel>(timeline_panels_);
connect(panel, &PanelWidget::CloseRequested, this, &MainWindow::TimelineCloseRequested);
connect(panel, &TimelinePanel::TimeChanged, curve_panel_, &ParamPanel::SetTimestamp);
connect(panel, &TimelinePanel::TimeChanged, param_panel_, &ParamPanel::SetTimestamp);
connect(panel, &TimelinePanel::TimeChanged, table_panel_, &NodeTablePanel::SetTimestamp);
connect(panel, &TimelinePanel::TimeChanged, sequence_viewer_panel_, &SequenceViewerPanel::SetTimestamp);
connect(panel, &TimelinePanel::BlocksSelected, node_panel_, &NodePanel::SelectBlocks);
connect(panel, &TimelinePanel::BlocksDeselected, node_panel_, &NodePanel::DeselectBlocks);
connect(param_panel_, &ParamPanel::TimeChanged, panel, &TimelinePanel::SetTimestamp);
connect(curve_panel_, &ParamPanel::TimeChanged, panel, &TimelinePanel::SetTimestamp);
connect(sequence_viewer_panel_, &SequenceViewerPanel::TimeChanged, panel, &TimelinePanel::SetTimestamp);
sequence_viewer_panel_->ConnectTimeBasedPanel(panel);
@@ -546,6 +542,7 @@ void MainWindow::TimelineFocused(ViewerOutput* viewer)
{
sequence_viewer_panel_->ConnectViewerNode(viewer);
param_panel_->ConnectViewerNode(viewer);
curve_panel_->ConnectViewerNode(viewer);
Sequence* seq = nullptr;
@@ -585,6 +582,10 @@ void MainWindow::SetDefaultLayout()
tabifyDockWidget(footage_viewer_panel_, param_panel_);
footage_viewer_panel_->raise();
curve_panel_->hide();
curve_panel_->setFloating(true);
addDockWidget(Qt::TopDockWidgetArea, curve_panel_);
table_panel_->hide();
table_panel_->setFloating(true);
addDockWidget(Qt::TopDockWidgetArea, table_panel_);
+1 -3
View File
@@ -70,8 +70,6 @@ public:
ScopePanel* AppendScopePanel();
CurvePanel* AppendCurvePanel();
enum ProgressStatus {
kProgressNone,
kProgressShow,
@@ -138,6 +136,7 @@ private:
// Standard panels
NodePanel* node_panel_;
ParamPanel* param_panel_;
CurvePanel* curve_panel_;
SequenceViewerPanel* sequence_viewer_panel_;
FootageViewerPanel* footage_viewer_panel_;
QList<ProjectPanel*> project_panels_;
@@ -146,7 +145,6 @@ private:
QList<TimelinePanel*> timeline_panels_;
AudioMonitorPanel* audio_monitor_panel_;
TaskManagerPanel* task_man_panel_;
QList<CurvePanel*> curve_panels_;
PixelSamplerPanel* pixel_sampler_panel_;
QList<ScopePanel*> scope_panels_;
NodeTablePanel* table_panel_;