Don't depend directly on QSizePolicy, as that's QtWidgets

Introduce our own enum. Soon our qtquick frontend won't link
against QtWidgets
This commit is contained in:
Sergio Martins
2022-06-11 18:22:38 +01:00
parent e120f6f318
commit 1acbf48786
18 changed files with 82 additions and 36 deletions

View File

@@ -358,7 +358,12 @@ bool ViewWrapper_qtwidgets::hasFocus() const
return m_widget->hasFocus();
}
QSizePolicy ViewWrapper_qtwidgets::sizePolicy() const
SizePolicy ViewWrapper_qtwidgets::horizontalSizePolicy() const
{
return m_widget->sizePolicy();
return SizePolicy(m_widget->sizePolicy().horizontalPolicy());
}
SizePolicy ViewWrapper_qtwidgets::verticalSizePolicy() const
{
return SizePolicy(m_widget->sizePolicy().verticalPolicy());
}

View File

@@ -63,7 +63,8 @@ public:
Qt::FocusPolicy focusPolicy() const override;
void setFocusPolicy(Qt::FocusPolicy) override;
bool hasFocus() const override;
QSizePolicy sizePolicy() const override;
SizePolicy horizontalSizePolicy() const override;
SizePolicy verticalSizePolicy() const override;
QWidget *widget() const;
private:

View File

@@ -89,11 +89,12 @@ public:
QSize max = maximumSize();
max = boundedMaxSize(min, max); // for safety against weird values
const QSizePolicy policy = sizePolicy();
const SizePolicy vPolicy = verticalSizePolicy();
const SizePolicy hPolicy = horizontalSizePolicy();
if (policy.verticalPolicy() == QSizePolicy::Fixed || policy.verticalPolicy() == QSizePolicy::Maximum)
if (vPolicy == SizePolicy::Fixed || vPolicy == SizePolicy::Maximum)
max.setHeight(qMin(max.height(), sizeHint().height()));
if (policy.horizontalPolicy() == QSizePolicy::Fixed || policy.horizontalPolicy() == QSizePolicy::Maximum)
if (hPolicy == SizePolicy::Fixed || hPolicy == SizePolicy::Maximum)
max.setWidth(qMin(max.width(), sizeHint().width()));
max = View::boundedMaxSize(min, max); // for safety against weird values
@@ -246,14 +247,19 @@ public:
return QWidget::mapTo(qobject_cast<QWidget *>(someAncestor->asQObject()), pos);
}
void setSizePolicy(QSizePolicy policy) override
void setSizePolicy(SizePolicy h, SizePolicy v) override
{
Base::setSizePolicy(policy);
Base::setSizePolicy(QSizePolicy(QSizePolicy::Policy(h), QSizePolicy::Policy(v)));
}
QSizePolicy sizePolicy() const override
SizePolicy verticalSizePolicy() const override
{
return QWidget::sizePolicy();
return SizePolicy(Base::sizePolicy().verticalPolicy());
}
SizePolicy horizontalSizePolicy() const override
{
return SizePolicy(Base::sizePolicy().horizontalPolicy());
}
void setWindowOpacity(double v) override