diff options
Diffstat (limited to 'src/qml/doc/snippets/qmltc/colorpicker.cpp')
-rw-r--r-- | src/qml/doc/snippets/qmltc/colorpicker.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/qml/doc/snippets/qmltc/colorpicker.cpp b/src/qml/doc/snippets/qmltc/colorpicker.cpp new file mode 100644 index 0000000000..096fbd2c74 --- /dev/null +++ b/src/qml/doc/snippets/qmltc/colorpicker.cpp @@ -0,0 +1,29 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#include "colorpicker.h" + +#include <QtCore/qlogging.h> + +void MyColorPicker::setEncodedColor(double value) +{ + if (value < 0.0 || !(value < 1.0)) { + qWarning("Bad value, %f, cannot get color from it!", value); + return; + } + m_encodedColor = value; +} + +QBindable<double> MyColorPicker::bindableEncodedColor() +{ + return QBindable<double>(&m_encodedColor); +} + +QColor MyColorPicker::decodeColor() +{ + const double encodedValue = m_encodedColor; + constexpr int rgbFirst = 0; + constexpr int rgbLast = 256 * 256 * 256; + const QRgb rgb = rgbFirst + (rgbLast - rgbFirst) * encodedValue; + return QColor(rgb); +} |