summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/drawpad/filltool.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/noncore/graphics/drawpad/filltool.cpp b/noncore/graphics/drawpad/filltool.cpp
index 2a39d04..b47aa60 100644
--- a/noncore/graphics/drawpad/filltool.cpp
+++ b/noncore/graphics/drawpad/filltool.cpp
@@ -23,32 +23,37 @@ const int FILL_THRESHOLD = 65536;
FillTool::FillTool(DrawPad* drawPad, DrawPadCanvas* drawPadCanvas)
: Tool(drawPad, drawPadCanvas)
{
}
FillTool::~FillTool()
{
}
void FillTool::mousePressEvent(QMouseEvent* e)
{
int x = e->x();
int y = e->y();
m_image = m_pDrawPadCanvas->currentPage()->pixmap()->convertToImage();
+
+ if (m_image.depth() <= 8) {
+ m_image = m_image.convertDepth(32);
+ }
+
m_fillRgb = m_pDrawPad->brush().color().rgb();
m_oldRgb = m_image.pixel(x, y);
if (m_oldRgb != m_fillRgb) {
m_pDrawPadCanvas->backupPage();
if (m_pDrawPad->antiAliasing()) {
m_mask.create(m_image.width(), m_image.height(), 8, 2);
m_mask.fill(0);
fillMaskLine(x, y);
for (int i = 0; i < m_image.width(); i++) {
for (int j = 0; j < m_image.height(); j++) {
if (m_mask.pixelIndex(i, j) == 1) {
setInterpolatedPixel(i, j);