began node work
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
#include "medianode.h"
|
||||
|
||||
MediaNode::MediaNode()
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef MEDIANODE_H
|
||||
#define MEDIANODE_H
|
||||
|
||||
#include "node.h"
|
||||
|
||||
class MediaNode : public Node
|
||||
{
|
||||
public:
|
||||
MediaNode();
|
||||
};
|
||||
|
||||
#endif // MEDIANODE_H
|
||||
@@ -0,0 +1,7 @@
|
||||
#include "node.h"
|
||||
|
||||
Node::Node() :
|
||||
max_inputs_(INT_MAX),
|
||||
max_outputs_(INT_MAX)
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
#ifndef NODE_H
|
||||
#define NODE_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QVector>
|
||||
|
||||
class NodeInput {
|
||||
public:
|
||||
NodeInput();
|
||||
|
||||
private:
|
||||
QString name_;
|
||||
|
||||
};
|
||||
|
||||
class Node : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Node();
|
||||
|
||||
private:
|
||||
int max_inputs_;
|
||||
QVector<Node*> inputs_;
|
||||
|
||||
int max_outputs_;
|
||||
QVector<Node*> outputs_;
|
||||
|
||||
};
|
||||
|
||||
#endif // NODE_H
|
||||
@@ -184,7 +184,11 @@ SOURCES += \
|
||||
global/clipboard.cpp \
|
||||
timeline/timelinetools.cpp \
|
||||
timeline/ghost.cpp \
|
||||
ui/waveform.cpp
|
||||
ui/waveform.cpp \
|
||||
panels/nodeeditor.cpp \
|
||||
ui/nodeview.cpp \
|
||||
nodes/medianode.cpp \
|
||||
nodes/node.cpp
|
||||
|
||||
HEADERS += \
|
||||
ui/mainwindow.h \
|
||||
@@ -325,7 +329,11 @@ HEADERS += \
|
||||
ui/timelinelabel.h \
|
||||
global/clipboard.h \
|
||||
timeline/timelinetools.h \
|
||||
ui/waveform.h
|
||||
ui/waveform.h \
|
||||
panels/nodeeditor.h \
|
||||
ui/nodeview.h \
|
||||
nodes/medianode.h \
|
||||
nodes/node.h
|
||||
|
||||
FORMS +=
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#include "nodeeditor.h"
|
||||
|
||||
#include <QVBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
|
||||
NodeEditor::NodeEditor(QWidget *parent) :
|
||||
Panel(parent),
|
||||
view_(&scene_)
|
||||
{
|
||||
resize(720, 480);
|
||||
|
||||
QWidget* central_widget = new QWidget();
|
||||
setWidget(central_widget);
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout(central_widget);
|
||||
layout->addWidget(&view_);
|
||||
|
||||
view_.setInteractive(true);
|
||||
view_.setDragMode(QGraphicsView::RubberBandDrag);
|
||||
|
||||
QPushButton* push_button = new QPushButton("heck!!!");
|
||||
scene_.addWidget(push_button);
|
||||
}
|
||||
|
||||
void NodeEditor::Retranslate()
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef NODEEDITOR_H
|
||||
#define NODEEDITOR_H
|
||||
|
||||
#include <QGraphicsScene>
|
||||
|
||||
#include "ui/panel.h"
|
||||
#include "ui/nodeview.h"
|
||||
|
||||
class NodeEditor : public Panel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
NodeEditor(QWidget* parent = nullptr);
|
||||
|
||||
virtual void Retranslate() override;
|
||||
|
||||
private:
|
||||
QGraphicsScene scene_;
|
||||
NodeView view_;
|
||||
|
||||
};
|
||||
|
||||
#endif // NODEEDITOR_H
|
||||
@@ -36,6 +36,7 @@ Viewer* panel_sequence_viewer = nullptr;
|
||||
Viewer* panel_footage_viewer = nullptr;
|
||||
QVector<Timeline*> panel_timeline;
|
||||
GraphEditor* panel_graph_editor = nullptr;
|
||||
NodeEditor* panel_node_editor = nullptr;
|
||||
|
||||
void update_ui(bool modified) {
|
||||
if (modified) {
|
||||
@@ -86,6 +87,8 @@ void alloc_panels(QWidget* parent) {
|
||||
panel_timeline.append(first_timeline_panel);
|
||||
panel_graph_editor = new GraphEditor(parent);
|
||||
panel_graph_editor->setObjectName("graph_editor");
|
||||
panel_node_editor = new NodeEditor(parent);
|
||||
panel_node_editor->setObjectName("node_editor");
|
||||
}
|
||||
|
||||
void free_panels() {
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "viewer.h"
|
||||
#include "grapheditor.h"
|
||||
#include "project.h"
|
||||
#include "nodeeditor.h"
|
||||
|
||||
extern QVector<Project*> panel_project;
|
||||
extern EffectControls* panel_effect_controls;
|
||||
@@ -33,6 +34,7 @@ extern Viewer* panel_sequence_viewer;
|
||||
extern Viewer* panel_footage_viewer;
|
||||
extern QVector<Timeline*> panel_timeline;
|
||||
extern GraphEditor* panel_graph_editor;
|
||||
extern NodeEditor* panel_node_editor;
|
||||
|
||||
void update_ui(bool modified);
|
||||
QDockWidget* get_focused_panel(bool force_hover = false);
|
||||
|
||||
@@ -148,6 +148,7 @@ void MainWindow::setup_layout(bool reset) {
|
||||
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_project.first());
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_graph_editor);
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_node_editor);
|
||||
addDockWidget(Qt::TopDockWidgetArea, panel_footage_viewer);
|
||||
tabifyDockWidget(panel_footage_viewer, panel_effect_controls);
|
||||
panel_footage_viewer->raise();
|
||||
@@ -160,6 +161,7 @@ void MainWindow::setup_layout(bool reset) {
|
||||
panel_sequence_viewer->show();
|
||||
panel_timeline.first()->show();
|
||||
panel_graph_editor->hide();
|
||||
panel_node_editor->hide();
|
||||
|
||||
panel_project.first()->setFloating(false);
|
||||
panel_effect_controls->setFloating(false);
|
||||
@@ -167,6 +169,7 @@ void MainWindow::setup_layout(bool reset) {
|
||||
panel_sequence_viewer->setFloating(false);
|
||||
panel_timeline.first()->setFloating(false);
|
||||
panel_graph_editor->setFloating(true);
|
||||
panel_node_editor->setFloating(true);
|
||||
|
||||
resizeDocks({panel_project.first(), panel_footage_viewer, panel_sequence_viewer},
|
||||
{width()/3, width()/3, width()/3},
|
||||
@@ -694,6 +697,10 @@ void MainWindow::setup_menus() {
|
||||
window_graph_editor_action->setCheckable(true);
|
||||
window_graph_editor_action->setData(reinterpret_cast<quintptr>(panel_graph_editor));
|
||||
|
||||
window_node_editor_action = MenuHelper::create_menu_action(window_menu, "panelnodeeditor", this, SLOT(toggle_panel_visibility()));
|
||||
window_node_editor_action->setCheckable(true);
|
||||
window_node_editor_action->setData(reinterpret_cast<quintptr>(panel_node_editor));
|
||||
|
||||
window_footageviewer_action = MenuHelper::create_menu_action(window_menu, "panelfootageviewer", this, SLOT(toggle_panel_visibility()));
|
||||
window_footageviewer_action->setCheckable(true);
|
||||
window_footageviewer_action->setData(reinterpret_cast<quintptr>(panel_footage_viewer));
|
||||
@@ -887,6 +894,7 @@ void MainWindow::Retranslate()
|
||||
window_effectcontrols_action->setText(tr("Effect Controls"));
|
||||
window_timeline_action->setText(tr("Timeline"));
|
||||
window_graph_editor_action->setText(tr("Graph Editor"));
|
||||
window_node_editor_action->setText(tr("Node Editor"));
|
||||
window_footageviewer_action->setText(tr("Media Viewer"));
|
||||
window_sequenceviewer_action->setText(tr("Sequence Viewer"));
|
||||
|
||||
|
||||
@@ -308,6 +308,7 @@ private:
|
||||
QAction* window_effectcontrols_action;
|
||||
QAction* window_timeline_action;
|
||||
QAction* window_graph_editor_action;
|
||||
QAction* window_node_editor_action;
|
||||
QAction* window_footageviewer_action;
|
||||
QAction* window_sequenceviewer_action;
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
#include "nodeview.h"
|
||||
|
||||
#include <QWheelEvent>
|
||||
#include <QDebug>
|
||||
|
||||
NodeView::NodeView(QGraphicsScene *scene, QWidget *parent) :
|
||||
QGraphicsView(scene, parent),
|
||||
hand_moving_(false)
|
||||
{
|
||||
setMouseTracking(true);
|
||||
setWindowTitle(tr("Node Editor"));
|
||||
}
|
||||
|
||||
void NodeView::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
QGraphicsView::mousePressEvent(event);
|
||||
}
|
||||
|
||||
void NodeView::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
QGraphicsView::mouseMoveEvent(event);
|
||||
}
|
||||
|
||||
void NodeView::mouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
}
|
||||
|
||||
void NodeView::wheelEvent(QWheelEvent *event)
|
||||
{
|
||||
if (event->angleDelta().y() > 0) {
|
||||
scale(0.9, 0.9);
|
||||
} else {
|
||||
scale(1.1, 1.1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef NODEVIEW_H
|
||||
#define NODEVIEW_H
|
||||
|
||||
#include <QGraphicsView>
|
||||
|
||||
class NodeView : public QGraphicsView {
|
||||
Q_OBJECT
|
||||
public:
|
||||
NodeView(QGraphicsScene *scene, QWidget* parent = nullptr);
|
||||
|
||||
protected:
|
||||
virtual void mousePressEvent(QMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QMouseEvent *event) override;
|
||||
virtual void wheelEvent(QWheelEvent *event) override;
|
||||
|
||||
private:
|
||||
bool hand_moving_;
|
||||
QPoint drag_start_;
|
||||
|
||||
};
|
||||
|
||||
#endif // NODEVIEW_H
|
||||
Reference in New Issue
Block a user