#include "fullsizelayout.hpp" #include "qdebug.h" #include "qwidget.h" #include 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 = 0; for (auto child : itemList) { h = std::max(h, child->heightForWidth(width)); } return h; } int FullSizeLayout::count() const { return static_cast(itemList.count()); } QLayoutItem* FullSizeLayout::itemAt(int index) const { return itemList.value(index); } QSize FullSizeLayout::minimumSize() const { QSize size(0, 0); 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); }