bunch of stuff. very basic drag/drop now working
This commit is contained in:
109
myflowlayout.cpp
Normal file
109
myflowlayout.cpp
Normal 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;
|
||||
// }
|
||||
Reference in New Issue
Block a user