SCgPair* SCgScene::createSCgPair(SCgObject *begObj, SCgObject *endObj, const QVector<QPointF> &points) { Q_ASSERT_X(begObj && endObj, "SCgPair* SCgScene::createSCgPair(SCgObject *begObj, SCgObject *endObj, const QVector<QPointF> &points)", "Begin or end object is null"); SCgPair *pair = new SCgPair; pair->setTypeAlias("pair/const/pos/perm/orient/accessory"); pair->setBeginObject(begObj); pair->setEndObject(endObj); pair->setPoints(points); addItem(pair); return pair; }
QIcon SCgAlphabet::createPairIcon(const QSize &size, QString type) { QIcon icon; SCgPair *pair = new SCgPair; pair->setTypeAlias(type); QVector<QPointF> points; points.push_back(QPointF(-size.width() / 2.f, 0.f)); points.push_back(QPointF(size.width() / 2.f, 0.f)); pair->setPoints(points); QPixmap pixmap(size); QPainter painter; pixmap.fill(Qt::transparent); painter.begin(&pixmap); painter.setRenderHint(QPainter::Antialiasing, true); pair->setColor(QColor(0, 0, 0, 255));//(state == QIcon::On) ? 255 : 128)); painter.translate(size.width() / 2.f, size.height() / 2.f); painter.scale(0.9f, 0.9f); paintPair(&painter, pair); painter.end(); for (int mode = QIcon::Normal; mode <= QIcon::Selected; mode++) for (int state = QIcon::On; state <= QIcon::Off; state++) icon.addPixmap(pixmap, (QIcon::Mode)mode, (QIcon::State)state); delete pair; return icon; }