change: change code style to Linux style except indent.
This commit is contained in:
+551
-451
File diff suppressed because it is too large
Load Diff
+162
-163
@@ -27,7 +27,8 @@
|
||||
#include "dialog/actionsearch/actionsearch.h"
|
||||
#include "widget/menu/menu.h"
|
||||
|
||||
namespace olive {
|
||||
namespace olive
|
||||
{
|
||||
|
||||
class MainWindow;
|
||||
|
||||
@@ -36,262 +37,260 @@ class MainWindow;
|
||||
*
|
||||
* Responsible for creating the menu, connecting signals/slots, and retranslating the items on a language change.
|
||||
*/
|
||||
class MainMenu : public QMenuBar
|
||||
{
|
||||
Q_OBJECT
|
||||
class MainMenu : public QMenuBar {
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainMenu(MainWindow *parent);
|
||||
MainMenu(MainWindow *parent);
|
||||
|
||||
protected:
|
||||
/**
|
||||
/**
|
||||
* @brief changeEvent
|
||||
*
|
||||
* Qt changeEvent override to catch a QEvent::LanguageEvent.
|
||||
*
|
||||
* @param e
|
||||
*/
|
||||
virtual void changeEvent(QEvent* e);
|
||||
virtual void changeEvent(QEvent *e);
|
||||
|
||||
private slots:
|
||||
/**
|
||||
/**
|
||||
* @brief A slot for the Tool selection items
|
||||
*
|
||||
* 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 ToolItemTriggered();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot triggered just before the File menu shows
|
||||
*/
|
||||
void FileMenuAboutToShow();
|
||||
void FileMenuAboutToShow();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot triggered just before the Edit menu shows
|
||||
*/
|
||||
void EditMenuAboutToShow();
|
||||
void EditMenuAboutToHide();
|
||||
void EditMenuAboutToShow();
|
||||
void EditMenuAboutToHide();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot triggered just before the View menu shows
|
||||
*/
|
||||
void ViewMenuAboutToShow();
|
||||
void ViewMenuAboutToShow();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot triggered just before the Tools menu shows
|
||||
*/
|
||||
void ToolsMenuAboutToShow();
|
||||
void ToolsMenuAboutToShow();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot triggered just before the Playback menu shows
|
||||
*/
|
||||
void PlaybackMenuAboutToShow();
|
||||
void PlaybackMenuAboutToShow();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot triggered just before the Sequence menu shows
|
||||
*/
|
||||
void SequenceMenuAboutToShow();
|
||||
void SequenceMenuAboutToShow();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot triggered just before the Window menu shows
|
||||
*/
|
||||
void WindowMenuAboutToShow();
|
||||
void WindowMenuAboutToShow();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Adds items to open recent menu
|
||||
*/
|
||||
void PopulateOpenRecent();
|
||||
void PopulateOpenRecent();
|
||||
|
||||
void RepopulateOpenRecent();
|
||||
void RepopulateOpenRecent();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Clears open recent items when menu closes
|
||||
*/
|
||||
void CloseOpenRecentMenu();
|
||||
void CloseOpenRecentMenu();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot for zooming in
|
||||
*
|
||||
* Finds the currently focused panel and sends it a "zoom in" signal
|
||||
*/
|
||||
void ZoomInTriggered();
|
||||
void ZoomInTriggered();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot for zooming out
|
||||
*
|
||||
* Finds the currently focused panel and sends it a "zoom out" signal
|
||||
*/
|
||||
void ZoomOutTriggered();
|
||||
void ZoomOutTriggered();
|
||||
|
||||
void IncreaseTrackHeightTriggered();
|
||||
void DecreaseTrackHeightTriggered();
|
||||
void IncreaseTrackHeightTriggered();
|
||||
void DecreaseTrackHeightTriggered();
|
||||
|
||||
void GoToStartTriggered();
|
||||
void PrevFrameTriggered();
|
||||
void GoToStartTriggered();
|
||||
void PrevFrameTriggered();
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Slot for play/pause
|
||||
*
|
||||
* Finds the currently focused panel and sends it a "play/pause" signal
|
||||
*/
|
||||
void PlayPauseTriggered();
|
||||
void PlayPauseTriggered();
|
||||
|
||||
void PlayInToOutTriggered();
|
||||
void PlayInToOutTriggered();
|
||||
|
||||
void LoopTriggered(bool enabled);
|
||||
void LoopTriggered(bool enabled);
|
||||
|
||||
void NextFrameTriggered();
|
||||
void GoToEndTriggered();
|
||||
void NextFrameTriggered();
|
||||
void GoToEndTriggered();
|
||||
|
||||
void SelectAllTriggered();
|
||||
void DeselectAllTriggered();
|
||||
void SelectAllTriggered();
|
||||
void DeselectAllTriggered();
|
||||
|
||||
void InsertTriggered();
|
||||
void OverwriteTriggered();
|
||||
void InsertTriggered();
|
||||
void OverwriteTriggered();
|
||||
|
||||
void RippleToInTriggered();
|
||||
void RippleToOutTriggered();
|
||||
void EditToInTriggered();
|
||||
void EditToOutTriggered();
|
||||
void RippleToInTriggered();
|
||||
void RippleToOutTriggered();
|
||||
void EditToInTriggered();
|
||||
void EditToOutTriggered();
|
||||
|
||||
void NudgeLeftTriggered();
|
||||
void NudgeRightTriggered();
|
||||
void MoveInToPlayheadTriggered();
|
||||
void MoveOutToPlayheadTriggered();
|
||||
void NudgeLeftTriggered();
|
||||
void NudgeRightTriggered();
|
||||
void MoveInToPlayheadTriggered();
|
||||
void MoveOutToPlayheadTriggered();
|
||||
|
||||
void ActionSearchTriggered();
|
||||
void ActionSearchTriggered();
|
||||
|
||||
void ShuttleLeftTriggered();
|
||||
void ShuttleStopTriggered();
|
||||
void ShuttleRightTriggered();
|
||||
void ShuttleLeftTriggered();
|
||||
void ShuttleStopTriggered();
|
||||
void ShuttleRightTriggered();
|
||||
|
||||
void GoToPrevCutTriggered();
|
||||
void GoToNextCutTriggered();
|
||||
void GoToPrevCutTriggered();
|
||||
void GoToNextCutTriggered();
|
||||
|
||||
void SetMarkerTriggered();
|
||||
void SetMarkerTriggered();
|
||||
|
||||
void FullScreenViewerTriggered();
|
||||
void FullScreenViewerTriggered();
|
||||
|
||||
void ToggleShowAllTriggered();
|
||||
void ToggleShowAllTriggered();
|
||||
|
||||
void DeleteInOutTriggered();
|
||||
void RippleDeleteInOutTriggered();
|
||||
void DeleteInOutTriggered();
|
||||
void RippleDeleteInOutTriggered();
|
||||
|
||||
void GoToInTriggered();
|
||||
void GoToOutTriggered();
|
||||
void GoToInTriggered();
|
||||
void GoToOutTriggered();
|
||||
|
||||
void OpenRecentItemTriggered();
|
||||
void OpenRecentItemTriggered();
|
||||
|
||||
void SequenceCacheTriggered();
|
||||
void SequenceCacheInOutTriggered();
|
||||
void SequenceCacheClearTriggered();
|
||||
void SequenceCacheTriggered();
|
||||
void SequenceCacheInOutTriggered();
|
||||
void SequenceCacheClearTriggered();
|
||||
|
||||
void HelpFeedbackTriggered();
|
||||
void HelpFeedbackTriggered();
|
||||
|
||||
private:
|
||||
/**
|
||||
/**
|
||||
* @brief Set strings based on the current application language.
|
||||
*/
|
||||
void Retranslate();
|
||||
void Retranslate();
|
||||
|
||||
Menu* file_menu_;
|
||||
Menu* file_new_menu_;
|
||||
QAction* file_open_item_;
|
||||
Menu* file_open_recent_menu_;
|
||||
QAction* file_open_recent_separator_;
|
||||
QAction* file_open_recent_clear_item_;
|
||||
QAction* file_save_item_;
|
||||
QAction* file_save_as_item_;
|
||||
QAction* file_revert_item_;
|
||||
QAction* file_import_item_;
|
||||
Menu* file_export_menu_;
|
||||
QAction* file_export_media_item_;
|
||||
QAction* file_project_properties_item_;
|
||||
QAction* file_exit_item_;
|
||||
Menu *file_menu_;
|
||||
Menu *file_new_menu_;
|
||||
QAction *file_open_item_;
|
||||
Menu *file_open_recent_menu_;
|
||||
QAction *file_open_recent_separator_;
|
||||
QAction *file_open_recent_clear_item_;
|
||||
QAction *file_save_item_;
|
||||
QAction *file_save_as_item_;
|
||||
QAction *file_revert_item_;
|
||||
QAction *file_import_item_;
|
||||
Menu *file_export_menu_;
|
||||
QAction *file_export_media_item_;
|
||||
QAction *file_project_properties_item_;
|
||||
QAction *file_exit_item_;
|
||||
|
||||
Menu* edit_menu_;
|
||||
QAction* edit_undo_item_;
|
||||
QAction* edit_redo_item_;
|
||||
QAction* edit_delete2_item_;
|
||||
QAction* edit_select_all_item_;
|
||||
QAction* edit_deselect_all_item_;
|
||||
QAction* edit_insert_item_;
|
||||
QAction* edit_overwrite_item_;
|
||||
QAction* edit_ripple_to_in_item_;
|
||||
QAction* edit_ripple_to_out_item_;
|
||||
QAction* edit_edit_to_in_item_;
|
||||
QAction* edit_edit_to_out_item_;
|
||||
QAction* edit_nudge_left_item_;
|
||||
QAction* edit_nudge_right_item_;
|
||||
QAction* edit_move_in_to_playhead_item_;
|
||||
QAction* edit_move_out_to_playhead_item_;
|
||||
QAction* edit_delete_inout_item_;
|
||||
QAction* edit_ripple_delete_inout_item_;
|
||||
QAction* edit_set_marker_item_;
|
||||
Menu *edit_menu_;
|
||||
QAction *edit_undo_item_;
|
||||
QAction *edit_redo_item_;
|
||||
QAction *edit_delete2_item_;
|
||||
QAction *edit_select_all_item_;
|
||||
QAction *edit_deselect_all_item_;
|
||||
QAction *edit_insert_item_;
|
||||
QAction *edit_overwrite_item_;
|
||||
QAction *edit_ripple_to_in_item_;
|
||||
QAction *edit_ripple_to_out_item_;
|
||||
QAction *edit_edit_to_in_item_;
|
||||
QAction *edit_edit_to_out_item_;
|
||||
QAction *edit_nudge_left_item_;
|
||||
QAction *edit_nudge_right_item_;
|
||||
QAction *edit_move_in_to_playhead_item_;
|
||||
QAction *edit_move_out_to_playhead_item_;
|
||||
QAction *edit_delete_inout_item_;
|
||||
QAction *edit_ripple_delete_inout_item_;
|
||||
QAction *edit_set_marker_item_;
|
||||
|
||||
Menu* view_menu_;
|
||||
QAction* view_zoom_in_item_;
|
||||
QAction* view_zoom_out_item_;
|
||||
QAction* view_increase_track_height_item_;
|
||||
QAction* view_decrease_track_height_item_;
|
||||
QAction* view_show_all_item_;
|
||||
QAction* view_full_screen_item_;
|
||||
QAction* view_full_screen_viewer_item_;
|
||||
Menu *view_menu_;
|
||||
QAction *view_zoom_in_item_;
|
||||
QAction *view_zoom_out_item_;
|
||||
QAction *view_increase_track_height_item_;
|
||||
QAction *view_decrease_track_height_item_;
|
||||
QAction *view_show_all_item_;
|
||||
QAction *view_full_screen_item_;
|
||||
QAction *view_full_screen_viewer_item_;
|
||||
|
||||
Menu* playback_menu_;
|
||||
QAction* playback_gotostart_item_;
|
||||
QAction* playback_prevframe_item_;
|
||||
QAction* playback_playpause_item_;
|
||||
QAction* playback_playinout_item_;
|
||||
QAction* playback_nextframe_item_;
|
||||
QAction* playback_gotoend_item_;
|
||||
QAction* playback_prevcut_item_;
|
||||
QAction* playback_nextcut_item_;
|
||||
QAction* playback_gotoin_item_;
|
||||
QAction* playback_gotoout_item_;
|
||||
QAction* playback_shuttleleft_item_;
|
||||
QAction* playback_shuttlestop_item_;
|
||||
QAction* playback_shuttleright_item_;
|
||||
QAction* playback_loop_item_;
|
||||
Menu *playback_menu_;
|
||||
QAction *playback_gotostart_item_;
|
||||
QAction *playback_prevframe_item_;
|
||||
QAction *playback_playpause_item_;
|
||||
QAction *playback_playinout_item_;
|
||||
QAction *playback_nextframe_item_;
|
||||
QAction *playback_gotoend_item_;
|
||||
QAction *playback_prevcut_item_;
|
||||
QAction *playback_nextcut_item_;
|
||||
QAction *playback_gotoin_item_;
|
||||
QAction *playback_gotoout_item_;
|
||||
QAction *playback_shuttleleft_item_;
|
||||
QAction *playback_shuttlestop_item_;
|
||||
QAction *playback_shuttleright_item_;
|
||||
QAction *playback_loop_item_;
|
||||
|
||||
Menu* sequence_menu_;
|
||||
QAction* sequence_cache_item_;
|
||||
QAction* sequence_cache_in_to_out_item_;
|
||||
QAction* sequence_disk_cache_clear_item_;
|
||||
Menu *sequence_menu_;
|
||||
QAction *sequence_cache_item_;
|
||||
QAction *sequence_cache_in_to_out_item_;
|
||||
QAction *sequence_disk_cache_clear_item_;
|
||||
|
||||
Menu* window_menu_;
|
||||
QAction* window_menu_separator_;
|
||||
QAction* window_maximize_panel_item_;
|
||||
QAction* window_reset_layout_item_;
|
||||
Menu *window_menu_;
|
||||
QAction *window_menu_separator_;
|
||||
QAction *window_maximize_panel_item_;
|
||||
QAction *window_reset_layout_item_;
|
||||
|
||||
Menu* tools_menu_;
|
||||
QActionGroup* tools_group_;
|
||||
QAction* tools_pointer_item_;
|
||||
QAction* tools_trackselect_item_;
|
||||
QAction* tools_edit_item_;
|
||||
QAction* tools_ripple_item_;
|
||||
QAction* tools_rolling_item_;
|
||||
QAction* tools_razor_item_;
|
||||
QAction* tools_slip_item_;
|
||||
QAction* tools_slide_item_;
|
||||
QAction* tools_hand_item_;
|
||||
QAction* tools_zoom_item_;
|
||||
QAction* tools_transition_item_;
|
||||
QAction* tools_add_item_;
|
||||
QAction* tools_record_item_;
|
||||
QAction* tools_snapping_item_;
|
||||
QAction* tools_preferences_item_;
|
||||
Menu *tools_add_item_menu_;
|
||||
Menu *tools_menu_;
|
||||
QActionGroup *tools_group_;
|
||||
QAction *tools_pointer_item_;
|
||||
QAction *tools_trackselect_item_;
|
||||
QAction *tools_edit_item_;
|
||||
QAction *tools_ripple_item_;
|
||||
QAction *tools_rolling_item_;
|
||||
QAction *tools_razor_item_;
|
||||
QAction *tools_slip_item_;
|
||||
QAction *tools_slide_item_;
|
||||
QAction *tools_hand_item_;
|
||||
QAction *tools_zoom_item_;
|
||||
QAction *tools_transition_item_;
|
||||
QAction *tools_add_item_;
|
||||
QAction *tools_record_item_;
|
||||
QAction *tools_snapping_item_;
|
||||
QAction *tools_preferences_item_;
|
||||
Menu *tools_add_item_menu_;
|
||||
|
||||
#ifndef NDEBUG
|
||||
QAction* tools_magic_item_;
|
||||
QAction *tools_magic_item_;
|
||||
#endif
|
||||
|
||||
Menu* help_menu_;
|
||||
QAction* help_action_search_item_;
|
||||
QAction* help_feedback_item_;
|
||||
QAction* help_about_item_;
|
||||
|
||||
Menu *help_menu_;
|
||||
QAction *help_action_search_item_;
|
||||
QAction *help_feedback_item_;
|
||||
QAction *help_about_item_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -22,87 +22,96 @@
|
||||
|
||||
#include <QCoreApplication>
|
||||
|
||||
namespace olive {
|
||||
|
||||
MainStatusBar::MainStatusBar(QWidget *parent) :
|
||||
QStatusBar(parent),
|
||||
manager_(nullptr),
|
||||
connected_task_(nullptr)
|
||||
namespace olive
|
||||
{
|
||||
setSizeGripEnabled(false);
|
||||
|
||||
bar_ = new QProgressBar();
|
||||
addPermanentWidget(bar_);
|
||||
MainStatusBar::MainStatusBar(QWidget *parent)
|
||||
: QStatusBar(parent)
|
||||
, manager_(nullptr)
|
||||
, connected_task_(nullptr)
|
||||
{
|
||||
setSizeGripEnabled(false);
|
||||
|
||||
bar_->setMinimum(0);
|
||||
bar_->setMaximum(100);
|
||||
bar_->setVisible(false);
|
||||
bar_ = new QProgressBar();
|
||||
addPermanentWidget(bar_);
|
||||
|
||||
showMessage(tr("Welcome to %1 %2").arg(QCoreApplication::applicationName(),
|
||||
QCoreApplication::applicationVersion()),
|
||||
10000);
|
||||
bar_->setMinimum(0);
|
||||
bar_->setMaximum(100);
|
||||
bar_->setVisible(false);
|
||||
|
||||
showMessage(tr("Welcome to %1 %2")
|
||||
.arg(QCoreApplication::applicationName(),
|
||||
QCoreApplication::applicationVersion()),
|
||||
10000);
|
||||
}
|
||||
|
||||
void MainStatusBar::ConnectTaskManager(TaskManager *manager)
|
||||
{
|
||||
if (manager_) {
|
||||
disconnect(manager_, &TaskManager::TaskListChanged, this, &MainStatusBar::UpdateStatus);
|
||||
}
|
||||
if (manager_) {
|
||||
disconnect(manager_, &TaskManager::TaskListChanged, this,
|
||||
&MainStatusBar::UpdateStatus);
|
||||
}
|
||||
|
||||
manager_ = manager;
|
||||
manager_ = manager;
|
||||
|
||||
if (manager_) {
|
||||
connect(manager_, &TaskManager::TaskListChanged, this, &MainStatusBar::UpdateStatus);
|
||||
}
|
||||
if (manager_) {
|
||||
connect(manager_, &TaskManager::TaskListChanged, this,
|
||||
&MainStatusBar::UpdateStatus);
|
||||
}
|
||||
}
|
||||
|
||||
void MainStatusBar::UpdateStatus()
|
||||
{
|
||||
if (!manager_) {
|
||||
return;
|
||||
}
|
||||
if (!manager_) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (manager_->GetTaskCount() == 0) {
|
||||
clearMessage();
|
||||
bar_->setVisible(false);
|
||||
bar_->setValue(0);
|
||||
} else {
|
||||
Task* t = manager_->GetFirstTask();
|
||||
if (manager_->GetTaskCount() == 0) {
|
||||
clearMessage();
|
||||
bar_->setVisible(false);
|
||||
bar_->setValue(0);
|
||||
} else {
|
||||
Task *t = manager_->GetFirstTask();
|
||||
|
||||
if (manager_->GetTaskCount() == 1) {
|
||||
showMessage(t->GetTitle());
|
||||
} else {
|
||||
showMessage(tr("Running %n background task(s)", nullptr, manager_->GetTaskCount()));
|
||||
}
|
||||
if (manager_->GetTaskCount() == 1) {
|
||||
showMessage(t->GetTitle());
|
||||
} else {
|
||||
showMessage(tr("Running %n background task(s)", nullptr,
|
||||
manager_->GetTaskCount()));
|
||||
}
|
||||
|
||||
bar_->setVisible(true);
|
||||
bar_->setVisible(true);
|
||||
|
||||
if (connected_task_) {
|
||||
disconnect(connected_task_, &Task::ProgressChanged, this, &MainStatusBar::SetProgressBarValue);
|
||||
disconnect(connected_task_, &Task::destroyed, this, &MainStatusBar::ConnectedTaskDeleted);
|
||||
}
|
||||
if (connected_task_) {
|
||||
disconnect(connected_task_, &Task::ProgressChanged, this,
|
||||
&MainStatusBar::SetProgressBarValue);
|
||||
disconnect(connected_task_, &Task::destroyed, this,
|
||||
&MainStatusBar::ConnectedTaskDeleted);
|
||||
}
|
||||
|
||||
connected_task_ = t;
|
||||
connect(connected_task_, &Task::ProgressChanged, this, &MainStatusBar::SetProgressBarValue);
|
||||
connect(connected_task_, &Task::destroyed, this, &MainStatusBar::ConnectedTaskDeleted);
|
||||
}
|
||||
connected_task_ = t;
|
||||
connect(connected_task_, &Task::ProgressChanged, this,
|
||||
&MainStatusBar::SetProgressBarValue);
|
||||
connect(connected_task_, &Task::destroyed, this,
|
||||
&MainStatusBar::ConnectedTaskDeleted);
|
||||
}
|
||||
}
|
||||
|
||||
void MainStatusBar::SetProgressBarValue(double d)
|
||||
{
|
||||
bar_->setValue(qRound(100.0 * d));
|
||||
bar_->setValue(qRound(100.0 * d));
|
||||
}
|
||||
|
||||
void MainStatusBar::ConnectedTaskDeleted()
|
||||
{
|
||||
connected_task_ = nullptr;
|
||||
connected_task_ = nullptr;
|
||||
}
|
||||
|
||||
void MainStatusBar::mouseDoubleClickEvent(QMouseEvent* e)
|
||||
void MainStatusBar::mouseDoubleClickEvent(QMouseEvent *e)
|
||||
{
|
||||
QStatusBar::mouseDoubleClickEvent(e);
|
||||
QStatusBar::mouseDoubleClickEvent(e);
|
||||
|
||||
emit DoubleClicked();
|
||||
emit DoubleClicked();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,39 +26,38 @@
|
||||
|
||||
#include "task/taskmanager.h"
|
||||
|
||||
namespace olive {
|
||||
namespace olive
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief Shows abbreviated information from a TaskManager object
|
||||
*/
|
||||
class MainStatusBar : public QStatusBar
|
||||
{
|
||||
Q_OBJECT
|
||||
class MainStatusBar : public QStatusBar {
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainStatusBar(QWidget* parent = nullptr);
|
||||
MainStatusBar(QWidget *parent = nullptr);
|
||||
|
||||
void ConnectTaskManager(TaskManager* manager);
|
||||
void ConnectTaskManager(TaskManager *manager);
|
||||
|
||||
signals:
|
||||
void DoubleClicked();
|
||||
void DoubleClicked();
|
||||
|
||||
protected:
|
||||
virtual void mouseDoubleClickEvent(QMouseEvent* e) override;
|
||||
virtual void mouseDoubleClickEvent(QMouseEvent *e) override;
|
||||
|
||||
private slots:
|
||||
void UpdateStatus();
|
||||
void UpdateStatus();
|
||||
|
||||
void SetProgressBarValue(double d);
|
||||
void SetProgressBarValue(double d);
|
||||
|
||||
void ConnectedTaskDeleted();
|
||||
void ConnectedTaskDeleted();
|
||||
|
||||
private:
|
||||
TaskManager* manager_;
|
||||
TaskManager *manager_;
|
||||
|
||||
QProgressBar* bar_;
|
||||
|
||||
Task* connected_task_;
|
||||
QProgressBar *bar_;
|
||||
|
||||
Task *connected_task_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -47,157 +47,153 @@
|
||||
#include <shobjidl.h>
|
||||
#endif
|
||||
|
||||
namespace olive {
|
||||
namespace olive
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief Olive's main window responsible for docking widgets and the main menu bar.
|
||||
*/
|
||||
class MainWindow : public KDDockWidgets::MainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
class MainWindow : public KDDockWidgets::MainWindow {
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
|
||||
virtual ~MainWindow() override;
|
||||
virtual ~MainWindow() override;
|
||||
|
||||
void LoadLayout(const MainWindowLayoutInfo &info);
|
||||
void LoadLayout(const MainWindowLayoutInfo &info);
|
||||
|
||||
MainWindowLayoutInfo SaveLayout() const;
|
||||
MainWindowLayoutInfo SaveLayout() const;
|
||||
|
||||
TimelinePanel *OpenSequence(Sequence* sequence, bool enable_focus = true);
|
||||
TimelinePanel *OpenSequence(Sequence *sequence, bool enable_focus = true);
|
||||
|
||||
void CloseSequence(Sequence* sequence);
|
||||
void CloseSequence(Sequence *sequence);
|
||||
|
||||
bool IsSequenceOpen(Sequence* sequence) const;
|
||||
bool IsSequenceOpen(Sequence *sequence) const;
|
||||
|
||||
void OpenFolder(Folder *i, bool floating);
|
||||
void OpenFolder(Folder *i, bool floating);
|
||||
|
||||
void OpenNodeInViewer(ViewerOutput* node);
|
||||
void OpenNodeInViewer(ViewerOutput *node);
|
||||
|
||||
enum ProgressStatus {
|
||||
kProgressNone,
|
||||
kProgressShow,
|
||||
kProgressError
|
||||
};
|
||||
enum ProgressStatus { kProgressNone, kProgressShow, kProgressError };
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Where applicable, show progress on an operating system level
|
||||
*
|
||||
* * 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 SetApplicationProgressStatus(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 SetApplicationProgressValue(int value);
|
||||
|
||||
void SelectFootage(const QVector<Footage*> &e);
|
||||
void SelectFootage(const QVector<Footage *> &e);
|
||||
|
||||
public slots:
|
||||
void SetProject(Project *p);
|
||||
void SetProject(Project *p);
|
||||
|
||||
void SetFullscreen(bool fullscreen);
|
||||
void SetFullscreen(bool fullscreen);
|
||||
|
||||
void ToggleMaximizedPanel();
|
||||
void ToggleMaximizedPanel();
|
||||
|
||||
void SetDefaultLayout();
|
||||
void SetDefaultLayout();
|
||||
|
||||
protected:
|
||||
virtual void showEvent(QShowEvent* e) override;
|
||||
virtual void showEvent(QShowEvent *e) override;
|
||||
|
||||
virtual void closeEvent(QCloseEvent* e) override;
|
||||
virtual void closeEvent(QCloseEvent *e) override;
|
||||
|
||||
#ifdef Q_OS_WINDOWS
|
||||
virtual bool nativeEvent(const QByteArray &eventType, void *message, long *result) override;
|
||||
virtual bool nativeEvent(const QByteArray &eventType, void *message,
|
||||
long *result) override;
|
||||
#endif
|
||||
|
||||
private:
|
||||
TimelinePanel* AppendTimelinePanel();
|
||||
TimelinePanel *AppendTimelinePanel();
|
||||
|
||||
template <typename T>
|
||||
T* AppendPanelInternal(const QString &panel_name, QList<T*>& list);
|
||||
template <typename T>
|
||||
T *AppendPanelInternal(const QString &panel_name, QList<T *> &list);
|
||||
|
||||
template <typename T>
|
||||
void RemovePanelInternal(QList<T*>& list, T *panel);
|
||||
template <typename T> void RemovePanelInternal(QList<T *> &list, T *panel);
|
||||
|
||||
void RemoveTimelinePanel(TimelinePanel *panel);
|
||||
void RemoveTimelinePanel(TimelinePanel *panel);
|
||||
|
||||
void TimelineFocused(ViewerOutput *viewer);
|
||||
void TimelineFocused(ViewerOutput *viewer);
|
||||
|
||||
static QString GetCustomShortcutsFile();
|
||||
static QString GetCustomShortcutsFile();
|
||||
|
||||
void LoadCustomShortcuts();
|
||||
void LoadCustomShortcuts();
|
||||
|
||||
void SaveCustomShortcuts();
|
||||
void SaveCustomShortcuts();
|
||||
|
||||
void UpdateAudioMonitorParams(ViewerOutput* viewer);
|
||||
void UpdateAudioMonitorParams(ViewerOutput *viewer);
|
||||
|
||||
void UpdateNodePanelContextFromTimelinePanel(TimelinePanel *panel);
|
||||
void UpdateNodePanelContextFromTimelinePanel(TimelinePanel *panel);
|
||||
|
||||
void SelectFootageForProjectPanel(const QVector<Footage*> &e, ProjectPanel *p);
|
||||
void SelectFootageForProjectPanel(const QVector<Footage *> &e,
|
||||
ProjectPanel *p);
|
||||
|
||||
QByteArray premaximized_state_;
|
||||
QByteArray premaximized_state_;
|
||||
|
||||
// Standard panels
|
||||
ProjectPanel *project_panel_;
|
||||
NodePanel* node_panel_;
|
||||
ParamPanel* param_panel_;
|
||||
CurvePanel* curve_panel_;
|
||||
SequenceViewerPanel* sequence_viewer_panel_;
|
||||
FootageViewerPanel* footage_viewer_panel_;
|
||||
QList<ProjectPanel*> folder_panels_;
|
||||
ToolPanel* tool_panel_;
|
||||
QList<TimelinePanel*> timeline_panels_;
|
||||
AudioMonitorPanel* audio_monitor_panel_;
|
||||
TaskManagerPanel* task_man_panel_;
|
||||
PixelSamplerPanel* pixel_sampler_panel_;
|
||||
ScopePanel* scope_panel_;
|
||||
QList<ViewerPanel*> viewer_panels_;
|
||||
MulticamPanel *multicam_panel_;
|
||||
HistoryPanel *history_panel_;
|
||||
// Standard panels
|
||||
ProjectPanel *project_panel_;
|
||||
NodePanel *node_panel_;
|
||||
ParamPanel *param_panel_;
|
||||
CurvePanel *curve_panel_;
|
||||
SequenceViewerPanel *sequence_viewer_panel_;
|
||||
FootageViewerPanel *footage_viewer_panel_;
|
||||
QList<ProjectPanel *> folder_panels_;
|
||||
ToolPanel *tool_panel_;
|
||||
QList<TimelinePanel *> timeline_panels_;
|
||||
AudioMonitorPanel *audio_monitor_panel_;
|
||||
TaskManagerPanel *task_man_panel_;
|
||||
PixelSamplerPanel *pixel_sampler_panel_;
|
||||
ScopePanel *scope_panel_;
|
||||
QList<ViewerPanel *> viewer_panels_;
|
||||
MulticamPanel *multicam_panel_;
|
||||
HistoryPanel *history_panel_;
|
||||
|
||||
#ifdef Q_OS_WINDOWS
|
||||
unsigned int taskbar_btn_id_;
|
||||
unsigned int taskbar_btn_id_;
|
||||
|
||||
ITaskbarList3* taskbar_interface_;
|
||||
ITaskbarList3 *taskbar_interface_;
|
||||
#endif
|
||||
|
||||
bool first_show_;
|
||||
bool first_show_;
|
||||
|
||||
Project *project_;
|
||||
Project *project_;
|
||||
|
||||
private slots:
|
||||
void FocusedPanelChanged(PanelWidget* panel);
|
||||
void FocusedPanelChanged(PanelWidget *panel);
|
||||
|
||||
void UpdateTitle();
|
||||
void UpdateTitle();
|
||||
|
||||
void TimelineCloseRequested();
|
||||
void TimelineCloseRequested();
|
||||
|
||||
void ViewerCloseRequested();
|
||||
void ViewerCloseRequested();
|
||||
|
||||
void ViewerWithPanelRemovedFromGraph();
|
||||
void ViewerWithPanelRemovedFromGraph();
|
||||
|
||||
void FolderPanelCloseRequested();
|
||||
void FolderPanelCloseRequested();
|
||||
|
||||
void StatusBarDoubleClicked();
|
||||
void StatusBarDoubleClicked();
|
||||
|
||||
void NodePanelGroupOpenedOrClosed();
|
||||
void NodePanelGroupOpenedOrClosed();
|
||||
|
||||
#ifdef Q_OS_LINUX
|
||||
void ShowNouveauWarning();
|
||||
void ShowNouveauWarning();
|
||||
#endif
|
||||
|
||||
void TimelinePanelSelectionChanged(const QVector<Block*> &blocks);
|
||||
void TimelinePanelSelectionChanged(const QVector<Block *> &blocks);
|
||||
|
||||
void ShowWelcomeDialog();
|
||||
|
||||
void RevealViewerInProject(ViewerOutput *r);
|
||||
void RevealViewerInFootageViewer(ViewerOutput *r, const TimeRange &range);
|
||||
void ShowWelcomeDialog();
|
||||
|
||||
void RevealViewerInProject(ViewerOutput *r);
|
||||
void RevealViewerInFootageViewer(ViewerOutput *r, const TimeRange &range);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,186 +1,201 @@
|
||||
#include "mainwindowlayoutinfo.h"
|
||||
|
||||
namespace olive {
|
||||
namespace olive
|
||||
{
|
||||
|
||||
void MainWindowLayoutInfo::toXml(QXmlStreamWriter *writer) const
|
||||
{
|
||||
writer->writeAttribute(QStringLiteral("version"), QString::number(kVersion));
|
||||
writer->writeAttribute(QStringLiteral("version"),
|
||||
QString::number(kVersion));
|
||||
|
||||
writer->writeStartElement(QStringLiteral("folders"));
|
||||
writer->writeStartElement(QStringLiteral("folders"));
|
||||
|
||||
foreach (Folder* folder, open_folders_) {
|
||||
writer->writeTextElement(QStringLiteral("folder"), QString::number(reinterpret_cast<quintptr>(folder)));
|
||||
}
|
||||
foreach (Folder *folder, open_folders_) {
|
||||
writer->writeTextElement(
|
||||
QStringLiteral("folder"),
|
||||
QString::number(reinterpret_cast<quintptr>(folder)));
|
||||
}
|
||||
|
||||
writer->writeEndElement(); // folders
|
||||
writer->writeEndElement(); // folders
|
||||
|
||||
writer->writeStartElement(QStringLiteral("timeline"));
|
||||
writer->writeStartElement(QStringLiteral("timeline"));
|
||||
|
||||
foreach (Sequence *sequence, open_sequences_) {
|
||||
writer->writeTextElement(QStringLiteral("sequence"), QString::number(reinterpret_cast<quintptr>(sequence)));
|
||||
}
|
||||
foreach (Sequence *sequence, open_sequences_) {
|
||||
writer->writeTextElement(
|
||||
QStringLiteral("sequence"),
|
||||
QString::number(reinterpret_cast<quintptr>(sequence)));
|
||||
}
|
||||
|
||||
writer->writeEndElement(); // timeline
|
||||
writer->writeEndElement(); // timeline
|
||||
|
||||
writer->writeStartElement(QStringLiteral("viewers"));
|
||||
writer->writeStartElement(QStringLiteral("viewers"));
|
||||
|
||||
foreach (Sequence *sequence, open_sequences_) {
|
||||
writer->writeTextElement(QStringLiteral("viewer"), QString::number(reinterpret_cast<quintptr>(sequence)));
|
||||
}
|
||||
foreach (Sequence *sequence, open_sequences_) {
|
||||
writer->writeTextElement(
|
||||
QStringLiteral("viewer"),
|
||||
QString::number(reinterpret_cast<quintptr>(sequence)));
|
||||
}
|
||||
|
||||
writer->writeEndElement(); // viewers
|
||||
writer->writeEndElement(); // viewers
|
||||
|
||||
writer->writeStartElement(QStringLiteral("data"));
|
||||
writer->writeStartElement(QStringLiteral("data"));
|
||||
|
||||
for (auto it = panel_data_.cbegin(); it != panel_data_.cend(); it++) {
|
||||
writer->writeStartElement(QStringLiteral("panel"));
|
||||
for (auto it = panel_data_.cbegin(); it != panel_data_.cend(); it++) {
|
||||
writer->writeStartElement(QStringLiteral("panel"));
|
||||
|
||||
writer->writeAttribute(QStringLiteral("id"), it->first);
|
||||
writer->writeAttribute(QStringLiteral("id"), it->first);
|
||||
|
||||
const PanelWidget::Info &info = it->second;
|
||||
for (auto jt = info.cbegin(); jt != info.cend(); jt++) {
|
||||
writer->writeStartElement(QStringLiteral("option"));
|
||||
const PanelWidget::Info &info = it->second;
|
||||
for (auto jt = info.cbegin(); jt != info.cend(); jt++) {
|
||||
writer->writeStartElement(QStringLiteral("option"));
|
||||
|
||||
writer->writeAttribute(QStringLiteral("name"), jt->first);
|
||||
writer->writeAttribute(QStringLiteral("name"), jt->first);
|
||||
|
||||
writer->writeCharacters(jt->second);
|
||||
writer->writeCharacters(jt->second);
|
||||
|
||||
writer->writeEndElement(); // option
|
||||
}
|
||||
writer->writeEndElement(); // option
|
||||
}
|
||||
|
||||
writer->writeEndElement(); // panel
|
||||
}
|
||||
writer->writeEndElement(); // panel
|
||||
}
|
||||
|
||||
writer->writeEndElement(); // data
|
||||
writer->writeEndElement(); // data
|
||||
|
||||
writer->writeTextElement(QStringLiteral("state"), QString(state_.toBase64()));
|
||||
writer->writeTextElement(QStringLiteral("state"),
|
||||
QString(state_.toBase64()));
|
||||
}
|
||||
|
||||
MainWindowLayoutInfo MainWindowLayoutInfo::fromXml(QXmlStreamReader *reader, const QHash<quintptr, Node *> &node_ptrs)
|
||||
MainWindowLayoutInfo
|
||||
MainWindowLayoutInfo::fromXml(QXmlStreamReader *reader,
|
||||
const QHash<quintptr, Node *> &node_ptrs)
|
||||
{
|
||||
MainWindowLayoutInfo info;
|
||||
MainWindowLayoutInfo info;
|
||||
|
||||
unsigned int file_version = 0;
|
||||
unsigned int file_version = 0;
|
||||
|
||||
XMLAttributeLoop(reader, attr) {
|
||||
if (attr.name() == QStringLiteral("version")) {
|
||||
file_version = attr.value().toUInt();
|
||||
}
|
||||
}
|
||||
XMLAttributeLoop(reader, attr)
|
||||
{
|
||||
if (attr.name() == QStringLiteral("version")) {
|
||||
file_version = attr.value().toUInt();
|
||||
}
|
||||
}
|
||||
|
||||
// Really basic version checking, in the future we may use this to parse multiple versions
|
||||
if (file_version != kVersion) {
|
||||
}
|
||||
// Really basic version checking, in the future we may use this to parse multiple versions
|
||||
if (file_version != kVersion) {
|
||||
}
|
||||
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("folders")) {
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("folders")) {
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("folder")) {
|
||||
quintptr item_id = reader->readElementText().toULongLong();
|
||||
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("folder")) {
|
||||
quintptr item_id = reader->readElementText().toULongLong();
|
||||
Folder *open_item =
|
||||
static_cast<Folder *>(node_ptrs.value(item_id));
|
||||
info.open_folders_.push_back(open_item);
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
|
||||
Folder* open_item = static_cast<Folder*>(node_ptrs.value(item_id));
|
||||
info.open_folders_.push_back(open_item);
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
} else if (reader->name() == QStringLiteral("timeline")) {
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("sequence")) {
|
||||
quintptr item_id = reader->readElementText().toULongLong();
|
||||
|
||||
} else if (reader->name() == QStringLiteral("timeline")) {
|
||||
Sequence *open_seq =
|
||||
static_cast<Sequence *>(node_ptrs.value(item_id));
|
||||
info.open_sequences_.push_back(open_seq);
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("sequence")) {
|
||||
quintptr item_id = reader->readElementText().toULongLong();
|
||||
} else if (reader->name() == QStringLiteral("state")) {
|
||||
info.state_ =
|
||||
QByteArray::fromBase64(reader->readElementText().toLatin1());
|
||||
|
||||
Sequence *open_seq = static_cast<Sequence*>(node_ptrs.value(item_id));
|
||||
info.open_sequences_.push_back(open_seq);
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
} else if (reader->name() == QStringLiteral("data")) {
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("panel")) {
|
||||
QString id;
|
||||
XMLAttributeLoop(reader, attr)
|
||||
{
|
||||
if (attr.name() == QStringLiteral("id")) {
|
||||
id = attr.value().toString();
|
||||
}
|
||||
}
|
||||
|
||||
} else if (reader->name() == QStringLiteral("state")) {
|
||||
if (!id.isEmpty()) {
|
||||
PanelWidget::Info i;
|
||||
|
||||
info.state_ = QByteArray::fromBase64(reader->readElementText().toLatin1());
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("option")) {
|
||||
QString name;
|
||||
|
||||
} else if (reader->name() == QStringLiteral("data")) {
|
||||
XMLAttributeLoop(reader, attr)
|
||||
{
|
||||
if (attr.name() == QStringLiteral("name")) {
|
||||
name = attr.value().toString();
|
||||
}
|
||||
}
|
||||
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("panel")) {
|
||||
QString id;
|
||||
XMLAttributeLoop(reader, attr) {
|
||||
if (attr.name() == QStringLiteral("id")) {
|
||||
id = attr.value().toString();
|
||||
}
|
||||
}
|
||||
if (!name.isEmpty()) {
|
||||
i[name] = reader->readElementText();
|
||||
}
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
|
||||
if (!id.isEmpty()) {
|
||||
PanelWidget::Info i;
|
||||
info.panel_data_[id] = i;
|
||||
}
|
||||
|
||||
while (XMLReadNextStartElement(reader)) {
|
||||
if (reader->name() == QStringLiteral("option")) {
|
||||
QString name;
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
|
||||
XMLAttributeLoop(reader, attr) {
|
||||
if (attr.name() == QStringLiteral("name")) {
|
||||
name = attr.value().toString();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
|
||||
if (!name.isEmpty()) {
|
||||
i[name] = reader->readElementText();
|
||||
}
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
|
||||
info.panel_data_[id] = i;
|
||||
}
|
||||
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
reader->skipCurrentElement();
|
||||
}
|
||||
}
|
||||
|
||||
return info;
|
||||
return info;
|
||||
}
|
||||
|
||||
void MainWindowLayoutInfo::add_folder(olive::Folder *f)
|
||||
{
|
||||
open_folders_.push_back(f);
|
||||
open_folders_.push_back(f);
|
||||
}
|
||||
|
||||
void MainWindowLayoutInfo::add_sequence(Sequence *seq)
|
||||
{
|
||||
open_sequences_.push_back(seq);
|
||||
open_sequences_.push_back(seq);
|
||||
}
|
||||
|
||||
void MainWindowLayoutInfo::add_viewer(ViewerOutput *viewer)
|
||||
{
|
||||
open_viewers_.push_back(viewer);
|
||||
open_viewers_.push_back(viewer);
|
||||
}
|
||||
|
||||
void MainWindowLayoutInfo::set_panel_data(const QString &id, const PanelWidget::Info &data)
|
||||
void MainWindowLayoutInfo::set_panel_data(const QString &id,
|
||||
const PanelWidget::Info &data)
|
||||
{
|
||||
panel_data_[id] = data;
|
||||
panel_data_[id] = data;
|
||||
}
|
||||
|
||||
void MainWindowLayoutInfo::move_panel_data(const QString &old, const QString &now)
|
||||
void MainWindowLayoutInfo::move_panel_data(const QString &old,
|
||||
const QString &now)
|
||||
{
|
||||
PanelWidget::Info tmp = panel_data_.at(old);
|
||||
panel_data_.erase(old);
|
||||
panel_data_[now] = tmp;
|
||||
PanelWidget::Info tmp = panel_data_.at(old);
|
||||
panel_data_.erase(old);
|
||||
panel_data_[now] = tmp;
|
||||
}
|
||||
|
||||
void MainWindowLayoutInfo::set_state(const QByteArray &layout)
|
||||
{
|
||||
state_ = layout;
|
||||
state_ = layout;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,67 +5,67 @@
|
||||
#include "node/project/sequence/sequence.h"
|
||||
#include "panel/panel.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
class MainWindowLayoutInfo
|
||||
namespace olive
|
||||
{
|
||||
|
||||
class MainWindowLayoutInfo {
|
||||
public:
|
||||
MainWindowLayoutInfo() = default;
|
||||
MainWindowLayoutInfo() = default;
|
||||
|
||||
void toXml(QXmlStreamWriter* writer) const;
|
||||
void toXml(QXmlStreamWriter *writer) const;
|
||||
|
||||
static MainWindowLayoutInfo fromXml(QXmlStreamReader* reader, const QHash<quintptr, Node*> &node_map);
|
||||
static MainWindowLayoutInfo
|
||||
fromXml(QXmlStreamReader *reader, const QHash<quintptr, Node *> &node_map);
|
||||
|
||||
void add_folder(Folder* f);
|
||||
void add_folder(Folder *f);
|
||||
|
||||
void add_sequence(Sequence *seq);
|
||||
void add_sequence(Sequence *seq);
|
||||
|
||||
void add_viewer(ViewerOutput *viewer);
|
||||
void add_viewer(ViewerOutput *viewer);
|
||||
|
||||
void set_panel_data(const QString &id, const PanelWidget::Info &data);
|
||||
void set_panel_data(const QString &id, const PanelWidget::Info &data);
|
||||
|
||||
void move_panel_data(const QString &old, const QString &now);
|
||||
void move_panel_data(const QString &old, const QString &now);
|
||||
|
||||
void set_state(const QByteArray& layout);
|
||||
void set_state(const QByteArray &layout);
|
||||
|
||||
const std::vector<Folder*>& open_folders() const
|
||||
{
|
||||
return open_folders_;
|
||||
}
|
||||
const std::vector<Folder *> &open_folders() const
|
||||
{
|
||||
return open_folders_;
|
||||
}
|
||||
|
||||
const std::vector<Sequence*>& open_sequences() const
|
||||
{
|
||||
return open_sequences_;
|
||||
}
|
||||
const std::vector<Sequence *> &open_sequences() const
|
||||
{
|
||||
return open_sequences_;
|
||||
}
|
||||
|
||||
const std::vector<ViewerOutput*>& open_viewers() const
|
||||
{
|
||||
return open_viewers_;
|
||||
}
|
||||
const std::vector<ViewerOutput *> &open_viewers() const
|
||||
{
|
||||
return open_viewers_;
|
||||
}
|
||||
|
||||
const std::map<QString, PanelWidget::Info> &panel_data() const
|
||||
{
|
||||
return panel_data_;
|
||||
}
|
||||
const std::map<QString, PanelWidget::Info> &panel_data() const
|
||||
{
|
||||
return panel_data_;
|
||||
}
|
||||
|
||||
const QByteArray& state() const
|
||||
{
|
||||
return state_;
|
||||
}
|
||||
const QByteArray &state() const
|
||||
{
|
||||
return state_;
|
||||
}
|
||||
|
||||
private:
|
||||
QByteArray state_;
|
||||
QByteArray state_;
|
||||
|
||||
std::vector<Folder*> open_folders_;
|
||||
std::vector<Folder *> open_folders_;
|
||||
|
||||
std::vector<Sequence*> open_sequences_;
|
||||
std::vector<Sequence *> open_sequences_;
|
||||
|
||||
std::vector<ViewerOutput*> open_viewers_;
|
||||
std::vector<ViewerOutput *> open_viewers_;
|
||||
|
||||
std::map<QString, PanelWidget::Info> panel_data_;
|
||||
|
||||
static const unsigned int kVersion = 1;
|
||||
std::map<QString, PanelWidget::Info> panel_data_;
|
||||
|
||||
static const unsigned int kVersion = 1;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -23,26 +23,27 @@
|
||||
#include "core.h"
|
||||
#include "window/mainwindow/mainwindow.h"
|
||||
|
||||
namespace olive {
|
||||
namespace olive
|
||||
{
|
||||
|
||||
void OpenSequenceCommand::redo()
|
||||
{
|
||||
Core::instance()->main_window()->OpenSequence(sequence_);
|
||||
Core::instance()->main_window()->OpenSequence(sequence_);
|
||||
}
|
||||
|
||||
void OpenSequenceCommand::undo()
|
||||
{
|
||||
Core::instance()->main_window()->CloseSequence(sequence_);
|
||||
Core::instance()->main_window()->CloseSequence(sequence_);
|
||||
}
|
||||
|
||||
void CloseSequenceCommand::redo()
|
||||
{
|
||||
Core::instance()->main_window()->CloseSequence(sequence_);
|
||||
Core::instance()->main_window()->CloseSequence(sequence_);
|
||||
}
|
||||
|
||||
void CloseSequenceCommand::undo()
|
||||
{
|
||||
Core::instance()->main_window()->OpenSequence(sequence_);
|
||||
Core::instance()->main_window()->OpenSequence(sequence_);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,44 +23,49 @@
|
||||
|
||||
#include "node/project/sequence/sequence.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
class OpenSequenceCommand : public UndoCommand
|
||||
namespace olive
|
||||
{
|
||||
public:
|
||||
OpenSequenceCommand(Sequence* sequence) :
|
||||
sequence_(sequence)
|
||||
{}
|
||||
|
||||
virtual Project* GetRelevantProject() const override {return nullptr;}
|
||||
class OpenSequenceCommand : public UndoCommand {
|
||||
public:
|
||||
OpenSequenceCommand(Sequence *sequence)
|
||||
: sequence_(sequence)
|
||||
{
|
||||
}
|
||||
|
||||
virtual Project *GetRelevantProject() const override
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual void redo() override;
|
||||
virtual void redo() override;
|
||||
|
||||
virtual void undo() override;
|
||||
virtual void undo() override;
|
||||
|
||||
private:
|
||||
Sequence* sequence_;
|
||||
|
||||
Sequence *sequence_;
|
||||
};
|
||||
|
||||
class CloseSequenceCommand : public UndoCommand
|
||||
{
|
||||
class CloseSequenceCommand : public UndoCommand {
|
||||
public:
|
||||
CloseSequenceCommand(Sequence* sequence) :
|
||||
sequence_(sequence)
|
||||
{}
|
||||
CloseSequenceCommand(Sequence *sequence)
|
||||
: sequence_(sequence)
|
||||
{
|
||||
}
|
||||
|
||||
virtual Project* GetRelevantProject() const override {return nullptr;}
|
||||
virtual Project *GetRelevantProject() const override
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual void redo() override;
|
||||
virtual void redo() override;
|
||||
|
||||
virtual void undo() override;
|
||||
virtual void undo() override;
|
||||
|
||||
private:
|
||||
Sequence* sequence_;
|
||||
|
||||
Sequence *sequence_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user