diff --git a/app/window/mainwindow/mainmenu.cpp b/app/window/mainwindow/mainmenu.cpp index 588939887..4b9791b2b 100644 --- a/app/window/mainwindow/mainmenu.cpp +++ b/app/window/mainwindow/mainmenu.cpp @@ -180,6 +180,14 @@ MainMenu::MainMenu(MainWindow *parent) : playback_loop_item_ = playback_menu_->AddItem("loop", this, &MainMenu::LoopTriggered); playback_loop_item_->setCheckable(true); + // + // SEQUENCE MENU + // + + sequence_menu_ = new Menu(this, this, &MainMenu::SequenceMenuAboutToShow); + sequence_cache_item_ = sequence_menu_->AddItem("seqcache", this, &MainMenu::SequenceCacheTriggered); + sequence_cache_in_to_out_item_ = sequence_menu_->AddItem("seqcacheinout", this, &MainMenu::SequenceCacheInOutTriggered); + // // WINDOW MENU // @@ -360,6 +368,16 @@ void MainMenu::PlaybackMenuAboutToShow() playback_loop_item_->setChecked(Config::Current()["Loop"].toBool()); } +void MainMenu::SequenceMenuAboutToShow() +{ + TimeBasedPanel* p = PanelManager::instance()->MostRecentlyFocused(); + + bool can_cache_sequence = (p && p->GetConnectedViewer()); + + sequence_cache_item_->setEnabled(can_cache_sequence); + sequence_cache_in_to_out_item_->setEnabled(can_cache_sequence); +} + void MainMenu::WindowMenuAboutToShow() { // Remove any previous items @@ -591,6 +609,16 @@ void MainMenu::OpenRecentItemTriggered() Core::instance()->OpenProjectFromRecentList(static_cast(sender())->data().toInt()); } +void MainMenu::SequenceCacheTriggered() +{ + qDebug() << "STUB"; +} + +void MainMenu::SequenceCacheInOutTriggered() +{ + qDebug() << "STUB"; +} + void MainMenu::Retranslate() { // MenuShared is not a QWidget and therefore does not receive a LanguageEvent, we use MainMenu's to update it @@ -659,6 +687,11 @@ void MainMenu::Retranslate() playback_shuttleright_item_->setText(tr("Shuttle Right")); playback_loop_item_->setText(tr("Loop")); + // Sequence menu + sequence_menu_->setTitle(tr("&Sequence")); + sequence_cache_item_->setText(tr("Cache Entire Sequence")); + sequence_cache_in_to_out_item_->setText(tr("Cache Sequence In/Out")); + // Window menu window_menu_->setTitle("&Window"); window_maximize_panel_item_->setText(tr("Maximize Panel")); diff --git a/app/window/mainwindow/mainmenu.h b/app/window/mainwindow/mainmenu.h index de74d47fd..bae73de55 100644 --- a/app/window/mainwindow/mainmenu.h +++ b/app/window/mainwindow/mainmenu.h @@ -85,10 +85,15 @@ private slots: void ToolsMenuAboutToShow(); /** - * @brief PlaybackMenuAboutToShow + * @brief Slot triggered just before the Playback menu shows */ void PlaybackMenuAboutToShow(); + /** + * @brief Slot triggered just before the Sequence menu shows + */ + void SequenceMenuAboutToShow(); + /** * @brief Slot triggered just before the Window menu shows */ @@ -172,6 +177,9 @@ private slots: void OpenRecentItemTriggered(); + void SequenceCacheTriggered(); + void SequenceCacheInOutTriggered(); + private: /** * @brief Set strings based on the current application language. @@ -241,6 +249,10 @@ private: QAction* playback_shuttleright_item_; QAction* playback_loop_item_; + Menu* sequence_menu_; + QAction* sequence_cache_item_; + QAction* sequence_cache_in_to_out_item_; + Menu* window_menu_; QAction* window_menu_separator_; QAction* window_maximize_panel_item_;