revise CSS and allow modular icons

This commit is contained in:
itsmattkc
2019-07-14 23:56:55 -04:00
parent df32b881c2
commit 944e933762
514 changed files with 155122 additions and 198 deletions
+4 -5
View File
@@ -22,18 +22,17 @@
#include <QGraphicsRectItem>
#include "nodeviewitem.h"
NodeView::NodeView(QWidget *parent) :
QGraphicsView(parent),
graph_(nullptr)
{
setScene(&scene_);
QGraphicsRectItem* rect = scene_.addRect(0, 0, 50, 50, QPen(Qt::red), Qt::blue);
NodeViewItem* item = new NodeViewItem();
QGraphicsTextItem* text = scene_.addText("text");
QGraphicsItemGroup* group = scene_.createItemGroup({rect, text});
group->setFlag(QGraphicsItem::ItemIsMovable);
scene_.addItem(item);
}
void NodeView::SetGraph(NodeGraph *graph)
+53 -2
View File
@@ -20,7 +20,58 @@
#include "nodeviewitem.h"
NodeViewItem::NodeViewItem()
{
#include <QApplication>
#include <QBrush>
#include <QFontMetrics>
#include <QPainter>
#include <QPen>
#include <QStyleOptionGraphicsItem>
const int kNodeViewItemBorderWidth = 2;
const int kNodeViewItemWidth = 250;
const int kNodeViewItemPadding = 5;
NodeViewItem::NodeViewItem(QGraphicsItem *parent) :
QGraphicsRectItem(parent),
node_(nullptr)
{
setFlag(QGraphicsItem::ItemIsMovable);
setFlag(QGraphicsItem::ItemIsSelectable);
QFont f;
QFontMetrics fm(f);
setRect(0, 0, kNodeViewItemWidth, fm.height() + kNodeViewItemPadding * 2);
}
void NodeViewItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(widget)
// Set up border, which will change color if selected
QPen pen;
pen.setWidth(kNodeViewItemBorderWidth);
if (option->state & QStyle::State_Selected) {
pen.setColor(qApp->palette().highlight().color());
} else {
// FIXME: Not configurable?
pen.setColor(Qt::black);
}
// Draw rect
painter->setPen(pen);
painter->setBrush(qApp->palette().window());
painter->drawRect(rect());
// Draw text
if (node_ != nullptr) {
painter->setPen(qApp->palette().text().color());
QRectF text_rect = rect();
text_rect.adjust(kNodeViewItemPadding, kNodeViewItemPadding, -kNodeViewItemPadding, -kNodeViewItemPadding);
painter->drawText(text_rect, Qt::AlignTop | Qt::AlignLeft, node_->Name());
}
}
+12 -2
View File
@@ -21,10 +21,20 @@
#ifndef NODEVIEWITEM_H
#define NODEVIEWITEM_H
class NodeViewItem
#include <QGraphicsRectItem>
#include "node/node.h"
class NodeViewItem : public QGraphicsRectItem
{
public:
NodeViewItem();
NodeViewItem(QGraphicsItem* parent = nullptr);
protected:
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
private:
Node* node_;
};
#endif // NODEVIEWITEM_H