Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_layer_manager.cc File Reference
#include "kis_layer_manager.h"
#include <QRect>
#include <QApplication>
#include <QCursor>
#include <QString>
#include <QDialog>
#include <QVBoxLayout>
#include <QFileInfo>
#include <QStandardPaths>
#include <QClipboard>
#include <QMimeData>
#include <kactioncollection.h>
#include <klocalizedstring.h>
#include <QMessageBox>
#include <QUrl>
#include <kis_file_name_requester.h>
#include <kis_icon.h>
#include <KisImportExportManager.h>
#include <KisDocument.h>
#include <KoColorSpace.h>
#include <KoCompositeOpRegistry.h>
#include <KoPointerEvent.h>
#include <KoColorProfile.h>
#include <KoSelection.h>
#include <KisPart.h>
#include <KisMainWindow.h>
#include <filter/kis_filter_configuration.h>
#include <filter/kis_filter.h>
#include <kis_filter_strategy.h>
#include <generator/kis_generator_layer.h>
#include <kis_file_layer.h>
#include <kis_adjustment_layer.h>
#include <kis_mask.h>
#include <kis_clone_layer.h>
#include <kis_group_layer.h>
#include <kis_image.h>
#include <kis_layer.h>
#include <kis_paint_device.h>
#include <kis_selection.h>
#include <flake/kis_shape_layer.h>
#include <kis_undo_adapter.h>
#include <kis_painter.h>
#include <kis_meta_data_store.h>
#include <kis_meta_data_merge_strategy_registry.h>
#include <kis_psd_layer_style.h>
#include <KisMimeDatabase.h>
#include <kis_clipboard.h>
#include "kis_config.h"
#include "kis_cursor.h"
#include "dialogs/kis_dlg_adj_layer_props.h"
#include "dialogs/kis_dlg_adjustment_layer.h"
#include "dialogs/kis_dlg_layer_properties.h"
#include "dialogs/kis_dlg_generator_layer.h"
#include "dialogs/kis_dlg_file_layer.h"
#include "dialogs/kis_dlg_layer_style.h"
#include "dialogs/KisDlgChangeCloneSource.h"
#include "kis_filter_manager.h"
#include "kis_node_visitor.h"
#include "kis_paint_layer.h"
#include "commands/kis_image_commands.h"
#include "commands/kis_node_commands.h"
#include <commands/KisNodeRenameCommand.h>
#include "kis_change_file_layer_command.h"
#include "kis_canvas_resource_provider.h"
#include "kis_selection_manager.h"
#include "kis_statusbar.h"
#include "KisViewManager.h"
#include "kis_zoom_manager.h"
#include "canvas/kis_canvas2.h"
#include "widgets/kis_meta_data_merge_strategy_chooser_widget.h"
#include "widgets/kis_wdg_generator.h"
#include "kis_progress_widget.h"
#include "kis_node_commands_adapter.h"
#include "kis_node_manager.h"
#include "kis_action.h"
#include "kis_action_manager.h"
#include "kis_raster_keyframe_channel.h"
#include "kis_signal_compressor_with_param.h"
#include "kis_abstract_projection_plane.h"
#include "commands_new/kis_set_layer_style_command.h"
#include "kis_post_execution_undo_adapter.h"
#include "kis_selection_mask.h"
#include "kis_layer_utils.h"
#include "lazybrush/kis_colorize_mask.h"
#include "kis_processing_applicator.h"
#include "kis_projection_leaf.h"
#include "KisGlobalResourcesInterface.h"
#include "KisSaveGroupVisitor.h"
#include <kis_asl_layer_style_serializer.h>

Go to the source code of this file.

Functions

bool isSelectionMask (KisNodeSP node)
 
bool tryFlattenGroupLayer (KisNodeSP currentNode, KisImageSP image)
 
bool tryMergeSelectionMasks (KisNodeSP currentNode, KisImageSP image)
 
void updateLayerStyles (KisLayerSP layer, KisDlgLayerStyle *dlg, KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 

Function Documentation

◆ isSelectionMask()

bool isSelectionMask ( KisNodeSP node)
inline

Definition at line 817 of file kis_layer_manager.cc.

817 {
818 return dynamic_cast<KisSelectionMask*>(node.data());
819}

References KisSharedPtr< T >::data().

◆ tryFlattenGroupLayer()

bool tryFlattenGroupLayer ( KisNodeSP currentNode,
KisImageSP image )

Definition at line 841 of file kis_layer_manager.cc.

842{
843 bool result = false;
844
845 if (currentNode->inherits("KisGroupLayer")) {
846 KisGroupLayer *layer = qobject_cast<KisGroupLayer*>(currentNode.data());
848
849 image->flattenLayer(layer);
850 result = true;
851 }
852
853 return result;
854}
void flattenLayer(KisLayerSP layer)
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)
Definition kis_assert.h:129

References KisSharedPtr< T >::data(), KisImage::flattenLayer(), and KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE.

◆ tryMergeSelectionMasks()

bool tryMergeSelectionMasks ( KisNodeSP currentNode,
KisImageSP image )

Definition at line 821 of file kis_layer_manager.cc.

822{
823 bool result = false;
824
825 KisNodeSP prevNode = currentNode->prevSibling();
826 if (isSelectionMask(currentNode) &&
827 prevNode && isSelectionMask(prevNode)) {
828
829 QList<KisNodeSP> mergedNodes;
830 mergedNodes.append(currentNode);
831 mergedNodes.append(prevNode);
832
833 image->mergeMultipleLayers(mergedNodes, currentNode);
834
835 result = true;
836 }
837
838 return result;
839}
void mergeMultipleLayers(QList< KisNodeSP > mergedLayers, KisNodeSP putAfter)
bool isSelectionMask(KisNodeSP node)
KisNodeSP prevSibling() const
Definition kis_node.cpp:402

References isSelectionMask(), KisImage::mergeMultipleLayers(), and KisNode::prevSibling().

◆ updateLayerStyles()

void updateLayerStyles ( KisLayerSP layer,
KisDlgLayerStyle * dlg,
KoCanvasResourcesInterfaceSP canvasResourcesInterface )

Definition at line 1031 of file kis_layer_manager.cc.

1032{
1034 dlg->style()->cloneWithResourcesSnapshot(
1036 canvasResourcesInterface));
1037}
KisPSDLayerStyleSP style() const
static KisResourcesInterfaceSP instance()
static void updateLayerStyle(KisLayerSP layer, KisPSDLayerStyleSP style)

References KisGlobalResourcesInterface::instance(), KisDlgLayerStyle::style(), and KisSetLayerStyleCommand::updateLayerStyle().