bunch of stuff. very basic drag/drop now working
This commit is contained in:
91
fullsizelayout.cpp
Normal file
91
fullsizelayout.cpp
Normal file
@@ -0,0 +1,91 @@
|
||||
#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);
|
||||
}
|
||||
Reference in New Issue
Block a user