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