void SCgNode::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { /* need to rebuild that code to more flexible. Just for example make drawers class for different types. */ QRectF boundRect = boundingRect(); if (!mContentVisible) { painter->save(); SCgAlphabet::getInstance().paintNode(painter, mColor, boundRect, mConstType, mStructType); painter->restore(); if (isContentData()) { QBrush brush(QColor(128, 0, 255), Qt::SolidPattern); painter->setBrush(brush); painter->drawRect(boundRect.right() - 5, boundRect.bottom() - 5, 5, 5); } }else { QPen pen(mColor); pen.setWidthF(3.f); painter->setPen(pen); painter->drawRect(boundRect.adjusted(2, 2, -2, -2)); } SCgObject::paint(painter, option, widget); }
void SCgNode::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { /* need to rebuild that code to more flexible. Just for example make drawers class for different types. */ QRectF boundRect = boundingRect(); if (!mIsContentVisible) { painter->save(); SCgAlphabet::getInstance().paintNode(painter, mColor, boundRect, mConstType, mStructType); painter->restore(); if (isContentData()) { QBrush brush(QColor(128, 0, 255), Qt::SolidPattern); painter->setBrush(brush); painter->drawRect(boundRect.right() - 5, boundRect.bottom() - 5, 5, 5); } }else { QPen pen(mColor); pen.setWidthF(3.f); painter->setPen(pen); painter->drawRect(boundRect.adjusted(2, 2, -2, -2)); } SCgObject::paint(painter, option, widget); // draw content corner if (mIsContentVisible) { QRectF rc = boundRect.adjusted(2, 2, -2, -2); QPolygonF polygon; polygon.append(rc.topLeft()); polygon.append(QPointF(rc.left() + 10, rc.top())); polygon.append(QPointF(rc.left(), rc.top() + 10)); QPainterPath path; path.addPolygon(polygon); path.closeSubpath(); painter->fillPath(path, QBrush(mColor)); } }