nodeview: added 'add' button to toolbar

This commit is contained in:
itsmattkc
2021-07-10 08:51:51 -07:00
parent 652a53c18e
commit 6e14e51f21
5 changed files with 32 additions and 3 deletions
+1
View File
@@ -41,6 +41,7 @@ NodePanel::NodePanel(QWidget *parent) :
// 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);
+9 -3
View File
@@ -1026,9 +1026,7 @@ void NodeView::ShowContextMenu(const QPoint &pos)
m.addSeparator();
Menu* add_menu = NodeFactory::CreateMenu(&m);
add_menu->setTitle(tr("Add"));
connect(add_menu, &Menu::triggered, this, &NodeView::CreateNodeSlot);
Menu* add_menu = CreateAddMenu(&m);
m.addMenu(add_menu);
}
@@ -1495,6 +1493,14 @@ QPointF NodeView::GetEstimatedPositionForContext(NodeViewItem *item, Node *conte
return item->GetNodePosition() - context_offsets_.value(context);
}
Menu *NodeView::CreateAddMenu(Menu *parent)
{
Menu* add_menu = NodeFactory::CreateMenu(parent);
add_menu->setTitle(tr("Add"));
connect(add_menu, &Menu::triggered, this, &NodeView::CreateNodeSlot);
return add_menu;
}
NodeView::NodeViewAttachNodesToCursor::NodeViewAttachNodesToCursor(NodeView *view, const QVector<Node *> &nodes) :
view_(view),
nodes_(nodes)
+10
View File
@@ -30,6 +30,7 @@
#include "nodeviewminimap.h"
#include "nodeviewscene.h"
#include "widget/handmovableview/handmovableview.h"
#include "widget/menu/menu.h"
namespace olive {
@@ -84,6 +85,13 @@ public slots:
minimap_->setVisible(e);
}
void ShowAddMenu()
{
Menu *m = CreateAddMenu(nullptr);
m->exec(QCursor::pos());
delete m;
}
signals:
void NodesSelected(const QVector<Node*>& nodes);
@@ -126,6 +134,8 @@ private:
QPointF GetEstimatedPositionForContext(NodeViewItem *item, Node *context) const;
Menu *CreateAddMenu(Menu *parent);
class NodeViewAttachNodesToCursor : public UndoCommand
{
public:
+8
View File
@@ -3,6 +3,8 @@
#include <QEvent>
#include <QHBoxLayout>
#include "ui/icons/icons.h"
namespace olive {
#define super QWidget
@@ -13,6 +15,10 @@ NodeViewToolBar::NodeViewToolBar(QWidget *parent) :
QHBoxLayout *layout = new QHBoxLayout(this);
layout->setMargin(0);
add_node_btn_ = new QPushButton();
connect(add_node_btn_, &QPushButton::clicked, this, &NodeViewToolBar::AddNodeClicked);
layout->addWidget(add_node_btn_);
minimap_btn_ = new QPushButton();
minimap_btn_->setCheckable(true);
connect(minimap_btn_, &QPushButton::clicked, this, &NodeViewToolBar::MiniMapEnabledToggled);
@@ -36,12 +42,14 @@ void NodeViewToolBar::changeEvent(QEvent *e)
void NodeViewToolBar::Retranslate()
{
add_node_btn_->setToolTip(tr("Add Node"));
minimap_btn_->setText(tr("Mini-Map"));
minimap_btn_->setToolTip(tr("Toggle Mini-Map"));
}
void NodeViewToolBar::UpdateIcons()
{
add_node_btn_->setIcon(icon::Add);
}
}
+4
View File
@@ -19,6 +19,8 @@ public slots:
}
signals:
void AddNodeClicked();
void MiniMapEnabledToggled(bool e);
protected:
@@ -29,6 +31,8 @@ private:
void UpdateIcons();
QPushButton *add_node_btn_;
QPushButton *minimap_btn_;
};