void MainWindow::valueChanged(QtProperty *property, const QSize &value) { if (!propertyToId.contains(property)) return; if (!currentItem) return; QString id = propertyToId[property]; if (id == QLatin1String("size")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle) { QtCanvasRectangle *i = (QtCanvasRectangle *)currentItem; i->setSize(value.width(), value.height()); } else if (currentItem->rtti() == QtCanvasItem::Rtti_Ellipse) { QtCanvasEllipse *i = (QtCanvasEllipse *)currentItem; i->setSize(value.width(), value.height()); } } canvas->update(); }
void MainWindow::itemClicked(QtCanvasItem *item) { updateExpandState(); QMap<QtProperty *, QString>::ConstIterator itProp = propertyToId.constBegin(); while (itProp != propertyToId.constEnd()) { delete itProp.key(); itProp++; } propertyToId.clear(); idToProperty.clear(); currentItem = item; if (!currentItem) { deleteAction->setEnabled(false); return; } deleteAction->setEnabled(true); QtProperty *property; property = doubleManager->addProperty(tr("Position X")); doubleManager->setRange(property, 0, canvas->width()); doubleManager->setValue(property, item->x()); addProperty(property, QLatin1String("xpos")); property = doubleManager->addProperty(tr("Position Y")); doubleManager->setRange(property, 0, canvas->height()); doubleManager->setValue(property, item->y()); addProperty(property, QLatin1String("ypos")); property = doubleManager->addProperty(tr("Position Z")); doubleManager->setRange(property, 0, 256); doubleManager->setValue(property, item->z()); addProperty(property, QLatin1String("zpos")); if (item->rtti() == QtCanvasItem::Rtti_Rectangle) { QtCanvasRectangle *i = (QtCanvasRectangle *)item; property = colorManager->addProperty(tr("Brush Color")); colorManager->setValue(property, i->brush().color()); addProperty(property, QLatin1String("brush")); property = colorManager->addProperty(tr("Pen Color")); colorManager->setValue(property, i->pen().color()); addProperty(property, QLatin1String("pen")); property = sizeManager->addProperty(tr("Size")); sizeManager->setValue(property, i->size()); addProperty(property, QLatin1String("size")); } else if (item->rtti() == QtCanvasItem::Rtti_Line) { QtCanvasLine *i = (QtCanvasLine *)item; property = colorManager->addProperty(tr("Pen Color")); colorManager->setValue(property, i->pen().color()); addProperty(property, QLatin1String("pen")); property = pointManager->addProperty(tr("Vector")); pointManager->setValue(property, i->endPoint()); addProperty(property, QLatin1String("endpoint")); } else if (item->rtti() == QtCanvasItem::Rtti_Ellipse) { QtCanvasEllipse *i = (QtCanvasEllipse *)item; property = colorManager->addProperty(tr("Brush Color")); colorManager->setValue(property, i->brush().color()); addProperty(property, QLatin1String("brush")); property = sizeManager->addProperty(tr("Size")); sizeManager->setValue(property, QSize(i->width(), i->height())); sizeManager->setRange(property, QSize(0, 0), QSize(1000, 1000)); addProperty(property, QLatin1String("size")); } else if (item->rtti() == QtCanvasItem::Rtti_Text) { QtCanvasText *i = (QtCanvasText *)item; property = colorManager->addProperty(tr("Color")); colorManager->setValue(property, i->color()); addProperty(property, QLatin1String("color")); property = stringManager->addProperty(tr("Text")); stringManager->setValue(property, i->text()); addProperty(property, QLatin1String("text")); property = fontManager->addProperty(tr("Font")); fontManager->setValue(property, i->font()); addProperty(property, QLatin1String("font")); } }
void MainWindow::valueChanged(QtProperty *property, const QVariant &value) { if (!propertyToId.contains(property)) return; if (!currentItem) return; QString id = propertyToId[property]; if (id == QLatin1String("xpos")) { currentItem->setX(value.toDouble()); } else if (id == QLatin1String("ypos")) { currentItem->setY(value.toDouble()); } else if (id == QLatin1String("zpos")) { currentItem->setZ(value.toDouble()); } else if (id == QLatin1String("text")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Text) { QtCanvasText *i = (QtCanvasText *)currentItem; i->setText(qVariantValue<QString>(value)); } } else if (id == QLatin1String("color")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Text) { QtCanvasText *i = (QtCanvasText *)currentItem; i->setColor(qVariantValue<QColor>(value)); } } else if (id == QLatin1String("brush")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle || currentItem->rtti() == QtCanvasItem::Rtti_Ellipse) { QtCanvasPolygonalItem *i = (QtCanvasPolygonalItem *)currentItem; QBrush b = i->brush(); b.setColor(qVariantValue<QColor>(value)); i->setBrush(b); } } else if (id == QLatin1String("pen")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle || currentItem->rtti() == QtCanvasItem::Rtti_Line) { QtCanvasPolygonalItem *i = (QtCanvasPolygonalItem *)currentItem; QPen p = i->pen(); p.setColor(qVariantValue<QColor>(value)); i->setPen(p); } } else if (id == QLatin1String("font")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Text) { QtCanvasText *i = (QtCanvasText *)currentItem; i->setFont(qVariantValue<QFont>(value)); } } else if (id == QLatin1String("endpoint")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Line) { QtCanvasLine *i = (QtCanvasLine *)currentItem; QPoint p = qVariantValue<QPoint>(value); i->setPoints(i->startPoint().x(), i->startPoint().y(), p.x(), p.y()); } } else if (id == QLatin1String("size")) { if (currentItem->rtti() == QtCanvasItem::Rtti_Rectangle) { QtCanvasRectangle *i = (QtCanvasRectangle *)currentItem; QSize s = qVariantValue<QSize>(value); i->setSize(s.width(), s.height()); } else if (currentItem->rtti() == QtCanvasItem::Rtti_Ellipse) { QtCanvasEllipse *i = (QtCanvasEllipse *)currentItem; QSize s = qVariantValue<QSize>(value); i->setSize(s.width(), s.height()); } } canvas->update(); }