[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krita/rempt/impex-refactoring] /: Prepare qobject_cast over dynamic_cast
From:       Frederik Gladhorn <gladhorn () kde ! org>
Date:       2016-11-15 22:00:47
Message-ID: E1c6lmZ-00013p-7x () code ! kde ! org
[Download RAW message or body]

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::restoreClones()
 
 void KisImageLayerRemoveCommandImpl::Private::processClones(KisNodeSP node)
 {
-    KisLayerSP layer(dynamic_cast<KisLayer*>(node.data()));
+    KisLayerSP layer(qobject_cast<KisLayer*>(node.data()));
     if(!layer || !layer->hasClones()) return;
 
     if(reincarnatedNodes.isEmpty()) {
diff --git a/libs/image/commands_new/kis_activate_selection_mask_command.cpp \
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::KisActivateSelectionMaskCommand(KisSelectionMas
  m_value(value)
 {
     if (m_previousActiveMask != m_selectionMask) {
-        KisLayerSP parent(dynamic_cast<KisLayer*>(selectionMask->parent().data()));
+        KisLayerSP parent(qobject_cast<KisLayer*>(selectionMask->parent().data()));
         if (parent) {
             m_previousActiveMask = parent->selectionMask();
         }
diff --git a/libs/image/generator/kis_generator_layer.cpp \
b/libs/image/generator/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<KisLayer*>(parent().data()));
+    KisLayerSP parentLayer(qobject_cast<KisLayer*>(parent().data()));
     if (!parentLayer) return;
 
     KisImageSP image = 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::~KisColorSpaceConvertVisitor()
 bool KisColorSpaceConvertVisitor::visit(KisGroupLayer * layer)
 {
     convertPaintDevice(layer);
-    KisLayerSP child = dynamic_cast<KisLayer*>(layer->firstChild().data());
+    KisLayerSP child = qobject_cast<KisLayer*>(layer->firstChild().data());
     while (child) {
         child->accept(*this);
-        child = dynamic_cast<KisLayer*>(child->nextSibling().data());
+        child = qobject_cast<KisLayer*>(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 = 0;
 
     while (child) {
-        KisLayer *layer = dynamic_cast<KisLayer*>(child);
+        KisLayer *layer = qobject_cast<KisLayer*>(child);
         if (layer) {
             if (onlyLayer) return 0;
             onlyLayer = 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 = dynamic_cast<KisLayer*>(node.data());
+    bool isLayer = qobject_cast<KisLayer*>(node.data());
     KUndo2MagicString actionName = 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<KisLayer*>(parent().data());
+    return qobject_cast<KisLayer*>(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<KisSelectionMaskSP> \
&selectionMasks)  {
         foreach (KisNodeSP node, mergedNodes) {
-            KisLayerSP layer = dynamic_cast<KisLayer*>(node.data());
+            KisLayerSP layer = qobject_cast<KisLayer*>(node.data());
 
             KisSelectionMaskSP mask;
 
@@ -111,7 +111,7 @@ namespace KisLayerUtils {
         }
 
         KisLayerSP dstLayer() override {
-            return dynamic_cast<KisLayer*>(dstNode.data());
+            return qobject_cast<KisLayer*>(dstNode.data());
         }
     };
 
@@ -344,7 +344,7 @@ namespace KisLayerUtils {
                     break;
                 }
 
-                KisLayerSP layer = dynamic_cast<KisLayer*>(node.data());
+                KisLayerSP layer = qobject_cast<KisLayer*>(node.data());
                 if (layer && layer->layerStyle()) {
                     compositionVaries = true;
                     break;
@@ -506,7 +506,7 @@ namespace KisLayerUtils {
     bool RemoveNodeHelper::scanForLastLayer(KisImageWSP image, KisNodeList \
nodesToRemove) {  bool removeLayers = false;
         Q_FOREACH(KisNodeSP nodeToRemove, nodesToRemove) {
-            if (dynamic_cast<KisLayer*>(nodeToRemove.data())) {
+            if (qobject_cast<KisLayer*>(nodeToRemove.data())) {
                 removeLayers = true;
                 break;
             }
@@ -517,7 +517,7 @@ namespace KisLayerUtils {
         KisNodeSP node = image->root()->firstChild();
         while (node) {
             if (!nodesToRemove.contains(node) &&
-                dynamic_cast<KisLayer*>(node.data())) {
+                qobject_cast<KisLayer*>(node.data())) {
 
                 lastLayer = 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 = dynamic_cast<KisLayer*>(layer->prevSibling().data());
+        KisLayerSP prevLayer = qobject_cast<KisLayer*>(layer->prevSibling().data());
         if (!prevLayer) return;
 
         if (!layer->visible() && !prevLayer->visible()) {
@@ -878,7 +878,7 @@ namespace KisLayerUtils {
         KisNodeList::iterator it = nodes.begin();
 
         while (it != nodes.end()) {
-            if ((!allowMasks && !dynamic_cast<KisLayer*>(it->data())) ||
+            if ((!allowMasks && !qobject_cast<KisLayer*>(it->data())) ||
                 checkIsChildOf(*it, nodes)) {
 
                 qDebug() << "Skipping node" << ppVar((*it)->name());
@@ -1124,7 +1124,7 @@ namespace KisLayerUtils {
 
             KisLayerSP parentLayer;
             do {
-                parentLayer = dynamic_cast<KisLayer*>(parent.data());
+                parentLayer = qobject_cast<KisLayer*>(parent.data());
 
                 parent = parent->parent();
             } while(!parentLayer && parent);
@@ -1180,7 +1180,7 @@ namespace KisLayerUtils {
 
         if (mergedNodes.isEmpty()) return false;
 
-        KisLayerSP parentLayer = \
dynamic_cast<KisLayer*>(selectionMasks.first()->parent().data()); +        KisLayerSP \
parentLayer = qobject_cast<KisLayer*>(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 KisNode \
                *srcDuplicationRoot
                                                         clone->copyFrom());
 
         if (newCopyFrom) {
-            KisLayer *newCopyFromLayer = \
dynamic_cast<KisLayer*>(const_cast<KisNode*>(newCopyFrom)); +            KisLayer \
*newCopyFromLayer = qobject_cast<KisLayer*>(const_cast<KisNode*>(newCopyFrom));  \
KIS_ASSERT_RECOVER_RETURN(newCopyFromLayer);  
             clone->setCopyFrom(newCopyFromLayer);
diff --git a/libs/image/kis_processing_applicator.cpp \
b/libs/image/kis_processing_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 = prevNode->prevSibling();
         }
 
-        KisLayer *layer = dynamic_cast<KisLayer*>(m_node.data());
+        KisLayer *layer = qobject_cast<KisLayer*>(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 = dynamic_cast<KisLayer*>(m_mask->parent().data());
+    KisLayerSP layer = qobject_cast<KisLayer*>(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_mask.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 = this->image();
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer = qobject_cast<KisLayer*>(parent().data());
 
     if (active && parentLayer) {
         KisSelectionMaskSP activeMask = parentLayer->selectionMask();
diff --git a/libs/image/kis_transform_mask.cpp b/libs/image/kis_transform_mask.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 = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer = qobject_cast<KisLayer*>(parent().data());
     if (!parentLayer) return;
 
     KisImageSP image = parentLayer->image();
@@ -175,7 +175,7 @@ KisPaintDeviceSP KisTransformMask::buildPreviewDevice()
      * is not entirely safe.
      */
 
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer = qobject_cast<KisLayer*>(parent().data());
     KIS_ASSERT_RECOVER(parentLayer) { return new KisPaintDevice(colorSpace()); }
 
     KisPaintDeviceSP device =
@@ -195,7 +195,7 @@ void KisTransformMask::recaclulateStaticImage()
      * is not entirely safe.
      */
 
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer = qobject_cast<KisLayer*>(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 = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer = qobject_cast<KisLayer*>(parent().data());
     if (parentLayer) {
         partialChangeRect = \
parentLayer->partialChangeRect(const_cast<KisTransformMask*>(this), rc);  \
existentProjection = parentLayer->projection()->extent(); @@ -401,7 +401,7 @@ QRect \
KisTransformMask::exactBounds() const  
     QRect partialChangeRect;
     QRect existentProjection;
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent().data());
+    KisLayerSP parentLayer = qobject_cast<KisLayer*>(parent().data());
     if (parentLayer) {
         partialChangeRect = \
parentLayer->partialChangeRect(const_cast<KisTransformMask*>(this), rc);  \
                existentProjection = parentLayer->projection()->exactBounds();
diff --git a/libs/image/lazybrush/kis_colorize_mask.cpp \
b/libs/image/lazybrush/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<KisLayer*>(parent().data()));
+    KisLayerSP parentLayer(qobject_cast<KisLayer*>(parent().data()));
     if (!parentLayer || !parentLayer->original()) return;
 
     KisImageSP image = parentLayer->image();
@@ -258,7 +258,7 @@ void KisColorizeMask::slotUpdateRegenerateFilling()
     m_d->originalSequenceNumber = src->sequenceNumber();
     m_d->coloringProjection->clear();
 
-    KisLayerSP parentLayer(dynamic_cast<KisLayer*>(parent().data()));
+    KisLayerSP parentLayer(qobject_cast<KisLayer*>(parent().data()));
     if (!parentLayer) return;
 
     KisImageSP image = parentLayer->image();
@@ -491,7 +491,7 @@ QRect KisColorizeMask::nonDependentExtent() const
 
 KisImageSP KisColorizeMask::fetchImage() const
 {
-    KisLayerSP parentLayer(dynamic_cast<KisLayer*>(parent().data()));
+    KisLayerSP parentLayer(qobject_cast<KisLayer*>(parent().data()));
     if (!parentLayer) return KisImageSP();
 
     return parentLayer->image();
diff --git a/libs/image/recorder/kis_recorded_filter_action.cpp \
b/libs/image/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 = d->configuration();
     KisPaintDeviceSP dev = node->paintDevice();
-    KisLayerSP layer = dynamic_cast<KisLayer*>(node.data());
+    KisLayerSP layer = qobject_cast<KisLayer*>(node.data());
     QRect r1 = dev->extent();
     KisTransaction transaction(kundo2_i18n("Filter: \"%1\"", d->filter->name()), \
dev);  
diff --git a/libs/image/tests/kis_image_test.cpp \
b/libs/image/tests/kis_image_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, KisLayerSP layer, \
bool nothingHa  QList<QVariant> arguments = spy.takeFirst();
     KisNodeSP newNode = arguments.first().value<KisNodeSP>();
 
-    KisLayerSP newLayer = dynamic_cast<KisLayer*>(newNode.data());
+    KisLayerSP newLayer = qobject_cast<KisLayer*>(newNode.data());
     return newLayer;
 }
 
@@ -600,7 +600,7 @@ KisLayerSP mergeHelper(ContainerTest &p, KisLayerSP layer)
     //KisLayerUtils::mergeDown(p.image, layer, \
KisMetaData::MergeStrategyRegistry::instance()->get("Drop"));  \
p.image->waitForDone();  
-    KisLayerSP newLayer = dynamic_cast<KisLayer*>(parent->at(newIndex).data());
+    KisLayerSP newLayer = qobject_cast<KisLayer*>(parent->at(newIndex).data());
     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 == m_image->rootLayer()) {
-        KisLayerSP child = dynamic_cast<KisLayer*>(layer->firstChild().data());
+        KisLayerSP child = qobject_cast<KisLayer*>(layer->firstChild().data());
         while (child) {
             child->accept(*this);
-            child = dynamic_cast<KisLayer*>(child->nextSibling().data());
+            child = qobject_cast<KisLayer*>(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 = d->currentNode;
     }
-    return dynamic_cast<KisLayer*>(node.data());
+    return qobject_cast<KisLayer*>(node.data());
 }
 
 KisMaskSP KisView::currentMask() const
diff --git a/libs/ui/dialogs/kis_dlg_filter.cpp b/libs/ui/dialogs/kis_dlg_filter.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 = dynamic_cast<KisLayer*>(d->node.data());
+    KisLayer *layer = qobject_cast<KisLayer*>(d->node.data());
     KisFilterMaskSP mask = 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 |= KisAction::ACTIVE_NODE;
 
-        layer = dynamic_cast<KisLayer*>(node.data());
+        layer = qobject_cast<KisLayer*>(node.data());
         if (layer) {
             flags |= 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 = dynamic_cast<KisLayer*>(source.data());
+    KisLayer *srcLayer = qobject_cast<KisLayer*>(source.data());
     if (srcLayer && (srcLayer->inherits("KisGroupLayer") || srcLayer->layerStyle() \
|| 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 = dynamic_cast<KisLayer*>(layer->prevSibling().data());
+        KisLayer *prevLayer = qobject_cast<KisLayer*>(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, KisNodeSP \
activeNode, KisP  KisNodeSP above;
     adjustMaskPosition(mask, activeNode, avoidActiveNode, parent, above);
 
-    KisLayerSP parentLayer = dynamic_cast<KisLayer*>(parent.data());
+    KisLayerSP parentLayer = qobject_cast<KisLayer*>(parent.data());
     Q_ASSERT(parentLayer);
 
     if (!suppressSelection) {
@@ -251,7 +251,7 @@ void KisMaskManager::maskProperties()
     if (activeMask()->inherits("KisFilterMask")) {
         KisFilterMask *mask = static_cast<KisFilterMask*>(activeMask().data());
 
-        KisLayerSP layer = dynamic_cast<KisLayer*>(mask->parent().data());
+        KisLayerSP layer = qobject_cast<KisLayer*>(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 *node,
                                          KisShapeController *shapeController)
 {
     // layers store a link to the image, so update it
-    KisLayer *layer = dynamic_cast<KisLayer*>(node->data());
+    KisLayer *layer = qobject_cast<KisLayer*>(node->data());
     if (layer) {
         layer->setImage(image);
     }
diff --git a/libs/ui/kis_multinode_property.h b/libs/ui/kis_multinode_property.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<KisLayer*>(node.data());
+        return qobject_cast<KisLayer*>(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(KisNodeSP node)
         selection->setActiveLayer(shapeLayer);
 
         imageView->setCurrentNode(node);
-        if (KisLayerSP layer = dynamic_cast<KisLayer*>(node.data())) {
+        if (KisLayerSP layer = qobject_cast<KisLayer*>(node.data())) {
             maskManager.activateMask(0);
             layerManager.activateLayer(layer);
         } else if (KisMaskSP mask = dynamic_cast<KisMask*>(node.data())) {
@@ -383,7 +383,7 @@ void KisNodeManager::moveNodeAt(KisNodeSP node, KisNodeSP parent, \
int index)  if (parent->allowAsChild(node)) {
         if (node->inherits("KisSelectionMask") && parent->inherits("KisLayer")) {
             KisSelectionMask *m = dynamic_cast<KisSelectionMask*>(node.data());
-            KisLayer *l = dynamic_cast<KisLayer*>(parent.data());
+            KisLayer *l = qobject_cast<KisLayer*>(parent.data());
             KisSelectionMaskSP selMask = 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_layer_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::generateMD5() \
const  
 void KisPSDLayerStyleCollectionResource::collectAllLayerStyles(KisNodeSP root)
 {
-    KisLayer* layer = dynamic_cast<KisLayer*>(root.data());
+    KisLayer* layer = qobject_cast<KisLayer*>(root.data());
 
     if (layer && layer->layerStyle()) {
         KisPSDLayerStyleSP clone = layer->layerStyle()->clone();
@@ -143,7 +143,7 @@ void \
KisPSDLayerStyleCollectionResource::collectAllLayerStyles(KisNodeSP root)  
 void KisPSDLayerStyleCollectionResource::assignAllLayerStyles(KisNodeSP root)
 {
-    KisLayer* layer = dynamic_cast<KisLayer*>(root.data());
+    KisLayer* layer = qobject_cast<KisLayer*>(root.data());
 
     if (layer && layer->layerStyle()) {
         QUuid uuid = layer->layerStyle()->uuid();
diff --git a/libs/ui/tool/kis_resources_snapshot.cpp \
b/libs/ui/tool/kis_resources_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 = m_d->image ? m_d->image->globalSelection() : 0;
 
-    KisLayerSP layer = dynamic_cast<KisLayer*>(m_d->currentNode.data());
+    KisLayerSP layer = qobject_cast<KisLayer*>(m_d->currentNode.data());
     KisSelectionMaskSP mask;
-    if((layer = dynamic_cast<KisLayer*>(m_d->currentNode.data()))) {
+    if((layer = qobject_cast<KisLayer*>(m_d->currentNode.data()))) {
          selection = layer->selection();
     } else if ((mask = dynamic_cast<KisSelectionMask*>(m_d->currentNode.data())) &&
                mask->selection() == 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 = 0;
         while (node) {
-            KisLayerSP layer = dynamic_cast<KisLayer*>(node.data());
+            KisLayerSP layer = qobject_cast<KisLayer*>(node.data());
 
             if (!layer || !layer->isEditable()) {
                 node = 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 = doc->image();
     if (image && image->root() && image->root()->firstChild()) {
-        KisLayer * layer = \
dynamic_cast<KisLayer*>(image->root()->firstChild().data()); +        KisLayer * \
layer = qobject_cast<KisLayer*>(image->root()->firstChild().data());  
         KisPaintDeviceSP clip = 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 = dynamic_cast<KisLayer*>(node.data());
+            KisLayer* paintLayer = qobject_cast<KisLayer*>(node.data());
             CSVLayerRecord* layerRecord = 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 = layer->copyFromInfo().findNode(m_image->rootLayer());
-    KisLayerSP srcLayer = dynamic_cast<KisLayer*>(srcNode.data());
+    KisLayerSP srcLayer = qobject_cast<KisLayer*>(srcNode.data());
     Q_ASSERT(srcLayer);
 
     layer->setCopyFrom(srcLayer);
@@ -278,7 +278,7 @@ void KisKraLoadVisitor::initSelectionForMask(KisMask *mask)
         cloneLayer->accept(*this);
     }
 
-    KisLayer *parentLayer = dynamic_cast<KisLayer*>(mask->parent().data());
+    KisLayer *parentLayer = qobject_cast<KisLayer*>(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 = dynamic_cast<KisLayer*>(child.data());
+        KisLayer *layer = qobject_cast<KisLayer*>(child.data());
         if (layer) {
             if (layer->colorSpace() != cs) {
                 res = false;
diff --git a/plugins/impex/psd/psd_layer_section.cpp \
b/plugins/impex/psd/psd_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, \
FlattenedNode::Type type)  return 0;
     }
 
-    KisLayer *layer = dynamic_cast<KisLayer*>(node.data());
+    KisLayer *layer = qobject_cast<KisLayer*>(node.data());
     QList<KisEffectMaskSP> masks = layer->effectMasks();
 
     if (masks.size() != 1) return 0;
diff --git a/plugins/impex/psd/tests/kis_psd_test.cpp \
b/plugins/impex/psd/tests/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<KisDocument> doc = openPsdDocument(sourceFileInfo);
     QVERIFY(doc->image());
 
-    KisLayerSP layer = \
dynamic_cast<KisLayer*>(doc->image()->root()->lastChild().data()); +    KisLayerSP \
layer = qobject_cast<KisLayer*>(doc->image()->root()->lastChild().data());  \
QVERIFY(layer->layerStyle());  QVERIFY(layer->layerStyle()->dropShadow());
     QVERIFY(layer->layerStyle()->dropShadow()->effectEnabled());
@@ -149,7 +149,7 @@ void KisPSDTest::testOpenLayerStylesWithPattern()
     QSharedPointer<KisDocument> doc = openPsdDocument(sourceFileInfo);
     QVERIFY(doc->image());
 
-    KisLayerSP layer = \
dynamic_cast<KisLayer*>(doc->image()->root()->lastChild().data()); +    KisLayerSP \
layer = qobject_cast<KisLayer*>(doc->image()->root()->lastChild().data());  \
QVERIFY(layer->layerStyle());  QVERIFY(layer->layerStyle()->patternOverlay());
     QVERIFY(layer->layerStyle()->patternOverlay()->effectEnabled());
@@ -166,7 +166,7 @@ void KisPSDTest::testOpenLayerStylesWithPatternMulti()
     QSharedPointer<KisDocument> doc = openPsdDocument(sourceFileInfo);
     QVERIFY(doc->image());
 
-    KisLayerSP layer = \
dynamic_cast<KisLayer*>(doc->image()->root()->lastChild().data()); +    KisLayerSP \
layer = qobject_cast<KisLayer*>(doc->image()->root()->lastChild().data());  \
QVERIFY(layer->layerStyle());  
     QVERIFY(layer->layerStyle()->patternOverlay());
@@ -189,7 +189,7 @@ void KisPSDTest::testSaveLayerStylesWithPatternMulti()
     QSharedPointer<KisDocument> doc = openPsdDocument(sourceFileInfo);
     QVERIFY(doc->image());
 
-    KisLayerSP layer = \
dynamic_cast<KisLayer*>(doc->image()->root()->lastChild().data()); +    KisLayerSP \
layer = qobject_cast<KisLayer*>(doc->image()->root()->lastChild().data());  \
QVERIFY(layer->layerStyle());  
     QVERIFY(layer->layerStyle()->patternOverlay());
@@ -216,7 +216,7 @@ void KisPSDTest::testSaveLayerStylesWithPatternMulti()
         QImage result = doc->image()->projection()->convertToQImage(0, \
                doc->image()->bounds());
         //QVERIFY(TestUtil::checkQImageExternal(result, "psd_test", \
"transparency_masks", "kiki_single"));  
-        KisLayerSP layer = \
dynamic_cast<KisLayer*>(doc->image()->root()->lastChild().data()); +        \
KisLayerSP layer = qobject_cast<KisLayer*>(doc->image()->root()->lastChild().data()); \
QVERIFY(layer->layerStyle());  
         QVERIFY(layer->layerStyle()->patternOverlay());


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic