bunch of stuff. very basic drag/drop now working

This commit is contained in:
Ikatono
2024-05-20 03:23:01 -05:00
commit fac2260a01
28 changed files with 1631 additions and 0 deletions

91
fullsizelayout.cpp Normal file
View 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);
}