2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
|
|
|
|
#include "toonzqt/freelayout.h"
|
|
|
|
|
2019-02-21 15:58:39 +13:00
|
|
|
#include <memory>
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//************************************************************************************
|
|
|
|
// 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() {
|
2019-02-21 15:58:39 +13:00
|
|
|
std::for_each(m_items.begin(), m_items.end(), std::default_delete<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
|
|
|
}
|