92 lines
1.8 KiB
C++
92 lines
1.8 KiB
C++
#include "fullsizelayout.hpp"
|
|
#include "qdebug.h"
|
|
#include "qwidget.h"
|
|
#include <algorithm>
|
|
|
|
FullSizeLayout::FullSizeLayout() {}
|
|
|
|
FullSizeLayout::~FullSizeLayout()
|
|
{
|
|
for (auto& child : itemList)
|
|
{
|
|
delete child;
|
|
child = nullptr;
|
|
}
|
|
itemList.clear();
|
|
}
|
|
void FullSizeLayout::addItem(QLayoutItem* item)
|
|
{
|
|
itemList.append(item);
|
|
}
|
|
int FullSizeLayout::horizontalSpacing() const
|
|
{
|
|
return 0;
|
|
}
|
|
int FullSizeLayout::verticalSpacing() const
|
|
{
|
|
return 0;
|
|
}
|
|
Qt::Orientations FullSizeLayout::expandingDirections() const
|
|
{
|
|
return Qt::Vertical | Qt::Horizontal;
|
|
}
|
|
bool FullSizeLayout::hasHeightForWidth() const
|
|
{
|
|
for (auto child : itemList)
|
|
{
|
|
if (child->hasHeightForWidth())
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
int FullSizeLayout::heightForWidth(int width) const
|
|
{
|
|
int h = -1;
|
|
for (auto child : itemList)
|
|
{
|
|
h = std::max(h, child->heightForWidth(width));
|
|
}
|
|
return h;
|
|
}
|
|
int FullSizeLayout::count() const
|
|
{
|
|
return static_cast<int>(itemList.count());
|
|
}
|
|
QLayoutItem* FullSizeLayout::itemAt(int index) const
|
|
{
|
|
return itemList.value(index);
|
|
}
|
|
QSize FullSizeLayout::minimumSize() const
|
|
{
|
|
QSize size;
|
|
for (auto child : itemList)
|
|
{
|
|
// auto wid = child->widget();
|
|
if (std::max(child->minimumSize().height(), child->minimumSize().width()) >= 200)
|
|
child->minimumSize();
|
|
// if (wid)
|
|
size = size.expandedTo(child->minimumSize());
|
|
}
|
|
return size;
|
|
}
|
|
void FullSizeLayout::setGeometry(const QRect &rect)
|
|
{
|
|
for (auto child : itemList)
|
|
{
|
|
child->setGeometry(rect);
|
|
}
|
|
}
|
|
QSize FullSizeLayout::sizeHint() const
|
|
{
|
|
QSize size(1,1);
|
|
for (auto child : itemList)
|
|
{
|
|
size = size.expandedTo(child->sizeHint());
|
|
}
|
|
return size;
|
|
}
|
|
QLayoutItem* FullSizeLayout::takeAt(int index)
|
|
{
|
|
return itemList.takeAt(index);
|
|
}
|