style: unify identifier naming per updated conventions

Automated with clang-tidy readability-identifier-naming (config added to
.clang-tidy) plus scripted passes, per the updated rules now documented
in CONTRIBUTING.md:

- types (class/struct/enum/alias/template params): PascalCase
- functions, variables, members: snake_case (incl. rational -> Rational)
- private/protected members: trailing underscore; static member
  variables likewise (instance_, available_themes_)
- constants and enum values: snake_case (kLinear -> k_linear,
  F32P -> f32p); ALL_CAPS reserved for macros
- macros: OAK_ prefix (OLIVE_ADD_TEST/OLIVE_ASSERT/OLIVE_CONFIG ->
  OAK_ADD_TEST/OAK_ASSERT/OAK_CONFIG, GL_PREAMBLE -> OAK_GL_PREAMBLE,
  include guards -> OAK_*)
- file names: all lowercase (Current/Plugin/OliveHost/OliveClip/
  OlivePluginInstance -> current/plugin/olivehost/oliveclip/
  oliveplugininstance)
- getters share the member name sans underscore, setters set_foo()
- Qt and third-party (OpenFX) virtual overrides and framework callbacks
  keep their original names (exempt in .clang-tidy)

Manual follow-ups required where automation could not reach:
- string-based QMetaObject/SIGNAL/SLOT references updated to renamed
  methods (AddTask, CreatedFile, DeleteSpecificFile, moveSelectionUp, ...)
- macro bodies referencing renamed methods (OLIVE_CONFIG,
  NODE_DEFAULT_DESTRUCTOR, MANAGEDDISPLAYWIDGET_*)
- self-shadowing locals renamed where signals/methods became same-named
  (size_changed, worker_count, selected_items, import param, filters)
- third_party OFX member/namespace usages restored (OFX::Host::*,
  _created, _clipPrefsDirty, createInstance, clearPersistentMessage)
- STL protocol aliases restored (const_iterator) with .clang-tidy
  ignore rules; qHash overloads restored

