#include "nodeeditor.h" #include #include #include #include #include NodeEditor::NodeEditor(QWidget *parent) : EffectsPanel(parent), view_(&scene_) { setWindowTitle(tr("Node Editor")); resize(720, 480); QWidget* central_widget = new QWidget(); setWidget(central_widget); QVBoxLayout* layout = new QVBoxLayout(central_widget); layout->setSpacing(0); layout->setMargin(0); layout->addWidget(&view_); view_.setInteractive(true); view_.setDragMode(QGraphicsView::RubberBandDrag); connect(&scene_, SIGNAL(changed(const QList&)), this, SLOT(ItemsChanged())); } void NodeEditor::Retranslate() { } void NodeEditor::LoadEvent() { if (!open_effects_.isEmpty()) { QVector added_edges; Clip* first_clip = open_effects_.first()->GetEffect()->parent_clip; for (int i=0;iGetEffect()->parent_clip == first_clip) { NodeUI* node_ui = new NodeUI(); effect_ui->SetNodeParent(node_ui); effect_ui->SetSelectable(false); node_ui->SetWidget(effect_ui); node_ui->AddToScene(&scene_); node_ui->setPos(effect_ui->GetEffect()->pos()); nodes_.append(node_ui); // Get node edges QVector edges = open_effects_.at(i)->GetEffect()->GetAllEdges(); for (int j=0;jadjust(); } foreach (NodeUI* node, nodes_) { node->Widget()->GetEffect()->SetPos(node->pos()); } }