33 #include <QPainterPath>
72 : QUndoCommand(i18n(
"Move to")),
113 : QUndoCommand(i18n(
"Line to")),
156 : QUndoCommand(i18n(
"Cubic to")),
158 m_control1(control1),
159 m_control2(control2),
200 : QUndoCommand(i18n(
"Add Rectangle")),
243 : QUndoCommand(i18n(
"Add Ellipse")),
287 : QUndoCommand(i18n(
"Move point")),
332 : QUndoCommand(i18n(
"Update Symbol")),
333 m_symbolLibrary(library),
382 : QUndoCommand(i18n(
"Import Library")),
383 m_symbolLibrary(library),
431 : QUndoCommand(i18n(
"Rotate Left")),
470 : QUndoCommand(i18n(
"Rotate Right")),
509 : QUndoCommand(i18n(
"Flip Horizontally")),
547 : QUndoCommand(i18n(
"Flip Vertical")),
588 : QUndoCommand(i18n(
"Scale to preferred size")),
590 m_originalSymbol(originalSymbol),
591 m_gridElements(gridElements),
592 m_borderSize(borderSize)
620 double threshold = 0.01;
621 QRectF fullSize(0.0, 0.0, 1.0, 1.0);
622 QRectF preferredSize(borderSize, borderSize, 1.0 - borderSize - borderSize, 1.0 - borderSize - borderSize);
625 border.addRect(fullSize);
626 border.addRect(preferredSize.adjusted(-threshold, -threshold, threshold, threshold));
627 border.setFillRule(Qt::OddEvenFill);
631 double leftOverlap = std::max(preferredSize.left() - boundingRect.left(), 0.0);
632 double topOverlap = std::max(preferredSize.top() - boundingRect.top(), 0.0);
633 double rightOverlap = std::max(boundingRect.right() - preferredSize.right(), 0.0);
634 double bottomOverlap = std::max(boundingRect.bottom() - preferredSize.bottom(), 0.0);
635 double overlap = std::max(std::max(leftOverlap, rightOverlap), std::max(topOverlap, bottomOverlap));
636 QRectF startingSize = preferredSize.adjusted(-overlap, -overlap, overlap, overlap);
637 double scale = preferredSize.width() / startingSize.width();
638 QTransform transform = QTransform::fromTranslate(-0.5, -0.5) * QTransform::fromScale(scale, scale) * QTransform::fromTranslate(0.5, 0.5);
653 : QUndoCommand(i18n(
"Change Fill State")),
695 : QUndoCommand(i18n(
"Change Fill Rule")),
737 : QUndoCommand(i18n(
"Change Cap Style")),
779 : QUndoCommand(i18n(
"Change Join Style")),
820 : QUndoCommand(i18n(
"Delete Symbol")),
821 m_symbolLibrary(library),
861 : QUndoCommand(i18n(
"Increase Line Width")),
916 if (command->id() !=
id()) {
933 : QUndoCommand(i18n(
"Decrease Line Width")),
988 if (command->id() !=
id()) {
1004 : QUndoCommand(i18n(
"Add Symbols")),
1007 QByteArray data = mimeData->data(
"application/kxstitchsymbol");
1008 QDataStream stream(&data, QIODevice::ReadOnly);
1010 while (!stream.atEnd()) {
1049 : QUndoCommand(i18n(
"Add Character")),