Пример #1
0
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);
}
Пример #2
0
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 ) );
        }
    }
}
Пример #4
0
void StrokeDocker::selectionChanged()
{
    KoCanvasController* canvasController = KoToolManager::instance()->activeCanvasController();
    KoSelection *selection = canvasController->canvas()->shapeManager()->selection();
    KoShape * shape = selection->firstSelectedShape();
    if( shape )
        setStroke( shape->border() );
}
Пример #5
0
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);
    }
}
Пример #6
0
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;
    }
}
Пример #7
0
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();
}
Пример #9
0
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 );
}
Пример #10
0
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()));
}