Add Widget::mapToGlobal()

This commit is contained in:
Sergio Martins
2020-06-13 14:42:58 +01:00
parent e6b67101fa
commit 25dd149475
8 changed files with 18 additions and 4 deletions

View File

@@ -138,7 +138,7 @@ std::unique_ptr<WindowBeingDragged> TitleBar::makeWindow()
QRect r = m_frame->QWidget::geometry();
qCDebug(hovering) << "TitleBar::makeWindow original geometry" << r;
r.moveTopLeft(m_frame->mapToGlobal(QPoint(0, 0)));
r.moveTopLeft(static_cast<Layouting::Widget*>(m_frame)->mapToGlobal(QPoint(0, 0))); // TODO: Remove static_cast if it compiles. Ambiguous base for now
auto floatingWindow = Config::self().frameworkWidgetFactory()->createFloatingWindow(m_frame);
floatingWindow->setSuggestedGeometry(r);

View File

@@ -407,7 +407,7 @@ QRect ClassicIndicators::geometryForRubberband(QRect localRect) const
return localRect;
QPoint topLeftLocal = localRect.topLeft();
QPoint topLeftGlobal = m_dropArea->mapToGlobal(topLeftLocal);
QPoint topLeftGlobal = m_dropArea->QWidget::mapToGlobal(topLeftLocal);
localRect.moveTopLeft(topLeftGlobal);

View File

@@ -81,6 +81,7 @@ public:
virtual void hide() = 0;
virtual void update() = 0;
virtual QPoint mapFromGlobal(QPoint) const = 0;
virtual QPoint mapToGlobal(QPoint) const = 0;
QSize size() const {
return geometry().size();

View File

@@ -87,7 +87,7 @@ std::unique_ptr<Widget> Widget_quick::parentWidget() const
return {};
}
std::unique_ptr<Widget> Widget_qwidget::topLevel() const
std::unique_ptr<Widget> Widget_quick::topLevel() const
{
// TODO
return {};
@@ -153,6 +153,12 @@ QPoint Widget_quick::mapFromGlobal(QPoint p) const
return p;
}
QPoint Widget_quick::mapToGlobal(QPoint p) const
{
qWarning() << Q_FUNC_INFO << "Implement me!";
return p;
}
QQuickItem *Widget_quick::createQQuickItem(const QString &filename, QQuickItem *parent) const
{
auto p = parent;

View File

@@ -63,6 +63,7 @@ public:
void setHeight(int height) override;
void update() override;
QPoint mapFromGlobal(QPoint p) const override;
QPoint mapToGlobal(QPoint p) const override;
static QSize widgetMinSize(const QWidget *w);

View File

@@ -175,3 +175,8 @@ QPoint Widget_qwidget::mapFromGlobal(QPoint p) const
{
return m_thisWidget->mapFromGlobal(p);
}
QPoint Widget_qwidget::mapToGlobal(QPoint p) const
{
return m_thisWidget->mapToGlobal(p);
}

View File

@@ -66,6 +66,7 @@ public:
void setHeight(int height) override;
void update() override;
QPoint mapFromGlobal(QPoint p) const override;
QPoint mapToGlobal(QPoint p) const override;
static QSize widgetMinSize(const QWidget *w);
static QSize widgetMaxSize(const QWidget *w);

View File

@@ -555,7 +555,7 @@ void TestDocks::tst_dock2FloatingWidgetsTabbed()
QTest::qWait(1000); // Test is flaky otherwise
auto fw2 = dock2->floatingWindow();
drag(fw2->titleBar(), frame2->mapToGlobal(QPoint(10, 10)), dock3->window()->geometry().center());
drag(fw2->titleBar(), static_cast<Layouting::Widget*>(frame2)->mapToGlobal(QPoint(10, 10)), dock3->window()->geometry().center());
QVERIFY(Testing::waitForDeleted(frame1));
QVERIFY(Testing::waitForDeleted(frame2));