summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/ui
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-02-08 17:31:44 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-03-15 16:52:27 +0000
commit243a2fef90dc3ac846a36738bfe97efba3050dc9 (patch)
tree9a68163527c2795f4c3ef0b11db10cc1a19f6915 /src/webenginewidgets/ui
parent6b35497375c07c49cca7317a4452acc6adc7a1cd (diff)
Adaptations to form validation
Form validations messages has moved entirely to being done by Blink. Change-Id: I6742c111fc59f0baba75b8b37f5d0ec9ae2fb920 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src/webenginewidgets/ui')
-rw-r--r--src/webenginewidgets/ui/messagebubblewidget.cpp225
-rw-r--r--src/webenginewidgets/ui/messagebubblewidget_p.h91
2 files changed, 0 insertions, 316 deletions
diff --git a/src/webenginewidgets/ui/messagebubblewidget.cpp b/src/webenginewidgets/ui/messagebubblewidget.cpp
deleted file mode 100644
index 70dada0c4..000000000
--- a/src/webenginewidgets/ui/messagebubblewidget.cpp
+++ /dev/null
@@ -1,225 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWebEngine module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "messagebubblewidget_p.h"
-
-#include "api/qwebengineview.h"
-
-#include <qglobal.h>
-#include <QBitmap>
-#include <QHBoxLayout>
-#include <QIcon>
-#include <QLabel>
-#include <QStyle>
-
-namespace QtWebEngineWidgetUI {
-
-Q_GLOBAL_STATIC(MessageBubbleWidget, bubbleInstance)
-
-void MessageBubbleWidget::showBubble(QWebEngineView *view, const QRect &anchor, const QString &mainText, const QString &subText)
-{
- hideBubble();
- if (mainText.isEmpty())
- return;
-
- bubbleInstance->createBubble(anchor.size().width(), mainText, subText);
- bubbleInstance->moveToAnchor(view, anchor);
-}
-
-void MessageBubbleWidget::hideBubble()
-{
- bubbleInstance->hide();
-}
-
-void MessageBubbleWidget::moveBubble(QWebEngineView *view, const QRect &anchor)
-{
- bubbleInstance->moveToAnchor(view, anchor);
-}
-
-MessageBubbleWidget::MessageBubbleWidget()
- : QWidget(0, Qt::ToolTip)
- , m_mainLabel(new QLabel)
- , m_subLabel(new QLabel)
-{
- QHBoxLayout *hLayout = new QHBoxLayout;
- hLayout->setAlignment(Qt::AlignTop);
- hLayout->setSizeConstraint(QLayout::SetFixedSize);
- hLayout->setMargin(3);
-
- const int iconSize = 18;
- QIcon si = style()->standardIcon(QStyle::SP_MessageBoxWarning);
-
- if (!si.isNull()) {
- QLabel *iconLabel = new QLabel(this);
- iconLabel->setPixmap(si.pixmap(iconSize, iconSize));
- iconLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- iconLabel->setMargin(2);
- hLayout->addWidget(iconLabel, 0, Qt::AlignTop);
- }
-
- QVBoxLayout *vLayout = new QVBoxLayout;
-
- m_mainLabel->installEventFilter(this);
- m_mainLabel->setWordWrap(true);
- m_mainLabel->setTextFormat(Qt::PlainText);
- m_mainLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft);
- vLayout->addWidget(m_mainLabel.data());
-
- QFont mainFont = m_mainLabel->font();
- mainFont.setPointSize(mainFont.pointSize() + 4);
- m_mainLabel->setFont(mainFont);
-
- m_subLabel->installEventFilter(this);
- m_subLabel->setWordWrap(true);
- m_subLabel->setTextFormat(Qt::PlainText);
- m_subLabel->setAlignment(Qt::AlignBottom | Qt::AlignLeft);
- vLayout->addWidget(m_subLabel.data());
-
- hLayout->addLayout(vLayout);
- setLayout(hLayout);
-
- QPalette pal = palette();
- pal.setColor(QPalette::Window, QColor(0xff, 0xff, 0xe1));
- pal.setColor(QPalette::WindowText, Qt::black);
- setPalette(pal);
-}
-
-MessageBubbleWidget::~MessageBubbleWidget()
-{
-}
-
-void MessageBubbleWidget::paintEvent(QPaintEvent *)
-{
- QPainter painter(this);
- painter.drawPixmap(rect(), m_pixmap);
-}
-
-void MessageBubbleWidget::createBubble(const int maxWidth, const QString &mainText, const QString &subText)
-{
- m_mainLabel->setText(mainText);
- m_mainLabel->setMaximumWidth(maxWidth);
-
- m_subLabel->setText(subText);
- m_subLabel->setMaximumWidth(maxWidth);
- m_subLabel->setVisible(!subText.isEmpty());
-
- int border = 1;
- int arrowHeight = 18;
- bool roundedCorners = true;
-
-#if defined(QT_NO_XSHAPE) && defined(Q_WS_X11)
- // XShape is required for setting the mask, so we just
- // draw an ugly square when its not available
- arrowHeight = 0;
- roundedCorners = false;
-#endif
-
- setContentsMargins(border + 3, border + arrowHeight + 2, border + 3, border + 2);
- show(); // The widget should be visible for updateGeometry()
- updateGeometry();
- m_pixmap = QPixmap(sizeHint());
-
- QPainterPath path = drawBoxPath(QPoint(0, arrowHeight), border, roundedCorners);
-
- // Draw border and set background
- QPainter painter(&m_pixmap);
- painter.setPen(QPen(palette().color(QPalette::Window).darker(160), border));
- painter.setBrush(palette().color(QPalette::Window));
- painter.drawPath(path);
-}
-
-void MessageBubbleWidget::moveToAnchor(QWebEngineView *view, const QRect &anchor)
-{
- QPoint topLeft = view->mapToGlobal(anchor.topLeft());
- move(topLeft.x(), topLeft.y() + anchor.height());
-}
-
-QPainterPath MessageBubbleWidget::drawBoxPath(const QPoint &pos, int border, bool roundedCorners)
-{
- const int arrowHeight = pos.y();
- const int arrowOffset = 18;
- const int arrowWidth = 18;
-
- const int cornerRadius = roundedCorners ? 7 : 0;
-
- const int messageBoxLeft = pos.x();
- const int messageBoxTop = arrowHeight;
- const int messageBoxRight = m_pixmap.width() - 1;
- const int messageBoxBottom = m_pixmap.height() - 1;
-
- QPainterPath path;
- path.moveTo(messageBoxLeft + cornerRadius, messageBoxTop);
-
- if (arrowHeight) {
- path.lineTo(messageBoxLeft + arrowOffset, messageBoxTop);
- path.lineTo(messageBoxLeft + arrowOffset, messageBoxTop - arrowHeight);
- path.lineTo(messageBoxLeft + arrowOffset + arrowWidth, messageBoxTop);
- }
-
- if (roundedCorners) {
- path.lineTo(messageBoxRight - cornerRadius, messageBoxTop);
- path.quadTo(messageBoxRight, messageBoxTop, messageBoxRight, messageBoxTop + cornerRadius);
- path.lineTo(messageBoxRight, messageBoxBottom - cornerRadius);
- path.quadTo(messageBoxRight, messageBoxBottom, messageBoxRight - cornerRadius, messageBoxBottom);
- path.lineTo(messageBoxLeft + cornerRadius, messageBoxBottom);
- path.quadTo(messageBoxLeft, messageBoxBottom, messageBoxLeft, messageBoxBottom - cornerRadius);
- path.lineTo(messageBoxLeft, messageBoxTop + cornerRadius);
- path.quadTo(messageBoxLeft, messageBoxTop, messageBoxLeft + cornerRadius, messageBoxTop);
- } else {
- path.lineTo(messageBoxRight, messageBoxTop);
- path.lineTo(messageBoxRight, messageBoxBottom);
- path.lineTo(messageBoxLeft, messageBoxBottom);
- path.moveTo(messageBoxLeft, messageBoxTop);
- }
-
- // Set mask
- if (arrowHeight || roundedCorners) {
- QBitmap bitmap = QBitmap(sizeHint());
- bitmap.fill(Qt::color0);
- QPainter painter(&bitmap);
- painter.setPen(QPen(Qt::color1, border));
- painter.setBrush(QBrush(Qt::color1));
- painter.drawPath(path);
- setMask(bitmap);
- }
-
- return path;
-}
-
-} // namespace QtWebEngineWidgetUI
diff --git a/src/webenginewidgets/ui/messagebubblewidget_p.h b/src/webenginewidgets/ui/messagebubblewidget_p.h
deleted file mode 100644
index 6898aea13..000000000
--- a/src/webenginewidgets/ui/messagebubblewidget_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWebEngine module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef MESSAGEBUBBLEWIDGET_P_H
-#define MESSAGEBUBBLEWIDGET_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QWidget>
-#include <QPainterPath>
-
-QT_BEGIN_NAMESPACE
-class QLabel;
-class QWebEngineView;
-QT_END_NAMESPACE
-
-namespace QtWebEngineWidgetUI {
-
-class MessageBubbleWidget : public QWidget
-{
- Q_OBJECT
-public:
- MessageBubbleWidget();
- ~MessageBubbleWidget();
-
- static void showBubble(QWebEngineView *view, const QRect &anchor, const QString &mainText, const QString &subText = QString());
- static void hideBubble();
- static void moveBubble(QWebEngineView *view, const QRect &anchor);
-
-protected:
- void paintEvent(QPaintEvent *) override;
-
-private:
- void createBubble(const int maxWidth, const QString &mainText, const QString &subText);
- void moveToAnchor(QWebEngineView *view, const QRect &anchor);
-
- QPainterPath drawBoxPath(const QPoint &pos, int border, bool roundedCorners);
-
- QScopedPointer<QLabel> m_mainLabel;
- QScopedPointer<QLabel> m_subLabel;
- QPixmap m_pixmap;
-};
-
-} // namespace QtWebEngineWidgetUI
-
-#endif // MESSAGEBUBBLEWIDGET_P_H