various: implemented multiple project support
This required various changes to various parts of the infrastructure (mostly using paths to finding the "root project" of any given object throughout). Now theoretically infinite projects can be opened and accounted for at any given time.
This commit is contained in:
@@ -143,6 +143,11 @@ FootagePropertiesDialog::FootageChangeCommand::FootageChangeCommand(Footage *foo
|
||||
{
|
||||
}
|
||||
|
||||
Project *FootagePropertiesDialog::FootageChangeCommand::GetRelevantProject() const
|
||||
{
|
||||
return footage_->project();
|
||||
}
|
||||
|
||||
void FootagePropertiesDialog::FootageChangeCommand::redo_internal()
|
||||
{
|
||||
old_name_ = footage_->name();
|
||||
@@ -163,6 +168,11 @@ FootagePropertiesDialog::StreamEnableChangeCommand::StreamEnableChangeCommand(St
|
||||
{
|
||||
}
|
||||
|
||||
Project *FootagePropertiesDialog::StreamEnableChangeCommand::GetRelevantProject() const
|
||||
{
|
||||
return stream_->footage()->project();
|
||||
}
|
||||
|
||||
void FootagePropertiesDialog::StreamEnableChangeCommand::redo_internal()
|
||||
{
|
||||
stream_->set_enabled(new_enabled_);
|
||||
|
||||
@@ -62,6 +62,8 @@ private:
|
||||
const QString& name,
|
||||
QUndoCommand *command = nullptr);
|
||||
|
||||
virtual Project* GetRelevantProject() const override;
|
||||
|
||||
protected:
|
||||
virtual void redo_internal() override;
|
||||
virtual void undo_internal() override;
|
||||
@@ -79,6 +81,8 @@ private:
|
||||
bool enabled,
|
||||
QUndoCommand* command = nullptr);
|
||||
|
||||
virtual Project* GetRelevantProject() const override;
|
||||
|
||||
protected:
|
||||
virtual void redo_internal() override;
|
||||
virtual void undo_internal() override;
|
||||
|
||||
@@ -158,6 +158,11 @@ VideoStreamProperties::VideoStreamChangeCommand::VideoStreamChangeCommand(ImageS
|
||||
{
|
||||
}
|
||||
|
||||
Project *VideoStreamProperties::VideoStreamChangeCommand::GetRelevantProject() const
|
||||
{
|
||||
return stream_->footage()->project();
|
||||
}
|
||||
|
||||
void VideoStreamProperties::VideoStreamChangeCommand::redo_internal()
|
||||
{
|
||||
old_premultiplied_ = stream_->premultiplied_alpha();
|
||||
@@ -181,6 +186,11 @@ VideoStreamProperties::ImageSequenceChangeCommand::ImageSequenceChangeCommand(Vi
|
||||
{
|
||||
}
|
||||
|
||||
Project *VideoStreamProperties::ImageSequenceChangeCommand::GetRelevantProject() const
|
||||
{
|
||||
return video_stream_->footage()->project();
|
||||
}
|
||||
|
||||
void VideoStreamProperties::ImageSequenceChangeCommand::redo_internal()
|
||||
{
|
||||
old_start_index_ = video_stream_->start_time();
|
||||
|
||||
@@ -75,6 +75,8 @@ private:
|
||||
QString colorspace,
|
||||
QUndoCommand* parent = nullptr);
|
||||
|
||||
virtual Project* GetRelevantProject() const override;
|
||||
|
||||
protected:
|
||||
virtual void redo_internal() override;
|
||||
virtual void undo_internal() override;
|
||||
@@ -97,6 +99,8 @@ private:
|
||||
int64_t duration,
|
||||
QUndoCommand* parent = nullptr);
|
||||
|
||||
virtual Project* GetRelevantProject() const override;
|
||||
|
||||
protected:
|
||||
virtual void redo_internal() override;
|
||||
virtual void undo_internal() override;
|
||||
|
||||
@@ -36,9 +36,9 @@ namespace OCIO = OCIO_NAMESPACE::v1;
|
||||
|
||||
OLIVE_NAMESPACE_ENTER
|
||||
|
||||
ProjectPropertiesDialog::ProjectPropertiesDialog(QWidget *parent) :
|
||||
ProjectPropertiesDialog::ProjectPropertiesDialog(Project* p, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
working_project_(Core::instance()->GetActiveProject())
|
||||
working_project_(p)
|
||||
{
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ class ProjectPropertiesDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ProjectPropertiesDialog(QWidget* parent);
|
||||
ProjectPropertiesDialog(Project *p, QWidget* parent);
|
||||
|
||||
public slots:
|
||||
virtual void accept() override;
|
||||
|
||||
@@ -211,6 +211,11 @@ SequenceDialog::SequenceParamCommand::SequenceParamCommand(Sequence* s,
|
||||
{
|
||||
}
|
||||
|
||||
Project *SequenceDialog::SequenceParamCommand::GetRelevantProject() const
|
||||
{
|
||||
return sequence_->project();
|
||||
}
|
||||
|
||||
void SequenceDialog::SequenceParamCommand::redo_internal()
|
||||
{
|
||||
sequence_->set_video_params(new_video_params_);
|
||||
|
||||
@@ -122,6 +122,8 @@ private:
|
||||
const QString& name,
|
||||
QUndoCommand* parent = nullptr);
|
||||
|
||||
virtual Project* GetRelevantProject() const override;
|
||||
|
||||
protected:
|
||||
virtual void redo_internal() override;
|
||||
virtual void undo_internal() override;
|
||||
|
||||
@@ -360,6 +360,11 @@ BlockReverseCommand::BlockReverseCommand(Block *block, QUndoCommand *parent) :
|
||||
{
|
||||
}
|
||||
|
||||
Project *BlockReverseCommand::GetRelevantProject() const
|
||||
{
|
||||
return static_cast<Sequence*>(block_->parent())->project();
|
||||
}
|
||||
|
||||
void BlockReverseCommand::redo_internal()
|
||||
{
|
||||
block_->set_media_in(block_->media_out());
|
||||
|
||||
@@ -70,6 +70,8 @@ class BlockReverseCommand : public UndoCommand {
|
||||
public:
|
||||
BlockReverseCommand(Block* block, QUndoCommand* parent = nullptr);
|
||||
|
||||
virtual Project* GetRelevantProject() const override;
|
||||
|
||||
protected:
|
||||
virtual void redo_internal() override;
|
||||
virtual void undo_internal() override;
|
||||
|
||||
Reference in New Issue
Block a user