Added View::focusPolicy()

This commit is contained in:
Sergio Martins
2022-05-10 23:14:57 +01:00
parent 9f7c4cb217
commit 73e6822a1d
9 changed files with 36 additions and 1 deletions

View File

@@ -121,6 +121,7 @@ public:
return minSize().height();
}
virtual Qt::FocusPolicy focusPolicy() const = 0;
virtual QSize maxSizeHint() const = 0;
virtual QSize maximumSize() const = 0;
virtual QRect geometry() const = 0;

View File

@@ -201,6 +201,16 @@ void ViewWrapper_qtquick::releaseMouse()
m_item->ungrabMouse();
}
Qt::FocusPolicy ViewWrapper_qtquick::focusPolicy() const
{
if (auto view = unwrap()) {
return view->focusPolicy();
} else {
qFatal("not implemented");
return {};
}
}
void ViewWrapper_qtquick::setFocus(Qt::FocusReason)
{
}

View File

@@ -61,6 +61,7 @@ public:
void setCursor(Qt::CursorShape) override;
QSize minSize() const override;
bool close() override;
Qt::FocusPolicy focusPolicy() const override;
const View *unwrap() const;
View *unwrap();

View File

@@ -146,7 +146,7 @@ public:
void releaseMouse() override;
void releaseKeyboard() override;
void setFocus(Qt::FocusReason reason) override;
Qt::FocusPolicy focusPolicy() const;
Qt::FocusPolicy focusPolicy() const override;
/// TODOv2: Make these 2 virtual ?
void setFocusPolicy(Qt::FocusPolicy policy);
QString objectName() const override;

View File

@@ -352,3 +352,8 @@ bool ViewWrapper_qtwidgets::close()
{
return m_widget->close();
}
Qt::FocusPolicy ViewWrapper_qtwidgets::focusPolicy() const
{
return m_widget->focusPolicy();
}

View File

@@ -62,6 +62,7 @@ public:
bool testAttribute(Qt::WidgetAttribute) const override;
void setCursor(Qt::CursorShape) override;
QSize minSize() const override;
Qt::FocusPolicy focusPolicy() const override;
QWidget *widget() const;

View File

@@ -336,6 +336,11 @@ public:
return QWidget::isMaximized();
}
Qt::FocusPolicy focusPolicy() const override
{
return QWidget::focusPolicy();
}
std::shared_ptr<ViewWrapper> childViewAt(QPoint localPos) const override
{
if (QWidget *child = QWidget::childAt(localPos))

View File

@@ -184,3 +184,9 @@ TEST_CASE("View::closeRequested")
rootView->close();
CHECK(signalArrived);
}
TEST_CASE("View::focusPolicy")
{
auto rootView = Platform::instance()->tests_createView({});
CHECK_EQ(rootView->focusPolicy(), Qt::NoFocus);
}

View File

@@ -78,3 +78,9 @@ TEST_CASE("ViewWrapper::objectName")
rootView->setObjectName(newName);
CHECK_EQ(rootView->objectName(), newName);
}
TEST_CASE("View::focusPolicy")
{
auto rootView = Platform::instance()->tests_createView({});
CHECK_EQ(rootView->asWrapper()->focusPolicy(), Qt::NoFocus);
}