Full build and test suite pass: ctest 4/4, ~1960 gtest cases green.
This commit is contained in:
2026-07-19 16:10:54 +08:00
parent cb1718a103
commit bb40b4923e
1014 changed files with 44257 additions and 44220 deletions
+287 -287
View File
@@ -48,36 +48,36 @@ MainMenu::MainMenu(MainWindow *parent)
//
// FILE MENU
//
file_menu_ = new Menu(this, this, &MainMenu::FileMenuAboutToShow);
file_menu_ = new Menu(this, this, &MainMenu::file_menu_about_to_show);
file_new_menu_ = new Menu(file_menu_);
MenuShared::instance()->AddItemsForNewMenu(file_new_menu_);
file_open_item_ = file_menu_->AddItem("openproj", Core::instance(),
&Core::OpenProject, tr("Ctrl+O"));
MenuShared::instance()->add_items_for_new_menu(file_new_menu_);
file_open_item_ = file_menu_->add_item("openproj", Core::instance(),
&Core::open_project, tr("Ctrl+O"));
file_open_recent_menu_ = new Menu(file_menu_);
file_open_recent_separator_ = file_open_recent_menu_->addSeparator();
file_open_recent_clear_item_ = file_open_recent_menu_->AddItem(
"clearopenrecent", Core::instance(), &Core::ClearOpenRecentList);
file_save_item_ = file_menu_->AddItem("saveproj", Core::instance(),
&Core::SaveProject, tr("Ctrl+S"));
file_save_as_item_ = file_menu_->AddItem("saveprojas", Core::instance(),
&Core::SaveProjectAs,
file_open_recent_clear_item_ = file_open_recent_menu_->add_item(
"clearopenrecent", Core::instance(), &Core::clear_open_recent_list);
file_save_item_ = file_menu_->add_item("saveproj", Core::instance(),
&Core::save_project, tr("Ctrl+S"));
file_save_as_item_ = file_menu_->add_item("saveprojas", Core::instance(),
&Core::save_project_as,
tr("Ctrl+Shift+S"));
file_menu_->addSeparator();
file_revert_item_ = file_menu_->AddItem("revert", Core::instance(),
&Core::RevertProject, tr("F12"));
file_revert_item_ = file_menu_->add_item("revert", Core::instance(),
&Core::revert_project, tr("F12"));
file_menu_->addSeparator();
file_import_item_ = file_menu_->AddItem(
"import", Core::instance(), &Core::DialogImportShow, tr("Ctrl+I"));
file_import_item_ = file_menu_->add_item(
"import", Core::instance(), &Core::dialog_import_show, tr("Ctrl+I"));
file_menu_->addSeparator();
file_export_menu_ = new Menu(file_menu_);
file_export_media_item_ = file_export_menu_->AddItem(
"export", Core::instance(), &Core::DialogExportShow, tr("Ctrl+M"));
file_export_media_item_ = file_export_menu_->add_item(
"export", Core::instance(), &Core::dialog_export_show, tr("Ctrl+M"));
file_menu_->addSeparator();
file_project_properties_item_ = file_menu_->AddItem(
file_project_properties_item_ = file_menu_->add_item(
"projectproperties", Core::instance(),
&Core::DialogProjectPropertiesShow, tr("Shift+F10"));
&Core::dialog_project_properties_show, tr("Shift+F10"));
file_menu_->addSeparator();
file_exit_item_ = file_menu_->AddItem("exit", parent, &MainWindow::close);
file_exit_item_ = file_menu_->add_item("exit", parent, &MainWindow::close);
//
// EDIT MENU
@@ -85,25 +85,25 @@ MainMenu::MainMenu(MainWindow *parent)
edit_menu_ = new Menu(this);
connect(edit_menu_, &Menu::aboutToShow, this,
&MainMenu::EditMenuAboutToShow);
&MainMenu::edit_menu_about_to_show);
connect(edit_menu_, &Menu::aboutToHide, this,
&MainMenu::EditMenuAboutToHide);
&MainMenu::edit_menu_about_to_hide);
edit_undo_item_ = Core::instance()->undo_stack()->GetUndoAction();
Menu::ConformItem(edit_undo_item_, "undo", tr("Ctrl+Z"));
Menu::conform_item(edit_undo_item_, "undo", tr("Ctrl+Z"));
edit_menu_->addAction(edit_undo_item_);
edit_redo_item_ = Core::instance()->undo_stack()->GetRedoAction();
Menu::ConformItem(edit_redo_item_, "redo", tr("Ctrl+Shift+Z"));
Menu::conform_item(edit_redo_item_, "redo", tr("Ctrl+Shift+Z"));
edit_menu_->addAction(edit_redo_item_);
edit_menu_->addSeparator();
MenuShared::instance()->AddItemsForEditMenu(edit_menu_, true);
MenuShared::instance()->add_items_for_edit_menu(edit_menu_, true);
{
// Create "alternate delete" action so we can pick up backspace as well as delete while still
// keeping them configurable
edit_delete2_item_ = new QAction();
Menu::ConformItem(edit_delete2_item_, "delete2", MenuShared::instance(),
&MenuShared::DeleteSelectedTriggered,
Menu::conform_item(edit_delete2_item_, "delete2", MenuShared::instance(),
&MenuShared::delete_selected_triggered,
tr("Backspace"));
auto actions = edit_menu_->actions();
edit_menu_->insertAction(
@@ -113,136 +113,136 @@ MainMenu::MainMenu(MainWindow *parent)
edit_delete2_item_);
}
edit_menu_->addSeparator();
edit_select_all_item_ = edit_menu_->AddItem(
"selectall", this, &MainMenu::SelectAllTriggered, tr("Ctrl+A"));
edit_deselect_all_item_ = edit_menu_->AddItem(
"deselectall", this, &MainMenu::DeselectAllTriggered,
edit_select_all_item_ = edit_menu_->add_item(
"selectall", this, &MainMenu::select_all_triggered, tr("Ctrl+A"));
edit_deselect_all_item_ = edit_menu_->add_item(
"deselectall", this, &MainMenu::deselect_all_triggered,
tr("Ctrl+Shift+A"));
edit_menu_->addSeparator();
MenuShared::instance()->AddItemsForClipEditMenu(edit_menu_);
MenuShared::instance()->add_items_for_clip_edit_menu(edit_menu_);
edit_menu_->addSeparator();
edit_insert_item_ = edit_menu_->AddItem(
"insert", this, &MainMenu::InsertTriggered, tr(","));
edit_overwrite_item_ = edit_menu_->AddItem(
"overwrite", this, &MainMenu::OverwriteTriggered, tr("."));
edit_insert_item_ = edit_menu_->add_item(
"insert", this, &MainMenu::insert_triggered, tr(","));
edit_overwrite_item_ = edit_menu_->add_item(
"overwrite", this, &MainMenu::overwrite_triggered, tr("."));
edit_menu_->addSeparator();
edit_ripple_to_in_item_ = edit_menu_->AddItem(
"rippletoin", this, &MainMenu::RippleToInTriggered, tr("Q"));
edit_ripple_to_out_item_ = edit_menu_->AddItem(
"rippletoout", this, &MainMenu::RippleToOutTriggered, tr("W"));
edit_edit_to_in_item_ = edit_menu_->AddItem(
"edittoin", this, &MainMenu::EditToInTriggered, tr("Ctrl+Alt+Q"));
edit_edit_to_out_item_ = edit_menu_->AddItem(
"edittoout", this, &MainMenu::EditToOutTriggered, tr("Ctrl+Alt+W"));
edit_ripple_to_in_item_ = edit_menu_->add_item(
"rippletoin", this, &MainMenu::ripple_to_in_triggered, tr("Q"));
edit_ripple_to_out_item_ = edit_menu_->add_item(
"rippletoout", this, &MainMenu::ripple_to_out_triggered, tr("W"));
edit_edit_to_in_item_ = edit_menu_->add_item(
"edittoin", this, &MainMenu::edit_to_in_triggered, tr("Ctrl+Alt+Q"));
edit_edit_to_out_item_ = edit_menu_->add_item(
"edittoout", this, &MainMenu::edit_to_out_triggered, tr("Ctrl+Alt+W"));
edit_menu_->addSeparator();
edit_nudge_left_item_ = edit_menu_->AddItem(
"nudgeleft", this, &MainMenu::NudgeLeftTriggered, tr("Alt+Left"));
edit_nudge_right_item_ = edit_menu_->AddItem(
"nudgeright", this, &MainMenu::NudgeRightTriggered, tr("Alt+Right"));
edit_nudge_left_item_ = edit_menu_->add_item(
"nudgeleft", this, &MainMenu::nudge_left_triggered, tr("Alt+Left"));
edit_nudge_right_item_ = edit_menu_->add_item(
"nudgeright", this, &MainMenu::nudge_right_triggered, tr("Alt+Right"));
edit_move_in_to_playhead_item_ =
edit_menu_->AddItem("moveintoplayhead", this,
&MainMenu::MoveInToPlayheadTriggered, tr("["));
edit_menu_->add_item("moveintoplayhead", this,
&MainMenu::move_in_to_playhead_triggered, tr("["));
edit_move_out_to_playhead_item_ =
edit_menu_->AddItem("moveouttoplayhead", this,
&MainMenu::MoveOutToPlayheadTriggered, tr("]"));
edit_menu_->add_item("moveouttoplayhead", this,
&MainMenu::move_out_to_playhead_triggered, tr("]"));
edit_menu_->addSeparator();
MenuShared::instance()->AddItemsForInOutMenu(edit_menu_);
edit_delete_inout_item_ = edit_menu_->AddItem(
"deleteinout", this, &MainMenu::DeleteInOutTriggered, tr(";"));
MenuShared::instance()->add_items_for_in_out_menu(edit_menu_);
edit_delete_inout_item_ = edit_menu_->add_item(
"deleteinout", this, &MainMenu::delete_in_out_triggered, tr(";"));
edit_ripple_delete_inout_item_ =
edit_menu_->AddItem("rippledeleteinout", this,
&MainMenu::RippleDeleteInOutTriggered, tr("'"));
edit_menu_->add_item("rippledeleteinout", this,
&MainMenu::ripple_delete_in_out_triggered, tr("'"));
edit_menu_->addSeparator();
edit_set_marker_item_ = edit_menu_->AddItem(
"marker", this, &MainMenu::SetMarkerTriggered, tr("M"));
edit_set_marker_item_ = edit_menu_->add_item(
"marker", this, &MainMenu::set_marker_triggered, tr("M"));
//
// VIEW MENU
//
view_menu_ = new Menu(this, this, &MainMenu::ViewMenuAboutToShow);
view_zoom_in_item_ = view_menu_->AddItem(
"zoomin", this, &MainMenu::ZoomInTriggered, tr("="));
view_zoom_out_item_ = view_menu_->AddItem(
"zoomout", this, &MainMenu::ZoomOutTriggered, tr("-"));
view_increase_track_height_item_ = view_menu_->AddItem(
"vzoomin", this, &MainMenu::IncreaseTrackHeightTriggered, tr("Ctrl+="));
view_decrease_track_height_item_ = view_menu_->AddItem(
"vzoomout", this, &MainMenu::DecreaseTrackHeightTriggered,
view_menu_ = new Menu(this, this, &MainMenu::view_menu_about_to_show);
view_zoom_in_item_ = view_menu_->add_item(
"zoomin", this, &MainMenu::zoom_in_triggered, tr("="));
view_zoom_out_item_ = view_menu_->add_item(
"zoomout", this, &MainMenu::zoom_out_triggered, tr("-"));
view_increase_track_height_item_ = view_menu_->add_item(
"vzoomin", this, &MainMenu::increase_track_height_triggered, tr("Ctrl+="));
view_decrease_track_height_item_ = view_menu_->add_item(
"vzoomout", this, &MainMenu::decrease_track_height_triggered,
tr("Ctrl+-"));
view_show_all_item_ = view_menu_->AddItem(
"showall", this, &MainMenu::ToggleShowAllTriggered, tr("\\"));
view_show_all_item_ = view_menu_->add_item(
"showall", this, &MainMenu::toggle_show_all_triggered, tr("\\"));
view_show_all_item_->setCheckable(true);
view_menu_->addSeparator();
view_full_screen_item_ = view_menu_->AddItem(
"fullscreen", parent, &MainWindow::SetFullscreen, tr("F11"));
view_full_screen_item_ = view_menu_->add_item(
"fullscreen", parent, &MainWindow::set_fullscreen, tr("F11"));
view_full_screen_item_->setCheckable(true);
view_full_screen_viewer_item_ = view_menu_->AddItem(
"fullscreenviewer", this, &MainMenu::FullScreenViewerTriggered);
view_full_screen_viewer_item_ = view_menu_->add_item(
"fullscreenviewer", this, &MainMenu::full_screen_viewer_triggered);
//
// PLAYBACK MENU
//
playback_menu_ = new Menu(this, this, &MainMenu::PlaybackMenuAboutToShow);
playback_gotostart_item_ = playback_menu_->AddItem(
"gotostart", this, &MainMenu::GoToStartTriggered, tr("Home"));
playback_prevframe_item_ = playback_menu_->AddItem(
"prevframe", this, &MainMenu::PrevFrameTriggered, tr("Left"));
playback_playpause_item_ = playback_menu_->AddItem(
"playpause", this, &MainMenu::PlayPauseTriggered, tr("Space"));
playback_playinout_item_ = playback_menu_->AddItem(
"playintoout", this, &MainMenu::PlayInToOutTriggered,
playback_menu_ = new Menu(this, this, &MainMenu::playback_menu_about_to_show);
playback_gotostart_item_ = playback_menu_->add_item(
"gotostart", this, &MainMenu::go_to_start_triggered, tr("Home"));
playback_prevframe_item_ = playback_menu_->add_item(
"prevframe", this, &MainMenu::prev_frame_triggered, tr("Left"));
playback_playpause_item_ = playback_menu_->add_item(
"playpause", this, &MainMenu::play_pause_triggered, tr("Space"));
playback_playinout_item_ = playback_menu_->add_item(
"playintoout", this, &MainMenu::play_in_to_out_triggered,
tr("Shift+Space"));
playback_nextframe_item_ = playback_menu_->AddItem(
"nextframe", this, &MainMenu::NextFrameTriggered, tr("Right"));
playback_gotoend_item_ = playback_menu_->AddItem(
"gotoend", this, &MainMenu::GoToEndTriggered, tr("End"));
playback_nextframe_item_ = playback_menu_->add_item(
"nextframe", this, &MainMenu::next_frame_triggered, tr("Right"));
playback_gotoend_item_ = playback_menu_->add_item(
"gotoend", this, &MainMenu::go_to_end_triggered, tr("End"));
playback_menu_->addSeparator();
playback_prevcut_item_ = playback_menu_->AddItem(
"prevcut", this, &MainMenu::GoToPrevCutTriggered, tr("Up"));
playback_nextcut_item_ = playback_menu_->AddItem(
"nextcut", this, &MainMenu::GoToNextCutTriggered, tr("Down"));
playback_prevcut_item_ = playback_menu_->add_item(
"prevcut", this, &MainMenu::go_to_prev_cut_triggered, tr("Up"));
playback_nextcut_item_ = playback_menu_->add_item(
"nextcut", this, &MainMenu::go_to_next_cut_triggered, tr("Down"));
playback_menu_->addSeparator();
playback_gotoin_item_ = playback_menu_->AddItem(
"gotoin", this, &MainMenu::GoToInTriggered, tr("Shift+I"));
playback_gotoout_item_ = playback_menu_->AddItem(
"gotoout", this, &MainMenu::GoToOutTriggered, tr("Shift+O"));
playback_gotoin_item_ = playback_menu_->add_item(
"gotoin", this, &MainMenu::go_to_in_triggered, tr("Shift+I"));
playback_gotoout_item_ = playback_menu_->add_item(
"gotoout", this, &MainMenu::go_to_out_triggered, tr("Shift+O"));
playback_menu_->addSeparator();
playback_shuttleleft_item_ = playback_menu_->AddItem(
"decspeed", this, &MainMenu::ShuttleLeftTriggered, tr("J"));
playback_shuttlestop_item_ = playback_menu_->AddItem(
"pause", this, &MainMenu::ShuttleStopTriggered, tr("K"));
playback_shuttleright_item_ = playback_menu_->AddItem(
"incspeed", this, &MainMenu::ShuttleRightTriggered, tr("L"));
playback_shuttleleft_item_ = playback_menu_->add_item(
"decspeed", this, &MainMenu::shuttle_left_triggered, tr("J"));
playback_shuttlestop_item_ = playback_menu_->add_item(
"pause", this, &MainMenu::shuttle_stop_triggered, tr("K"));
playback_shuttleright_item_ = playback_menu_->add_item(
"incspeed", this, &MainMenu::shuttle_right_triggered, tr("L"));
playback_menu_->addSeparator();
playback_loop_item_ =
playback_menu_->AddItem("loop", this, &MainMenu::LoopTriggered);
playback_menu_->add_item("loop", this, &MainMenu::loop_triggered);
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);
sequence_menu_ = new Menu(this, this, &MainMenu::sequence_menu_about_to_show);
sequence_cache_item_ = sequence_menu_->add_item(
"seqcache", this, &MainMenu::sequence_cache_triggered);
sequence_cache_in_to_out_item_ = sequence_menu_->add_item(
"seqcacheinout", this, &MainMenu::sequence_cache_in_out_triggered);
sequence_menu_->addSeparator();
sequence_disk_cache_clear_item_ = sequence_menu_->AddItem(
"seqcacheclear", this, &MainMenu::SequenceCacheClearTriggered);
sequence_disk_cache_clear_item_ = sequence_menu_->add_item(
"seqcacheclear", this, &MainMenu::sequence_cache_clear_triggered);
// TEMP: Hide sequence cache items for now. Want to see if clip caching will supersede it.
sequence_cache_item_->setVisible(false);
@@ -251,98 +251,98 @@ MainMenu::MainMenu(MainWindow *parent)
//
// WINDOW MENU
//
window_menu_ = new Menu(this, this, &MainMenu::WindowMenuAboutToShow);
window_menu_ = new Menu(this, this, &MainMenu::window_menu_about_to_show);
window_menu_separator_ = window_menu_->addSeparator();
window_maximize_panel_item_ = window_menu_->AddItem(
"maximizepanel", parent, &MainWindow::ToggleMaximizedPanel, tr("`"));
window_maximize_panel_item_ = window_menu_->add_item(
"maximizepanel", parent, &MainWindow::toggle_maximized_panel, tr("`"));
window_menu_->addSeparator();
window_reset_layout_item_ = window_menu_->AddItem(
"resetdefaultlayout", parent, &MainWindow::SetDefaultLayout);
window_reset_layout_item_ = window_menu_->add_item(
"resetdefaultlayout", parent, &MainWindow::set_default_layout);
//
// TOOLS MENU
//
tools_menu_ = new Menu(this, this, &MainMenu::ToolsMenuAboutToShow);
tools_menu_ = new Menu(this, this, &MainMenu::tools_menu_about_to_show);
tools_menu_->setToolTipsVisible(true);
tools_group_ = new QActionGroup(this);
tools_pointer_item_ = tools_menu_->AddItem(
"pointertool", this, &MainMenu::ToolItemTriggered, tr("V"));
tools_pointer_item_ = tools_menu_->add_item(
"pointertool", this, &MainMenu::tool_item_triggered, tr("V"));
tools_pointer_item_->setCheckable(true);
tools_pointer_item_->setData(Tool::kPointer);
tools_pointer_item_->setData(Tool::k_pointer);
tools_group_->addAction(tools_pointer_item_);
tools_trackselect_item_ = tools_menu_->AddItem(
"trackselecttool", this, &MainMenu::ToolItemTriggered, tr("D"));
tools_trackselect_item_ = tools_menu_->add_item(
"trackselecttool", this, &MainMenu::tool_item_triggered, tr("D"));
tools_trackselect_item_->setCheckable(true);
tools_trackselect_item_->setData(Tool::kTrackSelect);
tools_trackselect_item_->setData(Tool::k_track_select);
tools_group_->addAction(tools_trackselect_item_);
tools_edit_item_ = tools_menu_->AddItem(
"edittool", this, &MainMenu::ToolItemTriggered, tr("X"));
tools_edit_item_ = tools_menu_->add_item(
"edittool", this, &MainMenu::tool_item_triggered, tr("X"));
tools_edit_item_->setCheckable(true);
tools_edit_item_->setData(Tool::kEdit);
tools_edit_item_->setData(Tool::k_edit);
tools_group_->addAction(tools_edit_item_);
tools_ripple_item_ = tools_menu_->AddItem(
"rippletool", this, &MainMenu::ToolItemTriggered, tr("B"));
tools_ripple_item_ = tools_menu_->add_item(
"rippletool", this, &MainMenu::tool_item_triggered, tr("B"));
tools_ripple_item_->setCheckable(true);
tools_ripple_item_->setData(Tool::kRipple);
tools_ripple_item_->setData(Tool::k_ripple);
tools_group_->addAction(tools_ripple_item_);
tools_rolling_item_ = tools_menu_->AddItem(
"rollingtool", this, &MainMenu::ToolItemTriggered, tr("N"));
tools_rolling_item_ = tools_menu_->add_item(
"rollingtool", this, &MainMenu::tool_item_triggered, tr("N"));
tools_rolling_item_->setCheckable(true);
tools_rolling_item_->setData(Tool::kRolling);
tools_rolling_item_->setData(Tool::k_rolling);
tools_group_->addAction(tools_rolling_item_);
tools_razor_item_ = tools_menu_->AddItem(
"razortool", this, &MainMenu::ToolItemTriggered, tr("C"));
tools_razor_item_ = tools_menu_->add_item(
"razortool", this, &MainMenu::tool_item_triggered, tr("C"));
tools_razor_item_->setCheckable(true);
tools_razor_item_->setData(Tool::kRazor);
tools_razor_item_->setData(Tool::k_razor);
tools_group_->addAction(tools_razor_item_);
tools_slip_item_ = tools_menu_->AddItem(
"sliptool", this, &MainMenu::ToolItemTriggered, tr("Y"));
tools_slip_item_ = tools_menu_->add_item(
"sliptool", this, &MainMenu::tool_item_triggered, tr("Y"));
tools_slip_item_->setCheckable(true);
tools_slip_item_->setData(Tool::kSlip);
tools_slip_item_->setData(Tool::k_slip);
tools_group_->addAction(tools_slip_item_);
tools_slide_item_ = tools_menu_->AddItem(
"slidetool", this, &MainMenu::ToolItemTriggered, tr("U"));
tools_slide_item_ = tools_menu_->add_item(
"slidetool", this, &MainMenu::tool_item_triggered, tr("U"));
tools_slide_item_->setCheckable(true);
tools_slide_item_->setData(Tool::kSlide);
tools_slide_item_->setData(Tool::k_slide);
tools_group_->addAction(tools_slide_item_);
tools_hand_item_ = tools_menu_->AddItem(
"handtool", this, &MainMenu::ToolItemTriggered, tr("H"));
tools_hand_item_ = tools_menu_->add_item(
"handtool", this, &MainMenu::tool_item_triggered, tr("H"));
tools_hand_item_->setCheckable(true);
tools_hand_item_->setData(Tool::kHand);
tools_hand_item_->setData(Tool::k_hand);
tools_group_->addAction(tools_hand_item_);
tools_zoom_item_ = tools_menu_->AddItem(
"zoomtool", this, &MainMenu::ToolItemTriggered, tr("Z"));
tools_zoom_item_ = tools_menu_->add_item(
"zoomtool", this, &MainMenu::tool_item_triggered, tr("Z"));
tools_zoom_item_->setCheckable(true);
tools_zoom_item_->setData(Tool::kZoom);
tools_zoom_item_->setData(Tool::k_zoom);
tools_group_->addAction(tools_zoom_item_);
tools_transition_item_ = tools_menu_->AddItem(
"transitiontool", this, &MainMenu::ToolItemTriggered, tr("T"));
tools_transition_item_ = tools_menu_->add_item(
"transitiontool", this, &MainMenu::tool_item_triggered, tr("T"));
tools_transition_item_->setCheckable(true);
tools_transition_item_->setData(Tool::kTransition);
tools_transition_item_->setData(Tool::k_transition);
tools_group_->addAction(tools_transition_item_);
tools_add_item_ = tools_menu_->AddItem(
"addtool", this, &MainMenu::ToolItemTriggered, tr("A"));
tools_add_item_ = tools_menu_->add_item(
"addtool", this, &MainMenu::tool_item_triggered, tr("A"));
tools_add_item_->setCheckable(true);
tools_add_item_->setData(Tool::kAdd);
tools_add_item_->setData(Tool::k_add);
tools_group_->addAction(tools_add_item_);
tools_record_item_ = tools_menu_->AddItem(
"recordtool", this, &MainMenu::ToolItemTriggered, tr("R"));
tools_record_item_ = tools_menu_->add_item(
"recordtool", this, &MainMenu::tool_item_triggered, tr("R"));
tools_record_item_->setCheckable(true);
tools_record_item_->setData(Tool::kRecord);
tools_record_item_->setData(Tool::k_record);
tools_group_->addAction(tools_record_item_);
tools_menu_->addSeparator();
@@ -350,27 +350,27 @@ MainMenu::MainMenu(MainWindow *parent)
tools_add_item_menu_ = new Menu(tools_menu_);
tools_menu_->addMenu(tools_add_item_menu_);
MenuShared::instance()->AddItemsForAddableObjectsMenu(tools_add_item_menu_);
MenuShared::instance()->add_items_for_addable_objects_menu(tools_add_item_menu_);
tools_menu_->addSeparator();
tools_snapping_item_ = tools_menu_->AddItem("snapping", Core::instance(),
&Core::SetSnapping, tr("S"));
tools_snapping_item_ = tools_menu_->add_item("snapping", Core::instance(),
&Core::set_snapping, tr("S"));
tools_snapping_item_->setCheckable(true);
tools_snapping_item_->setChecked(Core::instance()->snapping());
tools_menu_->addSeparator();
tools_proxy_settings_item_ = new QAction(this);
Menu::ConformItem(tools_proxy_settings_item_, "proxysettings");
Menu::conform_item(tools_proxy_settings_item_, "proxysettings");
connect(tools_proxy_settings_item_, &QAction::triggered, this, [this]() {
ProxyDialog d(this);
d.exec();
});
tools_menu_->addAction(tools_proxy_settings_item_);
tools_preferences_item_ = tools_menu_->AddItem(
"prefs", Core::instance(), &Core::DialogPreferencesShow, tr("Ctrl+,"));
tools_preferences_item_ = tools_menu_->add_item(
"prefs", Core::instance(), &Core::dialog_preferences_show, tr("Ctrl+,"));
// On macOS, Qt's text heuristic would relocate an English "Preferences"
// action to the application menu, making it disappear from the Tools menu.
// Pin it to this menu on all platforms.
@@ -378,7 +378,7 @@ MainMenu::MainMenu(MainWindow *parent)
#ifndef NDEBUG
tools_magic_item_ =
tools_menu_->AddItem("magic", Core::instance(), &Core::SetMagic);
tools_menu_->add_item("magic", Core::instance(), &Core::set_magic);
tools_magic_item_->setCheckable(true);
#endif
@@ -386,31 +386,31 @@ MainMenu::MainMenu(MainWindow *parent)
// HELP MENU
//
help_menu_ = new Menu(this);
help_action_search_item_ = help_menu_->AddItem(
"actionsearch", this, &MainMenu::ActionSearchTriggered, tr("/"));
help_action_search_item_ = help_menu_->add_item(
"actionsearch", this, &MainMenu::action_search_triggered, tr("/"));
help_menu_->addSeparator();
help_feedback_item_ =
help_menu_->AddItem("feedback", this, &MainMenu::HelpFeedbackTriggered);
help_menu_->add_item("feedback", this, &MainMenu::help_feedback_triggered);
help_menu_->addSeparator();
help_about_item_ =
help_menu_->AddItem("about", Core::instance(), &Core::DialogAboutShow);
help_menu_->add_item("about", Core::instance(), &Core::dialog_about_show);
connect(Core::instance(), &Core::OpenRecentListChanged, this,
&MainMenu::RepopulateOpenRecent);
PopulateOpenRecent();
connect(Core::instance(), &Core::open_recent_list_changed, this,
&MainMenu::repopulate_open_recent);
populate_open_recent();
Retranslate();
retranslate();
}
void MainMenu::changeEvent(QEvent *e)
{
if (e->type() == QEvent::LanguageChange) {
Retranslate();
retranslate();
}
QMenuBar::changeEvent(e);
}
void MainMenu::ToolItemTriggered()
void MainMenu::tool_item_triggered()
{
// Assume the sender is a QAction
QAction *action = static_cast<QAction *>(sender());
@@ -419,12 +419,12 @@ void MainMenu::ToolItemTriggered()
Tool::Item tool = static_cast<Tool::Item>(action->data().toInt());
// Set the Tool in Core
Core::instance()->SetTool(tool);
Core::instance()->set_tool(tool);
}
void MainMenu::FileMenuAboutToShow()
void MainMenu::file_menu_about_to_show()
{
Project *active_project = Core::instance()->GetActiveProject();
Project *active_project = Core::instance()->get_active_project();
file_save_item_->setEnabled(active_project);
file_save_as_item_->setEnabled(active_project);
@@ -439,36 +439,36 @@ void MainMenu::FileMenuAboutToShow()
}
}
void MainMenu::EditMenuAboutToShow()
void MainMenu::edit_menu_about_to_show()
{
edit_delete2_item_->setVisible(false);
}
void MainMenu::EditMenuAboutToHide()
void MainMenu::edit_menu_about_to_hide()
{
edit_delete2_item_->setVisible(true);
}
void MainMenu::ViewMenuAboutToShow()
void MainMenu::view_menu_about_to_show()
{
// Parent is QMainWindow
view_full_screen_item_->setChecked(parentWidget()->isFullScreen());
// Make sure we're displaying the correct options for the timebase
TimeBasedPanel *p =
PanelManager::instance()->MostRecentlyFocused<TimeBasedPanel>();
PanelManager::instance()->most_recently_focused<TimeBasedPanel>();
if (p) {
if (p->timebase().denominator() != 0) {
view_menu_->addSeparator();
MenuShared::instance()->AddItemsForTimeRulerMenu(view_menu_);
MenuShared::instance()->add_items_for_time_ruler_menu(view_menu_);
}
}
// Ensure checked timecode display mode is correct
MenuShared::instance()->AboutToShowTimeRulerActions(p->timebase());
MenuShared::instance()->about_to_show_time_ruler_actions(p->timebase());
}
void MainMenu::ToolsMenuAboutToShow()
void MainMenu::tools_menu_about_to_show()
{
// Ensure checked Tool is correct
QList<QAction *> tool_actions = tools_group_->actions();
@@ -483,23 +483,23 @@ void MainMenu::ToolsMenuAboutToShow()
tools_snapping_item_->setChecked(Core::instance()->snapping());
}
void MainMenu::PlaybackMenuAboutToShow()
void MainMenu::playback_menu_about_to_show()
{
playback_loop_item_->setChecked(OLIVE_CONFIG("Loop").toBool());
playback_loop_item_->setChecked(OAK_CONFIG("Loop").toBool());
}
void MainMenu::SequenceMenuAboutToShow()
void MainMenu::sequence_menu_about_to_show()
{
TimeBasedPanel *p =
PanelManager::instance()->MostRecentlyFocused<TimeBasedPanel>();
PanelManager::instance()->most_recently_focused<TimeBasedPanel>();
bool can_cache_sequence = (p && p->GetConnectedViewer());
bool can_cache_sequence = (p && p->get_connected_viewer());
sequence_cache_item_->setEnabled(can_cache_sequence);
sequence_cache_in_to_out_item_->setEnabled(can_cache_sequence);
}
void MainMenu::WindowMenuAboutToShow()
void MainMenu::window_menu_about_to_show()
{
// Remove any previous items
while (window_menu_->actions().first() != window_menu_separator_) {
@@ -532,9 +532,9 @@ void MainMenu::WindowMenuAboutToShow()
window_menu_->insertActions(window_menu_separator_, panel_actions);
}
void MainMenu::PopulateOpenRecent()
void MainMenu::populate_open_recent()
{
if (Core::instance()->GetRecentProjects().isEmpty()) {
if (Core::instance()->get_recent_projects().isEmpty()) {
// Insert dummy/disabled action to show there's nothing
QAction *a = new QAction(tr("(None)"));
a->setEnabled(false);
@@ -542,25 +542,25 @@ void MainMenu::PopulateOpenRecent()
} else {
// Populate menu with recently opened projects
for (int i = 0; i < Core::instance()->GetRecentProjects().size(); i++) {
for (int i = 0; i < Core::instance()->get_recent_projects().size(); i++) {
QAction *a =
new QAction(Core::instance()->GetRecentProjects().at(i));
new QAction(Core::instance()->get_recent_projects().at(i));
a->setData(i);
connect(a, &QAction::triggered, this,
&MainMenu::OpenRecentItemTriggered);
&MainMenu::open_recent_item_triggered);
file_open_recent_menu_->insertAction(file_open_recent_separator_,
a);
}
}
}
void MainMenu::RepopulateOpenRecent()
void MainMenu::repopulate_open_recent()
{
CloseOpenRecentMenu();
PopulateOpenRecent();
close_open_recent_menu();
populate_open_recent();
}
void MainMenu::CloseOpenRecentMenu()
void MainMenu::close_open_recent_menu()
{
while (file_open_recent_menu_->actions().first() !=
file_open_recent_separator_) {
@@ -569,239 +569,239 @@ void MainMenu::CloseOpenRecentMenu()
}
}
void MainMenu::ZoomInTriggered()
void MainMenu::zoom_in_triggered()
{
PanelManager::instance()->CurrentlyFocused()->ZoomIn();
PanelManager::instance()->currently_focused()->zoom_in();
}
void MainMenu::ZoomOutTriggered()
void MainMenu::zoom_out_triggered()
{
PanelManager::instance()->CurrentlyFocused()->ZoomOut();
PanelManager::instance()->currently_focused()->zoom_out();
}
void MainMenu::IncreaseTrackHeightTriggered()
void MainMenu::increase_track_height_triggered()
{
PanelManager::instance()->CurrentlyFocused()->IncreaseTrackHeight();
PanelManager::instance()->currently_focused()->increase_track_height();
}
void MainMenu::DecreaseTrackHeightTriggered()
void MainMenu::decrease_track_height_triggered()
{
PanelManager::instance()->CurrentlyFocused()->DecreaseTrackHeight();
PanelManager::instance()->currently_focused()->decrease_track_height();
}
void MainMenu::GoToStartTriggered()
void MainMenu::go_to_start_triggered()
{
PanelManager::instance()->CurrentlyFocused()->GoToStart();
PanelManager::instance()->currently_focused()->go_to_start();
}
void MainMenu::PrevFrameTriggered()
void MainMenu::prev_frame_triggered()
{
PanelManager::instance()->CurrentlyFocused()->PrevFrame();
PanelManager::instance()->currently_focused()->prev_frame();
}
void MainMenu::PlayPauseTriggered()
void MainMenu::play_pause_triggered()
{
PanelManager::instance()->CurrentlyFocused()->PlayPause();
PanelManager::instance()->currently_focused()->play_pause();
}
void MainMenu::PlayInToOutTriggered()
void MainMenu::play_in_to_out_triggered()
{
PanelManager::instance()->CurrentlyFocused()->PlayInToOut();
PanelManager::instance()->currently_focused()->play_in_to_out();
}
void MainMenu::LoopTriggered(bool enabled)
void MainMenu::loop_triggered(bool enabled)
{
OLIVE_CONFIG("Loop") = enabled;
OAK_CONFIG("Loop") = enabled;
}
void MainMenu::NextFrameTriggered()
void MainMenu::next_frame_triggered()
{
PanelManager::instance()->CurrentlyFocused()->NextFrame();
PanelManager::instance()->currently_focused()->next_frame();
}
void MainMenu::GoToEndTriggered()
void MainMenu::go_to_end_triggered()
{
PanelManager::instance()->CurrentlyFocused()->GoToEnd();
PanelManager::instance()->currently_focused()->go_to_end();
}
void MainMenu::SelectAllTriggered()
void MainMenu::select_all_triggered()
{
PanelManager::instance()->CurrentlyFocused()->SelectAll();
PanelManager::instance()->currently_focused()->select_all();
}
void MainMenu::DeselectAllTriggered()
void MainMenu::deselect_all_triggered()
{
PanelManager::instance()->CurrentlyFocused()->DeselectAll();
PanelManager::instance()->currently_focused()->deselect_all();
}
void MainMenu::InsertTriggered()
void MainMenu::insert_triggered()
{
FootageManagementPanel *project_panel =
PanelManager::instance()->MostRecentlyFocused<FootageManagementPanel>();
PanelManager::instance()->most_recently_focused<FootageManagementPanel>();
TimelinePanel *timeline_panel =
PanelManager::instance()->MostRecentlyFocused<TimelinePanel>();
PanelManager::instance()->most_recently_focused<TimelinePanel>();
if (project_panel && timeline_panel) {
timeline_panel->InsertFootageAtPlayhead(
project_panel->GetSelectedFootage());
timeline_panel->insert_footage_at_playhead(
project_panel->get_selected_footage());
}
}
void MainMenu::OverwriteTriggered()
void MainMenu::overwrite_triggered()
{
FootageManagementPanel *project_panel =
PanelManager::instance()->MostRecentlyFocused<FootageManagementPanel>();
PanelManager::instance()->most_recently_focused<FootageManagementPanel>();
TimelinePanel *timeline_panel =
PanelManager::instance()->MostRecentlyFocused<TimelinePanel>();
PanelManager::instance()->most_recently_focused<TimelinePanel>();
if (project_panel && timeline_panel) {
timeline_panel->OverwriteFootageAtPlayhead(
project_panel->GetSelectedFootage());
timeline_panel->overwrite_footage_at_playhead(
project_panel->get_selected_footage());
}
}
void MainMenu::RippleToInTriggered()
void MainMenu::ripple_to_in_triggered()
{
PanelManager::instance()->CurrentlyFocused()->RippleToIn();
PanelManager::instance()->currently_focused()->ripple_to_in();
}
void MainMenu::RippleToOutTriggered()
void MainMenu::ripple_to_out_triggered()
{
PanelManager::instance()->CurrentlyFocused()->RippleToOut();
PanelManager::instance()->currently_focused()->ripple_to_out();
}
void MainMenu::EditToInTriggered()
void MainMenu::edit_to_in_triggered()
{
PanelManager::instance()->CurrentlyFocused()->EditToIn();
PanelManager::instance()->currently_focused()->edit_to_in();
}
void MainMenu::EditToOutTriggered()
void MainMenu::edit_to_out_triggered()
{
PanelManager::instance()->CurrentlyFocused()->EditToOut();
PanelManager::instance()->currently_focused()->edit_to_out();
}
void MainMenu::NudgeLeftTriggered()
void MainMenu::nudge_left_triggered()
{
PanelManager::instance()->CurrentlyFocused()->NudgeLeft();
PanelManager::instance()->currently_focused()->nudge_left();
}
void MainMenu::NudgeRightTriggered()
void MainMenu::nudge_right_triggered()
{
PanelManager::instance()->CurrentlyFocused()->NudgeRight();
PanelManager::instance()->currently_focused()->nudge_right();
}
void MainMenu::MoveInToPlayheadTriggered()
void MainMenu::move_in_to_playhead_triggered()
{
PanelManager::instance()->CurrentlyFocused()->MoveInToPlayhead();
PanelManager::instance()->currently_focused()->move_in_to_playhead();
}
void MainMenu::MoveOutToPlayheadTriggered()
void MainMenu::move_out_to_playhead_triggered()
{
PanelManager::instance()->CurrentlyFocused()->MoveOutToPlayhead();
PanelManager::instance()->currently_focused()->move_out_to_playhead();
}
void MainMenu::ActionSearchTriggered()
void MainMenu::action_search_triggered()
{
ActionSearch as(parentWidget());
as.SetMenuBar(this);
as.set_menu_bar(this);
as.exec();
}
void MainMenu::ShuttleLeftTriggered()
void MainMenu::shuttle_left_triggered()
{
PanelManager::instance()->CurrentlyFocused()->ShuttleLeft();
PanelManager::instance()->currently_focused()->shuttle_left();
}
void MainMenu::ShuttleStopTriggered()
void MainMenu::shuttle_stop_triggered()
{
PanelManager::instance()->CurrentlyFocused()->ShuttleStop();
PanelManager::instance()->currently_focused()->shuttle_stop();
}
void MainMenu::ShuttleRightTriggered()
void MainMenu::shuttle_right_triggered()
{
PanelManager::instance()->CurrentlyFocused()->ShuttleRight();
PanelManager::instance()->currently_focused()->shuttle_right();
}
void MainMenu::GoToPrevCutTriggered()
void MainMenu::go_to_prev_cut_triggered()
{
PanelManager::instance()->CurrentlyFocused()->GoToPrevCut();
PanelManager::instance()->currently_focused()->go_to_prev_cut();
}
void MainMenu::GoToNextCutTriggered()
void MainMenu::go_to_next_cut_triggered()
{
PanelManager::instance()->CurrentlyFocused()->GoToNextCut();
PanelManager::instance()->currently_focused()->go_to_next_cut();
}
void MainMenu::SetMarkerTriggered()
void MainMenu::set_marker_triggered()
{
PanelManager::instance()->CurrentlyFocused()->SetMarker();
PanelManager::instance()->currently_focused()->set_marker();
}
void MainMenu::FullScreenViewerTriggered()
void MainMenu::full_screen_viewer_triggered()
{
PanelManager::instance()
->MostRecentlyFocused<ViewerPanel>()
->SetFullScreen();
->most_recently_focused<ViewerPanel>()
->set_full_screen();
}
void MainMenu::ToggleShowAllTriggered()
void MainMenu::toggle_show_all_triggered()
{
PanelManager::instance()->CurrentlyFocused()->ToggleShowAll();
PanelManager::instance()->currently_focused()->toggle_show_all();
}
void MainMenu::DeleteInOutTriggered()
void MainMenu::delete_in_out_triggered()
{
PanelManager::instance()->CurrentlyFocused()->DeleteInToOut();
PanelManager::instance()->currently_focused()->delete_in_to_out();
}
void MainMenu::RippleDeleteInOutTriggered()
void MainMenu::ripple_delete_in_out_triggered()
{
PanelManager::instance()->CurrentlyFocused()->RippleDeleteInToOut();
PanelManager::instance()->currently_focused()->ripple_delete_in_to_out();
}
void MainMenu::GoToInTriggered()
void MainMenu::go_to_in_triggered()
{
PanelManager::instance()->CurrentlyFocused()->GoToIn();
PanelManager::instance()->currently_focused()->go_to_in();
}
void MainMenu::GoToOutTriggered()
void MainMenu::go_to_out_triggered()
{
PanelManager::instance()->CurrentlyFocused()->GoToOut();
PanelManager::instance()->currently_focused()->go_to_out();
}
void MainMenu::OpenRecentItemTriggered()
void MainMenu::open_recent_item_triggered()
{
Core::instance()->OpenProjectFromRecentList(
Core::instance()->open_project_from_recent_list(
static_cast<QAction *>(sender())->data().toInt());
}
void MainMenu::SequenceCacheTriggered()
void MainMenu::sequence_cache_triggered()
{
Core::instance()->CacheActiveSequence(false);
Core::instance()->cache_active_sequence(false);
}
void MainMenu::SequenceCacheInOutTriggered()
void MainMenu::sequence_cache_in_out_triggered()
{
Core::instance()->CacheActiveSequence(true);
Core::instance()->cache_active_sequence(true);
}
void MainMenu::SequenceCacheClearTriggered()
void MainMenu::sequence_cache_clear_triggered()
{
DiskCacheDialog::ClearDiskCache(
Core::instance()->GetActiveProject()->cache_path(),
DiskCacheDialog::clear_disk_cache(
Core::instance()->get_active_project()->cache_path(),
Core::instance()->main_window());
}
void MainMenu::HelpFeedbackTriggered()
void MainMenu::help_feedback_triggered()
{
QDesktopServices::openUrl(QStringLiteral(
"https://github.com/OakVideoEditorCommunity/oak/issues"));
}
void MainMenu::Retranslate()
void MainMenu::retranslate()
{
// MenuShared is not a QWidget and therefore does not receive a LanguageEvent, we use MainMenu's to update it
MenuShared::instance()->Retranslate();
MenuShared::instance()->retranslate();
// File menu
file_menu_->setTitle(tr("&File"));
@@ -818,7 +818,7 @@ void MainMenu::Retranslate()
// Edit menu
edit_menu_->setTitle(tr("&Edit"));
Core::instance()->undo_stack()->UpdateActions(); // Update undo and redo
Core::instance()->undo_stack()->update_actions(); // Update undo and redo
edit_delete2_item_->setText(tr("Delete (alt)"));
edit_insert_item_->setText(tr("Insert"));
edit_overwrite_item_->setText(tr("Overwrite"));
+57 -57
View File
@@ -19,8 +19,8 @@
***/
#ifndef MAINMENU_H
#define MAINMENU_H
#ifndef OAK_MAINMENU_H
#define OAK_MAINMENU_H
#include <QMainWindow>
#include <QMenuBar>
@@ -60,140 +60,140 @@ private slots:
* Assumes a QAction* sender() and its data() is a member of enum Tool::Item. Uses the data() to signal a
* Tool change throughout the rest of the application.
*/
void ToolItemTriggered();
void tool_item_triggered();
/**
* @brief Slot triggered just before the File menu shows
*/
void FileMenuAboutToShow();
void file_menu_about_to_show();
/**
* @brief Slot triggered just before the Edit menu shows
*/
void EditMenuAboutToShow();
void EditMenuAboutToHide();
void edit_menu_about_to_show();
void edit_menu_about_to_hide();
/**
* @brief Slot triggered just before the View menu shows
*/
void ViewMenuAboutToShow();
void view_menu_about_to_show();
/**
* @brief Slot triggered just before the Tools menu shows
*/
void ToolsMenuAboutToShow();
void tools_menu_about_to_show();
/**
* @brief Slot triggered just before the Playback menu shows
*/
void PlaybackMenuAboutToShow();
void playback_menu_about_to_show();
/**
* @brief Slot triggered just before the Sequence menu shows
*/
void SequenceMenuAboutToShow();
void sequence_menu_about_to_show();
/**
* @brief Slot triggered just before the Window menu shows
*/
void WindowMenuAboutToShow();
void window_menu_about_to_show();
/**
* @brief Adds items to open recent menu
*/
void PopulateOpenRecent();
void populate_open_recent();
void RepopulateOpenRecent();
void repopulate_open_recent();
/**
* @brief Clears open recent items when menu closes
*/
void CloseOpenRecentMenu();
void close_open_recent_menu();
/**
* @brief Slot for zooming in
*
* Finds the currently focused panel and sends it a "zoom in" signal
*/
void ZoomInTriggered();
void zoom_in_triggered();
/**
* @brief Slot for zooming out
*
* Finds the currently focused panel and sends it a "zoom out" signal
*/
void ZoomOutTriggered();
void zoom_out_triggered();
void IncreaseTrackHeightTriggered();
void DecreaseTrackHeightTriggered();
void increase_track_height_triggered();
void decrease_track_height_triggered();
void GoToStartTriggered();
void PrevFrameTriggered();
void go_to_start_triggered();
void prev_frame_triggered();
/**
* @brief Slot for play/pause
*
* Finds the currently focused panel and sends it a "play/pause" signal
*/
void PlayPauseTriggered();
void play_pause_triggered();
void PlayInToOutTriggered();
void play_in_to_out_triggered();
void LoopTriggered(bool enabled);
void loop_triggered(bool enabled);
void NextFrameTriggered();
void GoToEndTriggered();
void next_frame_triggered();
void go_to_end_triggered();
void SelectAllTriggered();
void DeselectAllTriggered();
void select_all_triggered();
void deselect_all_triggered();
void InsertTriggered();
void OverwriteTriggered();
void insert_triggered();
void overwrite_triggered();
void RippleToInTriggered();
void RippleToOutTriggered();
void EditToInTriggered();
void EditToOutTriggered();
void ripple_to_in_triggered();
void ripple_to_out_triggered();
void edit_to_in_triggered();
void edit_to_out_triggered();
void NudgeLeftTriggered();
void NudgeRightTriggered();
void MoveInToPlayheadTriggered();
void MoveOutToPlayheadTriggered();
void nudge_left_triggered();
void nudge_right_triggered();
void move_in_to_playhead_triggered();
void move_out_to_playhead_triggered();
void ActionSearchTriggered();
void action_search_triggered();
void ShuttleLeftTriggered();
void ShuttleStopTriggered();
void ShuttleRightTriggered();
void shuttle_left_triggered();
void shuttle_stop_triggered();
void shuttle_right_triggered();
void GoToPrevCutTriggered();
void GoToNextCutTriggered();
void go_to_prev_cut_triggered();
void go_to_next_cut_triggered();
void SetMarkerTriggered();
void set_marker_triggered();
void FullScreenViewerTriggered();
void full_screen_viewer_triggered();
void ToggleShowAllTriggered();
void toggle_show_all_triggered();
void DeleteInOutTriggered();
void RippleDeleteInOutTriggered();
void delete_in_out_triggered();
void ripple_delete_in_out_triggered();
void GoToInTriggered();
void GoToOutTriggered();
void go_to_in_triggered();
void go_to_out_triggered();
void OpenRecentItemTriggered();
void open_recent_item_triggered();
void SequenceCacheTriggered();
void SequenceCacheInOutTriggered();
void SequenceCacheClearTriggered();
void sequence_cache_triggered();
void sequence_cache_in_out_triggered();
void sequence_cache_clear_triggered();
void HelpFeedbackTriggered();
void help_feedback_triggered();
private:
/**
* @brief Set strings based on the current application language.
*/
void Retranslate();
void retranslate();
Menu *file_menu_;
Menu *file_new_menu_;
@@ -297,4 +297,4 @@ private:
}
#endif // MAINMENU_H
#endif // OAK_MAINMENU_H
+20 -20
View File
@@ -46,64 +46,64 @@ MainStatusBar::MainStatusBar(QWidget *parent)
10000);
}
void MainStatusBar::ConnectTaskManager(TaskManager *manager)
void MainStatusBar::connect_task_manager(TaskManager *manager)
{
if (manager_) {
disconnect(manager_, &TaskManager::TaskListChanged, this,
&MainStatusBar::UpdateStatus);
disconnect(manager_, &TaskManager::task_list_changed, this,
&MainStatusBar::update_status);
}
manager_ = manager;
if (manager_) {
connect(manager_, &TaskManager::TaskListChanged, this,
&MainStatusBar::UpdateStatus);
connect(manager_, &TaskManager::task_list_changed, this,
&MainStatusBar::update_status);
}
}
void MainStatusBar::UpdateStatus()
void MainStatusBar::update_status()
{
if (!manager_) {
return;
}
if (manager_->GetTaskCount() == 0) {
if (manager_->get_task_count() == 0) {
clearMessage();
bar_->setVisible(false);
bar_->setValue(0);
} else {
Task *t = manager_->GetFirstTask();
Task *t = manager_->get_first_task();
if (manager_->GetTaskCount() == 1) {
showMessage(t->GetTitle());
if (manager_->get_task_count() == 1) {
showMessage(t->get_title());
} else {
showMessage(tr("Running %n background task(s)", nullptr,
manager_->GetTaskCount()));
manager_->get_task_count()));
}
bar_->setVisible(true);
if (connected_task_) {
disconnect(connected_task_, &Task::ProgressChanged, this,
&MainStatusBar::SetProgressBarValue);
disconnect(connected_task_, &Task::progress_changed, this,
&MainStatusBar::set_progress_bar_value);
disconnect(connected_task_, &Task::destroyed, this,
&MainStatusBar::ConnectedTaskDeleted);
&MainStatusBar::connected_task_deleted);
}
connected_task_ = t;
connect(connected_task_, &Task::ProgressChanged, this,
&MainStatusBar::SetProgressBarValue);
connect(connected_task_, &Task::progress_changed, this,
&MainStatusBar::set_progress_bar_value);
connect(connected_task_, &Task::destroyed, this,
&MainStatusBar::ConnectedTaskDeleted);
&MainStatusBar::connected_task_deleted);
}
}
void MainStatusBar::SetProgressBarValue(double d)
void MainStatusBar::set_progress_bar_value(double d)
{
bar_->setValue(qRound(100.0 * d));
}
void MainStatusBar::ConnectedTaskDeleted()
void MainStatusBar::connected_task_deleted()
{
connected_task_ = nullptr;
}
@@ -112,7 +112,7 @@ void MainStatusBar::mouseDoubleClickEvent(QMouseEvent *e)
{
QStatusBar::mouseDoubleClickEvent(e);
emit DoubleClicked();
emit double_clicked();
}
}
+8 -8
View File
@@ -19,8 +19,8 @@
***/
#ifndef MAINSTATUSBAR_H
#define MAINSTATUSBAR_H
#ifndef OAK_MAINSTATUSBAR_H
#define OAK_MAINSTATUSBAR_H
#include <QProgressBar>
#include <QStatusBar>
@@ -38,20 +38,20 @@ class MainStatusBar : public QStatusBar {
public:
MainStatusBar(QWidget *parent = nullptr);
void ConnectTaskManager(TaskManager *manager);
void connect_task_manager(TaskManager *manager);
signals:
void DoubleClicked();
void double_clicked();
protected:
virtual void mouseDoubleClickEvent(QMouseEvent *e) override;
private slots:
void UpdateStatus();
void update_status();
void SetProgressBarValue(double d);
void set_progress_bar_value(double d);
void ConnectedTaskDeleted();
void connected_task_deleted();
private:
TaskManager *manager_;
@@ -63,4 +63,4 @@ private:
}
#endif // MAINSTATUSBAR_H
#endif // OAK_MAINSTATUSBAR_H
+198 -198
View File
@@ -68,13 +68,13 @@ MainWindow::MainWindow(QWidget *parent)
MainMenu *main_menu = new MainMenu(this);
setMenuBar(main_menu);
LoadCustomShortcuts();
load_custom_shortcuts();
// Create and set status bar
MainStatusBar *status_bar = new MainStatusBar(this);
status_bar->ConnectTaskManager(TaskManager::instance());
connect(status_bar, &MainStatusBar::DoubleClicked, this,
&MainWindow::StatusBarDoubleClicked);
status_bar->connect_task_manager(TaskManager::instance());
connect(status_bar, &MainStatusBar::double_clicked, this,
&MainWindow::status_bar_double_clicked);
setStatusBar(status_bar);
// Create standard panels
@@ -88,7 +88,7 @@ MainWindow::MainWindow(QWidget *parent)
project_panel_ = new ProjectPanel(QStringLiteral("ProjectPanel"));
tool_panel_ = new ToolPanel();
task_man_panel_ = new TaskManagerPanel();
AppendTimelinePanel();
append_timeline_panel();
audio_monitor_panel_ = new AudioMonitorPanel();
scope_panel_ = new ScopePanel();
history_panel_ = new HistoryPanel();
@@ -101,44 +101,44 @@ MainWindow::MainWindow(QWidget *parent)
emit pixel_sampler_panel_->shown(Qt::OtherFocusReason);
// Make node-related connections
connect(node_panel_, &NodePanel::NodeSelectionChangedWithContexts,
param_panel_, &ParamPanel::SetSelectedNodes);
connect(node_panel_, &NodePanel::NodeGroupOpened, this,
&MainWindow::NodePanelGroupOpenedOrClosed);
connect(node_panel_, &NodePanel::NodeGroupClosed, this,
&MainWindow::NodePanelGroupOpenedOrClosed);
connect(param_panel_, &ParamPanel::FocusedNodeChanged,
sequence_viewer_panel_, &ViewerPanel::SetGizmos);
connect(param_panel_, &ParamPanel::RequestViewerToStartEditingText,
sequence_viewer_panel_, &ViewerPanel::RequestStartEditingText);
connect(param_panel_, &ParamPanel::FocusedNodeChanged, curve_panel_,
&CurvePanel::SetNode);
connect(param_panel_, &ParamPanel::SelectedNodesChanged, node_panel_,
&NodePanel::Select);
connect(project_panel_, &ProjectPanel::ProjectNameChanged, this,
&MainWindow::UpdateTitle);
connect(node_panel_, &NodePanel::node_selection_changed_with_contexts,
param_panel_, &ParamPanel::set_selected_nodes);
connect(node_panel_, &NodePanel::node_group_opened, this,
&MainWindow::node_panel_group_opened_or_closed);
connect(node_panel_, &NodePanel::node_group_closed, this,
&MainWindow::node_panel_group_opened_or_closed);
connect(param_panel_, &ParamPanel::focused_node_changed,
sequence_viewer_panel_, &ViewerPanel::set_gizmos);
connect(param_panel_, &ParamPanel::request_viewer_to_start_editing_text,
sequence_viewer_panel_, &ViewerPanel::request_start_editing_text);
connect(param_panel_, &ParamPanel::focused_node_changed, curve_panel_,
&CurvePanel::set_node);
connect(param_panel_, &ParamPanel::selected_nodes_changed, node_panel_,
&NodePanel::select);
connect(project_panel_, &ProjectPanel::project_name_changed, this,
&MainWindow::update_title);
connect(node_panel_, &NodePanel::NodeSelectionChanged,
sequence_viewer_panel_, &ViewerPanel::SetNodeViewSelections);
connect(node_panel_, &NodePanel::node_selection_changed,
sequence_viewer_panel_, &ViewerPanel::set_node_view_selections);
// Route play/pause/shuttle commands from these panels to the sequence viewer
sequence_viewer_panel_->ConnectTimeBasedPanel(param_panel_);
sequence_viewer_panel_->ConnectTimeBasedPanel(curve_panel_);
sequence_viewer_panel_->ConnectTimeBasedPanel(multicam_panel_);
sequence_viewer_panel_->connect_time_based_panel(param_panel_);
sequence_viewer_panel_->connect_time_based_panel(curve_panel_);
sequence_viewer_panel_->connect_time_based_panel(multicam_panel_);
connect(PanelManager::instance(), &PanelManager::FocusedPanelChanged, this,
&MainWindow::FocusedPanelChanged);
connect(PanelManager::instance(), &PanelManager::focused_panel_changed, this,
&MainWindow::focused_panel_changed);
sequence_viewer_panel_->AddPlaybackDevice(
multicam_panel_->GetMulticamWidget()->GetDisplayWidget());
sequence_viewer_panel_->ConnectMulticamWidget(
multicam_panel_->GetMulticamWidget());
sequence_viewer_panel_->add_playback_device(
multicam_panel_->get_multicam_widget()->get_display_widget());
sequence_viewer_panel_->connect_multicam_widget(
multicam_panel_->get_multicam_widget());
scope_panel_->SetViewerPanel(sequence_viewer_panel_);
scope_panel_->set_viewer_panel(sequence_viewer_panel_);
UpdateTitle();
update_title();
QMetaObject::invokeMethod(this, &MainWindow::SetDefaultLayout,
QMetaObject::invokeMethod(this, &MainWindow::set_default_layout,
Qt::QueuedConnection);
}
@@ -151,49 +151,49 @@ MainWindow::~MainWindow()
#endif
}
void MainWindow::LoadLayout(const MainWindowLayoutInfo &info)
void MainWindow::load_layout(const MainWindowLayoutInfo &info)
{
foreach (Folder *folder, info.open_folders()) {
OpenFolder(folder, true);
open_folder(folder, true);
}
foreach (Sequence *sequence, info.open_sequences()) {
OpenSequence(sequence, info.open_sequences().size() == 1);
open_sequence(sequence, info.open_sequences().size() == 1);
}
foreach (ViewerOutput *viewer, info.open_viewers()) {
OpenNodeInViewer(viewer);
open_node_in_viewer(viewer);
}
for (auto it = info.panel_data().cbegin(); it != info.panel_data().cend();
it++) {
// Find panel with this ID
if (PanelWidget *panel =
PanelManager::instance()->GetPanelWithName(it->first)) {
panel->LoadData(it->second);
PanelManager::instance()->get_panel_with_name(it->first)) {
panel->load_data(it->second);
}
}
KDDockWidgets::LayoutSaver().restoreLayout(qUncompress(info.state()));
}
QString TransformNameForSerialization(const QString &unique, int i)
QString transform_name_for_serialization(const QString &unique, int i)
{
return QStringLiteral("%1:%2").arg(unique.split(':').at(0),
QString::number(i));
}
void CorrectPanelDataIfNecessary(const QString &unique_name, int index,
void correct_panel_data_if_necessary(const QString &unique_name, int index,
MainWindowLayoutInfo &info, QByteArray &layout)
{
QString corrected = TransformNameForSerialization(unique_name, index);
QString corrected = transform_name_for_serialization(unique_name, index);
if (corrected != unique_name) {
info.move_panel_data(unique_name, corrected);
layout.replace(unique_name.toUtf8(), corrected.toUtf8());
}
}
MainWindowLayoutInfo MainWindow::SaveLayout() const
MainWindowLayoutInfo MainWindow::save_layout() const
{
MainWindowLayoutInfo info;
@@ -202,25 +202,25 @@ MainWindowLayoutInfo MainWindow::SaveLayout() const
premaximized_state_;
foreach (PanelWidget *panel, PanelManager::instance()->panels()) {
info.set_panel_data(panel->uniqueName(), panel->SaveData());
info.set_panel_data(panel->uniqueName(), panel->save_data());
}
for (int i = 0; i < folder_panels_.size(); i++) {
auto panel = folder_panels_.at(i);
info.add_folder(panel->get_root());
CorrectPanelDataIfNecessary(panel->uniqueName(), i, info, layout);
correct_panel_data_if_necessary(panel->uniqueName(), i, info, layout);
}
for (int i = 0; i < timeline_panels_.size(); i++) {
auto panel = timeline_panels_.at(i);
info.add_sequence(panel->GetSequence());
CorrectPanelDataIfNecessary(panel->uniqueName(), i, info, layout);
info.add_sequence(panel->get_sequence());
correct_panel_data_if_necessary(panel->uniqueName(), i, info, layout);
}
for (int i = 0; i < viewer_panels_.size(); i++) {
auto panel = viewer_panels_.at(i);
info.add_viewer(panel->GetConnectedViewer());
CorrectPanelDataIfNecessary(panel->uniqueName(), i, info, layout);
info.add_viewer(panel->get_connected_viewer());
correct_panel_data_if_necessary(panel->uniqueName(), i, info, layout);
}
info.set_state(qCompress(layout));
@@ -228,11 +228,11 @@ MainWindowLayoutInfo MainWindow::SaveLayout() const
return info;
}
TimelinePanel *MainWindow::OpenSequence(Sequence *sequence, bool enable_focus)
TimelinePanel *MainWindow::open_sequence(Sequence *sequence, bool enable_focus)
{
// See if this sequence is already open, and switch to it if so
foreach (TimelinePanel *tl, timeline_panels_) {
if (tl->GetConnectedViewer() == sequence) {
if (tl->get_connected_viewer() == sequence) {
tl->raise();
return tl;
}
@@ -241,40 +241,40 @@ TimelinePanel *MainWindow::OpenSequence(Sequence *sequence, bool enable_focus)
// See if we have any sequences open or not
TimelinePanel *panel;
if (!timeline_panels_.first()->GetConnectedViewer()) {
if (!timeline_panels_.first()->get_connected_viewer()) {
panel = timeline_panels_.first();
} else {
panel = AppendTimelinePanel();
panel = append_timeline_panel();
//enable_focus = false;
}
panel->ConnectViewerNode(sequence);
panel->connect_viewer_node(sequence);
if (enable_focus) {
TimelineFocused(sequence);
UpdateAudioMonitorParams(sequence);
timeline_focused(sequence);
update_audio_monitor_params(sequence);
}
return panel;
}
void MainWindow::CloseSequence(Sequence *sequence)
void MainWindow::close_sequence(Sequence *sequence)
{
// We defer to RemoveTimelinePanel() to close the panels, which may delete and remove indices from timeline_panels_.
// We make a copy so that our array here doesn't get ruined by what RemoveTimelinePanel() does
QList<TimelinePanel *> copy = timeline_panels_;
foreach (TimelinePanel *tp, copy) {
if (tp->GetConnectedViewer() == sequence) {
RemoveTimelinePanel(tp);
if (tp->get_connected_viewer() == sequence) {
remove_timeline_panel(tp);
}
}
}
bool MainWindow::IsSequenceOpen(Sequence *sequence) const
bool MainWindow::is_sequence_open(Sequence *sequence) const
{
foreach (TimelinePanel *tp, timeline_panels_) {
if (tp->GetConnectedViewer() == sequence) {
if (tp->get_connected_viewer() == sequence) {
return true;
}
}
@@ -282,10 +282,10 @@ bool MainWindow::IsSequenceOpen(Sequence *sequence) const
return false;
}
void MainWindow::OpenFolder(Folder *i, bool floating)
void MainWindow::open_folder(Folder *i, bool floating)
{
ProjectPanel *panel =
AppendPanelInternal(QStringLiteral("FolderPanel"), folder_panels_);
append_panel_internal(QStringLiteral("FolderPanel"), folder_panels_);
panel->set_project(i->project());
panel->set_root(i);
@@ -297,17 +297,17 @@ void MainWindow::OpenFolder(Folder *i, bool floating)
}
// If the panel is closed, just destroy it
connect(panel, &ProjectPanel::CloseRequested, this,
&MainWindow::FolderPanelCloseRequested);
connect(panel, &ProjectPanel::close_requested, this,
&MainWindow::folder_panel_close_requested);
}
void MainWindow::OpenNodeInViewer(ViewerOutput *node)
void MainWindow::open_node_in_viewer(ViewerOutput *node)
{
ViewerPanel *existing = nullptr;
for (auto it = viewer_panels_.cbegin(); it != viewer_panels_.cend(); it++) {
ViewerPanel *it2 = (*it);
if (it2->GetConnectedViewer() == node) {
if (it2->get_connected_viewer() == node) {
existing = it2;
break;
}
@@ -319,18 +319,18 @@ void MainWindow::OpenNodeInViewer(ViewerOutput *node)
} else {
// Create a viewer for this node
ViewerPanel *viewer =
AppendPanelInternal(QStringLiteral("ViewerPanel"), viewer_panels_);
append_panel_internal(QStringLiteral("ViewerPanel"), viewer_panels_);
viewer->ConnectViewerNode(node);
viewer->connect_viewer_node(node);
connect(viewer, &ViewerPanel::CloseRequested, this,
&MainWindow::ViewerCloseRequested);
connect(node, &ViewerOutput::RemovedFromGraph, this,
&MainWindow::ViewerWithPanelRemovedFromGraph);
connect(viewer, &ViewerPanel::close_requested, this,
&MainWindow::viewer_close_requested);
connect(node, &ViewerOutput::removed_from_graph, this,
&MainWindow::viewer_with_panel_removed_from_graph);
}
}
void MainWindow::SetFullscreen(bool fullscreen)
void MainWindow::set_fullscreen(bool fullscreen)
{
if (fullscreen) {
setWindowState(windowState() | Qt::WindowFullScreen);
@@ -339,7 +339,7 @@ void MainWindow::SetFullscreen(bool fullscreen)
}
}
void MainWindow::ToggleMaximizedPanel()
void MainWindow::toggle_maximized_panel()
{
KDDockWidgets::LayoutSaver saver;
@@ -348,11 +348,11 @@ void MainWindow::ToggleMaximizedPanel()
// Find the currently focused panel
PanelWidget *currently_hovered =
PanelManager::instance()->CurrentlyHovered();
PanelManager::instance()->currently_hovered();
// If no panel is hovered, fallback to the currently active panel
if (!currently_hovered) {
currently_hovered = PanelManager::instance()->CurrentlyFocused();
currently_hovered = PanelManager::instance()->currently_focused();
// If no panel is hovered or focused, do nothing
if (!currently_hovered) {
@@ -377,21 +377,21 @@ void MainWindow::ToggleMaximizedPanel()
} else {
// Preserve currently focused panel
auto currently_focused_panel =
PanelManager::instance()->CurrentlyFocused(false);
PanelManager::instance()->currently_focused(false);
// Assume we are currently maximized, restore the state
PanelManager::instance()->SetSuppressChangedSignal(true);
PanelManager::instance()->set_suppress_changed_signal(true);
saver.restoreLayout(premaximized_state_);
premaximized_state_.clear();
currently_focused_panel->raise();
currently_focused_panel->setFocus(Qt::ActiveWindowFocusReason);
PanelManager::instance()->SetSuppressChangedSignal(false);
PanelManager::instance()->set_suppress_changed_signal(false);
}
}
void MainWindow::SetProject(Project *p)
void MainWindow::set_project(Project *p)
{
if (project_ == p) {
return;
@@ -399,21 +399,21 @@ void MainWindow::SetProject(Project *p)
if (project_) {
// Clear all data
param_panel_->SetContexts(QVector<Node *>());
node_panel_->SetContexts(QVector<Node *>());
param_panel_->set_contexts(QVector<Node *>());
node_panel_->set_contexts(QVector<Node *>());
// Close any nodes open in TimeBasedWidgets
foreach (PanelWidget *panel, PanelManager::instance()->panels()) {
TimeBasedPanel *tbp = dynamic_cast<TimeBasedPanel *>(panel);
if (tbp && tbp->GetConnectedViewer() &&
tbp->GetConnectedViewer()->project() == project_) {
if (tbp && tbp->get_connected_viewer() &&
tbp->get_connected_viewer()->project() == project_) {
if (dynamic_cast<TimelinePanel *>(tbp)) {
// Prefer our CloseSequence function which will delete any unnecessary timeline panels
CloseSequence(
static_cast<Sequence *>(tbp->GetConnectedViewer()));
close_sequence(
static_cast<Sequence *>(tbp->get_connected_viewer()));
} else {
tbp->DisconnectViewerNode();
tbp->disconnect_viewer_node();
}
}
}
@@ -437,7 +437,7 @@ void MainWindow::SetProject(Project *p)
}
}
void MainWindow::SetApplicationProgressStatus(ProgressStatus status)
void MainWindow::set_application_progress_status(ProgressStatus status)
{
#if defined(Q_OS_WINDOWS)
if (taskbar_interface_) {
@@ -461,7 +461,7 @@ void MainWindow::SetApplicationProgressStatus(ProgressStatus status)
#endif
}
void MainWindow::SetApplicationProgressValue(int value)
void MainWindow::set_application_progress_value(int value)
{
#if defined(Q_OS_WINDOWS)
if (taskbar_interface_) {
@@ -472,27 +472,27 @@ void MainWindow::SetApplicationProgressValue(int value)
#endif
}
void MainWindow::SelectFootage(const QVector<Footage *> &e)
void MainWindow::select_footage(const QVector<Footage *> &e)
{
SelectFootageForProjectPanel(e, project_panel_);
select_footage_for_project_panel(e, project_panel_);
for (ProjectPanel *p : folder_panels_) {
SelectFootageForProjectPanel(e, p);
select_footage_for_project_panel(e, p);
}
}
void MainWindow::closeEvent(QCloseEvent *e)
{
// Try to close all projects (this will return false if the user chooses not to close)
if (!Core::instance()->CloseProject(false)) {
if (!Core::instance()->close_project(false)) {
e->ignore();
return;
}
scope_panel_->SetViewerPanel(nullptr);
scope_panel_->set_viewer_panel(nullptr);
PanelManager::instance()->DeleteAllPanels();
PanelManager::instance()->delete_all_panels();
SaveCustomShortcuts();
save_custom_shortcuts();
QMainWindow::closeEvent(e);
}
@@ -526,66 +526,66 @@ bool MainWindow::nativeEvent(const QByteArray &eventType, void *message,
}
#endif
void MainWindow::StatusBarDoubleClicked()
void MainWindow::status_bar_double_clicked()
{
task_man_panel_->show();
task_man_panel_->raise();
}
void MainWindow::NodePanelGroupOpenedOrClosed()
void MainWindow::node_panel_group_opened_or_closed()
{
NodePanel *p = static_cast<NodePanel *>(sender());
param_panel_->SetContexts(p->GetContexts());
param_panel_->set_contexts(p->get_contexts());
}
void MainWindow::TimelinePanelSelectionChanged(const QVector<Block *> &blocks)
void MainWindow::timeline_panel_selection_changed(const QVector<Block *> &blocks)
{
TimelinePanel *panel = static_cast<TimelinePanel *>(sender());
if (PanelManager::instance()->CurrentlyFocused(false) == panel) {
UpdateNodePanelContextFromTimelinePanel(panel);
sequence_viewer_panel_->SetTimelineSelectedBlocks(blocks);
if (PanelManager::instance()->currently_focused(false) == panel) {
update_node_panel_context_from_timeline_panel(panel);
sequence_viewer_panel_->set_timeline_selected_blocks(blocks);
}
}
void MainWindow::ShowWelcomeDialog()
void MainWindow::show_welcome_dialog()
{
if (OLIVE_CONFIG("ShowWelcomeDialog").toBool()) {
if (OAK_CONFIG("show_welcome_dialog").toBool()) {
AboutDialog ad(true, this);
ad.exec();
}
}
void MainWindow::RevealViewerInProject(ViewerOutput *r)
void MainWindow::reveal_viewer_in_project(ViewerOutput *r)
{
// Rather than just using the resident ProjectPanel, find the most recently focused one since
// that's probably the one people will want
auto panels = PanelManager::instance()->GetPanelsOfType<ProjectPanel>();
auto panels = PanelManager::instance()->get_panels_of_type<ProjectPanel>();
foreach (ProjectPanel *p, panels) {
if (p->SelectItem(r)) {
if (p->select_item(r)) {
break;
}
}
}
void MainWindow::RevealViewerInFootageViewer(ViewerOutput *r,
void MainWindow::reveal_viewer_in_footage_viewer(ViewerOutput *r,
const TimeRange &range)
{
footage_viewer_panel_->ConnectViewerNode(r);
footage_viewer_panel_->connect_viewer_node(r);
auto command = new MultiUndoCommand();
if (!r->GetWorkArea()->enabled()) {
if (!r->get_work_area()->enabled()) {
command->add_child(new WorkareaSetEnabledCommand(
r->project(), r->GetWorkArea(), true));
r->project(), r->get_work_area(), true));
}
command->add_child(new WorkareaSetRangeCommand(r->GetWorkArea(), range));
command->add_child(new WorkareaSetRangeCommand(r->get_work_area(), range));
Core::instance()->undo_stack()->push(command, tr("Set Footage Workarea"));
r->SetPlayhead(range.in());
r->set_playhead(range.in());
}
#ifdef Q_OS_LINUX
void MainWindow::ShowNouveauWarning()
void MainWindow::show_nouveau_warning()
{
QMessageBox::warning(
this, tr("Driver Warning"),
@@ -596,14 +596,14 @@ void MainWindow::ShowNouveauWarning()
}
#endif
void MainWindow::UpdateTitle()
void MainWindow::update_title()
{
if (Core::instance()->GetActiveProject()) {
if (Core::instance()->get_active_project()) {
setWindowTitle(
QStringLiteral("%1 %2 - [*]%3")
.arg(QApplication::applicationName(),
QApplication::applicationVersion(),
Core::instance()->GetActiveProject()->pretty_filename()));
Core::instance()->get_active_project()->pretty_filename()));
} else {
setWindowTitle(
QStringLiteral("%1 %2").arg(QApplication::applicationName(),
@@ -611,53 +611,53 @@ void MainWindow::UpdateTitle()
}
}
void MainWindow::TimelineCloseRequested()
void MainWindow::timeline_close_requested()
{
TimelinePanel *t = static_cast<TimelinePanel *>(sender());
RemoveTimelinePanel(t);
remove_timeline_panel(t);
}
void MainWindow::ViewerCloseRequested()
void MainWindow::viewer_close_requested()
{
ViewerPanel *panel = static_cast<ViewerPanel *>(sender());
if (panel == scope_panel_->GetConnectedViewerPanel()) {
scope_panel_->SetViewerPanel(sequence_viewer_panel_);
if (panel == scope_panel_->get_connected_viewer_panel()) {
scope_panel_->set_viewer_panel(sequence_viewer_panel_);
}
RemovePanelInternal(viewer_panels_, panel);
remove_panel_internal(viewer_panels_, panel);
panel->deleteLater();
}
void MainWindow::ViewerWithPanelRemovedFromGraph()
void MainWindow::viewer_with_panel_removed_from_graph()
{
ViewerOutput *vo = static_cast<ViewerOutput *>(sender());
ViewerPanel *panel = nullptr;
foreach (ViewerPanel *p, viewer_panels_) {
if (p->GetConnectedViewer() == vo) {
if (p->get_connected_viewer() == vo) {
panel = p;
break;
}
}
if (panel) {
RemovePanelInternal(viewer_panels_, panel);
remove_panel_internal(viewer_panels_, panel);
panel->deleteLater();
disconnect(vo, &ViewerOutput::RemovedFromGraph, this,
&MainWindow::ViewerWithPanelRemovedFromGraph);
disconnect(vo, &ViewerOutput::removed_from_graph, this,
&MainWindow::viewer_with_panel_removed_from_graph);
}
}
void MainWindow::FolderPanelCloseRequested()
void MainWindow::folder_panel_close_requested()
{
ProjectPanel *panel = static_cast<ProjectPanel *>(sender());
RemovePanelInternal(folder_panels_, panel);
remove_panel_internal(folder_panels_, panel);
panel->deleteLater();
}
TimelinePanel *MainWindow::AppendTimelinePanel()
TimelinePanel *MainWindow::append_timeline_panel()
{
TimelinePanel *previous = nullptr;
if (!timeline_panels_.empty()) {
@@ -665,64 +665,64 @@ TimelinePanel *MainWindow::AppendTimelinePanel()
}
TimelinePanel *panel =
AppendPanelInternal(QStringLiteral("TimelinePanel"), timeline_panels_);
append_panel_internal(QStringLiteral("TimelinePanel"), timeline_panels_);
if (previous) {
previous->addDockWidgetAsTab(panel);
} else {
panel->SetSignalInsteadOfClose(false);
panel->set_signal_instead_of_close(false);
}
connect(panel, &PanelWidget::CloseRequested, this,
&MainWindow::TimelineCloseRequested);
connect(panel, &TimelinePanel::RequestCaptureStart, sequence_viewer_panel_,
&SequenceViewerPanel::StartCapture);
connect(panel, &TimelinePanel::BlockSelectionChanged, this,
&MainWindow::TimelinePanelSelectionChanged);
connect(panel, &TimelinePanel::RevealViewerInProject, this,
&MainWindow::RevealViewerInProject);
connect(panel, &TimelinePanel::RevealViewerInFootageViewer, this,
&MainWindow::RevealViewerInFootageViewer);
connect(panel, &PanelWidget::close_requested, this,
&MainWindow::timeline_close_requested);
connect(panel, &TimelinePanel::request_capture_start, sequence_viewer_panel_,
&SequenceViewerPanel::start_capture);
connect(panel, &TimelinePanel::block_selection_changed, this,
&MainWindow::timeline_panel_selection_changed);
connect(panel, &TimelinePanel::reveal_viewer_in_project, this,
&MainWindow::reveal_viewer_in_project);
connect(panel, &TimelinePanel::reveal_viewer_in_footage_viewer, this,
&MainWindow::reveal_viewer_in_footage_viewer);
sequence_viewer_panel_->ConnectTimeBasedPanel(panel);
sequence_viewer_panel_->connect_time_based_panel(panel);
return panel;
}
void MainWindow::RemoveTimelinePanel(TimelinePanel *panel)
void MainWindow::remove_timeline_panel(TimelinePanel *panel)
{
// Stop showing this timeline in the viewer
TimelineFocused(nullptr);
panel->ConnectViewerNode(nullptr);
timeline_focused(nullptr);
panel->connect_viewer_node(nullptr);
if (timeline_panels_.size() != 1) {
RemovePanelInternal(timeline_panels_, panel);
remove_panel_internal(timeline_panels_, panel);
panel->deleteLater();
}
}
void MainWindow::TimelineFocused(ViewerOutput *viewer)
void MainWindow::timeline_focused(ViewerOutput *viewer)
{
sequence_viewer_panel_->ConnectViewerNode(viewer);
multicam_panel_->ConnectViewerNode(viewer);
param_panel_->ConnectViewerNode(viewer);
curve_panel_->ConnectViewerNode(viewer);
sequence_viewer_panel_->connect_viewer_node(viewer);
multicam_panel_->connect_viewer_node(viewer);
param_panel_->connect_viewer_node(viewer);
curve_panel_->connect_viewer_node(viewer);
}
QString MainWindow::GetCustomShortcutsFile()
QString MainWindow::get_custom_shortcuts_file()
{
return QDir(FileFunctions::GetConfigurationLocation())
return QDir(FileFunctions::get_configuration_location())
.filePath(QStringLiteral("shortcuts"));
}
void LoadCustomShortcutsInternal(QMenu *menu,
void load_custom_shortcuts_internal(QMenu *menu,
const QMap<QString, QString> &shortcuts)
{
QList<QAction *> actions = menu->actions();
foreach (QAction *a, actions) {
if (a->menu()) {
LoadCustomShortcutsInternal(a->menu(), shortcuts);
load_custom_shortcuts_internal(a->menu(), shortcuts);
} else if (!a->isSeparator()) {
QString action_id = a->property("id").toString();
@@ -733,9 +733,9 @@ void LoadCustomShortcutsInternal(QMenu *menu,
}
}
void MainWindow::LoadCustomShortcuts()
void MainWindow::load_custom_shortcuts()
{
QFile shortcut_file(GetCustomShortcutsFile());
QFile shortcut_file(get_custom_shortcuts_file());
if (shortcut_file.exists() && shortcut_file.open(QFile::ReadOnly)) {
QMap<QString, QString> shortcuts;
@@ -756,19 +756,19 @@ void MainWindow::LoadCustomShortcuts()
QList<QAction *> menus = menuBar()->actions();
foreach (QAction *menu, menus) {
LoadCustomShortcutsInternal(menu->menu(), shortcuts);
load_custom_shortcuts_internal(menu->menu(), shortcuts);
}
}
}
}
void SaveCustomShortcutsInternal(QMenu *menu, QMap<QString, QString> *shortcuts)
void save_custom_shortcuts_internal(QMenu *menu, QMap<QString, QString> *shortcuts)
{
QList<QAction *> actions = menu->actions();
foreach (QAction *a, actions) {
if (a->menu()) {
SaveCustomShortcutsInternal(a->menu(), shortcuts);
save_custom_shortcuts_internal(a->menu(), shortcuts);
} else if (!a->isSeparator()) {
QString default_shortcut =
a->property("keydefault").value<QKeySequence>().toString();
@@ -781,16 +781,16 @@ void SaveCustomShortcutsInternal(QMenu *menu, QMap<QString, QString> *shortcuts)
}
}
void MainWindow::SaveCustomShortcuts()
void MainWindow::save_custom_shortcuts()
{
QMap<QString, QString> shortcuts;
QList<QAction *> menus = menuBar()->actions();
foreach (QAction *menu, menus) {
SaveCustomShortcutsInternal(menu->menu(), &shortcuts);
save_custom_shortcuts_internal(menu->menu(), &shortcuts);
}
QFile shortcut_file(GetCustomShortcutsFile());
QFile shortcut_file(get_custom_shortcuts_file());
if (shortcuts.isEmpty()) {
if (shortcut_file.exists()) {
// No custom shortcuts, remove any existing file
@@ -812,75 +812,75 @@ void MainWindow::SaveCustomShortcuts()
}
}
void MainWindow::UpdateAudioMonitorParams(ViewerOutput *viewer)
void MainWindow::update_audio_monitor_params(ViewerOutput *viewer)
{
if (!audio_monitor_panel_->IsPlaying()) {
audio_monitor_panel_->SetParams(viewer ? viewer->GetAudioParams() :
if (!audio_monitor_panel_->is_playing()) {
audio_monitor_panel_->set_params(viewer ? viewer->get_audio_params() :
AudioParams());
}
}
void MainWindow::UpdateNodePanelContextFromTimelinePanel(TimelinePanel *panel)
void MainWindow::update_node_panel_context_from_timeline_panel(TimelinePanel *panel)
{
// Add selected blocks (if any)
const QVector<Block *> &blocks = panel->GetSelectedBlocks();
const QVector<Block *> &blocks = panel->get_selected_blocks();
QVector<Node *> context(blocks.size());
for (int i = 0; i < blocks.size(); i++) {
context[i] = blocks.at(i);
}
// If no selected blocks, set the context to the sequence
ViewerOutput *viewer = panel->GetConnectedViewer();
ViewerOutput *viewer = panel->get_connected_viewer();
if (viewer && context.isEmpty()) {
context.append(viewer);
}
node_panel_->SetContexts(context);
param_panel_->SetContexts(context);
node_panel_->set_contexts(context);
param_panel_->set_contexts(context);
}
void MainWindow::SelectFootageForProjectPanel(const QVector<Footage *> &e,
void MainWindow::select_footage_for_project_panel(const QVector<Footage *> &e,
ProjectPanel *p)
{
p->DeselectAll();
p->deselect_all();
for (Footage *f : e) {
if (p->get_root()->HasChildRecursive(f)) {
p->SelectItem(f, false);
if (p->get_root()->has_child_recursive(f)) {
p->select_item(f, false);
}
}
}
void MainWindow::FocusedPanelChanged(PanelWidget *panel)
void MainWindow::focused_panel_changed(PanelWidget *panel)
{
// Update audio monitor panel
if (TimeBasedPanel *tbp = dynamic_cast<TimeBasedPanel *>(panel)) {
UpdateAudioMonitorParams(tbp->GetConnectedViewer());
update_audio_monitor_params(tbp->get_connected_viewer());
}
if (NodePanel *node_panel = dynamic_cast<NodePanel *>(panel)) {
// Set param view contexts to these
const QVector<Node *> &new_ctxs = node_panel->GetContexts();
const QVector<Node *> &new_ctxs = node_panel->get_contexts();
if (new_ctxs != param_panel_->GetContexts()) {
param_panel_->SetContexts(new_ctxs);
if (new_ctxs != param_panel_->get_contexts()) {
param_panel_->set_contexts(new_ctxs);
}
} else if (TimelinePanel *timeline = dynamic_cast<TimelinePanel *>(panel)) {
// Signal timeline focus
TimelineFocused(timeline->GetConnectedViewer());
timeline_focused(timeline->get_connected_viewer());
UpdateNodePanelContextFromTimelinePanel(timeline);
update_node_panel_context_from_timeline_panel(timeline);
} else if (ProjectPanel *project = dynamic_cast<ProjectPanel *>(panel)) {
// Signal project panel focus
Q_UNUSED(project)
UpdateTitle();
update_title();
} else if (ViewerPanelBase *viewer =
dynamic_cast<ViewerPanelBase *>(panel)) {
// Update scopes for viewer
scope_panel_->SetViewerPanel(viewer);
scope_panel_->set_viewer_panel(viewer);
}
}
void MainWindow::SetDefaultLayout()
void MainWindow::set_default_layout()
{
KDDockWidgets::InitialOption o;
o.preferredSize = QSize(0, centralAreaGeometry().height());
@@ -943,7 +943,7 @@ void MainWindow::showEvent(QShowEvent *e)
QMainWindow::showEvent(e);
if (first_show_) {
QMetaObject::invokeMethod(Core::instance(), "CheckForAutoRecoveries",
QMetaObject::invokeMethod(Core::instance(), "check_for_auto_recoveries",
Qt::QueuedConnection);
#ifdef Q_OS_LINUX
@@ -957,12 +957,12 @@ void MainWindow::showEvent(QShowEvent *e)
context.functions()->glGetString(GL_VENDOR));
qDebug() << "Using graphics driver:" << vendor;
if (!strcmp(vendor, "nouveau")) {
QMetaObject::invokeMethod(this, "ShowNouveauWarning",
QMetaObject::invokeMethod(this, "show_nouveau_warning",
Qt::QueuedConnection);
}
#endif
QMetaObject::invokeMethod(this, "ShowWelcomeDialog",
QMetaObject::invokeMethod(this, "show_welcome_dialog",
Qt::QueuedConnection);
first_show_ = false;
@@ -970,9 +970,9 @@ void MainWindow::showEvent(QShowEvent *e)
}
template <typename T>
T *MainWindow::AppendPanelInternal(const QString &panel_name, QList<T *> &list)
T *MainWindow::append_panel_internal(const QString &panel_name, QList<T *> &list)
{
T *panel = new T(TransformNameForSerialization(panel_name, list.size()));
T *panel = new T(transform_name_for_serialization(panel_name, list.size()));
// For some reason raise() on its own doesn't do anything, we need both
panel->show();
@@ -981,13 +981,13 @@ T *MainWindow::AppendPanelInternal(const QString &panel_name, QList<T *> &list)
list.append(panel);
// Let us handle the panel closing rather than the panel itself
panel->SetSignalInsteadOfClose(true);
panel->set_signal_instead_of_close(true);
return panel;
}
template <typename T>
void MainWindow::RemovePanelInternal(QList<T *> &list, T *panel)
void MainWindow::remove_panel_internal(QList<T *> &list, T *panel)
{
list.removeOne(panel);
}
+41 -41
View File
@@ -19,8 +19,8 @@
***/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#ifndef OAK_MAINWINDOW_H
#define OAK_MAINWINDOW_H
#include <kddockwidgets/Config.h>
#include <kddockwidgets/MainWindow.h>
@@ -61,21 +61,21 @@ public:
virtual ~MainWindow() override;
void LoadLayout(const MainWindowLayoutInfo &info);
void load_layout(const MainWindowLayoutInfo &info);
MainWindowLayoutInfo SaveLayout() const;
MainWindowLayoutInfo save_layout() const;
TimelinePanel *OpenSequence(Sequence *sequence, bool enable_focus = true);
TimelinePanel *open_sequence(Sequence *sequence, bool enable_focus = true);
void CloseSequence(Sequence *sequence);
void close_sequence(Sequence *sequence);
bool IsSequenceOpen(Sequence *sequence) const;
bool is_sequence_open(Sequence *sequence) const;
void OpenFolder(Folder *i, bool floating);
void open_folder(Folder *i, bool floating);
void OpenNodeInViewer(ViewerOutput *node);
void open_node_in_viewer(ViewerOutput *node);
enum ProgressStatus { kProgressNone, kProgressShow, kProgressError };
enum ProgressStatus { k_progress_none, k_progress_show, k_progress_error };
/**
* @brief Where applicable, show progress on an operating system level
@@ -83,25 +83,25 @@ public:
* * For Windows, this is shown as progress in the taskbar.
* * For macOS, this is shown as progress in the dock.
*/
void SetApplicationProgressStatus(ProgressStatus status);
void set_application_progress_status(ProgressStatus status);
/**
* @brief If SetApplicationProgressStatus is set to kShowProgress, set the value with this
*
* Expects a percentage (0-100 inclusive).
*/
void SetApplicationProgressValue(int value);
void set_application_progress_value(int value);
void SelectFootage(const QVector<Footage *> &e);
void select_footage(const QVector<Footage *> &e);
public slots:
void SetProject(Project *p);
void set_project(Project *p);
void SetFullscreen(bool fullscreen);
void set_fullscreen(bool fullscreen);
void ToggleMaximizedPanel();
void toggle_maximized_panel();
void SetDefaultLayout();
void set_default_layout();
protected:
virtual void showEvent(QShowEvent *e) override;
@@ -119,28 +119,28 @@ protected:
#endif
private:
TimelinePanel *AppendTimelinePanel();
TimelinePanel *append_timeline_panel();
template <typename T>
T *AppendPanelInternal(const QString &panel_name, QList<T *> &list);
T *append_panel_internal(const QString &panel_name, QList<T *> &list);
template <typename T> void RemovePanelInternal(QList<T *> &list, T *panel);
template <typename T> void remove_panel_internal(QList<T *> &list, T *panel);
void RemoveTimelinePanel(TimelinePanel *panel);
void remove_timeline_panel(TimelinePanel *panel);
void TimelineFocused(ViewerOutput *viewer);
void timeline_focused(ViewerOutput *viewer);
static QString GetCustomShortcutsFile();
static QString get_custom_shortcuts_file();
void LoadCustomShortcuts();
void load_custom_shortcuts();
void SaveCustomShortcuts();
void save_custom_shortcuts();
void UpdateAudioMonitorParams(ViewerOutput *viewer);
void update_audio_monitor_params(ViewerOutput *viewer);
void UpdateNodePanelContextFromTimelinePanel(TimelinePanel *panel);
void update_node_panel_context_from_timeline_panel(TimelinePanel *panel);
void SelectFootageForProjectPanel(const QVector<Footage *> &e,
void select_footage_for_project_panel(const QVector<Footage *> &e,
ProjectPanel *p);
QByteArray premaximized_state_;
@@ -174,32 +174,32 @@ private:
Project *project_;
private slots:
void FocusedPanelChanged(PanelWidget *panel);
void focused_panel_changed(PanelWidget *panel);
void UpdateTitle();
void update_title();
void TimelineCloseRequested();
void timeline_close_requested();
void ViewerCloseRequested();
void viewer_close_requested();
void ViewerWithPanelRemovedFromGraph();
void viewer_with_panel_removed_from_graph();
void FolderPanelCloseRequested();
void folder_panel_close_requested();
void StatusBarDoubleClicked();
void status_bar_double_clicked();
void NodePanelGroupOpenedOrClosed();
void node_panel_group_opened_or_closed();
#ifdef Q_OS_LINUX
void ShowNouveauWarning();
void show_nouveau_warning();
#endif
void TimelinePanelSelectionChanged(const QVector<Block *> &blocks);
void timeline_panel_selection_changed(const QVector<Block *> &blocks);
void ShowWelcomeDialog();
void show_welcome_dialog();
void RevealViewerInProject(ViewerOutput *r);
void RevealViewerInFootageViewer(ViewerOutput *r, const TimeRange &range);
void reveal_viewer_in_project(ViewerOutput *r);
void reveal_viewer_in_footage_viewer(ViewerOutput *r, const TimeRange &range);
};
}
+10 -10
View File
@@ -21,10 +21,10 @@
namespace olive
{
void MainWindowLayoutInfo::toXml(QXmlStreamWriter *writer) const
void MainWindowLayoutInfo::to_xml(QXmlStreamWriter *writer) const
{
writer->writeAttribute(QStringLiteral("version"),
QString::number(kVersion));
QString::number(k_version));
writer->writeStartElement(QStringLiteral("folders"));
@@ -84,7 +84,7 @@ void MainWindowLayoutInfo::toXml(QXmlStreamWriter *writer) const
}
MainWindowLayoutInfo
MainWindowLayoutInfo::fromXml(QXmlStreamReader *reader,
MainWindowLayoutInfo::from_xml(QXmlStreamReader *reader,
const QHash<quintptr, Node *> &node_ptrs)
{
MainWindowLayoutInfo info;
@@ -99,12 +99,12 @@ MainWindowLayoutInfo::fromXml(QXmlStreamReader *reader,
}
// Really basic version checking, in the future we may use this to parse multiple versions
if (file_version != kVersion) {
if (file_version != k_version) {
}
while (XMLReadNextStartElement(reader)) {
while (xml_read_next_start_element(reader)) {
if (reader->name() == QStringLiteral("folders")) {
while (XMLReadNextStartElement(reader)) {
while (xml_read_next_start_element(reader)) {
if (reader->name() == QStringLiteral("folder")) {
quintptr item_id = reader->readElementText().toULongLong();
@@ -117,7 +117,7 @@ MainWindowLayoutInfo::fromXml(QXmlStreamReader *reader,
}
} else if (reader->name() == QStringLiteral("timeline")) {
while (XMLReadNextStartElement(reader)) {
while (xml_read_next_start_element(reader)) {
if (reader->name() == QStringLiteral("sequence")) {
quintptr item_id = reader->readElementText().toULongLong();
@@ -130,7 +130,7 @@ MainWindowLayoutInfo::fromXml(QXmlStreamReader *reader,
}
} else if (reader->name() == QStringLiteral("viewers")) {
while (XMLReadNextStartElement(reader)) {
while (xml_read_next_start_element(reader)) {
if (reader->name() == QStringLiteral("viewer")) {
quintptr item_id = reader->readElementText().toULongLong();
@@ -147,7 +147,7 @@ MainWindowLayoutInfo::fromXml(QXmlStreamReader *reader,
QByteArray::fromBase64(reader->readElementText().toLatin1());
} else if (reader->name() == QStringLiteral("data")) {
while (XMLReadNextStartElement(reader)) {
while (xml_read_next_start_element(reader)) {
if (reader->name() == QStringLiteral("panel")) {
QString id;
XMLAttributeLoop(reader, attr)
@@ -160,7 +160,7 @@ MainWindowLayoutInfo::fromXml(QXmlStreamReader *reader,
if (!id.isEmpty()) {
PanelWidget::Info i;
while (XMLReadNextStartElement(reader)) {
while (xml_read_next_start_element(reader)) {
if (reader->name() == QStringLiteral("option")) {
QString name;
+6 -6
View File
@@ -16,8 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef MAINWINDOWLAYOUTINFO_H
#define MAINWINDOWLAYOUTINFO_H
#ifndef OAK_MAINWINDOWLAYOUTINFO_H
#define OAK_MAINWINDOWLAYOUTINFO_H
#include "node/project/folder/folder.h"
#include "node/project/sequence/sequence.h"
@@ -30,10 +30,10 @@ class MainWindowLayoutInfo {
public:
MainWindowLayoutInfo() = default;
void toXml(QXmlStreamWriter *writer) const;
void to_xml(QXmlStreamWriter *writer) const;
static MainWindowLayoutInfo
fromXml(QXmlStreamReader *reader, const QHash<quintptr, Node *> &node_map);
from_xml(QXmlStreamReader *reader, const QHash<quintptr, Node *> &node_map);
void add_folder(Folder *f);
@@ -83,11 +83,11 @@ private:
std::map<QString, PanelWidget::Info> panel_data_;
static const unsigned int kVersion = 1;
static const unsigned int k_version = 1;
};
}
Q_DECLARE_METATYPE(olive::MainWindowLayoutInfo)
#endif // MAINWINDOWLAYOUTINFO_H
#endif // OAK_MAINWINDOWLAYOUTINFO_H
+4 -4
View File
@@ -29,22 +29,22 @@ namespace olive
void OpenSequenceCommand::redo()
{
Core::instance()->main_window()->OpenSequence(sequence_);
Core::instance()->main_window()->open_sequence(sequence_);
}
void OpenSequenceCommand::undo()
{
Core::instance()->main_window()->CloseSequence(sequence_);
Core::instance()->main_window()->close_sequence(sequence_);
}
void CloseSequenceCommand::redo()
{
Core::instance()->main_window()->CloseSequence(sequence_);
Core::instance()->main_window()->close_sequence(sequence_);
}
void CloseSequenceCommand::undo()
{
Core::instance()->main_window()->OpenSequence(sequence_);
Core::instance()->main_window()->open_sequence(sequence_);
}
}
+5 -5
View File
@@ -19,8 +19,8 @@
***/
#ifndef MAINWINDOWUNDO_H
#define MAINWINDOWUNDO_H
#ifndef OAK_MAINWINDOWUNDO_H
#define OAK_MAINWINDOWUNDO_H
#include "node/project/sequence/sequence.h"
@@ -34,7 +34,7 @@ public:
{
}
virtual Project *GetRelevantProject() const override
virtual Project *get_relevant_project() const override
{
return nullptr;
}
@@ -55,7 +55,7 @@ public:
{
}
virtual Project *GetRelevantProject() const override
virtual Project *get_relevant_project() const override
{
return nullptr;
}
@@ -71,4 +71,4 @@ private:
}
#endif // MAINWINDOWUNDO_H
#endif // OAK_MAINWINDOWUNDO_H