10#include <KoAbstractGradient.h>
11#include <kis_paintop_preset.h>
13#include <KisViewManager.h>
14#include <kis_node_manager.h>
15#include <kis_selection_manager.h>
16#include <kis_canvas_resource_provider.h>
17#include <kis_exposure_gamma_correction_interface.h>
18#include <kis_paintop_box.h>
19#include <KisMainWindow.h>
20#include <KoCanvasBase.h>
21#include <kis_canvas2.h>
22#include <KisResourceTypes.h>
23#include <KisDocument.h>
28#include "ManagedColor.h"
30#include "LibKisUtils.h"
35 QPointer<KisView> view;
38View::View(KisView* view,
QObject *parent)
50bool View::operator==(
const View &other)
const
52 return (d->view == other.d->view);
55bool View::operator!=(
const View &other)
const
57 return !(operator==(other));
62 if (!d->view)
return 0;
63 KisMainWindow *mainwin = d->view->mainWindow();
64 Window *win =
new Window(mainwin);
71 if (!d->view)
return 0;
79 d->view = d->view->replaceBy(
document->document());
84 if (!d->view)
return false;
85 return d->view->isVisible();
91 KisMainWindow *mainwin = d->view->mainWindow();
92 mainwin->setActiveView(d->view);
93 mainwin->subWindowActivated();
98 if (!d->view)
return 0;
110 if (!d->view)
return;
111 if (!resource)
return;
113 KoResourceSP r = resource->resource();
116 if (KoPatternSP pattern = r.dynamicCast<KoPattern>()) {
118 d->view->canvasBase()->resourceManager()->setResource(KoCanvasResource::CurrentPattern, value);
119 }
else if (KoAbstractGradientSP gradient = r.dynamicCast<KoAbstractGradient>()) {
121 d->view->canvasBase()->resourceManager()->setResource(KoCanvasResource::CurrentGradient, value);
122 }
else if (KoResourceSP preset = r.dynamicCast<KisPaintOpPreset>()) {
123 d->view->viewManager()->paintOpBox()->resourceSelected(preset);
130 if (!d->view)
return 0;
131 return new ManagedColor(d->view->resourceProvider()->fgColor());
136 if (!d->view)
return;
137 d->view->resourceProvider()->setFGColor(color->color());
142 if (!d->view)
return 0;
143 return new ManagedColor(d->view->resourceProvider()->bgColor());
148 if (!d->view)
return;
149 d->view->resourceProvider()->setBGColor(color->color());
154 if (!d->view)
return 0;
155 return new Resource(d->view->resourceProvider()->currentPreset(), ResourceType::PaintOpPresets);
165 if (!d->view)
return 0;
166 return new Resource(d->view->resourceProvider()->currentPattern(), ResourceType::Patterns);
176 if (!d->view)
return 0;
177 return new Resource(d->view->resourceProvider()->currentGradient(), ResourceType::Gradients);
187 if (!d->view)
return "";
188 return d->view->resourceProvider()->currentCompositeOp();
193 if (!d->view)
return;
194 d->view->resourceProvider()->setCurrentCompositeOp(blendingMode);
199 if (!d->view)
return 0.0;
200 KisExposureGammaCorrectionInterface *iface = d->view->canvasBase()->exposureGammaCorrectionInterface();
201 return iface->currentExposure();
206 if (!d->view)
return;
207 KisExposureGammaCorrectionInterface *iface = d->view->canvasBase()->exposureGammaCorrectionInterface();
208 iface->setCurrentExposure(exposure);
213 if (!d->view)
return 0.0;
214 KisExposureGammaCorrectionInterface *iface = d->view->canvasBase()->exposureGammaCorrectionInterface();
215 return iface->currentGamma();
220 if (!d->view)
return;
221 KisExposureGammaCorrectionInterface *iface = d->view->canvasBase()->exposureGammaCorrectionInterface();
222 return iface->setCurrentGamma(gamma);
227 if (!d->view)
return 0.0;
228 return d->view->resourceProvider()->opacity();
233 if (!d->view)
return;
234 d->view->resourceProvider()->setOpacity(opacity);
239 if (!d->view)
return 0.0;
240 return d->view->resourceProvider()->size();
245 if (!d->view)
return;
246 d->view->resourceProvider()->setSize(
brushSize);
251 if (!d->view)
return 0.0;
252 return d->view->resourceProvider()->brushRotation();
257 if (!d->view)
return;
258 d->view->resourceProvider()->setBrushRotation(
brushRotation);
263 if (!d->view)
return 0.0;
264 return d->view->resourceProvider()->flow();
269 if (!d->view)
return;
270 d->view->resourceProvider()->setFlow(flow);
275 if (!d->view)
return 0.0;
276 return d->view->resourceProvider()->patternSize();
281 if (!d->view)
return;
282 d->view->resourceProvider()->setPatternSize(size);
290 return d->view->resourceProvider()->eraserMode();
298 d->view->resourceProvider()->setEraserMode(value);
306 return d->view->resourceProvider()->globalAlphaLock();
314 d->view->resourceProvider()->setGlobalAlphaLock(value);
322 return d->view->resourceProvider()->disablePressure();
330 d->view->resourceProvider()->setDisablePressure(value);
338 if (!d->view->viewManager()->nodeManager())
return QList<Node *>();
340 KisNodeList
selectedNodes = d->view->viewManager()->nodeManager()->selectedNodes();
341 return LibKisUtils::createNodeList(
selectedNodes, d->view->image());
346 if (!d->view)
return;
348 KisFloatingMessage::Priority p;
349 p =
static_cast<KisFloatingMessage::Priority
>(priority);
351 d->view->showFloatingMessage(message, icon, timeout, p);
356 if (!d->view->document())
return QTransform();
357 return d->view->canvasBase()->coordinatesConverter()->documentToFlakeTransform().inverted();
362 if (!d->view->document())
return QTransform();
363 return d->view->canvasBase()->coordinatesConverter()->flakeToWidgetTransform();
368 if (!d->view->document())
return QTransform();
370 const KisCoordinatesConverter* coordinatesConverter(d->view->canvasBase()->coordinatesConverter());
371 QTransform imageToFlakeTransform = coordinatesConverter->imageToDocumentTransform() * coordinatesConverter->documentToFlakeTransform();
373 return imageToFlakeTransform.
inverted();
Canvas wraps the canvas inside a view on an image/document.
The Document class encapsulates a Krita Document/Image.
The ManagedColor class is a class to handle colors that are color managed.
A Resource represents a gradient, pattern, brush tip, brush preset, palette or workspace definition.
View represents one view on a document.
void setBrushRotation(qreal brushRotation)
set the current rotation for brush tip
float HDRExposure() const
bool eraserMode() const
return current eraser mode status (active/inactive)
void setHDRGamma(float gamma)
set the current HDR Gamma value
bool globalAlphaLock() const
return current global alpha lock mode (active/inactive)
qreal patternSize() const
return the current pattern size for brush
void setBrushSize(qreal brushSize)
set the current size for brush
void setCurrentBrushPreset(Resource *resource)
set the current selected preset
void setDisablePressure(bool value)
set current disabled pressure status
void setGlobalAlphaLock(bool value)
set current global alpha lock mode active/inactive
qreal paintingFlow() const
return the current flow for brush
void setDocument(Document *document)
Reset the view to show document.
void setCurrentPattern(Resource *resource)
set the current selected pattern
ManagedColor * foregroundColor() const
foregroundColor allows access to the currently active foreground color.
Resource * currentPattern() const
return the current selected pattern
void setCurrentBlendingMode(const QString &blendingMode)
set the current blending mode for brush
ManagedColor * backgroundColor() const
backgroundColor allows access to the currently active background color.
QTransform flakeToCanvasTransform() const
flakeToCanvasTransform The transformation of the canvas relative to the view without rotation and mir...
QString currentBlendingMode() const
return the current blending mode for brush
void showFloatingMessage(const QString &message, const QIcon &icon, int timeout, int priority)
showFloatingMessage displays a floating message box on the top-left corner of the canvas
void setPaintingOpacity(qreal opacity)
set the current opacity for brush
QTransform flakeToImageTransform() const
flakeToImageTransform The transformation of the image relative to the view without rotation and mirro...
qreal paintingOpacity() const
return the current opacity for brush
void activateResource(Resource *resource)
activateResource activates the given resource.
void setHDRExposure(float exposure)
set the current HDR Exposure value
qreal brushRotation() const
return the current rotation for brush tip
void setPatternSize(qreal size)
set the current pattern size value for brush
QList< Node * > selectedNodes() const
Resource * currentBrushPreset() const
return the current selected preset
void setPaintingFlow(qreal flow)
set the current flow value for brush
QTransform flakeToDocumentTransform() const
flakeToDocumentTransform The transformation of the document relative to the view without rotation and...
void setEraserMode(bool value)
set current eraser active/inactive
Resource * currentGradient() const
return the current selected gradient
void setVisible()
Make the current view visible.
void setCurrentGradient(Resource *resource)
set the current selected gradient
Document * document() const
qreal brushSize() const
return the current size for brush
bool disablePressure() const
return current disabled pressure status
QVariant fromValue(T &&value)