62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
|
|
||
|
|
||
|
#include "toonz/txshlevelhandle.h"
|
||
|
|
||
|
#include "toonz/txshlevel.h"
|
||
|
#include "toonz/txshsimplelevel.h"
|
||
|
#include "toonz/txsheet.h"
|
||
|
#include "toonz/txshcell.h"
|
||
|
|
||
|
//=============================================================================
|
||
|
// TXshLevelHandle
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
TXshLevelHandle::TXshLevelHandle()
|
||
|
: m_level(0)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
TXshLevelHandle::~TXshLevelHandle()
|
||
|
{
|
||
|
if (m_level)
|
||
|
m_level->release();
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
TXshLevel *TXshLevelHandle::getLevel() const
|
||
|
{
|
||
|
return m_level;
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
TXshSimpleLevel *TXshLevelHandle::getSimpleLevel() const
|
||
|
{
|
||
|
if (!m_level)
|
||
|
return 0;
|
||
|
else
|
||
|
return m_level->getSimpleLevel();
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
|
||
|
void TXshLevelHandle::setLevel(TXshLevel *level)
|
||
|
{
|
||
|
if (m_level == level)
|
||
|
return;
|
||
|
|
||
|
TXshLevel *oldLevel = m_level;
|
||
|
m_level = level;
|
||
|
if (level)
|
||
|
level->addRef();
|
||
|
bool levelExists = oldLevel ? oldLevel->getRefCount() > 1 : false;
|
||
|
if (oldLevel)
|
||
|
oldLevel->release();
|
||
|
emit xshLevelSwitched(levelExists ? oldLevel : 0);
|
||
|
}
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|