File indexing completed on 2024-05-12 15:58:14
0001 /* 0002 * SPDX-License-Identifier: GPL-3.0-or-later 0003 */ 0004 0005 #include "kis_default_bounds_node_wrapper.h" 0006 #include "kis_image.h" 0007 #include "kis_image_animation_interface.h" 0008 #include "kis_global.h" 0009 0010 struct Q_DECL_HIDDEN KisDefaultBoundsNodeWrapper::Private { 0011 KisBaseNodeWSP node; 0012 }; 0013 0014 const QRect KisDefaultBoundsNodeWrapper::infiniteRect = 0015 QRect(qint32_MIN/2, qint32_MIN/2, qint32_MAX, qint32_MAX); 0016 0017 KisDefaultBoundsNodeWrapper::KisDefaultBoundsNodeWrapper(KisBaseNodeWSP node) 0018 : m_d(new Private()) 0019 { 0020 m_d->node = node; 0021 } 0022 0023 KisDefaultBoundsNodeWrapper::KisDefaultBoundsNodeWrapper(KisDefaultBoundsNodeWrapper &rhs): 0024 m_d(new Private()) 0025 { 0026 m_d->node = rhs.m_d->node; 0027 } 0028 0029 KisDefaultBoundsNodeWrapper::~KisDefaultBoundsNodeWrapper() 0030 { 0031 delete m_d; 0032 } 0033 0034 QRect KisDefaultBoundsNodeWrapper::bounds() const 0035 { 0036 return m_d->node->original() ? m_d->node->original()->defaultBounds()->bounds() : KisDefaultBoundsNodeWrapper::infiniteRect; 0037 } 0038 0039 QRect KisDefaultBoundsNodeWrapper::imageBorderRect() const 0040 { 0041 return m_d->node && m_d->node->image() ? m_d->node->image()->bounds() : KisDefaultBoundsNodeWrapper::infiniteRect; 0042 } 0043 0044 bool KisDefaultBoundsNodeWrapper::wrapAroundMode() const 0045 { 0046 return m_d->node && m_d->node->image() ? m_d->node->image()->wrapAroundModeActive() : false; 0047 } 0048 0049 int KisDefaultBoundsNodeWrapper::currentLevelOfDetail() const 0050 { 0051 return m_d->node && m_d->node->image() ? m_d->node->image()->currentLevelOfDetail() : 0; 0052 } 0053 0054 int KisDefaultBoundsNodeWrapper::currentTime() const 0055 { 0056 const int time = m_d->node && m_d->node->image() ? m_d->node->image()->animationInterface()->currentTime() : 0; 0057 return time; 0058 } 0059 0060 bool KisDefaultBoundsNodeWrapper::externalFrameActive() const 0061 { 0062 return m_d->node->original() ? m_d->node->original()->defaultBounds()->externalFrameActive() : false; 0063 } 0064 0065 void *KisDefaultBoundsNodeWrapper::sourceCookie() const 0066 { 0067 return m_d->node->original() ? m_d->node->original()->defaultBounds()->sourceCookie() : nullptr; 0068 } 0069