feat: add node icons

This commit is contained in:
parker
2025-06-24 16:17:13 +01:00
parent 7f6b7d0573
commit b83388ee69
6 changed files with 48 additions and 2 deletions

View File

@@ -55,6 +55,8 @@ Network::Network(QWidget* parent)
node4->setPos(50, -200);
scene_->addItem(node4);
// scene_->addItem(new NodeEdgeGraphic(node1->getOutput(0), node2->getInput(0)));
// node1->addEdge(edge1);

View File

@@ -8,6 +8,8 @@
#include "gui/network/SocketGraphic.h"
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
#include <QGraphicsSvgItem>
#include "gui/network/NodeIconGraphic.h"
NodeGraphic::NodeGraphic(QGraphicsItem *parent)
: QGraphicsItem(parent)
@@ -21,6 +23,17 @@ NodeGraphic::NodeGraphic(QGraphicsItem *parent)
initSockets();
initFlagButtons();
initIcon();
}
void NodeGraphic::initIcon()
{
NodeIconGraphic* icon = new NodeIconGraphic("/home/parker/MyRepos/masters/static/node-icons/grid.svg", this);
float iconLeftPadding = 5;
float iconScale = 12;
icon->setScale(1.0f/icon->boundingRect().size().height()*iconScale);
icon->setPos(iconLeftPadding-iconScale/2.0f, -iconScale/2.0f);
}
void NodeGraphic::initFlagButtons()

View File

@@ -31,6 +31,7 @@ public:
private:
void initSockets();
void initFlagButtons();
void initIcon();
std::vector<SocketGraphic*> inputs_;
std::vector<SocketGraphic*> outputs_;

View File

@@ -0,0 +1,17 @@
#include "gui/network/NodeIconGraphic.h"
#include <qgraphicssvgitem.h>
#include <QBrush>
#include <QPainter>
NodeIconGraphic::NodeIconGraphic(const QString &fileName, QGraphicsItem *parent)
: QGraphicsSvgItem(fileName, parent)
{
}
// void NodeIconGraphic::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
// {
//
// this->setProperty("color", QColor("red"));
// QGraphicsSvgItem::paint(painter, option, widget);
// }

View File

@@ -0,0 +1,12 @@
#pragma once
#include <QGraphicsSvgItem>
class NodeIconGraphic
: public QGraphicsSvgItem
{
public:
NodeIconGraphic(const QString &fileName, QGraphicsItem *parent = nullptr);
protected:
// void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
};