Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_painting_assistants_decoration.cpp File Reference
#include "kis_painting_assistants_decoration.h"
#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 <KoCompositeOpRegistry.h>
#include "kis_tool_proxy.h"
#include <KoColorDisplayRendererInterface.h>
#include <QPainter>
#include <QPainterPath>
#include <QApplication>

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 587 of file kis_painting_assistants_decoration.cpp.

587 {
588 maxRect.moveTopLeft(position);
589 const QMargins m(2, 2, 2, 2);
590#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
591 QRect target(QPoint(), iconSize);
592 target.moveCenter(maxRect.center());
593 target = target.marginsRemoved(m);
594 if (state) {
595 icon.paint(&gc, target);
596 } else {
597 gc.save();
598 gc.setOpacity(0.35);
599 icon2.paint(&gc, target);
600 gc.restore();
601 }
602#else
603 QImage ic = state? icon.pixmap(iconSize.width(), iconSize.height()).toImage(): icon2.pixmap(iconSize.width(), iconSize.height()).toImage();
604 QRect target(QPoint(), (ic.size()/ic.devicePixelRatioF()));
605 target.moveCenter(maxRect.center());
606 target = target.marginsRemoved(m);
607 if (state) {
608 gc.drawImage(target.intersected(maxRect), renderInterface->convertImageToDisplayColorSpace(ic));
609 } else {
610 gc.save();
611 gc.setOpacity(0.35);
612 gc.drawImage(target.intersected(maxRect.marginsRemoved(m)), renderInterface->convertImageToDisplayColorSpace(ic));
613 gc.restore();
614 }
615#endif
616}
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 568 of file kis_painting_assistants_decoration.cpp.

568 {
569 maxRect.moveTopLeft(position+additional);
570 const QMargins m(2, 2, 2, 2);
571
572#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
573 QRect target(QPoint(), iconSize);
574 target.moveCenter(maxRect.center());
575 target = target.marginsRemoved(m);
576 icon.paint(&gc, target);
577#else
578
579 QImage ic = icon.pixmap(iconSize.width(), iconSize.height()).toImage();
580 QRect target(QPoint(), (ic.size()/ic.devicePixelRatioF()));
581 target.moveCenter(maxRect.center());
582 target = target.marginsRemoved(m);
583 gc.drawImage(target.intersected(maxRect), renderInterface->convertImageToDisplayColorSpace(ic));
584#endif
585}

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