Git commit 0a5e8a72182db904949025ccaf0d3f993c62b6fd by Frederik Gladhorn. Committed on 15/11/2016 at 21:26. Pushed by gladhorn into branch 'rempt/impex-refactoring'. Prepare qobject_cast over dynamic_cast This is a simple search and replace for KisLayer which is a QObject. qobject_cast doesn't require RTTI and is faster. M +1 -1 libs/image/commands/kis_image_layer_remove_command_impl.cpp M +1 -1 libs/image/commands_new/kis_activate_selection_mask_command.= cpp M +1 -1 libs/image/generator/kis_generator_layer.cpp M +2 -2 libs/image/kis_colorspace_convert_visitor.cpp M +1 -1 libs/image/kis_group_layer.cc M +1 -1 libs/image/kis_image.cc M +1 -1 libs/image/kis_layer.cc M +9 -9 libs/image/kis_layer_utils.cpp M +1 -1 libs/image/kis_node.cpp M +1 -1 libs/image/kis_processing_applicator.cpp M +1 -1 libs/image/kis_recalculate_transform_mask_job.cpp M +1 -1 libs/image/kis_selection_mask.cpp M +5 -5 libs/image/kis_transform_mask.cpp M +3 -3 libs/image/lazybrush/kis_colorize_mask.cpp M +1 -1 libs/image/recorder/kis_recorded_filter_action.cpp M +2 -2 libs/image/tests/kis_image_test.cpp M +2 -2 libs/ui/KisSaveGroupVisitor.cpp M +1 -1 libs/ui/KisView.cpp M +1 -1 libs/ui/dialogs/kis_dlg_filter.cpp M +1 -1 libs/ui/kis_action_manager.cpp M +2 -2 libs/ui/kis_layer_manager.cc M +2 -2 libs/ui/kis_mask_manager.cc M +1 -1 libs/ui/kis_mimedata.cpp M +1 -1 libs/ui/kis_multinode_property.h M +2 -2 libs/ui/kis_node_manager.cpp M +2 -2 libs/ui/kis_psd_layer_style_resource.cpp M +2 -2 libs/ui/tool/kis_resources_snapshot.cpp M +1 -1 libs/ui/tool/kis_tool_utils.cpp M +1 -1 libs/ui/widgets/kis_image_from_clipboard_widget.cpp M +1 -1 plugins/impex/csv/csv_saver.cpp M +2 -2 plugins/impex/libkra/kis_kra_load_visitor.cpp M +1 -1 plugins/impex/psd/psd_export.cc M +1 -1 plugins/impex/psd/psd_layer_section.cpp M +5 -5 plugins/impex/psd/tests/kis_psd_test.cpp http://commits.kde.org/krita/0a5e8a72182db904949025ccaf0d3f993c62b6fd diff --git a/libs/image/commands/kis_image_layer_remove_command_impl.cpp b/= libs/image/commands/kis_image_layer_remove_command_impl.cpp index 124afa8..485941c 100644 --- a/libs/image/commands/kis_image_layer_remove_command_impl.cpp +++ b/libs/image/commands/kis_image_layer_remove_command_impl.cpp @@ -97,7 +97,7 @@ void KisImageLayerRemoveCommandImpl::Private::restoreClon= es() = void KisImageLayerRemoveCommandImpl::Private::processClones(KisNodeSP node) { - KisLayerSP layer(dynamic_cast(node.data())); + KisLayerSP layer(qobject_cast(node.data())); if(!layer || !layer->hasClones()) return; = if(reincarnatedNodes.isEmpty()) { diff --git a/libs/image/commands_new/kis_activate_selection_mask_command.cp= p b/libs/image/commands_new/kis_activate_selection_mask_command.cpp index 9670ad5..645cc7d 100644 --- a/libs/image/commands_new/kis_activate_selection_mask_command.cpp +++ b/libs/image/commands_new/kis_activate_selection_mask_command.cpp @@ -27,7 +27,7 @@ KisActivateSelectionMaskCommand::KisActivateSelectionMask= Command(KisSelectionMas m_value(value) { if (m_previousActiveMask !=3D m_selectionMask) { - KisLayerSP parent(dynamic_cast(selectionMask->parent().= data())); + KisLayerSP parent(qobject_cast(selectionMask->parent().= data())); if (parent) { m_previousActiveMask =3D parent->selectionMask(); } diff --git a/libs/image/generator/kis_generator_layer.cpp b/libs/image/gene= rator/kis_generator_layer.cpp index 7dc6bc5..5dc9981 100644 --- a/libs/image/generator/kis_generator_layer.cpp +++ b/libs/image/generator/kis_generator_layer.cpp @@ -82,7 +82,7 @@ void KisGeneratorLayer::slotDelayedStaticUpdate() * meanwhile. Just ignore the updates in the case. */ = - KisLayerSP parentLayer(dynamic_cast(parent().data())); + KisLayerSP parentLayer(qobject_cast(parent().data())); if (!parentLayer) return; = KisImageSP image =3D parentLayer->image(); diff --git a/libs/image/kis_colorspace_convert_visitor.cpp b/libs/image/kis= _colorspace_convert_visitor.cpp index 40dca99..3ea96fd 100644 --- a/libs/image/kis_colorspace_convert_visitor.cpp +++ b/libs/image/kis_colorspace_convert_visitor.cpp @@ -53,10 +53,10 @@ KisColorSpaceConvertVisitor::~KisColorSpaceConvertVisit= or() bool KisColorSpaceConvertVisitor::visit(KisGroupLayer * layer) { convertPaintDevice(layer); - KisLayerSP child =3D dynamic_cast(layer->firstChild().data(= )); + KisLayerSP child =3D qobject_cast(layer->firstChild().data(= )); while (child) { child->accept(*this); - child =3D dynamic_cast(child->nextSibling().data()); + child =3D qobject_cast(child->nextSibling().data()); } = layer->resetCache(); diff --git a/libs/image/kis_group_layer.cc b/libs/image/kis_group_layer.cc index 3567ade..4e8e1e6 100644 --- a/libs/image/kis_group_layer.cc +++ b/libs/image/kis_group_layer.cc @@ -206,7 +206,7 @@ KisLayer* KisGroupLayer::onlyMeaningfulChild() const KisLayer *onlyLayer =3D 0; = while (child) { - KisLayer *layer =3D dynamic_cast(child); + KisLayer *layer =3D qobject_cast(child); if (layer) { if (onlyLayer) return 0; onlyLayer =3D layer; diff --git a/libs/image/kis_image.cc b/libs/image/kis_image.cc index 93c9915..63e2c79 100644 --- a/libs/image/kis_image.cc +++ b/libs/image/kis_image.cc @@ -579,7 +579,7 @@ void KisImage::cropImage(const QRect& newRect) = void KisImage::cropNode(KisNodeSP node, const QRect& newRect) { - bool isLayer =3D dynamic_cast(node.data()); + bool isLayer =3D qobject_cast(node.data()); KUndo2MagicString actionName =3D isLayer ? kundo2_i18n("Crop Layer") : kundo2_i18n("Crop Mask"); diff --git a/libs/image/kis_layer.cc b/libs/image/kis_layer.cc index 8c5b679..38a5daf 100644 --- a/libs/image/kis_layer.cc +++ b/libs/image/kis_layer.cc @@ -864,7 +864,7 @@ QRect KisLayer::exactBounds() const = KisLayerSP KisLayer::parentLayer() const { - return dynamic_cast(parent().data()); + return qobject_cast(parent().data()); } = KisMetaData::Store* KisLayer::metaData() diff --git a/libs/image/kis_layer_utils.cpp b/libs/image/kis_layer_utils.cpp index db2db31..74926bb 100644 --- a/libs/image/kis_layer_utils.cpp +++ b/libs/image/kis_layer_utils.cpp @@ -56,7 +56,7 @@ namespace KisLayerUtils { void fetchSelectionMasks(KisNodeList mergedNodes, QVector &selectionMasks) { foreach (KisNodeSP node, mergedNodes) { - KisLayerSP layer =3D dynamic_cast(node.data()); + KisLayerSP layer =3D qobject_cast(node.data()); = KisSelectionMaskSP mask; = @@ -111,7 +111,7 @@ namespace KisLayerUtils { } = KisLayerSP dstLayer() override { - return dynamic_cast(dstNode.data()); + return qobject_cast(dstNode.data()); } }; = @@ -344,7 +344,7 @@ namespace KisLayerUtils { break; } = - KisLayerSP layer =3D dynamic_cast(node.data()); + KisLayerSP layer =3D qobject_cast(node.data()); if (layer && layer->layerStyle()) { compositionVaries =3D true; break; @@ -506,7 +506,7 @@ namespace KisLayerUtils { bool RemoveNodeHelper::scanForLastLayer(KisImageWSP image, KisNodeList= nodesToRemove) { bool removeLayers =3D false; Q_FOREACH(KisNodeSP nodeToRemove, nodesToRemove) { - if (dynamic_cast(nodeToRemove.data())) { + if (qobject_cast(nodeToRemove.data())) { removeLayers =3D true; break; } @@ -517,7 +517,7 @@ namespace KisLayerUtils { KisNodeSP node =3D image->root()->firstChild(); while (node) { if (!nodesToRemove.contains(node) && - dynamic_cast(node.data())) { + qobject_cast(node.data())) { = lastLayer =3D false; break; @@ -744,7 +744,7 @@ namespace KisLayerUtils { if (!layer->prevSibling()) return; = // XXX: this breaks if we allow free mixing of masks and layers - KisLayerSP prevLayer =3D dynamic_cast(layer->prevSiblin= g().data()); + KisLayerSP prevLayer =3D qobject_cast(layer->prevSiblin= g().data()); if (!prevLayer) return; = if (!layer->visible() && !prevLayer->visible()) { @@ -878,7 +878,7 @@ namespace KisLayerUtils { KisNodeList::iterator it =3D nodes.begin(); = while (it !=3D nodes.end()) { - if ((!allowMasks && !dynamic_cast(it->data())) || + if ((!allowMasks && !qobject_cast(it->data())) || checkIsChildOf(*it, nodes)) { = qDebug() << "Skipping node" << ppVar((*it)->name()); @@ -1124,7 +1124,7 @@ namespace KisLayerUtils { = KisLayerSP parentLayer; do { - parentLayer =3D dynamic_cast(parent.data()); + parentLayer =3D qobject_cast(parent.data()); = parent =3D parent->parent(); } while(!parentLayer && parent); @@ -1180,7 +1180,7 @@ namespace KisLayerUtils { = if (mergedNodes.isEmpty()) return false; = - KisLayerSP parentLayer =3D dynamic_cast(selectionMasks.= first()->parent().data()); + KisLayerSP parentLayer =3D qobject_cast(selectionMasks.= first()->parent().data()); KIS_ASSERT_RECOVER(parentLayer) { return 0; } = KisImageSignalVector emitSignals; diff --git a/libs/image/kis_node.cpp b/libs/image/kis_node.cpp index 89735eb..14a8765 100644 --- a/libs/image/kis_node.cpp +++ b/libs/image/kis_node.cpp @@ -160,7 +160,7 @@ void KisNode::Private::processDuplicatedClones(const Ki= sNode *srcDuplicationRoot clone->copyFrom()); = if (newCopyFrom) { - KisLayer *newCopyFromLayer =3D dynamic_cast(const_c= ast(newCopyFrom)); + KisLayer *newCopyFromLayer =3D qobject_cast(const_c= ast(newCopyFrom)); KIS_ASSERT_RECOVER_RETURN(newCopyFromLayer); = clone->setCopyFrom(newCopyFromLayer); diff --git a/libs/image/kis_processing_applicator.cpp b/libs/image/kis_proc= essing_applicator.cpp index 310fba5..476ed2e 100644 --- a/libs/image/kis_processing_applicator.cpp +++ b/libs/image/kis_processing_applicator.cpp @@ -97,7 +97,7 @@ private: prevNode =3D prevNode->prevSibling(); } = - KisLayer *layer =3D dynamic_cast(m_node.data()); + KisLayer *layer =3D qobject_cast(m_node.data()); if(layer && layer->hasClones()) { Q_FOREACH (KisCloneLayerSP clone, layer->registeredClones()) { if(!clone) continue; diff --git a/libs/image/kis_recalculate_transform_mask_job.cpp b/libs/image= /kis_recalculate_transform_mask_job.cpp index 7ea2d3a..37518b5 100644 --- a/libs/image/kis_recalculate_transform_mask_job.cpp +++ b/libs/image/kis_recalculate_transform_mask_job.cpp @@ -48,7 +48,7 @@ void KisRecalculateTransformMaskJob::run() = m_mask->recaclulateStaticImage(); = - KisLayerSP layer =3D dynamic_cast(m_mask->parent().data()); + KisLayerSP layer =3D qobject_cast(m_mask->parent().data()); = if (!layer) { warnKrita << "WARNING: KisRecalculateTransformMaskJob::run() Mask = has no parent layer! Skipping projection update!"; diff --git a/libs/image/kis_selection_mask.cpp b/libs/image/kis_selection_m= ask.cpp index e24c93f..8ece07e 100644 --- a/libs/image/kis_selection_mask.cpp +++ b/libs/image/kis_selection_mask.cpp @@ -150,7 +150,7 @@ bool KisSelectionMask::active() const void KisSelectionMask::setActive(bool active) { KisImageWSP image =3D this->image(); - KisLayerSP parentLayer =3D dynamic_cast(parent().data()); + KisLayerSP parentLayer =3D qobject_cast(parent().data()); = if (active && parentLayer) { KisSelectionMaskSP activeMask =3D parentLayer->selectionMask(); diff --git a/libs/image/kis_transform_mask.cpp b/libs/image/kis_transform_m= ask.cpp index 7a0c258..1816e39 100644 --- a/libs/image/kis_transform_mask.cpp +++ b/libs/image/kis_transform_mask.cpp @@ -158,7 +158,7 @@ void KisTransformMask::slotDelayedStaticUpdate() * meanwhile. Just ignore the updates in the case. */ = - KisLayerSP parentLayer =3D dynamic_cast(parent().data()); + KisLayerSP parentLayer =3D qobject_cast(parent().data()); if (!parentLayer) return; = KisImageSP image =3D parentLayer->image(); @@ -175,7 +175,7 @@ KisPaintDeviceSP KisTransformMask::buildPreviewDevice() * is not entirely safe. */ = - KisLayerSP parentLayer =3D dynamic_cast(parent().data()); + KisLayerSP parentLayer =3D qobject_cast(parent().data()); KIS_ASSERT_RECOVER(parentLayer) { return new KisPaintDevice(colorSpace= ()); } = KisPaintDeviceSP device =3D @@ -195,7 +195,7 @@ void KisTransformMask::recaclulateStaticImage() * is not entirely safe. */ = - KisLayerSP parentLayer =3D dynamic_cast(parent().data()); + KisLayerSP parentLayer =3D qobject_cast(parent().data()); KIS_ASSERT_RECOVER_RETURN(parentLayer); = if (!m_d->staticCacheDevice) { @@ -386,7 +386,7 @@ QRect KisTransformMask::extent() const = QRect partialChangeRect; QRect existentProjection; - KisLayerSP parentLayer =3D dynamic_cast(parent().data()); + KisLayerSP parentLayer =3D qobject_cast(parent().data()); if (parentLayer) { partialChangeRect =3D parentLayer->partialChangeRect(const_cast(this), rc); existentProjection =3D parentLayer->projection()->extent(); @@ -401,7 +401,7 @@ QRect KisTransformMask::exactBounds() const = QRect partialChangeRect; QRect existentProjection; - KisLayerSP parentLayer =3D dynamic_cast(parent().data()); + KisLayerSP parentLayer =3D qobject_cast(parent().data()); if (parentLayer) { partialChangeRect =3D parentLayer->partialChangeRect(const_cast(this), rc); existentProjection =3D parentLayer->projection()->exactBounds(); diff --git a/libs/image/lazybrush/kis_colorize_mask.cpp b/libs/image/lazybr= ush/kis_colorize_mask.cpp index d9308c4..091621e 100644 --- a/libs/image/lazybrush/kis_colorize_mask.cpp +++ b/libs/image/lazybrush/kis_colorize_mask.cpp @@ -130,7 +130,7 @@ KisColorizeMask::KisColorizeMask(const KisColorizeMask&= rhs) = void KisColorizeMask::initializeCompositeOp() { - KisLayerSP parentLayer(dynamic_cast(parent().data())); + KisLayerSP parentLayer(qobject_cast(parent().data())); if (!parentLayer || !parentLayer->original()) return; = KisImageSP image =3D parentLayer->image(); @@ -258,7 +258,7 @@ void KisColorizeMask::slotUpdateRegenerateFilling() m_d->originalSequenceNumber =3D src->sequenceNumber(); m_d->coloringProjection->clear(); = - KisLayerSP parentLayer(dynamic_cast(parent().data())); + KisLayerSP parentLayer(qobject_cast(parent().data())); if (!parentLayer) return; = KisImageSP image =3D parentLayer->image(); @@ -491,7 +491,7 @@ QRect KisColorizeMask::nonDependentExtent() const = KisImageSP KisColorizeMask::fetchImage() const { - KisLayerSP parentLayer(dynamic_cast(parent().data())); + KisLayerSP parentLayer(qobject_cast(parent().data())); if (!parentLayer) return KisImageSP(); = return parentLayer->image(); diff --git a/libs/image/recorder/kis_recorded_filter_action.cpp b/libs/imag= e/recorder/kis_recorded_filter_action.cpp index f1708bb..04dc26b 100644 --- a/libs/image/recorder/kis_recorded_filter_action.cpp +++ b/libs/image/recorder/kis_recorded_filter_action.cpp @@ -96,7 +96,7 @@ void KisRecordedFilterAction::play(KisNodeSP node, const = KisPlayInfo& _info, KoU { KisFilterConfigurationSP kfc =3D d->configuration(); KisPaintDeviceSP dev =3D node->paintDevice(); - KisLayerSP layer =3D dynamic_cast(node.data()); + KisLayerSP layer =3D qobject_cast(node.data()); QRect r1 =3D dev->extent(); KisTransaction transaction(kundo2_i18n("Filter: \"%1\"", d->filter->na= me()), dev); = diff --git a/libs/image/tests/kis_image_test.cpp b/libs/image/tests/kis_ima= ge_test.cpp index ba14478..c8db0df 100644 --- a/libs/image/tests/kis_image_test.cpp +++ b/libs/image/tests/kis_image_test.cpp @@ -529,7 +529,7 @@ KisLayerSP flattenLayerHelper(ContainerTest &p, KisLaye= rSP layer, bool nothingHa QList arguments =3D spy.takeFirst(); KisNodeSP newNode =3D arguments.first().value(); = - KisLayerSP newLayer =3D dynamic_cast(newNode.data()); + KisLayerSP newLayer =3D qobject_cast(newNode.data()); return newLayer; } = @@ -600,7 +600,7 @@ KisLayerSP mergeHelper(ContainerTest &p, KisLayerSP lay= er) //KisLayerUtils::mergeDown(p.image, layer, KisMetaData::MergeStrategyR= egistry::instance()->get("Drop")); p.image->waitForDone(); = - KisLayerSP newLayer =3D dynamic_cast(parent->at(newIndex).d= ata()); + KisLayerSP newLayer =3D qobject_cast(parent->at(newIndex).d= ata()); return newLayer; } = diff --git a/libs/ui/KisSaveGroupVisitor.cpp b/libs/ui/KisSaveGroupVisitor.= cpp index 174e0d1..056da12 100644 --- a/libs/ui/KisSaveGroupVisitor.cpp +++ b/libs/ui/KisSaveGroupVisitor.cpp @@ -92,10 +92,10 @@ bool KisSaveGroupVisitor::visit(KisColorizeMask* ) { bool KisSaveGroupVisitor::visit(KisGroupLayer *layer) { if (layer =3D=3D m_image->rootLayer()) { - KisLayerSP child =3D dynamic_cast(layer->firstChild().d= ata()); + KisLayerSP child =3D qobject_cast(layer->firstChild().d= ata()); while (child) { child->accept(*this); - child =3D dynamic_cast(child->nextSibling().data()); + child =3D qobject_cast(child->nextSibling().data()); } = } diff --git a/libs/ui/KisView.cpp b/libs/ui/KisView.cpp index 542feb3..8a595a0 100644 --- a/libs/ui/KisView.cpp +++ b/libs/ui/KisView.cpp @@ -788,7 +788,7 @@ KisLayerSP KisView::currentLayer() const else { node =3D d->currentNode; } - return dynamic_cast(node.data()); + return qobject_cast(node.data()); } = KisMaskSP KisView::currentMask() const diff --git a/libs/ui/dialogs/kis_dlg_filter.cpp b/libs/ui/dialogs/kis_dlg_f= ilter.cpp index 41e21b0..6d21212 100644 --- a/libs/ui/dialogs/kis_dlg_filter.cpp +++ b/libs/ui/dialogs/kis_dlg_filter.cpp @@ -181,7 +181,7 @@ void KisDlgFilter::createMask() d->filterManager->cancel(); } = - KisLayer *layer =3D dynamic_cast(d->node.data()); + KisLayer *layer =3D qobject_cast(d->node.data()); KisFilterMaskSP mask =3D new KisFilterMask(); mask->initSelection(d->view->selection(), layer); mask->setFilter(d->uiFilterDialog.filterSelection->configuration()); diff --git a/libs/ui/kis_action_manager.cpp b/libs/ui/kis_action_manager.cpp index 76d7941..a6fe9d8 100644 --- a/libs/ui/kis_action_manager.cpp +++ b/libs/ui/kis_action_manager.cpp @@ -239,7 +239,7 @@ void KisActionManager::updateGUI() // if a node exists, we know there is an active layer as well flags |=3D KisAction::ACTIVE_NODE; = - layer =3D dynamic_cast(node.data()); + layer =3D qobject_cast(node.data()); if (layer) { flags |=3D KisAction::ACTIVE_LAYER; } diff --git a/libs/ui/kis_layer_manager.cc b/libs/ui/kis_layer_manager.cc index f5f829e..0d9b9b9 100644 --- a/libs/ui/kis_layer_manager.cc +++ b/libs/ui/kis_layer_manager.cc @@ -351,7 +351,7 @@ void KisLayerManager::convertNodeToPaintLayer(KisNodeSP= source) if (!image) return; = = - KisLayer *srcLayer =3D dynamic_cast(source.data()); + KisLayer *srcLayer =3D qobject_cast(source.data()); if (srcLayer && (srcLayer->inherits("KisGroupLayer") || srcLayer->laye= rStyle() || srcLayer->childCount() > 0)) { image->flattenLayer(srcLayer); return; @@ -647,7 +647,7 @@ void KisLayerManager::mergeLayer() } else if (!tryMergeSelectionMasks(m_view->activeNode(), image)) { = if (!layer->prevSibling()) return; - KisLayer *prevLayer =3D dynamic_cast(layer->prevSibling= ().data()); + KisLayer *prevLayer =3D qobject_cast(layer->prevSibling= ().data()); if (!prevLayer) return; = if (layer->metaData()->isEmpty() && prevLayer->metaData()->isEmpty= ()) { diff --git a/libs/ui/kis_mask_manager.cc b/libs/ui/kis_mask_manager.cc index c8cc74c..a3963e8 100644 --- a/libs/ui/kis_mask_manager.cc +++ b/libs/ui/kis_mask_manager.cc @@ -154,7 +154,7 @@ void KisMaskManager::createMaskCommon(KisMaskSP mask, K= isNodeSP activeNode, KisP KisNodeSP above; adjustMaskPosition(mask, activeNode, avoidActiveNode, parent, above); = - KisLayerSP parentLayer =3D dynamic_cast(parent.data()); + KisLayerSP parentLayer =3D qobject_cast(parent.data()); Q_ASSERT(parentLayer); = if (!suppressSelection) { @@ -251,7 +251,7 @@ void KisMaskManager::maskProperties() if (activeMask()->inherits("KisFilterMask")) { KisFilterMask *mask =3D static_cast(activeMask().d= ata()); = - KisLayerSP layer =3D dynamic_cast(mask->parent().data()= ); + KisLayerSP layer =3D qobject_cast(mask->parent().data()= ); if (! layer) return; = diff --git a/libs/ui/kis_mimedata.cpp b/libs/ui/kis_mimedata.cpp index b6b62fb..ca8d53c 100644 --- a/libs/ui/kis_mimedata.cpp +++ b/libs/ui/kis_mimedata.cpp @@ -190,7 +190,7 @@ void KisMimeData::initializeExternalNode(KisNodeSP *nod= e, KisShapeController *shapeControll= er) { // layers store a link to the image, so update it - KisLayer *layer =3D dynamic_cast(node->data()); + KisLayer *layer =3D qobject_cast(node->data()); if (layer) { layer->setImage(image); } diff --git a/libs/ui/kis_multinode_property.h b/libs/ui/kis_multinode_prope= rty.h index dc0223c..f20564f 100644 --- a/libs/ui/kis_multinode_property.h +++ b/libs/ui/kis_multinode_property.h @@ -285,7 +285,7 @@ struct ChannelFlagAdapter : public BaseAdapter { } private: static KisLayerSP toLayer(KisNodeSP node) { - return dynamic_cast(node.data()); + return qobject_cast(node.data()); } private: Property m_prop; diff --git a/libs/ui/kis_node_manager.cpp b/libs/ui/kis_node_manager.cpp index aa0b064..e3d54d6 100644 --- a/libs/ui/kis_node_manager.cpp +++ b/libs/ui/kis_node_manager.cpp @@ -158,7 +158,7 @@ bool KisNodeManager::Private::activateNodeImpl(KisNodeS= P node) selection->setActiveLayer(shapeLayer); = imageView->setCurrentNode(node); - if (KisLayerSP layer =3D dynamic_cast(node.data())) { + if (KisLayerSP layer =3D qobject_cast(node.data())) { maskManager.activateMask(0); layerManager.activateLayer(layer); } else if (KisMaskSP mask =3D dynamic_cast(node.data()))= { @@ -383,7 +383,7 @@ void KisNodeManager::moveNodeAt(KisNodeSP node, KisNode= SP parent, int index) if (parent->allowAsChild(node)) { if (node->inherits("KisSelectionMask") && parent->inherits("KisLay= er")) { KisSelectionMask *m =3D dynamic_cast(node.d= ata()); - KisLayer *l =3D dynamic_cast(parent.data()); + KisLayer *l =3D qobject_cast(parent.data()); KisSelectionMaskSP selMask =3D l->selectionMask(); if (m && m->active() && l && l->selectionMask()) selMask->setActive(false); diff --git a/libs/ui/kis_psd_layer_style_resource.cpp b/libs/ui/kis_psd_lay= er_style_resource.cpp index 70d2d82..02f1c8f 100644 --- a/libs/ui/kis_psd_layer_style_resource.cpp +++ b/libs/ui/kis_psd_layer_style_resource.cpp @@ -125,7 +125,7 @@ QByteArray KisPSDLayerStyleCollectionResource::generate= MD5() const = void KisPSDLayerStyleCollectionResource::collectAllLayerStyles(KisNodeSP r= oot) { - KisLayer* layer =3D dynamic_cast(root.data()); + KisLayer* layer =3D qobject_cast(root.data()); = if (layer && layer->layerStyle()) { KisPSDLayerStyleSP clone =3D layer->layerStyle()->clone(); @@ -143,7 +143,7 @@ void KisPSDLayerStyleCollectionResource::collectAllLaye= rStyles(KisNodeSP root) = void KisPSDLayerStyleCollectionResource::assignAllLayerStyles(KisNodeSP ro= ot) { - KisLayer* layer =3D dynamic_cast(root.data()); + KisLayer* layer =3D qobject_cast(root.data()); = if (layer && layer->layerStyle()) { QUuid uuid =3D layer->layerStyle()->uuid(); diff --git a/libs/ui/tool/kis_resources_snapshot.cpp b/libs/ui/tool/kis_res= ources_snapshot.cpp index f758268..8265f56 100644 --- a/libs/ui/tool/kis_resources_snapshot.cpp +++ b/libs/ui/tool/kis_resources_snapshot.cpp @@ -243,9 +243,9 @@ KisSelectionSP KisResourcesSnapshot::activeSelection() = const = KisSelectionSP selection =3D m_d->image ? m_d->image->globalSelection(= ) : 0; = - KisLayerSP layer =3D dynamic_cast(m_d->currentNode.data()); + KisLayerSP layer =3D qobject_cast(m_d->currentNode.data()); KisSelectionMaskSP mask; - if((layer =3D dynamic_cast(m_d->currentNode.data()))) { + if((layer =3D qobject_cast(m_d->currentNode.data()))) { selection =3D layer->selection(); } else if ((mask =3D dynamic_cast(m_d->currentNode.= data())) && mask->selection() =3D=3D selection) { diff --git a/libs/ui/tool/kis_tool_utils.cpp b/libs/ui/tool/kis_tool_utils.= cpp index 7ce23fe..489fe8d 100644 --- a/libs/ui/tool/kis_tool_utils.cpp +++ b/libs/ui/tool/kis_tool_utils.cpp @@ -82,7 +82,7 @@ namespace KisToolUtils { { KisNodeSP foundNode =3D 0; while (node) { - KisLayerSP layer =3D dynamic_cast(node.data()); + KisLayerSP layer =3D qobject_cast(node.data()); = if (!layer || !layer->isEditable()) { node =3D node->prevSibling(); diff --git a/libs/ui/widgets/kis_image_from_clipboard_widget.cpp b/libs/ui/= widgets/kis_image_from_clipboard_widget.cpp index 29c26ce..72309d8 100644 --- a/libs/ui/widgets/kis_image_from_clipboard_widget.cpp +++ b/libs/ui/widgets/kis_image_from_clipboard_widget.cpp @@ -84,7 +84,7 @@ void KisImageFromClipboard::createImage() = KisImageWSP image =3D doc->image(); if (image && image->root() && image->root()->firstChild()) { - KisLayer * layer =3D dynamic_cast(image->root()->firstC= hild().data()); + KisLayer * layer =3D qobject_cast(image->root()->firstC= hild().data()); = KisPaintDeviceSP clip =3D KisClipboard::instance()->clip(QRect(), = true); if (clip) { diff --git a/plugins/impex/csv/csv_saver.cpp b/plugins/impex/csv/csv_saver.= cpp index de4c4c2..33847c5 100644 --- a/plugins/impex/csv/csv_saver.cpp +++ b/plugins/impex/csv/csv_saver.cpp @@ -117,7 +117,7 @@ KisImageBuilder_Result CSVSaver::encode(QIODevice *io) = while (node) { if (node->inherits("KisLayer")) { - KisLayer* paintLayer =3D dynamic_cast(node.data()); + KisLayer* paintLayer =3D qobject_cast(node.data()); CSVLayerRecord* layerRecord =3D new CSVLayerRecord(); layers.prepend(layerRecord); //reverse order! = diff --git a/plugins/impex/libkra/kis_kra_load_visitor.cpp b/plugins/impex/= libkra/kis_kra_load_visitor.cpp index ac46aff..132dba8 100644 --- a/plugins/impex/libkra/kis_kra_load_visitor.cpp +++ b/plugins/impex/libkra/kis_kra_load_visitor.cpp @@ -258,7 +258,7 @@ bool KisKraLoadVisitor::visit(KisCloneLayer *layer) } = KisNodeSP srcNode =3D layer->copyFromInfo().findNode(m_image->rootLaye= r()); - KisLayerSP srcLayer =3D dynamic_cast(srcNode.data()); + KisLayerSP srcLayer =3D qobject_cast(srcNode.data()); Q_ASSERT(srcLayer); = layer->setCopyFrom(srcLayer); @@ -278,7 +278,7 @@ void KisKraLoadVisitor::initSelectionForMask(KisMask *m= ask) cloneLayer->accept(*this); } = - KisLayer *parentLayer =3D dynamic_cast(mask->parent().data(= )); + KisLayer *parentLayer =3D qobject_cast(mask->parent().data(= )); // the KisKraLoader must have already set the parent for us Q_ASSERT(parentLayer); mask->initSelection(parentLayer); diff --git a/plugins/impex/psd/psd_export.cc b/plugins/impex/psd/psd_export= .cc index a6d13da..83427e4 100644 --- a/plugins/impex/psd/psd_export.cc +++ b/plugins/impex/psd/psd_export.cc @@ -53,7 +53,7 @@ bool checkHomogenity(KisNodeSP root, const KoColorSpace* = cs) break; } } - KisLayer *layer =3D dynamic_cast(child.data()); + KisLayer *layer =3D qobject_cast(child.data()); if (layer) { if (layer->colorSpace() !=3D cs) { res =3D false; diff --git a/plugins/impex/psd/psd_layer_section.cpp b/plugins/impex/psd/ps= d_layer_section.cpp index c25f550..1b4836c 100644 --- a/plugins/impex/psd/psd_layer_section.cpp +++ b/plugins/impex/psd/psd_layer_section.cpp @@ -369,7 +369,7 @@ KisNodeSP findOnlyTransparencyMask(KisNodeSP node, Flat= tenedNode::Type type) return 0; } = - KisLayer *layer =3D dynamic_cast(node.data()); + KisLayer *layer =3D qobject_cast(node.data()); QList masks =3D layer->effectMasks(); = if (masks.size() !=3D 1) return 0; diff --git a/plugins/impex/psd/tests/kis_psd_test.cpp b/plugins/impex/psd/t= ests/kis_psd_test.cpp index b507f86..b3aa1dd 100644 --- a/plugins/impex/psd/tests/kis_psd_test.cpp +++ b/plugins/impex/psd/tests/kis_psd_test.cpp @@ -134,7 +134,7 @@ void KisPSDTest::testOpenLayerStyles() QSharedPointer doc =3D openPsdDocument(sourceFileInfo); QVERIFY(doc->image()); = - KisLayerSP layer =3D dynamic_cast(doc->image()->root()->las= tChild().data()); + KisLayerSP layer =3D qobject_cast(doc->image()->root()->las= tChild().data()); QVERIFY(layer->layerStyle()); QVERIFY(layer->layerStyle()->dropShadow()); QVERIFY(layer->layerStyle()->dropShadow()->effectEnabled()); @@ -149,7 +149,7 @@ void KisPSDTest::testOpenLayerStylesWithPattern() QSharedPointer doc =3D openPsdDocument(sourceFileInfo); QVERIFY(doc->image()); = - KisLayerSP layer =3D dynamic_cast(doc->image()->root()->las= tChild().data()); + KisLayerSP layer =3D qobject_cast(doc->image()->root()->las= tChild().data()); QVERIFY(layer->layerStyle()); QVERIFY(layer->layerStyle()->patternOverlay()); QVERIFY(layer->layerStyle()->patternOverlay()->effectEnabled()); @@ -166,7 +166,7 @@ void KisPSDTest::testOpenLayerStylesWithPatternMulti() QSharedPointer doc =3D openPsdDocument(sourceFileInfo); QVERIFY(doc->image()); = - KisLayerSP layer =3D dynamic_cast(doc->image()->root()->las= tChild().data()); + KisLayerSP layer =3D qobject_cast(doc->image()->root()->las= tChild().data()); QVERIFY(layer->layerStyle()); = QVERIFY(layer->layerStyle()->patternOverlay()); @@ -189,7 +189,7 @@ void KisPSDTest::testSaveLayerStylesWithPatternMulti() QSharedPointer doc =3D openPsdDocument(sourceFileInfo); QVERIFY(doc->image()); = - KisLayerSP layer =3D dynamic_cast(doc->image()->root()->las= tChild().data()); + KisLayerSP layer =3D qobject_cast(doc->image()->root()->las= tChild().data()); QVERIFY(layer->layerStyle()); = QVERIFY(layer->layerStyle()->patternOverlay()); @@ -216,7 +216,7 @@ void KisPSDTest::testSaveLayerStylesWithPatternMulti() QImage result =3D doc->image()->projection()->convertToQImage(0, d= oc->image()->bounds()); //QVERIFY(TestUtil::checkQImageExternal(result, "psd_test", "trans= parency_masks", "kiki_single")); = - KisLayerSP layer =3D dynamic_cast(doc->image()->root()-= >lastChild().data()); + KisLayerSP layer =3D qobject_cast(doc->image()->root()-= >lastChild().data()); QVERIFY(layer->layerStyle()); = QVERIFY(layer->layerStyle()->patternOverlay());