change: change code style to Linux style except indent.

This commit is contained in:
Mike Solar
2025-08-03 03:09:40 +08:00
parent 65ab76edc8
commit 74f73ab3be
789 changed files with 77113 additions and 68888 deletions
File diff suppressed because it is too large Load Diff
+162 -163
View File
@@ -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_;
};
}
+59 -50
View File
@@ -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();
}
}
+14 -15
View File
@@ -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
+75 -79
View File
@@ -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);
};
}
+132 -117
View File
@@ -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;
}
}
+39 -39
View File
@@ -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;
};
}
+6 -5
View File
@@ -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_);
}
}
+27 -22
View File
@@ -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_;
};
}