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

109
myflowlayout.cpp Normal file
View File

@@ -0,0 +1,109 @@
// #include "myflowlayout.hpp"
// #include "qexception.h"
// #include "qwidget.h"
// MyFlowLayout::MyFlowLayout(QWidget *parent, int margin, int hSpacing, int vSpacing)
// : QLayout(parent), hSpace(hSpacing), vSpace(vSpacing)
// {
// }
// MyFlowLayout::MyFlowLayout(int margin, int hSpacing, int vSpacing)
// : hSpace(hSpacing), vSpace(vSpacing)
// {
// }
// MyFlowLayout::~MyFlowLayout()
// {
// for (auto child : itemList)
// {
// delete child;
// }
// }
// void MyFlowLayout::addItem(QLayoutItem* item)
// {
// itemList.append(item);
// }
// int MyFlowLayout::horizontalSpacing() const
// {
// return hSpace;
// }
// int MyFlowLayout::verticalSpacing() const
// {
// return vSpace;
// }
// Qt::Orientations MyFlowLayout::expandingDirections() const
// {
// return { };
// }
// bool MyFlowLayout::hasHeightForWidth() const
// {
// return true;
// }
// int MyFlowLayout::heightForWidth(int width) const
// {
// QRect rect(0, 0, width, 0);
// return doLayout(rect, false);
// }
// QSize MyFlowLayout::minimumSize() const
// {
// QSize size(1,1);
// for (auto child : itemList)
// {
// size = size.expandedTo(child->minimumSize());
// }
// return size;
// }
// QLayoutItem* MyFlowLayout::itemAt(int index) const
// {
// return itemList.at(index);
// }
// QLayoutItem* MyFlowLayout::takeAt(int index)
// {
// return itemList.takeAt(index);
// }
// int MyFlowLayout::doLayout(const QRect &rect, bool apply) const
// {
// int left, top, right, bottom;
// getContentsMargins(&left, &top, &right, &bottom);
// QRect effectiveRect = rect.adjusted(+left, +top, -right, -bottom);
// int x = effectiveRect.x();
// int y = effectiveRect.y();
// int lineHeight = 0;
// for (QLayoutItem *item : std::as_const(itemList)) {
// const QWidget *wid = item->widget();
// int spaceX = horizontalSpacing();
// if (spaceX == -1)
// spaceX = wid->style()->layoutSpacing(
// QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Horizontal);
// int spaceY = verticalSpacing();
// if (spaceY == -1)
// spaceY = wid->style()->layoutSpacing(
// QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Vertical);
// int nextX = x + item->sizeHint().width() + spaceX;
// if (nextX - spaceX > effectiveRect.right() && lineHeight > 0) {
// x = effectiveRect.x();
// y = y + lineHeight + spaceY;
// nextX = x + item->sizeHint().width() + spaceX;
// lineHeight = 0;
// }
// if (apply)
// item->setGeometry(QRect(QPoint(x, y), item->sizeHint()));
// x = nextX;
// lineHeight = qMax(lineHeight, item->sizeHint().height());
// }
// return y + lineHeight - rect.y() + bottom;
// }