• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • krita API Reference
  • KDE Home
  • Contact Us
 

plugins/paintops/libpaintop

  • sources
  • kfour-appscomplete
  • krita
  • plugins
  • paintops
  • libpaintop
KisMaskingBrushOptionProperties.cpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2017 Dmitry Kazakov <[email protected]>
3  *
4  * SPDX-License-Identifier: GPL-2.0-or-later
5  */
6 
7 #include "KisMaskingBrushOptionProperties.h"
8 
9 #include "kis_brush_option.h"
10 #include <brushengine/KisPaintopSettingsIds.h>
11 
12 #include <KoCompositeOpRegistry.h>
13 
14 
15 KisMaskingBrushOptionProperties::KisMaskingBrushOptionProperties()
16  : compositeOpId(COMPOSITE_MULT)
17 
18 {
19 }
20 
21 void KisMaskingBrushOptionProperties::write(KisPropertiesConfiguration *setting, qreal masterBrushSize) const
22 {
23  setting->setProperty(KisPaintOpUtils::MaskingBrushEnabledTag, isEnabled);
24  setting->setProperty(KisPaintOpUtils::MaskingBrushCompositeOpTag, compositeOpId);
25  setting->setProperty(KisPaintOpUtils::MaskingBrushUseMasterSizeTag, useMasterSize);
26 
27  const qreal masterSizeCoeff =
28  brush && masterBrushSize > 0 ? brush->userEffectiveSize() / masterBrushSize : 1.0;
29 
30  setting->setProperty(KisPaintOpUtils::MaskingBrushMasterSizeCoeffTag, masterSizeCoeff);
31 
32  // TODO: skip saving in some cases?
33  // if (!isEnabled) return;
34 
35  if (brush) {
36  KisPropertiesConfigurationSP embeddedConfig = new KisPropertiesConfiguration();
37 
38  {
39  KisBrushOptionProperties option;
40  option.setBrush(brush);
41  option.writeOptionSetting(embeddedConfig);
42  }
43 
44  setting->setPrefixedProperties(KisPaintOpUtils::MaskingBrushPresetPrefix, embeddedConfig);
45 
46  const QString brushFileName = brush->filename();
47 
48  if (!brushFileName.isEmpty()) {
49  QStringList requiredFiles =
50  setting->getStringList(KisPaintOpUtils::RequiredBrushFilesListTag);
51  requiredFiles << brushFileName;
52  setting->setProperty(KisPaintOpUtils::RequiredBrushFilesListTag, requiredFiles);
53  }
54  }
55 }
56 
57 QList<KoResourceSP> KisMaskingBrushOptionProperties::prepareLinkedResources(const KisPropertiesConfigurationSP settings, KisResourcesInterfaceSP resourcesInterface)
58 {
59  KisBrushOptionProperties option;
60  return option.prepareLinkedResources(settings, resourcesInterface);
61 }
62 
63 void KisMaskingBrushOptionProperties::read(const KisPropertiesConfiguration *setting, qreal masterBrushSize, KisResourcesInterfaceSP resourcesInterface, KoCanvasResourcesInterfaceSP canvasResourcesInterface)
64 {
65  isEnabled = setting->getBool(KisPaintOpUtils::MaskingBrushEnabledTag);
66  compositeOpId = setting->getString(KisPaintOpUtils::MaskingBrushCompositeOpTag, COMPOSITE_MULT);
67  useMasterSize = setting->getBool(KisPaintOpUtils::MaskingBrushUseMasterSizeTag, true);
68 
69  KisPropertiesConfigurationSP embeddedConfig = new KisPropertiesConfiguration();
70  setting->getPrefixedProperties(KisPaintOpUtils::MaskingBrushPresetPrefix, embeddedConfig);
71 
72  KisBrushOptionProperties option;
73  option.readOptionSetting(embeddedConfig, resourcesInterface, canvasResourcesInterface);
74 
75  brush = option.brush();
76 
77  if (brush && useMasterSize) {
78  const qreal masterSizeCoeff = setting->getDouble(KisPaintOpUtils::MaskingBrushMasterSizeCoeffTag, 1.0);
79  brush->setUserEffectiveSize(masterSizeCoeff * masterBrushSize);
80  }
81 }
KisMaskingBrushOptionProperties::isEnabled
bool isEnabled
Definition: KisMaskingBrushOptionProperties.h:25
KisMaskingBrushOptionProperties::read
void read(const KisPropertiesConfiguration *setting, qreal masterBrushSize, KisResourcesInterfaceSP resourcesInterface, KoCanvasResourcesInterfaceSP canvasResourcesInterface)
Definition: KisMaskingBrushOptionProperties.cpp:63
KisMaskingBrushOptionProperties::KisMaskingBrushOptionProperties
KisMaskingBrushOptionProperties()
Definition: KisMaskingBrushOptionProperties.cpp:15
QSharedPointer
Definition: KisDabCacheUtils.h:110
QList
KisMaskingBrushOptionProperties.h
KisBrushOptionProperties::brush
KisBrushSP brush() const
Definition: kis_brush_option.cpp:118
KisMaskingBrushOptionProperties::useMasterSize
bool useMasterSize
Definition: KisMaskingBrushOptionProperties.h:28
QString
QString::isEmpty
bool isEmpty() const
KisBrushOptionProperties::setBrush
void setBrush(KisBrushSP brush)
Definition: kis_brush_option.cpp:123
KisBrushOptionProperties
Definition: kis_brush_option.h:19
KisMaskingBrushOptionProperties::write
void write(KisPropertiesConfiguration *setting, qreal masterBrushSize) const
Definition: KisMaskingBrushOptionProperties.cpp:21
KisMaskingBrushOptionProperties::brush
KisBrushSP brush
Definition: KisMaskingBrushOptionProperties.h:26
kis_brush_option.h
KisMaskingBrushOptionProperties::prepareLinkedResources
QList< KoResourceSP > prepareLinkedResources(const KisPropertiesConfigurationSP settings, KisResourcesInterfaceSP resourcesInterface)
Definition: KisMaskingBrushOptionProperties.cpp:57
KisMaskingBrushOptionProperties::compositeOpId
QString compositeOpId
Definition: KisMaskingBrushOptionProperties.h:27
QStringList
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Apr 17 2021 23:38:22 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

plugins/paintops/libpaintop

Skip menu "plugins/paintops/libpaintop"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

krita API Reference

Skip menu "krita API Reference"
  • libs
  •   KritaBasicFlakes
  •   brush
  •   KritaUndo2
  •   KritaFlake
  •   image
  •   KritaPlugin
  •   Krita
  •   KritaPigment
  •   KritaResources
  •   KritaStore
  •   ui
  •   KritaWidgets
  •   KritaWidgetUtils
  • plugins
  •   Assitants
  •   Extensions
  •   Filters
  •   Generators
  •   Formats
  •           src
  •   PaintOps
  •     libpaintop

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal