summaryrefslogtreecommitdiffstats
path: root/src/core/color_chooser_controller.cpp
blob: fcaef2ebae9e778027fe3b0cfe0eaac145aea314 (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
// Copyright (C) 2016 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 "content/browser/web_contents/web_contents_impl.h"

#include "color_chooser_controller.h"
#include "color_chooser_controller_p.h"
#include "type_conversion.h"

#include <QColor>
#include <QVariant>

namespace QtWebEngineCore {

ColorChooserControllerPrivate::ColorChooserControllerPrivate(content::WebContents *content, const QColor &color)
    : m_content(content)
    , m_initialColor(color)
{
}

ColorChooserController::~ColorChooserController()
{
}

ColorChooserController::ColorChooserController(ColorChooserControllerPrivate *dd)
{
    Q_ASSERT(dd);
    d.reset(dd);
}

QColor ColorChooserController::initialColor() const
{
    return d->m_initialColor;
}

void ColorChooserController::didEndColorDialog()
{
    d->m_content->DidEndColorChooser();
}

void ColorChooserController::didChooseColorInColorDialog(const QColor &color)
{
    d->m_content->DidChooseColorInColorChooser(toSk(color));
}

void ColorChooserController::accept(const QColor &color)
{
    didChooseColorInColorDialog(color);
    didEndColorDialog();
}

void ColorChooserController::accept(const QVariant &color)
{
    QColor selectedColor;
    if (color.canConvert<QColor>()) {
        selectedColor = color.value<QColor>();
        didChooseColorInColorDialog(selectedColor);
    }

    didEndColorDialog();
}

void ColorChooserController::reject()
{
    didEndColorDialog();
}

} // namespace QtWebEngineCore