File indexing completed on 2025-02-09 05:13:17
0001 /* 0002 * SPDX-FileCopyrightText: 2019 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "KisMoveBoundsCalculationJob.h" 0008 #include "kis_node.h" 0009 #include "kis_selection.h" 0010 #include "kis_layer_utils.h" 0011 0012 KisMoveBoundsCalculationJob::KisMoveBoundsCalculationJob(KisNodeList nodes, 0013 KisSelectionSP selection, 0014 QObject *requestedBy) 0015 : m_nodes(nodes), 0016 m_selection(selection), 0017 m_requestedBy(requestedBy) 0018 { 0019 setExclusive(true); 0020 } 0021 0022 void KisMoveBoundsCalculationJob::run() 0023 { 0024 QRect handlesRect; 0025 0026 Q_FOREACH (KisNodeSP node, m_nodes) { 0027 handlesRect |= KisLayerUtils::recursiveTightNodeVisibleBounds(node); 0028 } 0029 0030 if (m_selection) { 0031 handlesRect &= m_selection->selectedExactRect(); 0032 } 0033 0034 emit sigCalculationFinished(handlesRect); 0035 } 0036 0037 bool KisMoveBoundsCalculationJob::overrides(const KisSpontaneousJob *_otherJob) 0038 { 0039 const KisMoveBoundsCalculationJob *otherJob = 0040 dynamic_cast<const KisMoveBoundsCalculationJob*>(_otherJob); 0041 0042 return otherJob && otherJob->m_requestedBy == m_requestedBy; 0043 } 0044 0045 int KisMoveBoundsCalculationJob::levelOfDetail() const 0046 { 0047 return 0; 0048 } 0049 0050 QString KisMoveBoundsCalculationJob::debugName() const 0051 { 0052 QString result; 0053 QDebug dbg(&result); 0054 dbg << "KisMoveBoundsCalculationJob" << ppVar(m_requestedBy) << m_nodes; 0055 return result; 0056 }