tahoma2d/toonz/sources/toonzqt/freelayout.cpp

54 lines
1.5 KiB
C++
Raw Normal View History

2016-03-19 06:57:51 +13:00
#include "toonzqt/freelayout.h"
// tcg includes
#include "tcg/tcg_deleter_types.h"
//************************************************************************************
// DummyLayout implementation
//************************************************************************************
2016-06-15 18:43:10 +12:00
DummyLayout::DummyLayout() { setSizeConstraint(QLayout::SetNoConstraint); }
2016-03-19 06:57:51 +13:00
//---------------------------------------------------------------------------
2016-06-15 18:43:10 +12:00
DummyLayout::~DummyLayout() {
std::for_each(m_items.begin(), m_items.end(), tcg::deleter<QLayoutItem>());
2016-03-19 06:57:51 +13:00
}
//---------------------------------------------------------------------------
2016-06-15 18:43:10 +12:00
QSize DummyLayout::sizeHint() const {
QRect geom, result;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
QList<QLayoutItem *>::const_iterator it, iEnd = m_items.end();
for (it = m_items.begin(); it != iEnd; ++it) {
QLayoutItem *item = *it;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
geom = item->geometry();
geom.setSize(item->sizeHint());
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
result |= geom;
}
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
return result.size();
2016-03-19 06:57:51 +13:00
}
//************************************************************************************
// FreeLayout implementation
//************************************************************************************
2016-06-15 18:43:10 +12:00
void FreeLayout::setGeometry(const QRect &r) {
QList<QLayoutItem *>::const_iterator it, iEnd = m_items.end();
for (it = m_items.begin(); it != iEnd; ++it) {
QLayoutItem *item = *it;
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
const QRect &geom = item->geometry();
const QSize &sizeHint = item->sizeHint();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
if (geom.size() != sizeHint)
item->setGeometry(QRect(geom.topLeft(), sizeHint));
}
2016-03-19 06:57:51 +13:00
}