diff options
Diffstat (limited to 'src/webengine/ui_delegates_manager.cpp')
-rw-r--r-- | src/webengine/ui_delegates_manager.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/webengine/ui_delegates_manager.cpp b/src/webengine/ui_delegates_manager.cpp index 615c6024d..d22e6546f 100644 --- a/src/webengine/ui_delegates_manager.cpp +++ b/src/webengine/ui_delegates_manager.cpp @@ -138,6 +138,7 @@ void NavigateMenuItem::onTriggered() UIDelegatesManager::UIDelegatesManager(QQuickWebEngineView *view) : m_view(view) + , m_messageBubbleItem(0) FOR_EACH_COMPONENT_TYPE(COMPONENT_MEMBER_INIT, NO_SEPARATOR) { } @@ -430,6 +431,38 @@ void UIDelegatesManager::showFilePicker(WebContentsAdapterClient::FileChooserMod QMetaObject::invokeMethod(filePicker, "open"); } +void UIDelegatesManager::showMessageBubble(const QRect &anchor, const QString &mainText, const QString &subText) +{ + if (!ensureComponentLoaded(MessageBubble)) + return; + + Q_ASSERT(m_messageBubbleItem.isNull()); + + QQmlContext *context = qmlContext(m_view); + m_messageBubbleItem.reset(qobject_cast<QQuickItem *>(messageBubbleComponent->beginCreate(context))); + m_messageBubbleItem->setParentItem(m_view); + messageBubbleComponent->completeCreate(); + + QQmlProperty(m_messageBubbleItem.data(), QStringLiteral("maxWidth")).write(anchor.size().width()); + QQmlProperty(m_messageBubbleItem.data(), QStringLiteral("mainText")).write(mainText); + QQmlProperty(m_messageBubbleItem.data(), QStringLiteral("subText")).write(subText); + QQmlProperty(m_messageBubbleItem.data(), QStringLiteral("x")).write(anchor.x()); + QQmlProperty(m_messageBubbleItem.data(), QStringLiteral("y")).write(anchor.y() + anchor.size().height()); +} + +void UIDelegatesManager::hideMessageBubble() +{ + m_messageBubbleItem.reset(); +} + +void UIDelegatesManager::moveMessageBubble(const QRect &anchor) +{ + Q_ASSERT(!m_messageBubbleItem.isNull()); + + QQmlProperty(m_messageBubbleItem.data(), QStringLiteral("x")).write(anchor.x()); + QQmlProperty(m_messageBubbleItem.data(), QStringLiteral("y")).write(anchor.y() + anchor.size().height()); +} + } // namespace QtWebEngineCore #include "ui_delegates_manager.moc" |