tahoma2d/toonz/sources/toonzqt/freelayout.cpp
2019-02-21 11:58:39 +09:00

52 lines
1.5 KiB
C++

#include "toonzqt/freelayout.h"
#include <memory>
//************************************************************************************
// DummyLayout implementation
//************************************************************************************
DummyLayout::DummyLayout() { setSizeConstraint(QLayout::SetNoConstraint); }
//---------------------------------------------------------------------------
DummyLayout::~DummyLayout() {
std::for_each(m_items.begin(), m_items.end(), std::default_delete<QLayoutItem>());
}
//---------------------------------------------------------------------------
QSize DummyLayout::sizeHint() const {
QRect geom, result;
QList<QLayoutItem *>::const_iterator it, iEnd = m_items.end();
for (it = m_items.begin(); it != iEnd; ++it) {
QLayoutItem *item = *it;
geom = item->geometry();
geom.setSize(item->sizeHint());
result |= geom;
}
return result.size();
}
//************************************************************************************
// FreeLayout implementation
//************************************************************************************
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;
const QRect &geom = item->geometry();
const QSize &sizeHint = item->sizeHint();
if (geom.size() != sizeHint)
item->setGeometry(QRect(geom.topLeft(), sizeHint));
}
}