void RoundCornersPlugin::slotRoundCorners() { KoCanvasController* canvasController = KoToolManager::instance()->activeCanvasController(); KoSelection *selection = canvasController->canvas()->shapeManager()->selection(); KoShape * shape = selection->firstSelectedShape(); if (! shape) return; // check if we have a path based shape KoPathShape * path = dynamic_cast<KoPathShape*>(shape); if (! path) return; m_roundCornersDlg->setUnit(canvasController->canvas()->unit()); if (QDialog::Rejected == m_roundCornersDlg->exec()) return; KUndo2Command * cmd = new KUndo2Command(kundo2_i18n("Round Corners")); // convert to path before if we have a parametric shape KoParameterShape * ps = dynamic_cast<KoParameterShape*>(shape); if (ps && ps->isParametricShape()) new KoParameterToPathCommand(ps, cmd); new RoundCornersCommand(path, m_roundCornersDlg->radius(), cmd); canvasController->canvas()->addCommand(cmd); }
void WhirlPinchPlugin::slotWhirlPinch() { KoCanvasController* canvasController = KoToolManager::instance()->activeCanvasController(); KoSelection *selection = canvasController->canvas()->shapeManager()->selection(); KoShape * shape = selection->firstSelectedShape(); if (! shape) return; // check if we have a path based shape KoPathShape * path = dynamic_cast<KoPathShape*>(shape); if (! path) return; // check if it is no parametric shape KoParameterShape * ps = dynamic_cast<KoParameterShape*>(shape); if (ps && ps->isParametricShape()) return; m_whirlPinchDlg->setUnit(canvasController->canvas()->unit()); if (QDialog::Rejected == m_whirlPinchDlg->exec()) return; canvasController->canvas()->addCommand( new KarbonWhirlPinchCommand(path, m_whirlPinchDlg->angle(), m_whirlPinchDlg->pinch(), m_whirlPinchDlg->radius())); }
void SpaceNavigatorDevice::slotMoveEvent( int x, int y, int z, int rx, int ry, int rz, Qt::MouseButtons buttons ) { SpaceNavigatorEvent e( KoInputDeviceHandlerEvent::PositionChanged ); e.setPosition( x, y, z ); e.setRotation( rx, ry, rz ); e.setButton( Qt::NoButton ); e.setButtons( buttons ); KoToolManager::instance()->injectDeviceEvent( &e ); if( ! e.isAccepted() ) { // no tool wants the event, so do some standard actions KoCanvasController * controller = KoToolManager::instance()->activeCanvasController(); // check if the z-movement is dominant if( qAbs(z) > qAbs(x) && qAbs(z) > qAbs(y) ) { // zoom controller->zoomBy( controller->preferredCenter().toPoint(), pow(1.01,-z/10) ); } else { // pan controller->pan( QPoint( -x, -y ) ); } } }
void StrokeDocker::selectionChanged() { KoCanvasController* canvasController = KoToolManager::instance()->activeCanvasController(); KoSelection *selection = canvasController->canvas()->shapeManager()->selection(); KoShape * shape = selection->firstSelectedShape(); if( shape ) setStroke( shape->border() ); }
void KisNodeShape::editabilityChanged() { dbgKrita << m_d->node->isEditable(); setGeometryProtected(!m_d->node->isEditable()); KoCanvasController* canvas = KoToolManager::instance()->activeCanvasController(); if (canvas) { recursiveFindActiveLayerInChildren(canvas->canvas()->shapeManager()->selection(), this); } }
void StrokeDocker::resourceChanged(int key, const QVariant & value ) { Q_UNUSED(value); switch(key) { case KoCanvasResource::Unit: { KoCanvasController* canvasController = KoToolManager::instance()->activeCanvasController(); setUnit( canvasController->canvas()->unit() ); } break; } }
void KisCanvas2::setCanvasWidget(QWidget * widget) { KisAbstractCanvasWidget * tmp = dynamic_cast<KisAbstractCanvasWidget*>(widget); Q_ASSERT_X(tmp, "setCanvasWidget", "Cannot cast the widget to a KisAbstractCanvasWidget"); m_d->canvasWidget = tmp; widget->setAutoFillBackground(false); widget->setAttribute(Qt::WA_OpaquePaintEvent); widget->setMouseTracking(true); widget->setAcceptDrops(true); KoCanvasController *controller = canvasController(); if (controller) { Q_ASSERT(controller->canvas() == this); // Avoids jumping and redrawing when changing zoom means the image fits in the area completely controller->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); controller->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); controller->changeCanvasWidget(widget); } }
void KarbonSmallStylePreview::selectionChanged() { KoCanvasController * controller = KoToolManager::instance()->activeCanvasController(); if (! controller || ! controller->canvas()) { m_fillFrame->setFill(QSharedPointer<KoShapeBackground>(0)); m_strokeFrame->setStroke(0); QWidget::update(); return; } KoShape * shape = controller->canvas()->shapeManager()->selection()->firstSelectedShape(); if (shape) { m_fillFrame->setFill(shape->background()); m_strokeFrame->setStroke(shape->stroke()); } else { m_fillFrame->setFill(QSharedPointer<KoShapeBackground>(0)); m_strokeFrame->setStroke(0); } QWidget::update(); }
void StrokeDocker::applyChanges() { KoCanvasController* canvasController = KoToolManager::instance()->activeCanvasController(); KoSelection *selection = canvasController->canvas()->shapeManager()->selection(); canvasController->canvas()->resourceProvider()->setActiveBorder( d->border ); if( ! selection || ! selection->count() ) return; KoLineBorder * newBorder = new KoLineBorder(d->border); KoLineBorder * oldBorder = dynamic_cast<KoLineBorder*>( selection->firstSelectedShape()->border() ); if( oldBorder ) { newBorder->setColor( oldBorder->color() ); newBorder->setLineBrush( oldBorder->lineBrush() ); } KoShapeBorderCommand *cmd = new KoShapeBorderCommand( selection->selectedShapes(), newBorder ); canvasController->canvas()->addCommand( cmd ); }
void RefinePathPlugin::slotRefinePath() { KoCanvasController* canvasController = KoToolManager::instance()->activeCanvasController(); KoSelection *selection = canvasController->canvas()->shapeManager()->selection(); KoShape * shape = selection->firstSelectedShape(); if (! shape) return; // check if we have a path based shape KoPathShape * path = dynamic_cast<KoPathShape*>(shape); if (! path) return; // check if it is no parametric shape KoParameterShape * ps = dynamic_cast<KoParameterShape*>(shape); if (ps && ps->isParametricShape()) return; if (QDialog::Rejected == m_RefinePathDlg->exec()) return; canvasController->canvas()->addCommand(new KarbonPathRefineCommand(path, m_RefinePathDlg->knots())); }