void PencilTool::paintVectorStroke(Layer* layer) { if (mStrokePoints.empty()) return; // Clear the temporary pixel path mScribbleArea->clearBitmapBuffer(); qreal tol = mScribbleArea->getCurveSmoothing() / mEditor->view()->scaling(); BezierCurve curve(mStrokePoints, mStrokePressures, tol); curve.setWidth(0); curve.setFeather(0); curve.setFilled(false); curve.setInvisibility(true); curve.setVariableWidth(false); curve.setColourNumber(mEditor->color()->frontColorNumber()); VectorImage* vectorImage = ((LayerVector *)layer)->getLastVectorImageAtFrame(mEditor->currentFrame(), 0); vectorImage->addCurve(curve, qAbs(mEditor->view()->scaling()), properties.vectorMergeEnabled); if (properties.useFillContour) { vectorImage->fillContour(mStrokePoints, mEditor->color()->frontColorNumber()); } if (vectorImage->isAnyCurveSelected() || mScribbleArea->isSomethingSelected()) { mScribbleArea->deselectAll(); } // select last/newest curve vectorImage->setSelected(vectorImage->getLastCurveNumber(), true); // TODO: selection doesn't apply on enter mScribbleArea->setModified(mEditor->layers()->currentLayerIndex(), mEditor->currentFrame()); mScribbleArea->setAllDirty(); }