summaryrefslogtreecommitdiffstats
path: root/src/webenginequick/api/qquickwebenginetouchselectionmenurequest.cpp
blob: 70519525d6cbe5b01931dc1f7068700f3c9b9af6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

#include "qquickwebenginetouchselectionmenurequest_p.h"
#include "qquickwebenginetouchselectionmenurequest_p_p.h"
#include "touch_selection_menu_controller.h"

QT_BEGIN_NAMESPACE

ASSERT_ENUMS_MATCH(QQuickWebEngineTouchSelectionMenuRequest::Cut,
                   QtWebEngineCore::TouchSelectionMenuController::TouchSelectionCommandFlag::Cut)
ASSERT_ENUMS_MATCH(QQuickWebEngineTouchSelectionMenuRequest::Copy,
                   QtWebEngineCore::TouchSelectionMenuController::TouchSelectionCommandFlag::Copy)
ASSERT_ENUMS_MATCH(QQuickWebEngineTouchSelectionMenuRequest::Paste,
                   QtWebEngineCore::TouchSelectionMenuController::TouchSelectionCommandFlag::Paste)

/*!
    \class QQuickWebEngineTouchSelectionMenuRequest
    \since 6.3
    \brief The QQuickWebEngineTouchSelectionMenuRequest class provides request for a touch selection menu.
    \inmodule QtWebEngineQuick
    QQuickWebEngineTouchSelectionMenuRequest is returned after a touch selection event,
    and contains information about where the bounding box of touch selection is and what
    actions are available.

    \internal
*/

/*!
    \enum QQuickWebEngineTouchSelectionMenuRequest::TouchSelectionCommandFlag
    \readonly
    \since 6.3

    The available operations in the current touch selection menu request.

    \value Cut Cut is available.
    \value Copy Copy is available.
    \value Paste Paste is available.
*/
QQuickWebEngineTouchSelectionMenuRequest::QQuickWebEngineTouchSelectionMenuRequest(
        QRect bounds, QtWebEngineCore::TouchSelectionMenuController *touchSelectionMenuController)
    : d(new QQuickWebEngineTouchSelectionMenuRequestPrivate(bounds, touchSelectionMenuController))
{
}

QQuickWebEngineTouchSelectionMenuRequestPrivate::QQuickWebEngineTouchSelectionMenuRequestPrivate(
        QRect bounds, QtWebEngineCore::TouchSelectionMenuController *touchSelectionMenuController)
{
    selectionBounds = bounds;
    buttonCount = touchSelectionMenuController->buttonCount();
    touchSelectionCommandFlags = touchSelectionMenuController->availableActions();
}

/*!
    Destroys the touch selection menu request.
*/
QQuickWebEngineTouchSelectionMenuRequest::~QQuickWebEngineTouchSelectionMenuRequest()
{
}

/*!
    Returns the number of buttons that must be displayed, based on the available actions.
*/
int QQuickWebEngineTouchSelectionMenuRequest::buttonCount()
{
    return d->buttonCount;
}

/*!
    Indicates whether the touch selection menu request has been
    accepted by the signal handler.

    If the property is \c false after any signal handlers
    for WebEngineView::touchSelectionMenuRequested have been executed,
    a default touch selection menu will be shown.
    To prevent this, set \c{request.accepted} to \c true.

    The default is \c false.
*/
bool QQuickWebEngineTouchSelectionMenuRequest::isAccepted() const
{
    return d->accepted;
}

void QQuickWebEngineTouchSelectionMenuRequest::setAccepted(bool accepted)
{
    d->accepted = accepted;
}

/*!
    Returns the bound rectangle of text selection.
*/
QRect QQuickWebEngineTouchSelectionMenuRequest::selectionBounds()
{
    return d->selectionBounds;
}

/*!
    Returns the available operations in the current context.
*/
QQuickWebEngineTouchSelectionMenuRequest::TouchSelectionCommandFlags QQuickWebEngineTouchSelectionMenuRequest::touchSelectionCommandFlags() const
{
    return static_cast<QQuickWebEngineTouchSelectionMenuRequest::TouchSelectionCommandFlags>(d->touchSelectionCommandFlags);
}

QT_END_NAMESPACE

#include "moc_qquickwebenginetouchselectionmenurequest_p.cpp"