nodes: remove graph and merge into project
This commit is contained in:
@@ -30,7 +30,7 @@
|
||||
#include "common/ffmpegutils.h"
|
||||
#include "common/filefunctions.h"
|
||||
#include "conformmanager.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "task/taskmanager.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
+2
-2
@@ -28,12 +28,12 @@
|
||||
#include <QTranslator>
|
||||
|
||||
#include "node/project/footage/footage.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project/projectviewmodel.h"
|
||||
#include "node/project.h"
|
||||
#include "node/project/sequence/sequence.h"
|
||||
#include "task/task.h"
|
||||
#include "tool/tool.h"
|
||||
#include "undo/undostack.h"
|
||||
#include "widget/projectexplorer/projectviewmodel.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include "common/qtutils.h"
|
||||
#include "dialog/task/task.h"
|
||||
#include "exportsavepresetdialog.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "node/project/sequence/sequence.h"
|
||||
#include "task/taskmanager.h"
|
||||
#include "ui/icons/icons.h"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include <QLineEdit>
|
||||
#include <QRadioButton>
|
||||
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "widget/path/pathwidget.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -36,8 +36,6 @@ set(OLIVE_SOURCES
|
||||
node/factory.h
|
||||
node/globals.cpp
|
||||
node/globals.h
|
||||
node/graph.cpp
|
||||
node/graph.h
|
||||
node/inputdragger.cpp
|
||||
node/inputdragger.h
|
||||
node/inputimmediate.cpp
|
||||
@@ -48,6 +46,8 @@ set(OLIVE_SOURCES
|
||||
node/node.h
|
||||
node/param.cpp
|
||||
node/param.h
|
||||
node/project.cpp
|
||||
node/project.h
|
||||
node/splitvalue.h
|
||||
node/traverser.cpp
|
||||
node/traverser.h
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "ociobase.h"
|
||||
|
||||
#include "node/color/colormanager/colormanager.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -41,14 +41,12 @@ OCIOBaseNode::OCIOBaseNode() :
|
||||
SetFlags(kVideoEffect);
|
||||
}
|
||||
|
||||
void OCIOBaseNode::AddedToGraph(NodeGraph *graph)
|
||||
void OCIOBaseNode::AddedToGraph(Project *p)
|
||||
{
|
||||
if (Project *p = dynamic_cast<Project*>(graph)) {
|
||||
manager_ = p->color_manager();
|
||||
connect(manager_, &ColorManager::ConfigChanged, this, &OCIOBaseNode::ConfigChanged);
|
||||
ConfigChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void OCIOBaseNode::RemovedFromGraph()
|
||||
{
|
||||
|
||||
@@ -51,7 +51,7 @@ private:
|
||||
ColorProcessorPtr processor_;
|
||||
|
||||
private slots:
|
||||
void AddedToGraph(NodeGraph *graph);
|
||||
void AddedToGraph(Project *p);
|
||||
|
||||
void RemovedFromGraph();
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <iostream>
|
||||
|
||||
#include "common/ocioutils.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "render/colorprocessor.h"
|
||||
#include "widget/slider/floatslider.h"
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
#include "common/html.h"
|
||||
#include "core.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "widget/nodeparamview/nodeparamviewundo.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
/***
|
||||
|
||||
Olive - Non-Linear Video Editor
|
||||
Copyright (C) 2022 Olive Team
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
***/
|
||||
|
||||
#include "graph.h"
|
||||
|
||||
#include <QChildEvent>
|
||||
|
||||
namespace olive {
|
||||
|
||||
#define super QObject
|
||||
|
||||
NodeGraph::NodeGraph()
|
||||
{
|
||||
}
|
||||
|
||||
NodeGraph::~NodeGraph()
|
||||
{
|
||||
Clear();
|
||||
}
|
||||
|
||||
void NodeGraph::Clear()
|
||||
{
|
||||
// By deleting the last nodes first, we assume that nodes that are most important are deleted last
|
||||
// (e.g. Project's ColorManager or ProjectSettingsNode.
|
||||
for (auto it=node_children_.cbegin(); it!=node_children_.cend(); it++) {
|
||||
(*it)->SetCachesEnabled(false);
|
||||
}
|
||||
|
||||
while (!node_children_.isEmpty()) {
|
||||
delete node_children_.last();
|
||||
}
|
||||
}
|
||||
|
||||
int NodeGraph::GetNumberOfContextsNodeIsIn(Node *node, bool except_itself) const
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
foreach (Node *ctx, node_children_) {
|
||||
if (ctx->ContextContainsNode(node) && (!except_itself || ctx != node)) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
void NodeGraph::childEvent(QChildEvent *event)
|
||||
{
|
||||
super::childEvent(event);
|
||||
|
||||
Node* node = dynamic_cast<Node*>(event->child());
|
||||
|
||||
if (node) {
|
||||
if (event->type() == QEvent::ChildAdded) {
|
||||
|
||||
node_children_.append(node);
|
||||
|
||||
// Connect signals
|
||||
connect(node, &Node::InputConnected, this, &NodeGraph::InputConnected, Qt::DirectConnection);
|
||||
connect(node, &Node::InputDisconnected, this, &NodeGraph::InputDisconnected, Qt::DirectConnection);
|
||||
connect(node, &Node::ValueChanged, this, &NodeGraph::ValueChanged, Qt::DirectConnection);
|
||||
connect(node, &Node::InputValueHintChanged, this, &NodeGraph::InputValueHintChanged, Qt::DirectConnection);
|
||||
|
||||
if (NodeGroup *group = dynamic_cast<NodeGroup*>(node)) {
|
||||
connect(group, &NodeGroup::InputPassthroughAdded, this, &NodeGraph::GroupAddedInputPassthrough, Qt::DirectConnection);
|
||||
connect(group, &NodeGroup::InputPassthroughRemoved, this, &NodeGraph::GroupRemovedInputPassthrough, Qt::DirectConnection);
|
||||
connect(group, &NodeGroup::OutputPassthroughChanged, this, &NodeGraph::GroupChangedOutputPassthrough, Qt::DirectConnection);
|
||||
}
|
||||
|
||||
emit NodeAdded(node);
|
||||
emit node->AddedToGraph(this);
|
||||
|
||||
// Emit input connections
|
||||
for (auto it=node->input_connections().cbegin(); it!=node->input_connections().cend(); it++) {
|
||||
if (nodes().contains(it->second)) {
|
||||
emit InputConnected(it->second, it->first);
|
||||
}
|
||||
}
|
||||
|
||||
// Emit output connections
|
||||
for (auto it=node->output_connections().cbegin(); it!=node->output_connections().cend(); it++) {
|
||||
if (nodes().contains(it->second.node())) {
|
||||
emit InputConnected(it->first, it->second);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (event->type() == QEvent::ChildRemoved) {
|
||||
|
||||
node_children_.removeOne(node);
|
||||
|
||||
// Disconnect signals
|
||||
disconnect(node, &Node::InputConnected, this, &NodeGraph::InputConnected);
|
||||
disconnect(node, &Node::InputDisconnected, this, &NodeGraph::InputDisconnected);
|
||||
disconnect(node, &Node::ValueChanged, this, &NodeGraph::ValueChanged);
|
||||
disconnect(node, &Node::InputValueHintChanged, this, &NodeGraph::InputValueHintChanged);
|
||||
|
||||
if (NodeGroup *group = dynamic_cast<NodeGroup*>(node)) {
|
||||
disconnect(group, &NodeGroup::InputPassthroughAdded, this, &NodeGraph::GroupAddedInputPassthrough);
|
||||
disconnect(group, &NodeGroup::InputPassthroughRemoved, this, &NodeGraph::GroupRemovedInputPassthrough);
|
||||
disconnect(group, &NodeGroup::OutputPassthroughChanged, this, &NodeGraph::GroupChangedOutputPassthrough);
|
||||
}
|
||||
|
||||
emit NodeRemoved(node);
|
||||
emit node->RemovedFromGraph(this);
|
||||
|
||||
// Remove from any contexts
|
||||
foreach (Node *context, node_children_) {
|
||||
context->RemoveNodeFromContext(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
/***
|
||||
|
||||
Olive - Non-Linear Video Editor
|
||||
Copyright (C) 2022 Olive Team
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
***/
|
||||
|
||||
#ifndef NODEGRAPH_H
|
||||
#define NODEGRAPH_H
|
||||
|
||||
#include "node/group/group.h"
|
||||
#include "node/node.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
/**
|
||||
* @brief A collection of nodes
|
||||
*
|
||||
* This doesn't technically need to be a derivative of Item, but since both Item and NodeGraph need
|
||||
* to be QObject derivatives, this simplifies Sequence.
|
||||
*/
|
||||
class NodeGraph : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
/**
|
||||
* @brief NodeGraph Constructor
|
||||
*/
|
||||
NodeGraph();
|
||||
|
||||
/**
|
||||
* @brief NodeGraph Destructor
|
||||
*/
|
||||
virtual ~NodeGraph() override;
|
||||
|
||||
/**
|
||||
* @brief Destructively destroys all nodes in the graph
|
||||
*/
|
||||
void Clear();
|
||||
|
||||
/**
|
||||
* @brief Retrieve a complete list of the nodes belonging to this graph
|
||||
*/
|
||||
const QVector<Node*>& nodes() const
|
||||
{
|
||||
return node_children_;
|
||||
}
|
||||
|
||||
const QVector<Node*>& default_nodes() const
|
||||
{
|
||||
return default_nodes_;
|
||||
}
|
||||
|
||||
int GetNumberOfContextsNodeIsIn(Node *node, bool except_itself = false) const;
|
||||
|
||||
signals:
|
||||
/**
|
||||
* @brief Signal emitted when a Node is added to the graph
|
||||
*/
|
||||
void NodeAdded(Node* node);
|
||||
|
||||
/**
|
||||
* @brief Signal emitted when a Node is removed from the graph
|
||||
*/
|
||||
void NodeRemoved(Node* node);
|
||||
|
||||
void InputConnected(Node *output, const NodeInput& input);
|
||||
|
||||
void InputDisconnected(Node *output, const NodeInput& input);
|
||||
|
||||
void ValueChanged(const NodeInput& input);
|
||||
|
||||
void InputValueHintChanged(const NodeInput& input);
|
||||
|
||||
void GroupAddedInputPassthrough(NodeGroup *group, const NodeInput &input);
|
||||
|
||||
void GroupRemovedInputPassthrough(NodeGroup *group, const NodeInput &input);
|
||||
|
||||
void GroupChangedOutputPassthrough(NodeGroup *group, Node *output);
|
||||
|
||||
protected:
|
||||
void AddDefaultNode(Node* n)
|
||||
{
|
||||
default_nodes_.append(n);
|
||||
}
|
||||
|
||||
virtual void childEvent(QChildEvent* event) override;
|
||||
|
||||
private:
|
||||
QVector<Node*> node_children_;
|
||||
|
||||
QVector<Node*> default_nodes_;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // NODEGRAPH_H
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#include "group.h"
|
||||
|
||||
#include "node/graph.h"
|
||||
#include "node/project.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
#include "despill.h"
|
||||
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
+7
-6
@@ -28,7 +28,8 @@
|
||||
#include "common/lerp.h"
|
||||
#include "core.h"
|
||||
#include "config/config.h"
|
||||
#include "project/project.h"
|
||||
#include "node/group/group.h"
|
||||
#include "project.h"
|
||||
#include "ui/colorcoding.h"
|
||||
#include "ui/icons/icons.h"
|
||||
#include "widget/nodeparamview/nodeparamviewundo.h"
|
||||
@@ -76,9 +77,9 @@ Node::~Node()
|
||||
}
|
||||
}
|
||||
|
||||
NodeGraph *Node::parent() const
|
||||
Project *Node::parent() const
|
||||
{
|
||||
return static_cast<NodeGraph*>(QObject::parent());
|
||||
return static_cast<Project*>(QObject::parent());
|
||||
}
|
||||
|
||||
Project *Node::project() const
|
||||
@@ -982,7 +983,7 @@ QVector<Node *> Node::CopyDependencyGraph(const QVector<Node *> &nodes, MultiUnd
|
||||
Node::CopyInputs(nodes.at(i), c, false);
|
||||
|
||||
// Add to graph
|
||||
NodeGraph* graph = static_cast<NodeGraph*>(nodes.at(i)->parent());
|
||||
Project* graph = nodes.at(i)->parent();
|
||||
if (command) {
|
||||
command->add_child(new NodeAddCommand(graph, c));
|
||||
} else {
|
||||
@@ -1113,7 +1114,7 @@ Node *Node::CopyNodeInGraph(Node *node, MultiUndoCommand *command)
|
||||
} else {
|
||||
copy = node->copy();
|
||||
|
||||
command->add_child(new NodeAddCommand(static_cast<NodeGraph*>(node->parent()), copy));
|
||||
command->add_child(new NodeAddCommand(node->parent(), copy));
|
||||
|
||||
CopyInputs(node, copy, true, command);
|
||||
|
||||
@@ -2010,7 +2011,7 @@ void NodeRemovePositionFromContextCommand::undo()
|
||||
|
||||
void NodeRemovePositionFromAllContextsCommand::redo()
|
||||
{
|
||||
NodeGraph *graph = node_->parent();
|
||||
Project *graph = node_->parent();
|
||||
|
||||
foreach (Node* context, graph->nodes()) {
|
||||
if (context->ContextContainsNode(node_)) {
|
||||
|
||||
+4
-4
@@ -56,7 +56,7 @@ namespace olive {
|
||||
#define NODE_COPY_FUNCTION(x) \
|
||||
virtual Node *copy() const override {return new x();}
|
||||
|
||||
class NodeGraph;
|
||||
class Project;
|
||||
class Folder;
|
||||
|
||||
/**
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
/**
|
||||
* @brief Convenience function - assumes parent is a NodeGraph
|
||||
*/
|
||||
NodeGraph* parent() const;
|
||||
Project *parent() const;
|
||||
|
||||
Project* project() const;
|
||||
|
||||
@@ -1275,9 +1275,9 @@ signals:
|
||||
|
||||
void InputDataTypeChanged(const QString& id, NodeValue::Type type);
|
||||
|
||||
void AddedToGraph(NodeGraph* graph);
|
||||
void AddedToGraph(Project* graph);
|
||||
|
||||
void RemovedFromGraph(NodeGraph* graph);
|
||||
void RemovedFromGraph(Project* graph);
|
||||
|
||||
void NodeAddedToContext(Node *node);
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ void TrackList::UpdateTrackIndexesFrom(int index)
|
||||
}
|
||||
}
|
||||
|
||||
NodeGraph *TrackList::GetParentGraph() const
|
||||
Project *TrackList::GetParentGraph() const
|
||||
{
|
||||
return parent()->parent();
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include "node/graph.h"
|
||||
#include "node/output/track/track.h"
|
||||
#include "timeline/timelinecommon.h"
|
||||
|
||||
@@ -59,7 +58,7 @@ public:
|
||||
return track_cache_.size();
|
||||
}
|
||||
|
||||
NodeGraph* GetParentGraph() const;
|
||||
Project* GetParentGraph() const;
|
||||
|
||||
const QString &track_input() const;
|
||||
NodeInput track_input(int element) const;
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
namespace olive {
|
||||
|
||||
#define super QObject
|
||||
|
||||
const QString Project::kItemMimeType = QStringLiteral("application/x-oliveprojectitemdata");
|
||||
|
||||
Project::Project() :
|
||||
@@ -65,6 +67,104 @@ Project::Project() :
|
||||
this, &Project::ColorManagerValueChanged);
|
||||
}
|
||||
|
||||
Project::~Project()
|
||||
{
|
||||
Clear();
|
||||
}
|
||||
|
||||
void Project::Clear()
|
||||
{
|
||||
// By deleting the last nodes first, we assume that nodes that are most important are deleted last
|
||||
// (e.g. Project's ColorManager or ProjectSettingsNode.
|
||||
for (auto it=node_children_.cbegin(); it!=node_children_.cend(); it++) {
|
||||
(*it)->SetCachesEnabled(false);
|
||||
}
|
||||
|
||||
while (!node_children_.isEmpty()) {
|
||||
delete node_children_.last();
|
||||
}
|
||||
}
|
||||
|
||||
int Project::GetNumberOfContextsNodeIsIn(Node *node, bool except_itself) const
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
foreach (Node *ctx, node_children_) {
|
||||
if (ctx->ContextContainsNode(node) && (!except_itself || ctx != node)) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
void Project::childEvent(QChildEvent *event)
|
||||
{
|
||||
super::childEvent(event);
|
||||
|
||||
Node* node = dynamic_cast<Node*>(event->child());
|
||||
|
||||
if (node) {
|
||||
if (event->type() == QEvent::ChildAdded) {
|
||||
|
||||
node_children_.append(node);
|
||||
|
||||
// Connect signals
|
||||
connect(node, &Node::InputConnected, this, &Project::InputConnected, Qt::DirectConnection);
|
||||
connect(node, &Node::InputDisconnected, this, &Project::InputDisconnected, Qt::DirectConnection);
|
||||
connect(node, &Node::ValueChanged, this, &Project::ValueChanged, Qt::DirectConnection);
|
||||
connect(node, &Node::InputValueHintChanged, this, &Project::InputValueHintChanged, Qt::DirectConnection);
|
||||
|
||||
if (NodeGroup *group = dynamic_cast<NodeGroup*>(node)) {
|
||||
connect(group, &NodeGroup::InputPassthroughAdded, this, &Project::GroupAddedInputPassthrough, Qt::DirectConnection);
|
||||
connect(group, &NodeGroup::InputPassthroughRemoved, this, &Project::GroupRemovedInputPassthrough, Qt::DirectConnection);
|
||||
connect(group, &NodeGroup::OutputPassthroughChanged, this, &Project::GroupChangedOutputPassthrough, Qt::DirectConnection);
|
||||
}
|
||||
|
||||
emit NodeAdded(node);
|
||||
emit node->AddedToGraph(this);
|
||||
|
||||
// Emit input connections
|
||||
for (auto it=node->input_connections().cbegin(); it!=node->input_connections().cend(); it++) {
|
||||
if (nodes().contains(it->second)) {
|
||||
emit InputConnected(it->second, it->first);
|
||||
}
|
||||
}
|
||||
|
||||
// Emit output connections
|
||||
for (auto it=node->output_connections().cbegin(); it!=node->output_connections().cend(); it++) {
|
||||
if (nodes().contains(it->second.node())) {
|
||||
emit InputConnected(it->first, it->second);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (event->type() == QEvent::ChildRemoved) {
|
||||
|
||||
node_children_.removeOne(node);
|
||||
|
||||
// Disconnect signals
|
||||
disconnect(node, &Node::InputConnected, this, &Project::InputConnected);
|
||||
disconnect(node, &Node::InputDisconnected, this, &Project::InputDisconnected);
|
||||
disconnect(node, &Node::ValueChanged, this, &Project::ValueChanged);
|
||||
disconnect(node, &Node::InputValueHintChanged, this, &Project::InputValueHintChanged);
|
||||
|
||||
if (NodeGroup *group = dynamic_cast<NodeGroup*>(node)) {
|
||||
disconnect(group, &NodeGroup::InputPassthroughAdded, this, &Project::GroupAddedInputPassthrough);
|
||||
disconnect(group, &NodeGroup::InputPassthroughRemoved, this, &Project::GroupRemovedInputPassthrough);
|
||||
disconnect(group, &NodeGroup::OutputPassthroughChanged, this, &Project::GroupChangedOutputPassthrough);
|
||||
}
|
||||
|
||||
emit NodeRemoved(node);
|
||||
emit node->RemovedFromGraph(this);
|
||||
|
||||
// Remove from any contexts
|
||||
foreach (Node *context, node_children_) {
|
||||
context->RemoveNodeFromContext(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Folder *Project::root()
|
||||
{
|
||||
return root_;
|
||||
@@ -44,12 +44,34 @@ namespace olive {
|
||||
* * Project Settings
|
||||
* * Window Layout
|
||||
*/
|
||||
class Project : public NodeGraph
|
||||
class Project : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Project();
|
||||
|
||||
virtual ~Project() override;
|
||||
|
||||
/**
|
||||
* @brief Destructively destroys all nodes in the graph
|
||||
*/
|
||||
void Clear();
|
||||
|
||||
/**
|
||||
* @brief Retrieve a complete list of the nodes belonging to this graph
|
||||
*/
|
||||
const QVector<Node*>& nodes() const
|
||||
{
|
||||
return node_children_;
|
||||
}
|
||||
|
||||
const QVector<Node*>& default_nodes() const
|
||||
{
|
||||
return default_nodes_;
|
||||
}
|
||||
|
||||
int GetNumberOfContextsNodeIsIn(Node *node, bool except_itself = false) const;
|
||||
|
||||
Folder* root();
|
||||
|
||||
QString name() const;
|
||||
@@ -124,6 +146,38 @@ signals:
|
||||
|
||||
void ModifiedChanged(bool e);
|
||||
|
||||
/**
|
||||
* @brief Signal emitted when a Node is added to the graph
|
||||
*/
|
||||
void NodeAdded(Node* node);
|
||||
|
||||
/**
|
||||
* @brief Signal emitted when a Node is removed from the graph
|
||||
*/
|
||||
void NodeRemoved(Node* node);
|
||||
|
||||
void InputConnected(Node *output, const NodeInput& input);
|
||||
|
||||
void InputDisconnected(Node *output, const NodeInput& input);
|
||||
|
||||
void ValueChanged(const NodeInput& input);
|
||||
|
||||
void InputValueHintChanged(const NodeInput& input);
|
||||
|
||||
void GroupAddedInputPassthrough(NodeGroup *group, const NodeInput &input);
|
||||
|
||||
void GroupRemovedInputPassthrough(NodeGroup *group, const NodeInput &input);
|
||||
|
||||
void GroupChangedOutputPassthrough(NodeGroup *group, Node *output);
|
||||
|
||||
protected:
|
||||
void AddDefaultNode(Node* n)
|
||||
{
|
||||
default_nodes_.append(n);
|
||||
}
|
||||
|
||||
virtual void childEvent(QChildEvent* event) override;
|
||||
|
||||
private:
|
||||
QUuid uuid_;
|
||||
|
||||
@@ -143,6 +197,10 @@ private:
|
||||
|
||||
MainWindowLayoutInfo layout_info_;
|
||||
|
||||
QVector<Node*> node_children_;
|
||||
|
||||
QVector<Node*> default_nodes_;
|
||||
|
||||
private slots:
|
||||
void ColorManagerValueChanged(const NodeInput& input, const TimeRange& range);
|
||||
|
||||
@@ -22,9 +22,5 @@ add_subdirectory(serializer)
|
||||
|
||||
set(OLIVE_SOURCES
|
||||
${OLIVE_SOURCES}
|
||||
node/project/project.h
|
||||
node/project/project.cpp
|
||||
node/project/projectviewmodel.h
|
||||
node/project/projectviewmodel.cpp
|
||||
PARENT_SCOPE
|
||||
)
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include "common/xmlutils.h"
|
||||
#include "core.h"
|
||||
#include "node/group/group.h"
|
||||
#include "serializer190219.h"
|
||||
#include "serializer210528.h"
|
||||
#include "serializer210907.h"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "common/define.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "typeserializer.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "config/config.h"
|
||||
#include "node/factory.h"
|
||||
#include "node/group/group.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "config/config.h"
|
||||
#include "node/factory.h"
|
||||
#include "node/group/group.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "config/config.h"
|
||||
#include "node/factory.h"
|
||||
#include "node/group/group.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "config/config.h"
|
||||
#include "node/factory.h"
|
||||
#include "node/group/group.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#define PROJECT_PANEL_H
|
||||
|
||||
#include "footagemanagementpanel.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "panel/panel.h"
|
||||
#include "widget/projectexplorer/projectexplorer.h"
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include <QTimer>
|
||||
|
||||
#include "common/define.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "playbackcache.h"
|
||||
|
||||
#include "node/output/viewer/viewer.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "node/project/sequence/sequence.h"
|
||||
#include "render/diskmanager.h"
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include "codec/conformmanager.h"
|
||||
#include "node/input/multicam/multicamnode.h"
|
||||
#include "node/inputdragger.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "render/diskmanager.h"
|
||||
#include "render/rendermanager.h"
|
||||
|
||||
|
||||
@@ -25,11 +25,10 @@
|
||||
|
||||
#include "config/config.h"
|
||||
#include "node/color/colormanager/colormanager.h"
|
||||
#include "node/graph.h"
|
||||
#include "node/group/group.h"
|
||||
#include "node/node.h"
|
||||
#include "node/output/viewer/viewer.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "render/projectcopier.h"
|
||||
#include "render/renderjobtracker.h"
|
||||
#include "render/renderticket.h"
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
#include "projectcopier.h"
|
||||
|
||||
#include "node/group/group.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
ProjectCopier::ProjectCopier(QObject *parent) :
|
||||
@@ -39,12 +41,12 @@ void ProjectCopier::SetProject(Project *project)
|
||||
copy_map_.clear();
|
||||
graph_update_queue_.clear();
|
||||
|
||||
disconnect(original_, &NodeGraph::NodeAdded, this, &ProjectCopier::QueueNodeAdd);
|
||||
disconnect(original_, &NodeGraph::NodeRemoved, this, &ProjectCopier::QueueNodeRemove);
|
||||
disconnect(original_, &NodeGraph::InputConnected, this, &ProjectCopier::QueueEdgeAdd);
|
||||
disconnect(original_, &NodeGraph::InputDisconnected, this, &ProjectCopier::QueueEdgeRemove);
|
||||
disconnect(original_, &NodeGraph::ValueChanged, this, &ProjectCopier::QueueValueChange);
|
||||
disconnect(original_, &NodeGraph::InputValueHintChanged, this, &ProjectCopier::QueueValueHintChange);
|
||||
disconnect(original_, &Project::NodeAdded, this, &ProjectCopier::QueueNodeAdd);
|
||||
disconnect(original_, &Project::NodeRemoved, this, &ProjectCopier::QueueNodeRemove);
|
||||
disconnect(original_, &Project::InputConnected, this, &ProjectCopier::QueueEdgeAdd);
|
||||
disconnect(original_, &Project::InputDisconnected, this, &ProjectCopier::QueueEdgeRemove);
|
||||
disconnect(original_, &Project::ValueChanged, this, &ProjectCopier::QueueValueChange);
|
||||
disconnect(original_, &Project::InputValueHintChanged, this, &ProjectCopier::QueueValueHintChange);
|
||||
}
|
||||
|
||||
original_ = project;
|
||||
@@ -71,12 +73,12 @@ void ProjectCopier::SetProject(Project *project)
|
||||
UpdateLastSyncedValue();
|
||||
|
||||
// Connect signals for future node additions/deletions
|
||||
connect(original_, &NodeGraph::NodeAdded, this, &ProjectCopier::QueueNodeAdd, Qt::DirectConnection);
|
||||
connect(original_, &NodeGraph::NodeRemoved, this, &ProjectCopier::QueueNodeRemove, Qt::DirectConnection);
|
||||
connect(original_, &NodeGraph::InputConnected, this, &ProjectCopier::QueueEdgeAdd, Qt::DirectConnection);
|
||||
connect(original_, &NodeGraph::InputDisconnected, this, &ProjectCopier::QueueEdgeRemove, Qt::DirectConnection);
|
||||
connect(original_, &NodeGraph::ValueChanged, this, &ProjectCopier::QueueValueChange, Qt::DirectConnection);
|
||||
connect(original_, &NodeGraph::InputValueHintChanged, this, &ProjectCopier::QueueValueHintChange, Qt::DirectConnection);
|
||||
connect(original_, &Project::NodeAdded, this, &ProjectCopier::QueueNodeAdd, Qt::DirectConnection);
|
||||
connect(original_, &Project::NodeRemoved, this, &ProjectCopier::QueueNodeRemove, Qt::DirectConnection);
|
||||
connect(original_, &Project::InputConnected, this, &ProjectCopier::QueueEdgeAdd, Qt::DirectConnection);
|
||||
connect(original_, &Project::InputDisconnected, this, &ProjectCopier::QueueEdgeRemove, Qt::DirectConnection);
|
||||
connect(original_, &Project::ValueChanged, this, &ProjectCopier::QueueValueChange, Qt::DirectConnection);
|
||||
connect(original_, &Project::InputValueHintChanged, this, &ProjectCopier::QueueValueHintChange, Qt::DirectConnection);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#ifndef PROJECTCOPIER_H
|
||||
#define PROJECTCOPIER_H
|
||||
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -99,7 +99,7 @@ private:
|
||||
|
||||
std::list<QueuedJob> graph_update_queue_;
|
||||
QHash<Node*, Node*> copy_map_;
|
||||
QHash<NodeGraph*, NodeGraph*> graph_map_;
|
||||
QHash<Project*, Project*> graph_map_;
|
||||
QVector<Node*> created_nodes_;
|
||||
|
||||
JobTime graph_changed_time_;
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
#include "config/config.h"
|
||||
#include "colorprocessorcache.h"
|
||||
#include "dialog/rendercancel/rendercancel.h"
|
||||
#include "node/graph.h"
|
||||
#include "node/output/viewer/viewer.h"
|
||||
#include "node/project.h"
|
||||
#include "node/traverser.h"
|
||||
#include "render/previewautocacher.h"
|
||||
#include "render/renderer.h"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include "audio/audioprocessor.h"
|
||||
#include "node/block/clip/clip.h"
|
||||
#include "node/block/transition/transition.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "rendermanager.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
#include "precachetask.h"
|
||||
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
#include <QUndoCommand>
|
||||
|
||||
#include "codec/decoder.h"
|
||||
#include "node/project/projectviewmodel.h"
|
||||
#include "task/task.h"
|
||||
#include "widget/projectexplorer/projectviewmodel.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#ifndef PROJECTLOADBASETASK_H
|
||||
#define PROJECTLOADBASETASK_H
|
||||
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "task/task.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#ifndef PROJECTSAVEMANAGER_H
|
||||
#define PROJECTSAVEMANAGER_H
|
||||
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "task/task.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "common/qtutils.h"
|
||||
#include "dialog/keyframeproperties/keyframeproperties.h"
|
||||
#include "keyframeviewundo.h"
|
||||
#include "node/group/group.h"
|
||||
#include "node/node.h"
|
||||
#include "node/project/serializer/serializer.h"
|
||||
#include "widget/menu/menu.h"
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <QVBoxLayout>
|
||||
#include <QWidget>
|
||||
|
||||
#include "node/group/group.h"
|
||||
#include "node/node.h"
|
||||
#include "node/project/serializer/serializer.h"
|
||||
#include "nodeparamviewcontext.h"
|
||||
|
||||
@@ -157,7 +157,7 @@ void NodeParamViewContext::AddEffectMenuItemTriggered(QAction *a)
|
||||
NodeInput new_node_input = n->GetEffectInput();
|
||||
MultiUndoCommand *command = new MultiUndoCommand();
|
||||
|
||||
QVector<NodeGraph*> graphs_added_to;
|
||||
QVector<Project*> graphs_added_to;
|
||||
|
||||
foreach (Node *ctx, contexts_) {
|
||||
NodeInput ctx_input = ctx->GetEffectInput();
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "common/qtutils.h"
|
||||
#include "core.h"
|
||||
#include "dialog/speedduration/speeddurationdialog.h"
|
||||
#include "node/group/group.h"
|
||||
#include "node/project/sequence/sequence.h"
|
||||
#include "nodeparamviewundo.h"
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
#include "common/qtutils.h"
|
||||
#include "core.h"
|
||||
#include "node/group/group.h"
|
||||
#include "node/node.h"
|
||||
#include "node/project/sequence/sequence.h"
|
||||
#include "nodeparamviewarraywidget.h"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <QTimer>
|
||||
|
||||
#include "core.h"
|
||||
#include "node/graph.h"
|
||||
#include "node/group/group.h"
|
||||
#include "nodeviewedge.h"
|
||||
#include "nodeviewcontext.h"
|
||||
#include "nodeviewminimap.h"
|
||||
|
||||
@@ -9,8 +9,9 @@
|
||||
|
||||
#include "core.h"
|
||||
#include "node/block/block.h"
|
||||
#include "node/graph.h"
|
||||
#include "node/group/group.h"
|
||||
#include "node/output/track/track.h"
|
||||
#include "node/project.h"
|
||||
#include "node/project/sequence/sequence.h"
|
||||
#include "nodeviewitem.h"
|
||||
#include "ui/colorcoding.h"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <QGraphicsScene>
|
||||
#include <QTimer>
|
||||
|
||||
#include "node/graph.h"
|
||||
#include "node/project.h"
|
||||
#include "nodeviewcontext.h"
|
||||
#include "nodeviewedge.h"
|
||||
#include "nodeviewitem.h"
|
||||
@@ -74,7 +74,7 @@ public slots:
|
||||
private:
|
||||
QHash<Node*, NodeViewContext*> context_map_;
|
||||
|
||||
NodeGraph* graph_;
|
||||
Project* graph_;
|
||||
|
||||
NodeViewCommon::FlowDirection direction_;
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ Project *NodeEdgeRemoveCommand::GetRelevantProject() const
|
||||
return output_->project();
|
||||
}
|
||||
|
||||
NodeAddCommand::NodeAddCommand(NodeGraph *graph, Node *node) :
|
||||
NodeAddCommand::NodeAddCommand(Project *graph, Node *node) :
|
||||
graph_(graph),
|
||||
node_(node)
|
||||
{
|
||||
|
||||
@@ -21,9 +21,8 @@
|
||||
#ifndef NODEVIEWUNDO_H
|
||||
#define NODEVIEWUNDO_H
|
||||
|
||||
#include "node/graph.h"
|
||||
#include "node/node.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "undo/undocommand.h"
|
||||
|
||||
namespace olive {
|
||||
@@ -76,7 +75,7 @@ private:
|
||||
|
||||
class NodeAddCommand : public UndoCommand {
|
||||
public:
|
||||
NodeAddCommand(NodeGraph* graph, Node* node);
|
||||
NodeAddCommand(Project* graph, Node* node);
|
||||
|
||||
void PushToThread(QThread* thread);
|
||||
|
||||
@@ -89,7 +88,7 @@ protected:
|
||||
private:
|
||||
QObject memory_manager_;
|
||||
|
||||
NodeGraph* graph_;
|
||||
Project* graph_;
|
||||
Node* node_;
|
||||
};
|
||||
|
||||
@@ -109,7 +108,7 @@ public:
|
||||
|
||||
virtual Project* GetRelevantProject() const override
|
||||
{
|
||||
return dynamic_cast<Project*>(graph_);
|
||||
return graph_;
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -135,7 +134,7 @@ private:
|
||||
QObject memory_manager_;
|
||||
|
||||
Node* node_;
|
||||
NodeGraph* graph_;
|
||||
Project* graph_;
|
||||
|
||||
MultiUndoCommand* command_;
|
||||
|
||||
@@ -372,7 +371,7 @@ private:
|
||||
Node *node;
|
||||
Node *context;
|
||||
QPointF pos;
|
||||
NodeGraph *removed_from_graph;
|
||||
Project *removed_from_graph;
|
||||
};
|
||||
|
||||
QVector<RemovedNode> removed_nodes_;
|
||||
|
||||
@@ -16,22 +16,24 @@
|
||||
|
||||
set(OLIVE_SOURCES
|
||||
${OLIVE_SOURCES}
|
||||
widget/projectexplorer/projectexplorer.h
|
||||
widget/projectexplorer/projectexplorer.cpp
|
||||
widget/projectexplorer/projectexplorertreeview.h
|
||||
widget/projectexplorer/projectexplorertreeview.cpp
|
||||
widget/projectexplorer/projectexplorerlistview.h
|
||||
widget/projectexplorer/projectexplorerlistview.cpp
|
||||
widget/projectexplorer/projectexplorerlistviewbase.h
|
||||
widget/projectexplorer/projectexplorerlistviewbase.cpp
|
||||
widget/projectexplorer/projectexplorerlistviewitemdelegate.h
|
||||
widget/projectexplorer/projectexplorerlistviewitemdelegate.cpp
|
||||
widget/projectexplorer/projectexplorericonview.h
|
||||
widget/projectexplorer/projectexplorer.h
|
||||
widget/projectexplorer/projectexplorericonview.cpp
|
||||
widget/projectexplorer/projectexplorericonviewitemdelegate.h
|
||||
widget/projectexplorer/projectexplorericonview.h
|
||||
widget/projectexplorer/projectexplorericonviewitemdelegate.cpp
|
||||
widget/projectexplorer/projectexplorernavigation.h
|
||||
widget/projectexplorer/projectexplorericonviewitemdelegate.h
|
||||
widget/projectexplorer/projectexplorerlistview.cpp
|
||||
widget/projectexplorer/projectexplorerlistview.h
|
||||
widget/projectexplorer/projectexplorerlistviewbase.cpp
|
||||
widget/projectexplorer/projectexplorerlistviewbase.h
|
||||
widget/projectexplorer/projectexplorerlistviewitemdelegate.cpp
|
||||
widget/projectexplorer/projectexplorerlistviewitemdelegate.h
|
||||
widget/projectexplorer/projectexplorernavigation.cpp
|
||||
widget/projectexplorer/projectexplorernavigation.h
|
||||
widget/projectexplorer/projectexplorertreeview.cpp
|
||||
widget/projectexplorer/projectexplorertreeview.h
|
||||
widget/projectexplorer/projectexplorerundo.h
|
||||
widget/projectexplorer/projectviewmodel.cpp
|
||||
widget/projectexplorer/projectviewmodel.h
|
||||
PARENT_SCOPE
|
||||
)
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
#include <QTimer>
|
||||
#include <QTreeView>
|
||||
|
||||
#include "node/project/project.h"
|
||||
#include "node/project/projectviewmodel.h"
|
||||
#include "node/project.h"
|
||||
#include "projectviewmodel.h"
|
||||
#include "widget/projectexplorer/projectexplorericonview.h"
|
||||
#include "widget/projectexplorer/projectexplorerlistview.h"
|
||||
#include "widget/projectexplorer/projectexplorertreeview.h"
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
|
||||
#include <QAbstractItemModel>
|
||||
|
||||
#include "project.h"
|
||||
#include "undo/undocommand.h"
|
||||
#include "node/block/block.h"
|
||||
#include "node/project.h"
|
||||
#include "undo/undocommand.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -724,7 +724,7 @@ void TimelineWidget::DeleteInToOut(bool ripple)
|
||||
|
||||
gap->set_length_and_media_out(GetConnectedNode()->GetWorkArea()->length());
|
||||
|
||||
command->add_child(new NodeAddCommand(static_cast<NodeGraph*>(track->parent()),
|
||||
command->add_child(new NodeAddCommand(static_cast<Project*>(track->parent()),
|
||||
gap));
|
||||
|
||||
command->add_child(new TrackPlaceBlockCommand(sequence()->track_list(track->type()),
|
||||
|
||||
@@ -134,7 +134,7 @@ Node *AddTool::CreateAddableClip(MultiUndoCommand *command, Sequence *sequence,
|
||||
}
|
||||
clip->set_length_and_media_out(length);
|
||||
|
||||
NodeGraph* graph = sequence->parent();
|
||||
Project* graph = sequence->parent();
|
||||
|
||||
command->add_child(new NodeAddCommand(graph, clip));
|
||||
command->add_child(new NodeSetPositionCommand(clip, clip, QPointF(0, 0)));
|
||||
|
||||
@@ -302,7 +302,7 @@ void ImportTool::DropGhosts(bool insert, MultiUndoCommand *parent_command)
|
||||
command->add_child(c);
|
||||
}
|
||||
|
||||
NodeGraph* dst_graph = nullptr;
|
||||
Project* dst_graph = nullptr;
|
||||
Sequence* sequence = this->sequence();
|
||||
bool open_sequence = false;
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ void TransitionTool::MouseRelease(TimelineViewMouseEvent *event)
|
||||
MultiUndoCommand* command = new MultiUndoCommand();
|
||||
|
||||
// Place transition in place
|
||||
command->add_child(new NodeAddCommand(static_cast<NodeGraph*>(parent()->GetConnectedNode()->parent()),
|
||||
command->add_child(new NodeAddCommand(parent()->GetConnectedNode()->parent(),
|
||||
transition));
|
||||
|
||||
command->add_child(new NodeSetPositionCommand(transition, transition, QPointF(0, 0)));
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
#include "node/block/gap/gap.h"
|
||||
#include "node/block/transition/transition.h"
|
||||
#include "node/graph.h"
|
||||
#include "node/project.h"
|
||||
#include "timelineundocommon.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#ifndef TIMELINEUNDOWORKAREA_H
|
||||
#define TIMELINEUNDOWORKAREA_H
|
||||
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <QMimeData>
|
||||
|
||||
#include "config/config.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
|
||||
namespace olive {
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include "core.h"
|
||||
#include "node/block/gap/gap.h"
|
||||
#include "node/generator/shape/shapenodebase.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "panel/multicam/multicampanel.h"
|
||||
#include "panel/panelmanager.h"
|
||||
#include "render/rendermanager.h"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <kddockwidgets/MainWindow.h>
|
||||
|
||||
#include "mainwindowlayoutinfo.h"
|
||||
#include "node/project/project.h"
|
||||
#include "node/project.h"
|
||||
#include "panel/multicam/multicampanel.h"
|
||||
#include "panel/panelmanager.h"
|
||||
#include "panel/audiomonitor/audiomonitor.h"
|
||||
|
||||
Reference in New Issue
Block a user