Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "toonzqt/freelayout.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// tcg includes
Toshihiro Shimizu 890ddd
#include "tcg/tcg_deleter_types.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//************************************************************************************
Toshihiro Shimizu 890ddd
//    DummyLayout   implementation
Toshihiro Shimizu 890ddd
//************************************************************************************
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
DummyLayout::DummyLayout()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	setSizeConstraint(QLayout::SetNoConstraint);
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//---------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
DummyLayout::~DummyLayout()
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	std::for_each(m_items.begin(), m_items.end(), tcg::deleter<qlayoutitem>());</qlayoutitem>
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//---------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
QSize DummyLayout::sizeHint() const
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	QRect geom, result;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QList<qlayoutitem *="">::const_iterator it, iEnd = m_items.end();</qlayoutitem>
Toshihiro Shimizu 890ddd
	for (it = m_items.begin(); it != iEnd; ++it) {
Toshihiro Shimizu 890ddd
		QLayoutItem *item = *it;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
		geom = item->geometry();
Toshihiro Shimizu 890ddd
		geom.setSize(item->sizeHint());
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
		result |= geom;
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	return result.size();
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//************************************************************************************
Toshihiro Shimizu 890ddd
//    FreeLayout   implementation
Toshihiro Shimizu 890ddd
//************************************************************************************
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
void FreeLayout::setGeometry(const QRect &r)
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	QList<qlayoutitem *="">::const_iterator it, iEnd = m_items.end();</qlayoutitem>
Toshihiro Shimizu 890ddd
	for (it = m_items.begin(); it != iEnd; ++it) {
Toshihiro Shimizu 890ddd
		QLayoutItem *item = *it;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
		const QRect &geom = item->geometry();
Toshihiro Shimizu 890ddd
		const QSize &sizeHint = item->sizeHint();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
		if (geom.size() != sizeHint)
Toshihiro Shimizu 890ddd
			item->setGeometry(QRect(geom.topLeft(), sizeHint));
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
}