work towards group editor

This commit is contained in:
itsmattkc
2021-12-27 15:16:49 -08:00
parent a8ac7edd51
commit 5223483e8e
23 changed files with 500 additions and 267 deletions
+6 -26
View File
@@ -20,40 +20,20 @@
#include "node.h"
#include <QVBoxLayout>
namespace olive {
NodePanel::NodePanel(QWidget *parent) :
PanelWidget(QStringLiteral("NodePanel"), parent)
{
QWidget *outer_widget = new QWidget(this);
node_widget_ = new NodeWidget();
connect(this, &NodePanel::visibilityChanged, node_widget_->view(), &NodeView::CenterOnItemsBoundingRect);
QVBoxLayout *outer_layout = new QVBoxLayout(outer_widget);
outer_layout->setMargin(0);
toolbar_ = new NodeViewToolBar();
outer_layout->addWidget(toolbar_);
// Create NodeView widget
node_view_ = new NodeView(this);
outer_layout->addWidget(node_view_);
connect(this, &NodePanel::visibilityChanged, node_view_, &NodeView::CenterOnItemsBoundingRect);
// Connect toolbar to NodeView
connect(toolbar_, &NodeViewToolBar::MiniMapEnabledToggled, node_view_, &NodeView::SetMiniMapEnabled);
connect(toolbar_, &NodeViewToolBar::AddNodeClicked, node_view_, &NodeView::ShowAddMenu);
// Set defaults
toolbar_->SetMiniMapEnabled(true);
node_view_->SetMiniMapEnabled(true);
// Connect node view signals to this panel
connect(node_view_, &NodeView::NodesSelected, this, &NodePanel::NodesSelected);
connect(node_view_, &NodeView::NodesDeselected, this, &NodePanel::NodesDeselected);
// Connect node view signals to this panel - MAY REMOVE
connect(node_widget_->view(), &NodeView::NodesSelected, this, &NodePanel::NodesSelected);
connect(node_widget_->view(), &NodeView::NodesDeselected, this, &NodePanel::NodesDeselected);
// Set it as the main widget of this panel
SetWidgetWithPadding(outer_widget);
SetWidgetWithPadding(node_widget_);
// Set strings
Retranslate();
+21 -20
View File
@@ -21,8 +21,7 @@
#ifndef NODEPANEL_H
#define NODEPANEL_H
#include "widget/nodeview/nodeview.h"
#include "widget/nodeview/nodeviewtoolbar.h"
#include "widget/nodeview/nodewidget.h"
#include "widget/panel/panel.h"
namespace olive {
@@ -36,76 +35,80 @@ class NodePanel : public PanelWidget
public:
NodePanel(QWidget* parent);
NodeWidget *GetNodeWidget() const
{
return node_widget_;
}
void SetContexts(const QVector<Node*> &nodes)
{
node_view_->SetContexts(nodes);
toolbar_->setEnabled(!nodes.isEmpty());
node_widget_->SetContexts(nodes);
}
void CloseContextsBelongingToProject(Project *project)
{
node_view_->CloseContextsBelongingToProject(project);
node_widget_->view()->CloseContextsBelongingToProject(project);
}
const QVector<Node*> &GetCurrentContexts() const
{
return node_view_->GetCurrentContexts();
return node_widget_->view()->GetCurrentContexts();
}
virtual void SelectAll() override
{
node_view_->SelectAll();
node_widget_->view()->SelectAll();
}
virtual void DeselectAll() override
{
node_view_->DeselectAll();
node_widget_->view()->DeselectAll();
}
virtual void DeleteSelected() override
{
node_view_->DeleteSelected();
node_widget_->view()->DeleteSelected();
}
virtual void CutSelected() override
{
node_view_->CopySelected(true);
node_widget_->view()->CopySelected(true);
}
virtual void CopySelected() override
{
node_view_->CopySelected(false);
node_widget_->view()->CopySelected(false);
}
virtual void Paste() override
{
node_view_->Paste();
node_widget_->view()->Paste();
}
virtual void Duplicate() override
{
node_view_->Duplicate();
node_widget_->view()->Duplicate();
}
virtual void SetColorLabel(int index) override
{
node_view_->SetColorLabel(index);
node_widget_->view()->SetColorLabel(index);
}
virtual void ZoomIn() override
{
node_view_->ZoomIn();
node_widget_->view()->ZoomIn();
}
virtual void ZoomOut() override
{
node_view_->ZoomOut();
node_widget_->view()->ZoomOut();
}
public slots:
void Select(const QVector<Node*>& nodes, bool center_view_on_item)
{
node_view_->Select(nodes, center_view_on_item);
node_widget_->view()->Select(nodes, center_view_on_item);
}
signals:
@@ -119,9 +122,7 @@ private:
SetTitle(tr("Node Editor"));
}
NodeView* node_view_;
NodeViewToolBar *toolbar_;
NodeWidget *node_widget_;
};