File indexing completed on 2024-05-12 16:02:30
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2008 Jan Hambrecht <jaham@gmx.net> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "KoCheckerBoardPainter.h" 0008 #include <QPainter> 0009 0010 KoCheckerBoardPainter::KoCheckerBoardPainter(int checkerSize) 0011 : m_checkerSize(checkerSize) 0012 , m_lightColor(Qt::lightGray) 0013 , m_darkColor(Qt::darkGray) 0014 { 0015 createChecker(); 0016 } 0017 0018 void KoCheckerBoardPainter::setCheckerColors(const QColor &lightColor, const QColor &darkColor) 0019 { 0020 m_lightColor = lightColor; 0021 m_darkColor = darkColor; 0022 createChecker(); 0023 } 0024 0025 void KoCheckerBoardPainter::setCheckerSize(int checkerSize) 0026 { 0027 m_checkerSize = checkerSize; 0028 createChecker(); 0029 } 0030 0031 void KoCheckerBoardPainter::paint(QPainter &painter, const QRectF &rect, const QPointF &patternOrigin) const 0032 { 0033 QBrush brush(m_checker); 0034 brush.setTransform(QTransform::fromTranslate(patternOrigin.x(), patternOrigin.y())); 0035 painter.fillRect(rect, brush); 0036 } 0037 0038 void KoCheckerBoardPainter::paint(QPainter &painter, const QRectF &rect) const 0039 { 0040 paint(painter, rect, QPointF()); 0041 } 0042 0043 void KoCheckerBoardPainter::createChecker() 0044 { 0045 m_checker = QPixmap(2 * m_checkerSize, 2 * m_checkerSize); 0046 QPainter p(&m_checker); 0047 p.fillRect(0, 0, m_checkerSize, m_checkerSize, m_lightColor); 0048 p.fillRect(m_checkerSize, 0, m_checkerSize, m_checkerSize, m_darkColor); 0049 p.fillRect(0, m_checkerSize, m_checkerSize, m_checkerSize, m_darkColor); 0050 p.fillRect(m_checkerSize, m_checkerSize, m_checkerSize, m_checkerSize, m_lightColor); 0051 p.end(); 0052 }