Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_painting_assistants_decoration.cpp File Reference
#include "kis_painting_assistants_decoration.h"
#include <optional>
#include <cstdint>
#include <limits>
#include <QList>
#include <QPointF>
#include <klocalizedstring.h>
#include <kactioncollection.h>
#include <ktoggleaction.h>
#include <kis_algebra_2d.h>
#include "kis_debug.h"
#include "KisDocument.h"
#include "kis_canvas2.h"
#include "kis_canvas_resource_provider.h"
#include "kis_icon_utils.h"
#include "KisViewManager.h"
#include <KoColor.h>
#include <KoCompositeOpRegistry.h>
#include <KoColorSpaceRegistry.h>
#include "kis_tool_proxy.h"
#include <KoColorDisplayRendererInterface.h>
#include <QPainter>
#include <QPainterPath>
#include <QApplication>
#include "kis_temporary_paint_constraint.h"

Go to the source code of this file.

Classes

struct  KisPaintingAssistantsDecoration::Private
 

Functions

void drawDoubleState (QPainter &gc, const QIcon &icon, const QSize &iconSize, const QIcon &icon2, QRect maxRect, const QPoint &position, const bool state, const KoColorDisplayRendererInterface *renderInterface)
 
void drawSingleState (QPainter &gc, const QIcon &icon, const QSize &iconSize, QRect maxRect, const QPoint &position, const KoColorDisplayRendererInterface *renderInterface, QPoint additional=QPoint())
 

Function Documentation

◆ drawDoubleState()

void drawDoubleState ( QPainter & gc,
const QIcon & icon,
const QSize & iconSize,
const QIcon & icon2,
QRect maxRect,
const QPoint & position,
const bool state,
const KoColorDisplayRendererInterface * renderInterface )

Definition at line 713 of file kis_painting_assistants_decoration.cpp.

713 {
714 maxRect.moveTopLeft(position);
715 const QMargins m(2, 2, 2, 2);
716#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
717 QRect target(QPoint(), iconSize);
718 target.moveCenter(maxRect.center());
719 target = target.marginsRemoved(m);
720 if (state) {
721 icon.paint(&gc, target);
722 } else {
723 gc.save();
724 gc.setOpacity(0.35);
725 icon2.paint(&gc, target);
726 gc.restore();
727 }
728#else
729 QImage ic = state? icon.pixmap(iconSize.width(), iconSize.height()).toImage(): icon2.pixmap(iconSize.width(), iconSize.height()).toImage();
730 QRect target(QPoint(), (ic.size()/ic.devicePixelRatioF()));
731 target.moveCenter(maxRect.center());
732 target = target.marginsRemoved(m);
733 if (state) {
734 gc.drawImage(target.intersected(maxRect), renderInterface->convertImageToDisplayColorSpace(ic));
735 } else {
736 gc.save();
737 gc.setOpacity(0.35);
738 gc.drawImage(target.intersected(maxRect.marginsRemoved(m)), renderInterface->convertImageToDisplayColorSpace(ic));
739 gc.restore();
740 }
741#endif
742}
KisMagneticGraph::vertex_descriptor target(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)
int iconSize(qreal width, qreal height)
virtual QImage convertImageToDisplayColorSpace(const QImage source) const =0
convertImageToDisplayColorSpace

References KoColorDisplayRendererInterface::convertImageToDisplayColorSpace(), iconSize(), and target().

◆ drawSingleState()

void drawSingleState ( QPainter & gc,
const QIcon & icon,
const QSize & iconSize,
QRect maxRect,
const QPoint & position,
const KoColorDisplayRendererInterface * renderInterface,
QPoint additional = QPoint() )

Definition at line 694 of file kis_painting_assistants_decoration.cpp.

694 {
695 maxRect.moveTopLeft(position+additional);
696 const QMargins m(2, 2, 2, 2);
697
698#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
699 QRect target(QPoint(), iconSize);
700 target.moveCenter(maxRect.center());
701 target = target.marginsRemoved(m);
702 icon.paint(&gc, target);
703#else
704
705 QImage ic = icon.pixmap(iconSize.width(), iconSize.height()).toImage();
706 QRect target(QPoint(), (ic.size()/ic.devicePixelRatioF()));
707 target.moveCenter(maxRect.center());
708 target = target.marginsRemoved(m);
709 gc.drawImage(target.intersected(maxRect), renderInterface->convertImageToDisplayColorSpace(ic));
710#endif
711}

References KoColorDisplayRendererInterface::convertImageToDisplayColorSpace(), iconSize(), and target().