Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 3 additions & 11 deletions modules/editor/grapheditor/editor/graph/abstractnodegraph.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "abstractnodegraph.h"

#include "graphnode.h"
#include "graphwidgets/nodewidget.h"

#include <algorithm>

Expand Down Expand Up @@ -42,6 +43,7 @@ void AbstractNodeGraph::nodeDelete(GraphNode *node) {
linkDelete(node);

it = m_nodes.erase(it);
delete node->widget();
delete node;
break;
} else {
Expand Down Expand Up @@ -85,9 +87,6 @@ void AbstractNodeGraph::linkDelete(NodePort *port) {
while(it != m_links.end()) {
Link *link = *it;
if(link->oport == port || link->iport == port) {
GraphNode *first = link->sender;
GraphNode *second = link->receiver;

it = m_links.erase(it);
delete link;
} else {
Expand All @@ -101,10 +100,6 @@ void AbstractNodeGraph::linkDelete(GraphNode *node) {
while(it != m_links.end()) {
Link *link = *it;
if(link->sender == node || link->receiver == node) {
GraphNode *second = link->sender;
if(link->sender == node) {
second = link->receiver;
}
it = m_links.erase(it);
delete link;
} else {
Expand All @@ -117,9 +112,6 @@ void AbstractNodeGraph::linkDelete(Link *link) {
auto it = m_links.begin();
while(it != m_links.end()) {
if(*it == link) {
GraphNode *first = link->sender;
GraphNode *second = link->receiver;

m_links.erase(it);
delete link;

Expand Down Expand Up @@ -339,7 +331,7 @@ const AbstractNodeGraph::LinkList &AbstractNodeGraph::links() const {
}

void AbstractNodeGraph::graphUpdated() {
emitSignal(_SIGNAL(graphUpdated()));
emitSignal(_SIGNAL(graphUpdated()));
}

void AbstractNodeGraph::graphLoaded() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ ChangeNodeProperty::ChangeNodeProperty(const Object::ObjectList &objects, const
}

void ChangeNodeProperty::undo() {
ChangeNodeProperty::redo();
redo();
}

void ChangeNodeProperty::redo() {
Expand All @@ -31,7 +31,7 @@ void ChangeNodeProperty::redo() {
}
}

auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}
11 changes: 5 additions & 6 deletions modules/editor/grapheditor/editor/graph/actions/createlink.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,27 @@ CreateLink::CreateLink(int sender, int oport, int receiver, int iport, GraphCont
}

void CreateLink::undo() {
auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

AbstractNodeGraph::Link *link = g->link(m_index);
if(link) {
g->linkDelete(link);

g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}
}

void CreateLink::redo() {
auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

GraphNode *snd = g->node(m_sender);
GraphNode *rcv = g->node(m_receiver);
if(snd && rcv) {
NodePort *op = (m_oPort > -1) ? snd->port(m_oPort) : nullptr;
NodePort *ip = (m_iPort > -1) ? rcv->port(m_iPort) : nullptr;

AbstractNodeGraph::Link *link = g->linkCreate(snd, op, rcv, ip);
m_index = g->link(link);
m_index = g->link(g->linkCreate(snd, op, rcv, ip));

g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}
}
11 changes: 5 additions & 6 deletions modules/editor/grapheditor/editor/graph/actions/createnode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ CreateNode::CreateNode(const std::string &type, int x, int y, GraphController *c
}

void CreateNode::undo() {
auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();
g->nodeDelete(g->node(m_node));
m_controller->selectNodes(m_list);

g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}

void CreateNode::redo() {
auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();
GraphNode *node = g->nodeCreate(m_type, m_linkIndex);
if(node) {
node->setPosition(m_point);
Expand Down Expand Up @@ -54,8 +54,7 @@ void CreateNode::redo() {
NodePort *sp = (m_fromPort > -1) ? ((m_out) ? item : snd->firstPort(!m_out)) : nullptr;
NodePort *rp = (m_fromPort > -1) ? ((m_out) ? rcv->firstPort(!m_out) : item) : nullptr;

AbstractNodeGraph::Link *link = g->linkCreate(snd, sp, rcv, rp);
m_linkIndex = g->link(link);
m_linkIndex = g->link(g->linkCreate(snd, sp, rcv, rp));
}
}

Expand All @@ -66,5 +65,5 @@ void CreateNode::redo() {

m_controller->selectNodes({m_node});

g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@ DeleteLinksByPort::DeleteLinksByPort(int node, int port, GraphController *ctrl,
}

void DeleteLinksByPort::undo() {
auto g = m_controller->graph();

for(int i = 0; i < m_links.size(); ++i) {
Link link = *std::next(m_links.begin(), i);
AbstractNodeGraph *g = m_controller->graph();

for(Link &link : m_links) {
GraphNode *snd = g->node(link.sender);
GraphNode *rcv = g->node(link.receiver);
if(snd && rcv) {
Expand All @@ -23,11 +21,11 @@ void DeleteLinksByPort::undo() {
g->linkCreate(snd, op, rcv, ip);
}
}
g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}

void DeleteLinksByPort::redo() {
auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

GraphNode *node = g->node(m_node);
if(node) {
Expand All @@ -52,6 +50,6 @@ void DeleteLinksByPort::redo() {
}
g->linkDelete(item);
}
g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,17 @@ DeleteNodes::DeleteNodes(const std::list<int32_t> &selection, GraphController *c
}

void DeleteNodes::undo() {
m_controller->graph()->loadGraph(m_document.first_child());
AbstractNodeGraph *g = m_controller->graph();

g->loadGraph(m_document.first_child());
m_controller->selectNodes(m_indices);
g->graphUpdated();
}

void DeleteNodes::redo() {
m_document.reset();

auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

pugi::xml_node graphElement = m_document.append_child("graph");

Expand All @@ -38,5 +41,5 @@ void DeleteNodes::redo() {
g->nodeDelete(it);
}

g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}
4 changes: 2 additions & 2 deletions modules/editor/grapheditor/editor/graph/actions/movenodes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ MoveNodes::MoveNodes(const std::list<NodeWidget *> &selection, GraphController *
UndoCommand(name, parent),
m_controller(ctrl) {

auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

m_indices.reserve(selection.size());
m_points.reserve(selection.size());
Expand All @@ -26,7 +26,7 @@ void MoveNodes::undo() {
}

void MoveNodes::redo() {
auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

std::vector<Vector2> positions(m_indices.size());
for(int i = 0; i < m_indices.size(); i++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ PasteNodes::PasteNodes(const std::string &data, int x, int y, GraphController *c
void PasteNodes::undo() {
m_list.reverse();

auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();
for(auto &it : m_list) {
g->nodeDelete(g->node(it));
}
m_controller->selectNodes(m_lastSelect);

g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}

void PasteNodes::redo() {
auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

Vector2 maxPos(-FLT_MAX, -FLT_MAX);

Expand Down Expand Up @@ -62,5 +62,5 @@ void PasteNodes::redo() {

m_controller->selectNodes(m_list);

g->emitSignal(_SIGNAL(graphUpdated()));
g->graphUpdated();
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ void SelectNodes::undo() {
}

void SelectNodes::redo() {
auto g = m_controller->graph();
AbstractNodeGraph *g = m_controller->graph();

std::list<int32_t> list;
for(auto it : m_controller->selected()) {
Expand Down
6 changes: 1 addition & 5 deletions modules/editor/grapheditor/editor/graph/graphnode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ GraphNode::GraphNode() :

}

GraphNode::~GraphNode() {
delete m_nodeWidget;
}

AbstractNodeGraph *GraphNode::graph() const {
return m_graph;
}
Expand Down Expand Up @@ -112,7 +108,7 @@ Widget *GraphNode::widget() {
Widget *GraphNode::portWidget(int port) {
NodePort *p = GraphNode::port(port);
if(p) {
return reinterpret_cast<Widget *>(p->m_userData);
return p->m_widget;
}
return nullptr;
}
Expand Down
3 changes: 1 addition & 2 deletions modules/editor/grapheditor/editor/graph/graphnode.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class NODEGRAPH_EXPORT NodePort {

GraphNode *m_node;

void *m_userData = nullptr;
Widget *m_widget = nullptr;

uint32_t m_type;

Expand All @@ -66,7 +66,6 @@ class NODEGRAPH_EXPORT GraphNode : public Object {

public:
GraphNode();
~GraphNode();

AbstractNodeGraph *graph() const;
void setGraph(AbstractNodeGraph *graph);
Expand Down
7 changes: 3 additions & 4 deletions modules/editor/grapheditor/editor/graph/graphview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

#include "graphnode.h"
#include "graphcontroller.h"
#include "nodegroup.h"
#include "graphwidgets/nodewidget.h"
#include "graphwidgets/groupwidget.h"
#include "graphwidgets/portwidget.h"
Expand Down Expand Up @@ -231,7 +230,7 @@ void GraphView::buildLink(NodeWidget *node, int port) {
m_editor->undoRedo()->push(new CreateLink(g->node(n1), n1->portPosition(p1), g->node(n2), port, ctrl));
NodePort *p2 = n2->port(port);
if(p2) {
PortWidget *w2 = reinterpret_cast<PortWidget *>(p2->m_userData);
PortWidget *w2 = static_cast<PortWidget *>(p2->m_widget);
if(w2) {
w2->portUpdate();
}
Expand Down Expand Up @@ -265,10 +264,10 @@ void GraphView::deleteLink(NodeWidget *node, int port) {

std::list<PortWidget *> widgets;
if(p1) {
widgets = {reinterpret_cast<PortWidget *>(p1->m_userData)};
widgets = {static_cast<PortWidget *>(p1->m_widget)};
for(auto it : g->findLinks(p1)) {
if(it->oport == p1 && it->iport) {
widgets.push_back(reinterpret_cast<PortWidget *>(it->iport->m_userData));
widgets.push_back(static_cast<PortWidget *>(it->iport->m_widget));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,15 +143,15 @@ void LinksRender::composeLinks() {
bool state = false;
Vector3 s;
if(it->oport) {
PortWidget *widget = reinterpret_cast<PortWidget *>(it->oport->m_userData);
PortWidget *widget = static_cast<PortWidget *>(it->oport->m_widget);
if(widget) {
RectTransform *rect = widget->knob()->rectTransform();
Matrix4 m(rect->worldTransform());
s = worlToView * (m * Vector3(rect->size() * 0.5f, 0.0f));
}
} else {
state = true;
RectTransform *rect = reinterpret_cast<NodeWidget *>(it->sender->widget())->rectTransform();
RectTransform *rect = static_cast<NodeWidget *>(it->sender->widget())->rectTransform();
Matrix4 m(rect->worldTransform());
s = worlToView * (m * Vector3(rect->size() * 0.5f, 0.0f));
}
Expand All @@ -161,7 +161,7 @@ void LinksRender::composeLinks() {

Vector3 e;
if(it->iport) {
PortWidget *widget = reinterpret_cast<PortWidget *>(it->iport->m_userData);
PortWidget *widget = static_cast<PortWidget *>(it->iport->m_widget);
if(widget) {
RectTransform *rect = widget->knob()->rectTransform();
Matrix4 m(rect->worldTransform());
Expand All @@ -172,7 +172,7 @@ void LinksRender::composeLinks() {
}
} else {
state = true;
RectTransform *rect = reinterpret_cast<NodeWidget *>(it->receiver->widget())->rectTransform();
RectTransform *rect = static_cast<NodeWidget *>(it->receiver->widget())->rectTransform();
Matrix4 m(rect->worldTransform());
Vector3 h(rect->size() * 0.5f, 0.0f);
e = worlToView * (m * h);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#include "portwidget.h"

#include "../graphnode.h"
#include "../abstractnodegraph.h"
#include "../graphview.h"
#include "../graphcontroller.h"

Expand Down
Loading
Loading