void BucketTool::mouseReleaseEvent(QMouseEvent *event) { Layer *layer = m_pEditor->getCurrentLayer(); if (layer == NULL) { return; } if (event->button() == Qt::LeftButton) { if (layer->type == Layer::BITMAP) { BitmapImage *sourceImage = ((LayerBitmap *)layer)->getLastBitmapImageAtFrame(m_pEditor->m_nCurrentFrameIndex, 0); Layer *targetLayer = layer; // by default int layerNumber = m_pEditor->m_nCurrentLayerIndex; // by default if (m_pEditor->m_nCurrentLayerIndex > 0) { Layer *layer2 = m_pEditor->getCurrentLayer(-1); if (layer2->type == Layer::BITMAP) { targetLayer = layer2; layerNumber = layerNumber - 1; } } BitmapImage *targetImage = ((LayerBitmap *)targetLayer)->getLastBitmapImageAtFrame(m_pEditor->m_nCurrentFrameIndex, 0); BitmapImage::floodFill(sourceImage, targetImage, getLastPoint().toPoint(), qRgba(0, 0, 0, 0), m_pEditor->colorManager()->frontColor().rgba(), 10 * 10, true); m_pScribbleArea->setModified(layerNumber, m_pEditor->m_nCurrentFrameIndex); m_pScribbleArea->setAllDirty(); } else if (layer->type == Layer::VECTOR) { VectorImage *vectorImage = ((LayerVector *)layer)->getLastVectorImageAtFrame(m_pEditor->m_nCurrentFrameIndex, 0); if (event->modifiers() == Qt::AltModifier) { vectorImage->removeArea(getLastPoint()); } else { m_pScribbleArea->floodFill(vectorImage, getLastPixel().toPoint(), qRgba(0, 0, 0, 0), qRgb(200, 200, 200), 100 * 100); } m_pScribbleArea->setModified(m_pEditor->m_nCurrentLayerIndex, m_pEditor->m_nCurrentFrameIndex); m_pScribbleArea->setAllDirty(); } } }
QPointF BaseTool::getLastPoint() { return m_pScribbleArea->pixelToPoint(getLastPixel()); }
QPointF BaseTool::getLastPoint() { return mEditor->view()->mapScreenToCanvas( getLastPixel() ); }