qcolor.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/gui/painting/qcolor.cpp
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2016 The Qt Company Ltd.-
4** Contact: https://www.qt.io/licensing/-
5**-
6** This file is part of the QtGui module of the Qt Toolkit.-
7**-
8** $QT_BEGIN_LICENSE:LGPL$-
9** Commercial License Usage-
10** Licensees holding valid commercial Qt licenses may use this file in-
11** accordance with the commercial license agreement provided with the-
12** Software or, alternatively, in accordance with the terms contained in-
13** a written agreement between you and The Qt Company. For licensing terms-
14** and conditions see https://www.qt.io/terms-conditions. For further-
15** information use the contact form at https://www.qt.io/contact-us.-
16**-
17** GNU Lesser General Public License Usage-
18** Alternatively, this file may be used under the terms of the GNU Lesser-
19** General Public License version 3 as published by the Free Software-
20** Foundation and appearing in the file LICENSE.LGPL3 included in the-
21** packaging of this file. Please review the following information to-
22** ensure the GNU Lesser General Public License version 3 requirements-
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.-
24**-
25** GNU General Public License Usage-
26** Alternatively, this file may be used under the terms of the GNU-
27** General Public License version 2.0 or (at your option) the GNU General-
28** Public license version 3 or any later version approved by the KDE Free-
29** Qt Foundation. The licenses are as published by the Free Software-
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3-
31** included in the packaging of this file. Please review the following-
32** information to ensure the GNU General Public License requirements will-
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and-
34** https://www.gnu.org/licenses/gpl-3.0.html.-
35**-
36** $QT_END_LICENSE$-
37**-
38****************************************************************************/-
39-
40#include "qcolor.h"-
41#include "qcolor_p.h"-
42#include "qnamespace.h"-
43#include "qdatastream.h"-
44#include "qvariant.h"-
45#include "qdebug.h"-
46-
47#include <stdio.h>-
48#include <limits.h>-
49-
50QT_BEGIN_NAMESPACE-
51-
52/*!-
53 \class QColor-
54 \brief The QColor class provides colors based on RGB, HSV or CMYK values.-
55-
56 \ingroup painting-
57 \ingroup appearance-
58 \inmodule QtGui-
59-
60-
61 A color is normally specified in terms of RGB (red, green, and-
62 blue) components, but it is also possible to specify it in terms-
63 of HSV (hue, saturation, and value) and CMYK (cyan, magenta,-
64 yellow and black) components. In addition a color can be specified-
65 using a color name. The color name can be any of the SVG 1.0 color-
66 names.-
67-
68 \table-
69 \header-
70 \li RGB \li HSV \li CMYK-
71 \row-
72 \li \inlineimage qcolor-rgb.png-
73 \li \inlineimage qcolor-hsv.png-
74 \li \inlineimage qcolor-cmyk.png-
75 \endtable-
76-
77 The QColor constructor creates the color based on RGB values. To-
78 create a QColor based on either HSV or CMYK values, use the-
79 toHsv() and toCmyk() functions respectively. These functions-
80 return a copy of the color using the desired format. In addition-
81 the static fromRgb(), fromHsv() and fromCmyk() functions create-
82 colors from the specified values. Alternatively, a color can be-
83 converted to any of the three formats using the convertTo()-
84 function (returning a copy of the color in the desired format), or-
85 any of the setRgb(), setHsv() and setCmyk() functions altering \e-
86 this color's format. The spec() function tells how the color was-
87 specified.-
88-
89 A color can be set by passing an RGB string (such as "#112233"),-
90 or an ARGB string (such as "#ff112233") or a color name (such as "blue"),-
91 to the setNamedColor() function.-
92 The color names are taken from the SVG 1.0 color names. The name()-
93 function returns the name of the color in the format-
94 "#RRGGBB". Colors can also be set using setRgb(), setHsv() and-
95 setCmyk(). To get a lighter or darker color use the lighter() and-
96 darker() functions respectively.-
97-
98 The isValid() function indicates whether a QColor is legal at-
99 all. For example, a RGB color with RGB values out of range is-
100 illegal. For performance reasons, QColor mostly disregards illegal-
101 colors, and for that reason, the result of using an invalid color-
102 is undefined.-
103-
104 The color components can be retrieved individually, e.g with-
105 red(), hue() and cyan(). The values of the color components can-
106 also be retrieved in one go using the getRgb(), getHsv() and-
107 getCmyk() functions. Using the RGB color model, the color-
108 components can in addition be accessed with rgb().-
109-
110 There are several related non-members: QRgb is a typdef for an-
111 unsigned int representing the RGB value triplet (r, g, b). Note-
112 that it also can hold a value for the alpha-channel (for more-
113 information, see the \l {QColor#Alpha-Blended-
114 Drawing}{Alpha-Blended Drawing} section). The qRed(), qBlue() and-
115 qGreen() functions return the respective component of the given-
116 QRgb value, while the qRgb() and qRgba() functions create and-
117 return the QRgb triplet based on the given component-
118 values. Finally, the qAlpha() function returns the alpha component-
119 of the provided QRgb, and the qGray() function calculates and-
120 return a gray value based on the given value.-
121-
122 QColor is platform and device independent. The QColormap class-
123 maps the color to the hardware.-
124-
125 For more information about painting in general, see the \l{Paint-
126 System} documentation.-
127-
128 \tableofcontents-
129-
130 \section1 Integer vs. Floating Point Precision-
131-
132 QColor supports floating point precision and provides floating-
133 point versions of all the color components functions,-
134 e.g. getRgbF(), hueF() and fromCmykF(). Note that since the-
135 components are stored using 16-bit integers, there might be minor-
136 deviations between the values set using, for example, setRgbF()-
137 and the values returned by the getRgbF() function due to rounding.-
138-
139 While the integer based functions take values in the range 0-255-
140 (except hue() which must have values within the range 0-359),-
141 the floating point functions accept values in the range 0.0 - 1.0.-
142-
143 \section1 Alpha-Blended Drawing-
144-
145 QColor also support alpha-blended outlining and filling. The-
146 alpha channel of a color specifies the transparency effect, 0-
147 represents a fully transparent color, while 255 represents a fully-
148 opaque color. For example:-
149-
150 \snippet code/src_gui_painting_qcolor.cpp 0-
151-
152 The code above produces the following output:-
153-
154 \image alphafill.png-
155-
156 The alpha channel of a color can be retrieved and set using the-
157 alpha() and setAlpha() functions if its value is an integer, and-
158 alphaF() and setAlphaF() if its value is qreal (double). By-
159 default, the alpha-channel is set to 255 (opaque). To retrieve and-
160 set \e all the RGB color components (including the alpha-channel)-
161 in one go, use the rgba() and setRgba() functions.-
162-
163 \section1 Predefined Colors-
164-
165 There are 20 predefined QColors described by the Qt::GlobalColor enum,-
166 including black, white, primary and secondary colors, darker versions-
167 of these colors and three shades of gray. QColor also recognizes a-
168 variety of color names; the static colorNames() function returns a-
169 QStringList color names that QColor knows about.-
170-
171 \image qt-colors.png Qt Colors-
172-
173 Additionally, the Qt::color0, Qt::color1 and Qt::transparent colors-
174 are used for special purposes.-
175-
176 Qt::color0 (zero pixel value) and Qt::color1 (non-zero pixel value)-
177 are special colors for drawing in QBitmaps. Painting with Qt::color0-
178 sets the bitmap bits to 0 (transparent; i.e., background), and painting-
179 with Qt::color1 sets the bits to 1 (opaque; i.e., foreground).-
180-
181 Qt::transparent is used to indicate a transparent pixel. When painting-
182 with this value, a pixel value will be used that is appropriate for the-
183 underlying pixel format in use.-
184-
185 \section1 The HSV Color Model-
186-
187 The RGB model is hardware-oriented. Its representation is close to-
188 what most monitors show. In contrast, HSV represents color in a way-
189 more suited to the human perception of color. For example, the-
190 relationships "stronger than", "darker than", and "the opposite of"-
191 are easily expressed in HSV but are much harder to express in RGB.-
192-
193 HSV, like RGB, has three components:-
194-
195 \list-
196 \li H, for hue, is in the range 0 to 359 if the color is chromatic (not-
197 gray), or meaningless if it is gray. It represents degrees on the-
198 color wheel familiar to most people. Red is 0 (degrees), green is-
199 120, and blue is 240.-
200-
201 \inlineimage qcolor-hue.png-
202-
203 \li S, for saturation, is in the range 0 to 255, and the bigger it is,-
204 the stronger the color is. Grayish colors have saturation near 0; very-
205 strong colors have saturation near 255.-
206-
207 \inlineimage qcolor-saturation.png-
208-
209 \li V, for value, is in the range 0 to 255 and represents lightness or-
210 brightness of the color. 0 is black; 255 is as far from black as-
211 possible.-
212-
213 \inlineimage qcolor-value.png-
214 \endlist-
215-
216 Here are some examples: pure red is H=0, S=255, V=255; a dark red,-
217 moving slightly towards the magenta, could be H=350 (equivalent to-
218 -10), S=255, V=180; a grayish light red could have H about 0 (say-
219 350-359 or 0-10), S about 50-100, and S=255.-
220-
221 Qt returns a hue value of -1 for achromatic colors. If you pass a-
222 hue value that is too large, Qt forces it into range. Hue 360 or 720 is-
223 treated as 0; hue 540 is treated as 180.-
224-
225 In addition to the standard HSV model, Qt provides an-
226 alpha-channel to feature \l {QColor#Alpha-Blended-
227 Drawing}{alpha-blended drawing}.-
228-
229 \section1 The HSL Color Model-
230-
231 HSL is similar to HSV. Instead of value parameter from HSV,-
232 HSL has the lightness parameter.-
233 The lightness parameter goes from black to color and from color to white.-
234 If you go outside at the night its black or dark gray. At day its colorful but-
235 if you look in a really strong light a things they are going to white and-
236 wash out.-
237-
238 \section1 The CMYK Color Model-
239-
240 While the RGB and HSV color models are used for display on-
241 computer monitors, the CMYK model is used in the four-color-
242 printing process of printing presses and some hard-copy-
243 devices.-
244-
245 CMYK has four components, all in the range 0-255: cyan (C),-
246 magenta (M), yellow (Y) and black (K). Cyan, magenta and yellow-
247 are called subtractive colors; the CMYK color model creates color-
248 by starting with a white surface and then subtracting color by-
249 applying the appropriate components. While combining cyan, magenta-
250 and yellow gives the color black, subtracting one or more will-
251 yield any other color. When combined in various percentages, these-
252 three colors can create the entire spectrum of colors.-
253-
254 Mixing 100 percent of cyan, magenta and yellow \e does produce-
255 black, but the result is unsatisfactory since it wastes ink,-
256 increases drying time, and gives a muddy colour when printing. For-
257 that reason, black is added in professional printing to provide a-
258 solid black tone; hence the term 'four color process'.-
259-
260 In addition to the standard CMYK model, Qt provides an-
261 alpha-channel to feature \l {QColor#Alpha-Blended-
262 Drawing}{alpha-blended drawing}.-
263-
264 \sa QPalette, QBrush, QApplication::setColorSpec()-
265*/-
266-
267#define QCOLOR_INT_RANGE_CHECK(fn, var) \-
268 do { \-
269 if (var < 0 || var > 255) { \-
270 qWarning(#fn": invalid value %d", var); \-
271 var = qMax(0, qMin(var, 255)); \-
272 } \-
273 } while (0)-
274-
275#define QCOLOR_REAL_RANGE_CHECK(fn, var) \-
276 do { \-
277 if (var < qreal(0.0) || var > qreal(1.0)) { \-
278 qWarning(#fn": invalid value %g", var); \-
279 var = qMax(qreal(0.0), qMin(var, qreal(1.0))); \-
280 } \-
281 } while (0)-
282-
283/*****************************************************************************-
284 QColor member functions-
285 *****************************************************************************/-
286-
287/*!-
288 \enum QColor::Spec-
289-
290 The type of color specified, either RGB, HSV, CMYK or HSL.-
291-
292 \value Rgb-
293 \value Hsv-
294 \value Cmyk-
295 \value Hsl-
296 \value Invalid-
297-
298 \sa spec(), convertTo()-
299*/-
300-
301/*!-
302 \enum QColor::NameFormat-
303-
304 How to format the output of the name() function-
305-
306 \value HexRgb #RRGGBB A "#" character followed by three two-digit hexadecimal numbers (i.e. \c{#RRGGBB}).-
307 \value HexArgb #AARRGGBB A "#" character followed by four two-digit hexadecimal numbers (i.e. \c{#AARRGGBB}).-
308-
309 \sa name()-
310*/-
311-
312/*!-
313 \fn Spec QColor::spec() const-
314-
315 Returns how the color was specified.-
316-
317 \sa Spec, convertTo()-
318*/-
319-
320-
321/*!-
322 \fn QColor::QColor()-
323-
324 Constructs an invalid color with the RGB value (0, 0, 0). An-
325 invalid color is a color that is not properly set up for the-
326 underlying window system.-
327-
328 The alpha value of an invalid color is unspecified.-
329-
330 \sa isValid()-
331*/-
332-
333/*!-
334 \overload-
335-
336 Constructs a new color with a color value of \a color.-
337-
338 \sa isValid(), {QColor#Predefined Colors}{Predefined Colors}-
339 */-
340QColor::QColor(Qt::GlobalColor color) Q_DECL_NOTHROW-
341{-
342#define QRGB(r, g, b) \-
343 QRgb(((0xffu << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff)))-
344#define QRGBA(r, g, b, a) \-
345 QRgb(((a & 0xff) << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff))-
346-
347 static const QRgb global_colors[] = {-
348 QRGB(255, 255, 255), // Qt::color0-
349 QRGB( 0, 0, 0), // Qt::color1-
350 QRGB( 0, 0, 0), // black-
351 QRGB(255, 255, 255), // white-
352 /*-
353 * From the "The Palette Manager: How and Why" by Ron Gery,-
354 * March 23, 1992, archived on MSDN:-
355 *-
356 * The Windows system palette is broken up into two-
357 * sections, one with fixed colors and one with colors-
358 * that can be changed by applications. The system palette-
359 * predefines 20 entries; these colors are known as the-
360 * static or reserved colors and consist of the 16 colors-
361 * found in the Windows version 3.0 VGA driver and 4-
362 * additional colors chosen for their visual appeal. The-
363 * DEFAULT_PALETTE stock object is, as the name implies,-
364 * the default palette selected into a device context (DC)-
365 * and consists of these static colors. Applications can-
366 * set the remaining 236 colors using the Palette Manager.-
367 *-
368 * The 20 reserved entries have indices in [0,9] and-
369 * [246,255]. We reuse 17 of them.-
370 */-
371 QRGB(128, 128, 128), // index 248 medium gray-
372 QRGB(160, 160, 164), // index 247 light gray-
373 QRGB(192, 192, 192), // index 7 light gray-
374 QRGB(255, 0, 0), // index 249 red-
375 QRGB( 0, 255, 0), // index 250 green-
376 QRGB( 0, 0, 255), // index 252 blue-
377 QRGB( 0, 255, 255), // index 254 cyan-
378 QRGB(255, 0, 255), // index 253 magenta-
379 QRGB(255, 255, 0), // index 251 yellow-
380 QRGB(128, 0, 0), // index 1 dark red-
381 QRGB( 0, 128, 0), // index 2 dark green-
382 QRGB( 0, 0, 128), // index 4 dark blue-
383 QRGB( 0, 128, 128), // index 6 dark cyan-
384 QRGB(128, 0, 128), // index 5 dark magenta-
385 QRGB(128, 128, 0), // index 3 dark yellow-
386 QRGBA(0, 0, 0, 0) // transparent-
387 };-
388#undef QRGB-
389#undef QRGBA-
390-
391 setRgb(qRed(global_colors[color]),-
392 qGreen(global_colors[color]),-
393 qBlue(global_colors[color]),-
394 qAlpha(global_colors[color]));-
395}
never executed: end of block
0
396-
397/*!-
398 \fn QColor::QColor(int r, int g, int b, int a = 255)-
399-
400 Constructs a color with the RGB value \a r, \a g, \a b, and the-
401 alpha-channel (transparency) value of \a a.-
402-
403 The color is left invalid if any of the arguments are invalid.-
404-
405 \sa setRgba(), isValid()-
406*/-
407-
408/*!-
409 Constructs a color with the value \a color. The alpha component is-
410 ignored and set to solid.-
411-
412 \sa fromRgb(), isValid()-
413*/-
414-
415QColor::QColor(QRgb color) Q_DECL_NOTHROW-
416{-
417 cspec = Rgb;-
418 ct.argb.alpha = 0xffff;-
419 ct.argb.red = qRed(color) * 0x101;-
420 ct.argb.green = qGreen(color) * 0x101;-
421 ct.argb.blue = qBlue(color) * 0x101;-
422 ct.argb.pad = 0;-
423}
never executed: end of block
0
424-
425/*!-
426 \since 5.6-
427-
428 Constructs a color with the value \a rgba64.-
429-
430 \sa fromRgba64()-
431*/-
432-
433QColor::QColor(QRgba64 rgba64) Q_DECL_NOTHROW-
434{-
435 setRgba64(rgba64);-
436}
never executed: end of block
0
437-
438/*!-
439 \internal-
440-
441 Constructs a color with the given \a spec.-
442-
443 This function is primarly present to avoid that QColor::Invalid-
444 becomes a valid color by accident.-
445*/-
446-
447QColor::QColor(Spec spec) Q_DECL_NOTHROW-
448{-
449 switch (spec) {-
450 case Invalid:
never executed: case Invalid:
0
451 invalidate();-
452 break;
never executed: break;
0
453 case Rgb:
never executed: case Rgb:
0
454 setRgb(0, 0, 0);-
455 break;
never executed: break;
0
456 case Hsv:
never executed: case Hsv:
0
457 setHsv(0, 0, 0);-
458 break;
never executed: break;
0
459 case Cmyk:
never executed: case Cmyk:
0
460 setCmyk(0, 0, 0, 0);-
461 break;
never executed: break;
0
462 case Hsl:
never executed: case Hsl:
0
463 setHsl(0, 0, 0, 0);-
464 break;
never executed: break;
0
465 }-
466}
never executed: end of block
0
467-
468/*!-
469 \fn QColor::QColor(const QString &name)-
470-
471 Constructs a named color in the same way as setNamedColor() using-
472 the given \a name.-
473-
474 The color is left invalid if the \a name cannot be parsed.-
475-
476 \sa setNamedColor(), name(), isValid()-
477*/-
478-
479/*!-
480 \fn QColor::QColor(const char *name)-
481-
482 Constructs a named color in the same way as setNamedColor() using-
483 the given \a name.-
484-
485 The color is left invalid if the \a name cannot be parsed.-
486-
487 \sa setNamedColor(), name(), isValid()-
488*/-
489-
490#if QT_VERSION < QT_VERSION_CHECK(6,0,0)-
491/*!-
492 \fn QColor::QColor(const QColor &color)-
493-
494 Constructs a color that is a copy of \a color.-
495-
496 \sa isValid()-
497*/-
498#endif-
499-
500/*!-
501 \fn bool QColor::isValid() const-
502-
503 Returns \c true if the color is valid; otherwise returns \c false.-
504*/-
505-
506/*!-
507 Returns the name of the color in the format "#RRGGBB"; i.e. a "#"-
508 character followed by three two-digit hexadecimal numbers.-
509-
510 \sa setNamedColor()-
511*/-
512-
513QString QColor::name() const-
514{-
515 return name(HexRgb);
never executed: return name(HexRgb);
0
516}-
517-
518/*!-
519 \since 5.2-
520-
521 Returns the name of the color in the specified \a format.-
522-
523 \sa setNamedColor(), NameFormat-
524*/-
525-
526QString QColor::name(NameFormat format) const-
527{-
528 switch (format) {-
529 case HexRgb:
never executed: case HexRgb:
0
530 return QLatin1Char('#') + QString::number(rgba() | 0x1000000, 16).rightRef(6);
never executed: return QLatin1Char('#') + QString::number(rgba() | 0x1000000, 16).rightRef(6);
0
531 case HexArgb:
never executed: case HexArgb:
0
532 // it's called rgba() but it does return AARRGGBB-
533 return QLatin1Char('#') + QString::number(rgba() | 0x100000000, 16).rightRef(8);
never executed: return QLatin1Char('#') + QString::number(rgba() | 0x100000000, 16).rightRef(8);
0
534 }-
535 return QString();
never executed: return QString();
0
536}-
537-
538/*!-
539 Sets the RGB value of this QColor to \a name, which may be in one-
540 of these formats:-
541-
542 \list-
543 \li #RGB (each of R, G, and B is a single hex digit)-
544 \li #RRGGBB-
545 \li #AARRGGBB (Since 5.2)-
546 \li #RRRGGGBBB-
547 \li #RRRRGGGGBBBB-
548 \li A name from the list of colors defined in the list of \l{http://www.w3.org/TR/SVG/types.html#ColorKeywords}{SVG color keyword names}-
549 provided by the World Wide Web Consortium; for example, "steelblue" or "gainsboro".-
550 These color names work on all platforms. Note that these color names are \e not the-
551 same as defined by the Qt::GlobalColor enums, e.g. "green" and Qt::green does not-
552 refer to the same color.-
553 \li \c transparent - representing the absence of a color.-
554 \endlist-
555-
556 The color is invalid if \a name cannot be parsed.-
557-
558 \sa QColor(), name(), isValid()-
559*/-
560-
561void QColor::setNamedColor(const QString &name)-
562{-
563 setColorFromString(name);-
564}
never executed: end of block
0
565-
566/*!-
567 \since 4.7-
568-
569 Returns \c true if the \a name is a valid color name and can-
570 be used to construct a valid QColor object, otherwise returns-
571 false.-
572-
573 It uses the same algorithm used in setNamedColor().-
574-
575 \sa setNamedColor()-
576*/-
577bool QColor::isValidColor(const QString &name)-
578{-
579 return !name.isEmpty() && QColor().setColorFromString(name);
never executed: return !name.isEmpty() && QColor().setColorFromString(name);
0
580}-
581-
582bool QColor::setColorFromString(const QString &name)-
583{-
584 if (name.isEmpty()) {
name.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
0
585 invalidate();-
586 return true;
never executed: return true;
0
587 }-
588-
589 if (name.startsWith(QLatin1Char('#'))) {
name.startsWit...tin1Char('#'))Description
TRUEnever evaluated
FALSEnever evaluated
0
590 QRgb rgba;-
591 if (qt_get_hex_rgb(name.constData(), name.length(), &rgba)) {
qt_get_hex_rgb...ngth(), &rgba)Description
TRUEnever evaluated
FALSEnever evaluated
0
592 setRgba(rgba);-
593 return true;
never executed: return true;
0
594 } else {-
595 invalidate();-
596 return false;
never executed: return false;
0
597 }-
598 }-
599-
600#ifndef QT_NO_COLORNAMES-
601 QRgb rgb;-
602 if (qt_get_named_rgb(name.constData(), name.length(), &rgb)) {
qt_get_named_r...ength(), &rgb)Description
TRUEnever evaluated
FALSEnever evaluated
0
603 setRgba(rgb);-
604 return true;
never executed: return true;
0
605 } else-
606#endif-
607 {-
608 invalidate();-
609 return false;
never executed: return false;
0
610 }-
611}-
612-
613/*!-
614 Returns a QStringList containing the color names Qt knows about.-
615-
616 \sa {QColor#Predefined Colors}{Predefined Colors}-
617*/-
618QStringList QColor::colorNames()-
619{-
620#ifndef QT_NO_COLORNAMES-
621 return qt_get_colornames();
never executed: return qt_get_colornames();
0
622#else-
623 return QStringList();-
624#endif-
625}-
626-
627/*!-
628 Sets the contents pointed to by \a h, \a s, \a v, and \a a, to the hue,-
629 saturation, value, and alpha-channel (transparency) components of the-
630 color's HSV value.-
631-
632 These components can be retrieved individually using the hueF(),-
633 saturationF(), valueF() and alphaF() functions.-
634-
635 \sa setHsv(), {QColor#The HSV Color Model}{The HSV Color Model}-
636*/-
637void QColor::getHsvF(qreal *h, qreal *s, qreal *v, qreal *a) const-
638{-
639 if (!h || !s || !v)
!hDescription
TRUEnever evaluated
FALSEnever evaluated
!sDescription
TRUEnever evaluated
FALSEnever evaluated
!vDescription
TRUEnever evaluated
FALSEnever evaluated
0
640 return;
never executed: return;
0
641-
642 if (cspec != Invalid && cspec != Hsv) {
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
643 toHsv().getHsvF(h, s, v, a);-
644 return;
never executed: return;
0
645 }-
646-
647 *h = ct.ahsv.hue == USHRT_MAX ? qreal(-1.0) : ct.ahsv.hue / qreal(36000.0);
ct.ahsv.hue == (32767 * 2 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
648 *s = ct.ahsv.saturation / qreal(USHRT_MAX);-
649 *v = ct.ahsv.value / qreal(USHRT_MAX);-
650-
651 if (a)
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
652 *a = ct.ahsv.alpha / qreal(USHRT_MAX);
never executed: *a = ct.ahsv.alpha / qreal((32767 * 2 + 1));
0
653}
never executed: end of block
0
654-
655/*!-
656 Sets the contents pointed to by \a h, \a s, \a v, and \a a, to the hue,-
657 saturation, value, and alpha-channel (transparency) components of the-
658 color's HSV value.-
659-
660 These components can be retrieved individually using the hue(),-
661 saturation(), value() and alpha() functions.-
662-
663 \sa setHsv(), {QColor#The HSV Color Model}{The HSV Color Model}-
664*/-
665void QColor::getHsv(int *h, int *s, int *v, int *a) const-
666{-
667 if (!h || !s || !v)
!hDescription
TRUEnever evaluated
FALSEnever evaluated
!sDescription
TRUEnever evaluated
FALSEnever evaluated
!vDescription
TRUEnever evaluated
FALSEnever evaluated
0
668 return;
never executed: return;
0
669-
670 if (cspec != Invalid && cspec != Hsv) {
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
671 toHsv().getHsv(h, s, v, a);-
672 return;
never executed: return;
0
673 }-
674-
675 *h = ct.ahsv.hue == USHRT_MAX ? -1 : ct.ahsv.hue / 100;
ct.ahsv.hue == (32767 * 2 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
676 *s = ct.ahsv.saturation >> 8;-
677 *v = ct.ahsv.value >> 8;-
678-
679 if (a)
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
680 *a = ct.ahsv.alpha >> 8;
never executed: *a = ct.ahsv.alpha >> 8;
0
681}
never executed: end of block
0
682-
683/*!-
684 Sets a HSV color value; \a h is the hue, \a s is the saturation, \a v is-
685 the value and \a a is the alpha component of the HSV color.-
686-
687 All the values must be in the range 0.0-1.0.-
688-
689 \sa getHsvF(), setHsv(), {QColor#The HSV Color Model}{The HSV Color Model}-
690*/-
691void QColor::setHsvF(qreal h, qreal s, qreal v, qreal a)-
692{-
693 if (((h < qreal(0.0) || h > qreal(1.0)) && h != qreal(-1.0))
h < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
h > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
h != qreal(-1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
694 || (s < qreal(0.0) || s > qreal(1.0))
s < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
s > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
695 || (v < qreal(0.0) || v > qreal(1.0))
v < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
v > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
696 || (a < qreal(0.0) || a > qreal(1.0))) {
a < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
a > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
697 qWarning("QColor::setHsvF: HSV parameters out of range");-
698 return;
never executed: return;
0
699 }-
700-
701 cspec = Hsv;-
702 ct.ahsv.alpha = qRound(a * USHRT_MAX);-
703 ct.ahsv.hue = h == qreal(-1.0) ? USHRT_MAX : qRound(h * 36000);
h == qreal(-1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
704 ct.ahsv.saturation = qRound(s * USHRT_MAX);-
705 ct.ahsv.value = qRound(v * USHRT_MAX);-
706 ct.ahsv.pad = 0;-
707}
never executed: end of block
0
708-
709/*!-
710 Sets a HSV color value; \a h is the hue, \a s is the saturation, \a v is-
711 the value and \a a is the alpha component of the HSV color.-
712-
713 The saturation, value and alpha-channel values must be in the range 0-255,-
714 and the hue value must be greater than -1.-
715-
716 \sa getHsv(), setHsvF(), {QColor#The HSV Color Model}{The HSV Color Model}-
717*/-
718void QColor::setHsv(int h, int s, int v, int a)-
719{-
720 if (h < -1 || (uint)s > 255 || (uint)v > 255 || (uint)a > 255) {
h < -1Description
TRUEnever evaluated
FALSEnever evaluated
(uint)s > 255Description
TRUEnever evaluated
FALSEnever evaluated
(uint)v > 255Description
TRUEnever evaluated
FALSEnever evaluated
(uint)a > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
721 qWarning("QColor::setHsv: HSV parameters out of range");-
722 invalidate();-
723 return;
never executed: return;
0
724 }-
725-
726 cspec = Hsv;-
727 ct.ahsv.alpha = a * 0x101;-
728 ct.ahsv.hue = h == -1 ? USHRT_MAX : (h % 360) * 100;
h == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
729 ct.ahsv.saturation = s * 0x101;-
730 ct.ahsv.value = v * 0x101;-
731 ct.ahsv.pad = 0;-
732}
never executed: end of block
0
733-
734/*!-
735 \since 4.6-
736-
737 Sets the contents pointed to by \a h, \a s, \a l, and \a a, to the hue,-
738 saturation, lightness, and alpha-channel (transparency) components of the-
739 color's HSL value.-
740-
741 These components can be retrieved individually using the hslHueF(),-
742 hslSaturationF(), lightnessF() and alphaF() functions.-
743-
744 \sa setHsl()-
745*/-
746void QColor::getHslF(qreal *h, qreal *s, qreal *l, qreal *a) const-
747{-
748 if (!h || !s || !l)
!hDescription
TRUEnever evaluated
FALSEnever evaluated
!sDescription
TRUEnever evaluated
FALSEnever evaluated
!lDescription
TRUEnever evaluated
FALSEnever evaluated
0
749 return;
never executed: return;
0
750-
751 if (cspec != Invalid && cspec != Hsl) {
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
752 toHsl().getHslF(h, s, l, a);-
753 return;
never executed: return;
0
754 }-
755-
756 *h = ct.ahsl.hue == USHRT_MAX ? qreal(-1.0) : ct.ahsl.hue / qreal(36000.0);
ct.ahsl.hue == (32767 * 2 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
757 *s = ct.ahsl.saturation / qreal(USHRT_MAX);-
758 *l = ct.ahsl.lightness / qreal(USHRT_MAX);-
759-
760 if (a)
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
761 *a = ct.ahsl.alpha / qreal(USHRT_MAX);
never executed: *a = ct.ahsl.alpha / qreal((32767 * 2 + 1));
0
762}
never executed: end of block
0
763-
764/*!-
765 \since 4.6-
766-
767 Sets the contents pointed to by \a h, \a s, \a l, and \a a, to the hue,-
768 saturation, lightness, and alpha-channel (transparency) components of the-
769 color's HSL value.-
770-
771 These components can be retrieved individually using the hslHue(),-
772 hslSaturation(), lightness() and alpha() functions.-
773-
774 \sa setHsl()-
775*/-
776void QColor::getHsl(int *h, int *s, int *l, int *a) const-
777{-
778 if (!h || !s || !l)
!hDescription
TRUEnever evaluated
FALSEnever evaluated
!sDescription
TRUEnever evaluated
FALSEnever evaluated
!lDescription
TRUEnever evaluated
FALSEnever evaluated
0
779 return;
never executed: return;
0
780-
781 if (cspec != Invalid && cspec != Hsl) {
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
782 toHsl().getHsl(h, s, l, a);-
783 return;
never executed: return;
0
784 }-
785-
786 *h = ct.ahsl.hue == USHRT_MAX ? -1 : ct.ahsl.hue / 100;
ct.ahsl.hue == (32767 * 2 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
787 *s = ct.ahsl.saturation >> 8;-
788 *l = ct.ahsl.lightness >> 8;-
789-
790 if (a)
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
791 *a = ct.ahsl.alpha >> 8;
never executed: *a = ct.ahsl.alpha >> 8;
0
792}
never executed: end of block
0
793-
794/*!-
795 \since 4.6-
796-
797 Sets a HSL color lightness; \a h is the hue, \a s is the saturation, \a l is-
798 the lightness and \a a is the alpha component of the HSL color.-
799-
800 All the values must be in the range 0.0-1.0.-
801-
802 \sa getHslF(), setHsl()-
803*/-
804void QColor::setHslF(qreal h, qreal s, qreal l, qreal a)-
805{-
806 if (((h < qreal(0.0) || h > qreal(1.0)) && h != qreal(-1.0))
h < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
h > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
h != qreal(-1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
807 || (s < qreal(0.0) || s > qreal(1.0))
s < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
s > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
808 || (l < qreal(0.0) || l > qreal(1.0))
l < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
l > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
809 || (a < qreal(0.0) || a > qreal(1.0))) {
a < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
a > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
810 qWarning("QColor::setHsvF: HSV parameters out of range");-
811 return;
never executed: return;
0
812 }-
813-
814 cspec = Hsl;-
815 ct.ahsl.alpha = qRound(a * USHRT_MAX);-
816 ct.ahsl.hue = h == qreal(-1.0) ? USHRT_MAX : qRound(h * 36000);
h == qreal(-1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
817 ct.ahsl.saturation = qRound(s * USHRT_MAX);-
818 ct.ahsl.lightness = qRound(l * USHRT_MAX);-
819 ct.ahsl.pad = 0;-
820}
never executed: end of block
0
821-
822/*!-
823 \since 4.6-
824-
825 Sets a HSL color value; \a h is the hue, \a s is the saturation, \a l is-
826 the lightness and \a a is the alpha component of the HSL color.-
827-
828 The saturation, value and alpha-channel values must be in the range 0-255,-
829 and the hue value must be greater than -1.-
830-
831 \sa getHsl(), setHslF()-
832*/-
833void QColor::setHsl(int h, int s, int l, int a)-
834{-
835 if (h < -1 || (uint)s > 255 || (uint)l > 255 || (uint)a > 255) {
h < -1Description
TRUEnever evaluated
FALSEnever evaluated
(uint)s > 255Description
TRUEnever evaluated
FALSEnever evaluated
(uint)l > 255Description
TRUEnever evaluated
FALSEnever evaluated
(uint)a > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
836 qWarning("QColor::setHsv: HSV parameters out of range");-
837 invalidate();-
838 return;
never executed: return;
0
839 }-
840-
841 cspec = Hsl;-
842 ct.ahsl.alpha = a * 0x101;-
843 ct.ahsl.hue = h == -1 ? USHRT_MAX : (h % 360) * 100;
h == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
844 ct.ahsl.saturation = s * 0x101;-
845 ct.ahsl.lightness = l * 0x101;-
846 ct.ahsl.pad = 0;-
847}
never executed: end of block
0
848-
849/*!-
850 Sets the contents pointed to by \a r, \a g, \a b, and \a a, to the red,-
851 green, blue, and alpha-channel (transparency) components of the color's-
852 RGB value.-
853-
854 These components can be retrieved individually using the redF(), greenF(),-
855 blueF() and alphaF() functions.-
856-
857 \sa rgb(), setRgb()-
858*/-
859void QColor::getRgbF(qreal *r, qreal *g, qreal *b, qreal *a) const-
860{-
861 if (!r || !g || !b)
!rDescription
TRUEnever evaluated
FALSEnever evaluated
!gDescription
TRUEnever evaluated
FALSEnever evaluated
!bDescription
TRUEnever evaluated
FALSEnever evaluated
0
862 return;
never executed: return;
0
863-
864 if (cspec != Invalid && cspec != Rgb) {
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
865 toRgb().getRgbF(r, g, b, a);-
866 return;
never executed: return;
0
867 }-
868-
869 *r = ct.argb.red / qreal(USHRT_MAX);-
870 *g = ct.argb.green / qreal(USHRT_MAX);-
871 *b = ct.argb.blue / qreal(USHRT_MAX);-
872-
873 if (a)
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
874 *a = ct.argb.alpha / qreal(USHRT_MAX);
never executed: *a = ct.argb.alpha / qreal((32767 * 2 + 1));
0
875-
876}
never executed: end of block
0
877-
878/*!-
879 Sets the contents pointed to by \a r, \a g, \a b, and \a a, to the red,-
880 green, blue, and alpha-channel (transparency) components of the color's-
881 RGB value.-
882-
883 These components can be retrieved individually using the red(), green(),-
884 blue() and alpha() functions.-
885-
886 \sa rgb(), setRgb()-
887*/-
888void QColor::getRgb(int *r, int *g, int *b, int *a) const-
889{-
890 if (!r || !g || !b)
!rDescription
TRUEnever evaluated
FALSEnever evaluated
!gDescription
TRUEnever evaluated
FALSEnever evaluated
!bDescription
TRUEnever evaluated
FALSEnever evaluated
0
891 return;
never executed: return;
0
892-
893 if (cspec != Invalid && cspec != Rgb) {
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
894 toRgb().getRgb(r, g, b, a);-
895 return;
never executed: return;
0
896 }-
897-
898 *r = ct.argb.red >> 8;-
899 *g = ct.argb.green >> 8;-
900 *b = ct.argb.blue >> 8;-
901-
902 if (a)
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
903 *a = ct.argb.alpha >> 8;
never executed: *a = ct.argb.alpha >> 8;
0
904}
never executed: end of block
0
905-
906/*!-
907 \fn void QColor::setRgbF(qreal r, qreal g, qreal b, qreal a)-
908-
909 Sets the color channels of this color to \a r (red), \a g (green),-
910 \a b (blue) and \a a (alpha, transparency).-
911-
912 All values must be in the range 0.0-1.0.-
913-
914 \sa rgb(), getRgbF(), setRgb()-
915*/-
916void QColor::setRgbF(qreal r, qreal g, qreal b, qreal a)-
917{-
918 if (r < qreal(0.0) || r > qreal(1.0)
r < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
r > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
919 || g < qreal(0.0) || g > qreal(1.0)
g < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
g > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
920 || b < qreal(0.0) || b > qreal(1.0)
b < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
b > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
921 || a < qreal(0.0) || a > qreal(1.0)) {
a < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
a > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
922 qWarning("QColor::setRgbF: RGB parameters out of range");-
923 invalidate();-
924 return;
never executed: return;
0
925 }-
926-
927 cspec = Rgb;-
928 ct.argb.alpha = qRound(a * USHRT_MAX);-
929 ct.argb.red = qRound(r * USHRT_MAX);-
930 ct.argb.green = qRound(g * USHRT_MAX);-
931 ct.argb.blue = qRound(b * USHRT_MAX);-
932 ct.argb.pad = 0;-
933}
never executed: end of block
0
934-
935/*!-
936 Sets the RGB value to \a r, \a g, \a b and the alpha value to \a a.-
937-
938 All the values must be in the range 0-255.-
939-
940 \sa rgb(), getRgb(), setRgbF()-
941*/-
942void QColor::setRgb(int r, int g, int b, int a)-
943{-
944 if ((uint)r > 255 || (uint)g > 255 || (uint)b > 255 || (uint)a > 255) {
(uint)r > 255Description
TRUEnever evaluated
FALSEnever evaluated
(uint)g > 255Description
TRUEnever evaluated
FALSEnever evaluated
(uint)b > 255Description
TRUEnever evaluated
FALSEnever evaluated
(uint)a > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
945 qWarning("QColor::setRgb: RGB parameters out of range");-
946 invalidate();-
947 return;
never executed: return;
0
948 }-
949-
950 cspec = Rgb;-
951 ct.argb.alpha = a * 0x101;-
952 ct.argb.red = r * 0x101;-
953 ct.argb.green = g * 0x101;-
954 ct.argb.blue = b * 0x101;-
955 ct.argb.pad = 0;-
956}
never executed: end of block
0
957-
958/*!-
959 \fn QRgb QColor::rgba() const-
960-
961 Returns the RGB value of the color, including its alpha.-
962-
963 For an invalid color, the alpha value of the returned color is unspecified.-
964-
965 \sa setRgba(), rgb(), rgba64()-
966*/-
967-
968QRgb QColor::rgba() const Q_DECL_NOTHROW-
969{-
970 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
971 return toRgb().rgba();
never executed: return toRgb().rgba();
0
972 return qRgba(ct.argb.red >> 8, ct.argb.green >> 8, ct.argb.blue >> 8, ct.argb.alpha >> 8);
never executed: return qRgba(ct.argb.red >> 8, ct.argb.green >> 8, ct.argb.blue >> 8, ct.argb.alpha >> 8);
0
973}-
974-
975/*!-
976 Sets the RGB value to \a rgba, including its alpha.-
977-
978 \sa rgba(), rgb(), setRgba64()-
979*/-
980void QColor::setRgba(QRgb rgba) Q_DECL_NOTHROW-
981{-
982 cspec = Rgb;-
983 ct.argb.alpha = qAlpha(rgba) * 0x101;-
984 ct.argb.red = qRed(rgba) * 0x101;-
985 ct.argb.green = qGreen(rgba) * 0x101;-
986 ct.argb.blue = qBlue(rgba) * 0x101;-
987 ct.argb.pad = 0;-
988}
never executed: end of block
0
989-
990/*!-
991 \since 5.6-
992-
993 Returns the RGB64 value of the color, including its alpha.-
994-
995 For an invalid color, the alpha value of the returned color is unspecified.-
996-
997 \sa setRgba64(), rgba(), rgb()-
998*/-
999-
1000QRgba64 QColor::rgba64() const Q_DECL_NOTHROW-
1001{-
1002 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1003 return toRgb().rgba64();
never executed: return toRgb().rgba64();
0
1004 return qRgba64(ct.argb.red, ct.argb.green, ct.argb.blue, ct.argb.alpha);
never executed: return qRgba64(ct.argb.red, ct.argb.green, ct.argb.blue, ct.argb.alpha);
0
1005}-
1006-
1007/*!-
1008 \since 5.6-
1009-
1010 Sets the RGB64 value to \a rgba, including its alpha.-
1011-
1012 \sa \setRgba(), rgba64()-
1013*/-
1014void QColor::setRgba64(QRgba64 rgba) Q_DECL_NOTHROW-
1015{-
1016 cspec = Rgb;-
1017 ct.argb.alpha = rgba.alpha();-
1018 ct.argb.red = rgba.red();-
1019 ct.argb.green = rgba.green();-
1020 ct.argb.blue = rgba.blue();-
1021 ct.argb.pad = 0;-
1022}
never executed: end of block
0
1023-
1024/*!-
1025 \fn QRgb QColor::rgb() const-
1026-
1027 Returns the RGB value of the color. The alpha value is opaque.-
1028-
1029 \sa getRgb(), rgba()-
1030*/-
1031QRgb QColor::rgb() const Q_DECL_NOTHROW-
1032{-
1033 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1034 return toRgb().rgb();
never executed: return toRgb().rgb();
0
1035 return qRgb(ct.argb.red >> 8, ct.argb.green >> 8, ct.argb.blue >> 8);
never executed: return qRgb(ct.argb.red >> 8, ct.argb.green >> 8, ct.argb.blue >> 8);
0
1036}-
1037-
1038/*!-
1039 \overload-
1040-
1041 Sets the RGB value to \a rgb. The alpha value is set to opaque.-
1042*/-
1043void QColor::setRgb(QRgb rgb) Q_DECL_NOTHROW-
1044{-
1045 cspec = Rgb;-
1046 ct.argb.alpha = 0xffff;-
1047 ct.argb.red = qRed(rgb) * 0x101;-
1048 ct.argb.green = qGreen(rgb) * 0x101;-
1049 ct.argb.blue = qBlue(rgb) * 0x101;-
1050 ct.argb.pad = 0;-
1051}
never executed: end of block
0
1052-
1053/*!-
1054 Returns the alpha color component of this color.-
1055-
1056 \sa setAlpha(), alphaF(), {QColor#Alpha-Blended Drawing}{Alpha-Blended Drawing}-
1057*/-
1058int QColor::alpha() const Q_DECL_NOTHROW-
1059{
never executed: return ct.argb.alpha >> 8;
return ct.argb.alpha >> 8; }
never executed: return ct.argb.alpha >> 8;
0
1060-
1061-
1062/*!-
1063 Sets the alpha of this color to \a alpha. Integer alpha is specified in the-
1064 range 0-255.-
1065-
1066 \sa alpha(), alphaF(), {QColor#Alpha-Blended Drawing}{Alpha-Blended Drawing}-
1067*/-
1068-
1069void QColor::setAlpha(int alpha)-
1070{-
1071 QCOLOR_INT_RANGE_CHECK("QColor::setAlpha", alpha);
never executed: end of block
alpha < 0Description
TRUEnever evaluated
FALSEnever evaluated
alpha > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1072 ct.argb.alpha = alpha * 0x101;-
1073}
never executed: end of block
0
1074-
1075/*!-
1076 Returns the alpha color component of this color.-
1077-
1078 \sa setAlphaF(), alpha(), {QColor#Alpha-Blended Drawing}{Alpha-Blended Drawing}-
1079*/-
1080qreal QColor::alphaF() const Q_DECL_NOTHROW-
1081{
never executed: return ct.argb.alpha / qreal((32767 * 2 + 1));
return ct.argb.alpha / qreal(USHRT_MAX); }
never executed: return ct.argb.alpha / qreal((32767 * 2 + 1));
0
1082-
1083/*!-
1084 Sets the alpha of this color to \a alpha. qreal alpha is specified in the-
1085 range 0.0-1.0.-
1086-
1087 \sa alphaF(), alpha(), {QColor#Alpha-Blended Drawing}{Alpha-Blended Drawing}-
1088-
1089*/-
1090void QColor::setAlphaF(qreal alpha)-
1091{-
1092 QCOLOR_REAL_RANGE_CHECK("QColor::setAlphaF", alpha);
never executed: end of block
alpha < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
alpha > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1093 qreal tmp = alpha * USHRT_MAX;-
1094 ct.argb.alpha = qRound(tmp);-
1095}
never executed: end of block
0
1096-
1097-
1098/*!-
1099 Returns the red color component of this color.-
1100-
1101 \sa setRed(), redF(), getRgb()-
1102*/-
1103int QColor::red() const Q_DECL_NOTHROW-
1104{-
1105 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1106 return toRgb().red();
never executed: return toRgb().red();
0
1107 return ct.argb.red >> 8;
never executed: return ct.argb.red >> 8;
0
1108}-
1109-
1110/*!-
1111 Sets the red color component of this color to \a red. Integer components-
1112 are specified in the range 0-255.-
1113-
1114 \sa red(), redF(), setRgb()-
1115*/-
1116void QColor::setRed(int red)-
1117{-
1118 QCOLOR_INT_RANGE_CHECK("QColor::setRed", red);
never executed: end of block
red < 0Description
TRUEnever evaluated
FALSEnever evaluated
red > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1119 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1120 setRgb(red, green(), blue(), alpha());
never executed: setRgb(red, green(), blue(), alpha());
0
1121 else-
1122 ct.argb.red = red * 0x101;
never executed: ct.argb.red = red * 0x101;
0
1123}-
1124-
1125/*!-
1126 Returns the green color component of this color.-
1127-
1128 \sa setGreen(), greenF(), getRgb()-
1129*/-
1130int QColor::green() const Q_DECL_NOTHROW-
1131{-
1132 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1133 return toRgb().green();
never executed: return toRgb().green();
0
1134 return ct.argb.green >> 8;
never executed: return ct.argb.green >> 8;
0
1135}-
1136-
1137/*!-
1138 Sets the green color component of this color to \a green. Integer-
1139 components are specified in the range 0-255.-
1140-
1141 \sa green(), greenF(), setRgb()-
1142*/-
1143void QColor::setGreen(int green)-
1144{-
1145 QCOLOR_INT_RANGE_CHECK("QColor::setGreen", green);
never executed: end of block
green < 0Description
TRUEnever evaluated
FALSEnever evaluated
green > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1146 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1147 setRgb(red(), green, blue(), alpha());
never executed: setRgb(red(), green, blue(), alpha());
0
1148 else-
1149 ct.argb.green = green * 0x101;
never executed: ct.argb.green = green * 0x101;
0
1150}-
1151-
1152-
1153/*!-
1154 Returns the blue color component of this color.-
1155-
1156 \sa setBlue(), blueF(), getRgb()-
1157*/-
1158int QColor::blue() const Q_DECL_NOTHROW-
1159{-
1160 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1161 return toRgb().blue();
never executed: return toRgb().blue();
0
1162 return ct.argb.blue >> 8;
never executed: return ct.argb.blue >> 8;
0
1163}-
1164-
1165-
1166/*!-
1167 Sets the blue color component of this color to \a blue. Integer components-
1168 are specified in the range 0-255.-
1169-
1170 \sa blue(), blueF(), setRgb()-
1171*/-
1172void QColor::setBlue(int blue)-
1173{-
1174 QCOLOR_INT_RANGE_CHECK("QColor::setBlue", blue);
never executed: end of block
blue < 0Description
TRUEnever evaluated
FALSEnever evaluated
blue > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1175 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1176 setRgb(red(), green(), blue, alpha());
never executed: setRgb(red(), green(), blue, alpha());
0
1177 else-
1178 ct.argb.blue = blue * 0x101;
never executed: ct.argb.blue = blue * 0x101;
0
1179}-
1180-
1181/*!-
1182 Returns the red color component of this color.-
1183-
1184 \sa setRedF(), red(), getRgbF()-
1185*/-
1186qreal QColor::redF() const Q_DECL_NOTHROW-
1187{-
1188 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1189 return toRgb().redF();
never executed: return toRgb().redF();
0
1190 return ct.argb.red / qreal(USHRT_MAX);
never executed: return ct.argb.red / qreal((32767 * 2 + 1));
0
1191}-
1192-
1193-
1194/*!-
1195 Sets the red color component of this color to \a red. Float components-
1196 are specified in the range 0.0-1.0.-
1197-
1198 \sa redF(), red(), setRgbF()-
1199*/-
1200void QColor::setRedF(qreal red)-
1201{-
1202 QCOLOR_REAL_RANGE_CHECK("QColor::setRedF", red);
never executed: end of block
red < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
red > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1203 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1204 setRgbF(red, greenF(), blueF(), alphaF());
never executed: setRgbF(red, greenF(), blueF(), alphaF());
0
1205 else-
1206 ct.argb.red = qRound(red * USHRT_MAX);
never executed: ct.argb.red = qRound(red * (32767 * 2 + 1));
0
1207}-
1208-
1209/*!-
1210 Returns the green color component of this color.-
1211-
1212 \sa setGreenF(), green(), getRgbF()-
1213*/-
1214qreal QColor::greenF() const Q_DECL_NOTHROW-
1215{-
1216 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1217 return toRgb().greenF();
never executed: return toRgb().greenF();
0
1218 return ct.argb.green / qreal(USHRT_MAX);
never executed: return ct.argb.green / qreal((32767 * 2 + 1));
0
1219}-
1220-
1221-
1222/*!-
1223 Sets the green color component of this color to \a green. Float components-
1224 are specified in the range 0.0-1.0.-
1225-
1226 \sa greenF(), green(), setRgbF()-
1227*/-
1228void QColor::setGreenF(qreal green)-
1229{-
1230 QCOLOR_REAL_RANGE_CHECK("QColor::setGreenF", green);
never executed: end of block
green < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
green > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1231 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1232 setRgbF(redF(), green, blueF(), alphaF());
never executed: setRgbF(redF(), green, blueF(), alphaF());
0
1233 else-
1234 ct.argb.green = qRound(green * USHRT_MAX);
never executed: ct.argb.green = qRound(green * (32767 * 2 + 1));
0
1235}-
1236-
1237/*!-
1238 Returns the blue color component of this color.-
1239-
1240 \sa setBlueF(), blue(), getRgbF()-
1241*/-
1242qreal QColor::blueF() const Q_DECL_NOTHROW-
1243{-
1244 if (cspec != Invalid && cspec != Rgb)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1245 return toRgb().blueF();
never executed: return toRgb().blueF();
0
1246 return ct.argb.blue / qreal(USHRT_MAX);
never executed: return ct.argb.blue / qreal((32767 * 2 + 1));
0
1247}-
1248-
1249/*!-
1250 Sets the blue color component of this color to \a blue. Float components-
1251 are specified in the range 0.0-1.0.-
1252-
1253 \sa blueF(), blue(), setRgbF()-
1254*/-
1255void QColor::setBlueF(qreal blue)-
1256{-
1257 QCOLOR_REAL_RANGE_CHECK("QColor::setBlueF", blue);
never executed: end of block
blue < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
blue > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1258 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1259 setRgbF(redF(), greenF(), blue, alphaF());
never executed: setRgbF(redF(), greenF(), blue, alphaF());
0
1260 else-
1261 ct.argb.blue = qRound(blue * USHRT_MAX);
never executed: ct.argb.blue = qRound(blue * (32767 * 2 + 1));
0
1262}-
1263-
1264/*!-
1265 Returns the hue color component of this color.-
1266-
1267 The color is implicitly converted to HSV.-
1268-
1269 \sa hsvHue(), hueF(), getHsv(), {QColor#The HSV Color Model}{The HSV Color Model}-
1270*/-
1271-
1272int QColor::hue() const Q_DECL_NOTHROW-
1273{-
1274 return hsvHue();
never executed: return hsvHue();
0
1275}-
1276-
1277/*!-
1278 Returns the hue color component of this color.-
1279-
1280 \sa hueF(), getHsv(), {QColor#The HSV Color Model}{The HSV Color Model}-
1281*/-
1282int QColor::hsvHue() const Q_DECL_NOTHROW-
1283{-
1284 if (cspec != Invalid && cspec != Hsv)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
1285 return toHsv().hue();
never executed: return toHsv().hue();
0
1286 return ct.ahsv.hue == USHRT_MAX ? -1 : ct.ahsv.hue / 100;
never executed: return ct.ahsv.hue == (32767 * 2 + 1) ? -1 : ct.ahsv.hue / 100;
0
1287}-
1288-
1289/*!-
1290 Returns the saturation color component of this color.-
1291-
1292 The color is implicitly converted to HSV.-
1293-
1294 \sa hsvSaturation(), saturationF(), getHsv(), {QColor#The HSV Color Model}{The HSV Color-
1295 Model}-
1296*/-
1297-
1298int QColor::saturation() const Q_DECL_NOTHROW-
1299{-
1300 return hsvSaturation();
never executed: return hsvSaturation();
0
1301}-
1302-
1303/*!-
1304 Returns the saturation color component of this color.-
1305-
1306 \sa saturationF(), getHsv(), {QColor#The HSV Color Model}{The HSV Color Model}-
1307*/-
1308int QColor::hsvSaturation() const Q_DECL_NOTHROW-
1309{-
1310 if (cspec != Invalid && cspec != Hsv)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
1311 return toHsv().saturation();
never executed: return toHsv().saturation();
0
1312 return ct.ahsv.saturation >> 8;
never executed: return ct.ahsv.saturation >> 8;
0
1313}-
1314-
1315/*!-
1316 Returns the value color component of this color.-
1317-
1318 \sa valueF(), getHsv(), {QColor#The HSV Color Model}{The HSV Color Model}-
1319*/-
1320int QColor::value() const Q_DECL_NOTHROW-
1321{-
1322 if (cspec != Invalid && cspec != Hsv)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
1323 return toHsv().value();
never executed: return toHsv().value();
0
1324 return ct.ahsv.value >> 8;
never executed: return ct.ahsv.value >> 8;
0
1325}-
1326-
1327/*!-
1328 Returns the hue color component of this color.-
1329-
1330 The color is implicitly converted to HSV.-
1331-
1332 \sa hsvHueF(), hue(), getHsvF(), {QColor#The HSV Color Model}{The HSV Color Model}-
1333*/-
1334qreal QColor::hueF() const Q_DECL_NOTHROW-
1335{-
1336 return hsvHueF();
never executed: return hsvHueF();
0
1337}-
1338-
1339/*!-
1340 Returns the hue color component of this color.-
1341-
1342 \sa hue(), getHsvF(), {QColor#The HSV Color Model}{The HSV Color-
1343 Model}-
1344*/-
1345qreal QColor::hsvHueF() const Q_DECL_NOTHROW-
1346{-
1347 if (cspec != Invalid && cspec != Hsv)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
1348 return toHsv().hueF();
never executed: return toHsv().hueF();
0
1349 return ct.ahsv.hue == USHRT_MAX ? qreal(-1.0) : ct.ahsv.hue / qreal(36000.0);
never executed: return ct.ahsv.hue == (32767 * 2 + 1) ? qreal(-1.0) : ct.ahsv.hue / qreal(36000.0);
0
1350}-
1351-
1352/*!-
1353 Returns the saturation color component of this color.-
1354-
1355 The color is implicitly converted to HSV.-
1356-
1357 \sa hsvSaturationF(), saturation(), getHsvF(), {QColor#The HSV Color Model}{The HSV Color-
1358 Model}-
1359*/-
1360qreal QColor::saturationF() const Q_DECL_NOTHROW-
1361{-
1362 return hsvSaturationF();
never executed: return hsvSaturationF();
0
1363}-
1364-
1365/*!-
1366 Returns the saturation color component of this color.-
1367-
1368 \sa saturation(), getHsvF(), {QColor#The HSV Color Model}{The HSV Color Model}-
1369*/-
1370qreal QColor::hsvSaturationF() const Q_DECL_NOTHROW-
1371{-
1372 if (cspec != Invalid && cspec != Hsv)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
1373 return toHsv().saturationF();
never executed: return toHsv().saturationF();
0
1374 return ct.ahsv.saturation / qreal(USHRT_MAX);
never executed: return ct.ahsv.saturation / qreal((32767 * 2 + 1));
0
1375}-
1376-
1377/*!-
1378 Returns the value color component of this color.-
1379-
1380 \sa value(), getHsvF(), {QColor#The HSV Color Model}{The HSV Color Model}-
1381*/-
1382qreal QColor::valueF() const Q_DECL_NOTHROW-
1383{-
1384 if (cspec != Invalid && cspec != Hsv)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
1385 return toHsv().valueF();
never executed: return toHsv().valueF();
0
1386 return ct.ahsv.value / qreal(USHRT_MAX);
never executed: return ct.ahsv.value / qreal((32767 * 2 + 1));
0
1387}-
1388-
1389/*!-
1390 \since 4.6-
1391-
1392 Returns the hue color component of this color.-
1393-
1394 \sa getHslF(), getHsl()-
1395*/-
1396int QColor::hslHue() const Q_DECL_NOTHROW-
1397{-
1398 if (cspec != Invalid && cspec != Hsl)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
1399 return toHsl().hslHue();
never executed: return toHsl().hslHue();
0
1400 return ct.ahsl.hue == USHRT_MAX ? -1 : ct.ahsl.hue / 100;
never executed: return ct.ahsl.hue == (32767 * 2 + 1) ? -1 : ct.ahsl.hue / 100;
0
1401}-
1402-
1403/*!-
1404 \since 4.6-
1405-
1406 Returns the saturation color component of this color.-
1407-
1408 \sa saturationF(), getHsv(), {QColor#The HSV Color Model}{The HSV Color Model}-
1409*/-
1410int QColor::hslSaturation() const Q_DECL_NOTHROW-
1411{-
1412 if (cspec != Invalid && cspec != Hsl)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
1413 return toHsl().hslSaturation();
never executed: return toHsl().hslSaturation();
0
1414 return ct.ahsl.saturation >> 8;
never executed: return ct.ahsl.saturation >> 8;
0
1415}-
1416-
1417/*!-
1418 \since 4.6-
1419-
1420 Returns the lightness color component of this color.-
1421-
1422 \sa lightnessF(), getHsl()-
1423*/-
1424int QColor::lightness() const Q_DECL_NOTHROW-
1425{-
1426 if (cspec != Invalid && cspec != Hsl)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
1427 return toHsl().lightness();
never executed: return toHsl().lightness();
0
1428 return ct.ahsl.lightness >> 8;
never executed: return ct.ahsl.lightness >> 8;
0
1429}-
1430-
1431/*!-
1432 \since 4.6-
1433-
1434 Returns the hue color component of this color.-
1435-
1436 \sa hue(), getHslF()-
1437*/-
1438qreal QColor::hslHueF() const Q_DECL_NOTHROW-
1439{-
1440 if (cspec != Invalid && cspec != Hsl)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
1441 return toHsl().hslHueF();
never executed: return toHsl().hslHueF();
0
1442 return ct.ahsl.hue == USHRT_MAX ? qreal(-1.0) : ct.ahsl.hue / qreal(36000.0);
never executed: return ct.ahsl.hue == (32767 * 2 + 1) ? qreal(-1.0) : ct.ahsl.hue / qreal(36000.0);
0
1443}-
1444-
1445/*!-
1446 \since 4.6-
1447-
1448 Returns the saturation color component of this color.-
1449-
1450 \sa saturationF(), getHslF()-
1451*/-
1452qreal QColor::hslSaturationF() const Q_DECL_NOTHROW-
1453{-
1454 if (cspec != Invalid && cspec != Hsl)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
1455 return toHsl().hslSaturationF();
never executed: return toHsl().hslSaturationF();
0
1456 return ct.ahsl.saturation / qreal(USHRT_MAX);
never executed: return ct.ahsl.saturation / qreal((32767 * 2 + 1));
0
1457}-
1458-
1459/*!-
1460 \since 4.6-
1461-
1462 Returns the lightness color component of this color.-
1463-
1464 \sa value(), getHslF()-
1465*/-
1466qreal QColor::lightnessF() const Q_DECL_NOTHROW-
1467{-
1468 if (cspec != Invalid && cspec != Hsl)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
1469 return toHsl().lightnessF();
never executed: return toHsl().lightnessF();
0
1470 return ct.ahsl.lightness / qreal(USHRT_MAX);
never executed: return ct.ahsl.lightness / qreal((32767 * 2 + 1));
0
1471}-
1472-
1473/*!-
1474 Returns the cyan color component of this color.-
1475-
1476 \sa cyanF(), getCmyk(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1477*/-
1478int QColor::cyan() const Q_DECL_NOTHROW-
1479{-
1480 if (cspec != Invalid && cspec != Cmyk)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1481 return toCmyk().cyan();
never executed: return toCmyk().cyan();
0
1482 return ct.acmyk.cyan >> 8;
never executed: return ct.acmyk.cyan >> 8;
0
1483}-
1484-
1485/*!-
1486 Returns the magenta color component of this color.-
1487-
1488 \sa magentaF(), getCmyk(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1489*/-
1490int QColor::magenta() const Q_DECL_NOTHROW-
1491{-
1492 if (cspec != Invalid && cspec != Cmyk)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1493 return toCmyk().magenta();
never executed: return toCmyk().magenta();
0
1494 return ct.acmyk.magenta >> 8;
never executed: return ct.acmyk.magenta >> 8;
0
1495}-
1496-
1497/*!-
1498 Returns the yellow color component of this color.-
1499-
1500 \sa yellowF(), getCmyk(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1501*/-
1502int QColor::yellow() const Q_DECL_NOTHROW-
1503{-
1504 if (cspec != Invalid && cspec != Cmyk)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1505 return toCmyk().yellow();
never executed: return toCmyk().yellow();
0
1506 return ct.acmyk.yellow >> 8;
never executed: return ct.acmyk.yellow >> 8;
0
1507}-
1508-
1509/*!-
1510 Returns the black color component of this color.-
1511-
1512 \sa blackF(), getCmyk(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1513-
1514*/-
1515int QColor::black() const Q_DECL_NOTHROW-
1516{-
1517 if (cspec != Invalid && cspec != Cmyk)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1518 return toCmyk().black();
never executed: return toCmyk().black();
0
1519 return ct.acmyk.black >> 8;
never executed: return ct.acmyk.black >> 8;
0
1520}-
1521-
1522/*!-
1523 Returns the cyan color component of this color.-
1524-
1525 \sa cyan(), getCmykF(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1526*/-
1527qreal QColor::cyanF() const Q_DECL_NOTHROW-
1528{-
1529 if (cspec != Invalid && cspec != Cmyk)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1530 return toCmyk().cyanF();
never executed: return toCmyk().cyanF();
0
1531 return ct.acmyk.cyan / qreal(USHRT_MAX);
never executed: return ct.acmyk.cyan / qreal((32767 * 2 + 1));
0
1532}-
1533-
1534/*!-
1535 Returns the magenta color component of this color.-
1536-
1537 \sa magenta(), getCmykF(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1538*/-
1539qreal QColor::magentaF() const Q_DECL_NOTHROW-
1540{-
1541 if (cspec != Invalid && cspec != Cmyk)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1542 return toCmyk().magentaF();
never executed: return toCmyk().magentaF();
0
1543 return ct.acmyk.magenta / qreal(USHRT_MAX);
never executed: return ct.acmyk.magenta / qreal((32767 * 2 + 1));
0
1544}-
1545-
1546/*!-
1547 Returns the yellow color component of this color.-
1548-
1549 \sa yellow(), getCmykF(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1550*/-
1551qreal QColor::yellowF() const Q_DECL_NOTHROW-
1552{-
1553 if (cspec != Invalid && cspec != Cmyk)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1554 return toCmyk().yellowF();
never executed: return toCmyk().yellowF();
0
1555 return ct.acmyk.yellow / qreal(USHRT_MAX);
never executed: return ct.acmyk.yellow / qreal((32767 * 2 + 1));
0
1556}-
1557-
1558/*!-
1559 Returns the black color component of this color.-
1560-
1561 \sa black(), getCmykF(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1562*/-
1563qreal QColor::blackF() const Q_DECL_NOTHROW-
1564{-
1565 if (cspec != Invalid && cspec != Cmyk)
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1566 return toCmyk().blackF();
never executed: return toCmyk().blackF();
0
1567 return ct.acmyk.black / qreal(USHRT_MAX);
never executed: return ct.acmyk.black / qreal((32767 * 2 + 1));
0
1568}-
1569-
1570/*!-
1571 Create and returns an RGB QColor based on this color.-
1572-
1573 \sa fromRgb(), convertTo(), isValid()-
1574*/-
1575QColor QColor::toRgb() const Q_DECL_NOTHROW-
1576{-
1577 if (!isValid() || cspec == Rgb)
!isValid()Description
TRUEnever evaluated
FALSEnever evaluated
cspec == RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1578 return *this;
never executed: return *this;
0
1579-
1580 QColor color;-
1581 color.cspec = Rgb;-
1582 color.ct.argb.alpha = ct.argb.alpha;-
1583 color.ct.argb.pad = 0;-
1584-
1585 switch (cspec) {-
1586 case Hsv:
never executed: case Hsv:
0
1587 {-
1588 if (ct.ahsv.saturation == 0 || ct.ahsv.hue == USHRT_MAX) {
ct.ahsv.saturation == 0Description
TRUEnever evaluated
FALSEnever evaluated
ct.ahsv.hue == (32767 * 2 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
1589 // achromatic case-
1590 color.ct.argb.red = color.ct.argb.green = color.ct.argb.blue = ct.ahsv.value;-
1591 break;
never executed: break;
0
1592 }-
1593-
1594 // chromatic case-
1595 const qreal h = ct.ahsv.hue == 36000 ? 0 : ct.ahsv.hue / 6000.;
ct.ahsv.hue == 36000Description
TRUEnever evaluated
FALSEnever evaluated
0
1596 const qreal s = ct.ahsv.saturation / qreal(USHRT_MAX);-
1597 const qreal v = ct.ahsv.value / qreal(USHRT_MAX);-
1598 const int i = int(h);-
1599 const qreal f = h - i;-
1600 const qreal p = v * (qreal(1.0) - s);-
1601-
1602 if (i & 1) {
i & 1Description
TRUEnever evaluated
FALSEnever evaluated
0
1603 const qreal q = v * (qreal(1.0) - (s * f));-
1604-
1605 switch (i) {-
1606 case 1:
never executed: case 1:
0
1607 color.ct.argb.red = qRound(q * USHRT_MAX);-
1608 color.ct.argb.green = qRound(v * USHRT_MAX);-
1609 color.ct.argb.blue = qRound(p * USHRT_MAX);-
1610 break;
never executed: break;
0
1611 case 3:
never executed: case 3:
0
1612 color.ct.argb.red = qRound(p * USHRT_MAX);-
1613 color.ct.argb.green = qRound(q * USHRT_MAX);-
1614 color.ct.argb.blue = qRound(v * USHRT_MAX);-
1615 break;
never executed: break;
0
1616 case 5:
never executed: case 5:
0
1617 color.ct.argb.red = qRound(v * USHRT_MAX);-
1618 color.ct.argb.green = qRound(p * USHRT_MAX);-
1619 color.ct.argb.blue = qRound(q * USHRT_MAX);-
1620 break;
never executed: break;
0
1621 }-
1622 } else {
never executed: end of block
0
1623 const qreal t = v * (qreal(1.0) - (s * (qreal(1.0) - f)));-
1624-
1625 switch (i) {-
1626 case 0:
never executed: case 0:
0
1627 color.ct.argb.red = qRound(v * USHRT_MAX);-
1628 color.ct.argb.green = qRound(t * USHRT_MAX);-
1629 color.ct.argb.blue = qRound(p * USHRT_MAX);-
1630 break;
never executed: break;
0
1631 case 2:
never executed: case 2:
0
1632 color.ct.argb.red = qRound(p * USHRT_MAX);-
1633 color.ct.argb.green = qRound(v * USHRT_MAX);-
1634 color.ct.argb.blue = qRound(t * USHRT_MAX);-
1635 break;
never executed: break;
0
1636 case 4:
never executed: case 4:
0
1637 color.ct.argb.red = qRound(t * USHRT_MAX);-
1638 color.ct.argb.green = qRound(p * USHRT_MAX);-
1639 color.ct.argb.blue = qRound(v * USHRT_MAX);-
1640 break;
never executed: break;
0
1641 }-
1642 }
never executed: end of block
0
1643 break;
never executed: break;
0
1644 }-
1645 case Hsl:
never executed: case Hsl:
0
1646 {-
1647 if (ct.ahsl.saturation == 0 || ct.ahsl.hue == USHRT_MAX) {
ct.ahsl.saturation == 0Description
TRUEnever evaluated
FALSEnever evaluated
ct.ahsl.hue == (32767 * 2 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
1648 // achromatic case-
1649 color.ct.argb.red = color.ct.argb.green = color.ct.argb.blue = ct.ahsl.lightness;-
1650 } else if (ct.ahsl.lightness == 0) {
never executed: end of block
ct.ahsl.lightness == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1651 // lightness 0-
1652 color.ct.argb.red = color.ct.argb.green = color.ct.argb.blue = 0;-
1653 } else {
never executed: end of block
0
1654 // chromatic case-
1655 const qreal h = ct.ahsl.hue == 36000 ? 0 : ct.ahsl.hue / 36000.;
ct.ahsl.hue == 36000Description
TRUEnever evaluated
FALSEnever evaluated
0
1656 const qreal s = ct.ahsl.saturation / qreal(USHRT_MAX);-
1657 const qreal l = ct.ahsl.lightness / qreal(USHRT_MAX);-
1658-
1659 qreal temp2;-
1660 if (l < qreal(0.5))
l < qreal(0.5)Description
TRUEnever evaluated
FALSEnever evaluated
0
1661 temp2 = l * (qreal(1.0) + s);
never executed: temp2 = l * (qreal(1.0) + s);
0
1662 else-
1663 temp2 = l + s - (l * s);
never executed: temp2 = l + s - (l * s);
0
1664-
1665 const qreal temp1 = (qreal(2.0) * l) - temp2;-
1666 qreal temp3[3] = { h + (qreal(1.0) / qreal(3.0)),-
1667 h,-
1668 h - (qreal(1.0) / qreal(3.0)) };-
1669-
1670 for (int i = 0; i != 3; ++i) {
i != 3Description
TRUEnever evaluated
FALSEnever evaluated
0
1671 if (temp3[i] < qreal(0.0))
temp3[i] < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1672 temp3[i] += qreal(1.0);
never executed: temp3[i] += qreal(1.0);
0
1673 else if (temp3[i] > qreal(1.0))
temp3[i] > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1674 temp3[i] -= qreal(1.0);
never executed: temp3[i] -= qreal(1.0);
0
1675-
1676 const qreal sixtemp3 = temp3[i] * qreal(6.0);-
1677 if (sixtemp3 < qreal(1.0))
sixtemp3 < qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1678 color.ct.array[i+1] = qRound((temp1 + (temp2 - temp1) * sixtemp3) * USHRT_MAX);
never executed: color.ct.array[i+1] = qRound((temp1 + (temp2 - temp1) * sixtemp3) * (32767 * 2 + 1));
0
1679 else if ((temp3[i] * qreal(2.0)) < qreal(1.0))
(temp3[i] * qr...) < qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1680 color.ct.array[i+1] = qRound(temp2 * USHRT_MAX);
never executed: color.ct.array[i+1] = qRound(temp2 * (32767 * 2 + 1));
0
1681 else if ((temp3[i] * qreal(3.0)) < qreal(2.0))
(temp3[i] * qr...) < qreal(2.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1682 color.ct.array[i+1] = qRound((temp1 + (temp2 -temp1) * (qreal(2.0) /qreal(3.0) - temp3[i]) * qreal(6.0)) * USHRT_MAX);
never executed: color.ct.array[i+1] = qRound((temp1 + (temp2 -temp1) * (qreal(2.0) /qreal(3.0) - temp3[i]) * qreal(6.0)) * (32767 * 2 + 1));
0
1683 else-
1684 color.ct.array[i+1] = qRound(temp1 * USHRT_MAX);
never executed: color.ct.array[i+1] = qRound(temp1 * (32767 * 2 + 1));
0
1685 }-
1686 color.ct.argb.red = color.ct.argb.red == 1 ? 0 : color.ct.argb.red;
color.ct.argb.red == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
1687 color.ct.argb.green = color.ct.argb.green == 1 ? 0 : color.ct.argb.green;
color.ct.argb.green == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
1688 color.ct.argb.blue = color.ct.argb.blue == 1 ? 0 : color.ct.argb.blue;
color.ct.argb.blue == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
1689 }
never executed: end of block
0
1690 break;
never executed: break;
0
1691 }-
1692 case Cmyk:
never executed: case Cmyk:
0
1693 {-
1694 const qreal c = ct.acmyk.cyan / qreal(USHRT_MAX);-
1695 const qreal m = ct.acmyk.magenta / qreal(USHRT_MAX);-
1696 const qreal y = ct.acmyk.yellow / qreal(USHRT_MAX);-
1697 const qreal k = ct.acmyk.black / qreal(USHRT_MAX);-
1698-
1699 color.ct.argb.red = qRound((qreal(1.0) - (c * (qreal(1.0) - k) + k)) * USHRT_MAX);-
1700 color.ct.argb.green = qRound((qreal(1.0) - (m * (qreal(1.0) - k) + k)) * USHRT_MAX);-
1701 color.ct.argb.blue = qRound((qreal(1.0) - (y * (qreal(1.0) - k) + k)) * USHRT_MAX);-
1702 break;
never executed: break;
0
1703 }-
1704 default:
never executed: default:
0
1705 break;
never executed: break;
0
1706 }-
1707-
1708 return color;
never executed: return color;
0
1709}-
1710-
1711-
1712#define Q_MAX_3(a, b, c) ( ( a > b && a > c) ? a : (b > c ? b : c) )-
1713#define Q_MIN_3(a, b, c) ( ( a < b && a < c) ? a : (b < c ? b : c) )-
1714-
1715-
1716/*!-
1717 Creates and returns an HSV QColor based on this color.-
1718-
1719 \sa fromHsv(), convertTo(), isValid(), {QColor#The HSV Color Model}{The HSV Color Model}-
1720*/-
1721QColor QColor::toHsv() const Q_DECL_NOTHROW-
1722{-
1723 if (!isValid() || cspec == Hsv)
!isValid()Description
TRUEnever evaluated
FALSEnever evaluated
cspec == HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
1724 return *this;
never executed: return *this;
0
1725-
1726 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1727 return toRgb().toHsv();
never executed: return toRgb().toHsv();
0
1728-
1729 QColor color;-
1730 color.cspec = Hsv;-
1731 color.ct.ahsv.alpha = ct.argb.alpha;-
1732 color.ct.ahsv.pad = 0;-
1733-
1734 const qreal r = ct.argb.red / qreal(USHRT_MAX);-
1735 const qreal g = ct.argb.green / qreal(USHRT_MAX);-
1736 const qreal b = ct.argb.blue / qreal(USHRT_MAX);-
1737 const qreal max = Q_MAX_3(r, g, b);
g > bDescription
TRUEnever evaluated
FALSEnever evaluated
r > gDescription
TRUEnever evaluated
FALSEnever evaluated
r > bDescription
TRUEnever evaluated
FALSEnever evaluated
0
1738 const qreal min = Q_MIN_3(r, g, b);
g < bDescription
TRUEnever evaluated
FALSEnever evaluated
r < gDescription
TRUEnever evaluated
FALSEnever evaluated
r < bDescription
TRUEnever evaluated
FALSEnever evaluated
0
1739 const qreal delta = max - min;-
1740 color.ct.ahsv.value = qRound(max * USHRT_MAX);-
1741 if (qFuzzyIsNull(delta)) {
qFuzzyIsNull(delta)Description
TRUEnever evaluated
FALSEnever evaluated
0
1742 // achromatic case, hue is undefined-
1743 color.ct.ahsv.hue = USHRT_MAX;-
1744 color.ct.ahsv.saturation = 0;-
1745 } else {
never executed: end of block
0
1746 // chromatic case-
1747 qreal hue = 0;-
1748 color.ct.ahsv.saturation = qRound((delta / max) * USHRT_MAX);-
1749 if (qFuzzyCompare(r, max)) {
qFuzzyCompare(r, max)Description
TRUEnever evaluated
FALSEnever evaluated
0
1750 hue = ((g - b) /delta);-
1751 } else if (qFuzzyCompare(g, max)) {
never executed: end of block
qFuzzyCompare(g, max)Description
TRUEnever evaluated
FALSEnever evaluated
0
1752 hue = (qreal(2.0) + (b - r) / delta);-
1753 } else if (qFuzzyCompare(b, max)) {
never executed: end of block
qFuzzyCompare(b, max)Description
TRUEnever evaluated
FALSEnever evaluated
0
1754 hue = (qreal(4.0) + (r - g) / delta);-
1755 } else {
never executed: end of block
0
1756 Q_ASSERT_X(false, "QColor::toHsv", "internal error");-
1757 }
never executed: end of block
0
1758 hue *= qreal(60.0);-
1759 if (hue < qreal(0.0))
hue < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1760 hue += qreal(360.0);
never executed: hue += qreal(360.0);
0
1761 color.ct.ahsv.hue = qRound(hue * 100);-
1762 }
never executed: end of block
0
1763-
1764 return color;
never executed: return color;
0
1765}-
1766-
1767/*!-
1768 Creates and returns an HSL QColor based on this color.-
1769-
1770 \sa fromHsl(), convertTo(), isValid()-
1771*/-
1772QColor QColor::toHsl() const Q_DECL_NOTHROW-
1773{-
1774 if (!isValid() || cspec == Hsl)
!isValid()Description
TRUEnever evaluated
FALSEnever evaluated
cspec == HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
1775 return *this;
never executed: return *this;
0
1776-
1777 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1778 return toRgb().toHsl();
never executed: return toRgb().toHsl();
0
1779-
1780 QColor color;-
1781 color.cspec = Hsl;-
1782 color.ct.ahsl.alpha = ct.argb.alpha;-
1783 color.ct.ahsl.pad = 0;-
1784-
1785 const qreal r = ct.argb.red / qreal(USHRT_MAX);-
1786 const qreal g = ct.argb.green / qreal(USHRT_MAX);-
1787 const qreal b = ct.argb.blue / qreal(USHRT_MAX);-
1788 const qreal max = Q_MAX_3(r, g, b);
g > bDescription
TRUEnever evaluated
FALSEnever evaluated
r > gDescription
TRUEnever evaluated
FALSEnever evaluated
r > bDescription
TRUEnever evaluated
FALSEnever evaluated
0
1789 const qreal min = Q_MIN_3(r, g, b);
g < bDescription
TRUEnever evaluated
FALSEnever evaluated
r < gDescription
TRUEnever evaluated
FALSEnever evaluated
r < bDescription
TRUEnever evaluated
FALSEnever evaluated
0
1790 const qreal delta = max - min;-
1791 const qreal delta2 = max + min;-
1792 const qreal lightness = qreal(0.5) * delta2;-
1793 color.ct.ahsl.lightness = qRound(lightness * USHRT_MAX);-
1794 if (qFuzzyIsNull(delta)) {
qFuzzyIsNull(delta)Description
TRUEnever evaluated
FALSEnever evaluated
0
1795 // achromatic case, hue is undefined-
1796 color.ct.ahsl.hue = USHRT_MAX;-
1797 color.ct.ahsl.saturation = 0;-
1798 } else {
never executed: end of block
0
1799 // chromatic case-
1800 qreal hue = 0;-
1801 if (lightness < qreal(0.5))
lightness < qreal(0.5)Description
TRUEnever evaluated
FALSEnever evaluated
0
1802 color.ct.ahsl.saturation = qRound((delta / delta2) * USHRT_MAX);
never executed: color.ct.ahsl.saturation = qRound((delta / delta2) * (32767 * 2 + 1));
0
1803 else-
1804 color.ct.ahsl.saturation = qRound((delta / (qreal(2.0) - delta2)) * USHRT_MAX);
never executed: color.ct.ahsl.saturation = qRound((delta / (qreal(2.0) - delta2)) * (32767 * 2 + 1));
0
1805 if (qFuzzyCompare(r, max)) {
qFuzzyCompare(r, max)Description
TRUEnever evaluated
FALSEnever evaluated
0
1806 hue = ((g - b) /delta);-
1807 } else if (qFuzzyCompare(g, max)) {
never executed: end of block
qFuzzyCompare(g, max)Description
TRUEnever evaluated
FALSEnever evaluated
0
1808 hue = (qreal(2.0) + (b - r) / delta);-
1809 } else if (qFuzzyCompare(b, max)) {
never executed: end of block
qFuzzyCompare(b, max)Description
TRUEnever evaluated
FALSEnever evaluated
0
1810 hue = (qreal(4.0) + (r - g) / delta);-
1811 } else {
never executed: end of block
0
1812 Q_ASSERT_X(false, "QColor::toHsv", "internal error");-
1813 }
never executed: end of block
0
1814 hue *= qreal(60.0);-
1815 if (hue < qreal(0.0))
hue < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1816 hue += qreal(360.0);
never executed: hue += qreal(360.0);
0
1817 color.ct.ahsl.hue = qRound(hue * 100);-
1818 }
never executed: end of block
0
1819-
1820 return color;
never executed: return color;
0
1821}-
1822-
1823/*!-
1824 Creates and returns a CMYK QColor based on this color.-
1825-
1826 \sa fromCmyk(), convertTo(), isValid(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
1827*/-
1828QColor QColor::toCmyk() const Q_DECL_NOTHROW-
1829{-
1830 if (!isValid() || cspec == Cmyk)
!isValid()Description
TRUEnever evaluated
FALSEnever evaluated
cspec == CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
1831 return *this;
never executed: return *this;
0
1832 if (cspec != Rgb)
cspec != RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
1833 return toRgb().toCmyk();
never executed: return toRgb().toCmyk();
0
1834-
1835 QColor color;-
1836 color.cspec = Cmyk;-
1837 color.ct.acmyk.alpha = ct.argb.alpha;-
1838-
1839 // rgb -> cmy-
1840 const qreal r = ct.argb.red / qreal(USHRT_MAX);-
1841 const qreal g = ct.argb.green / qreal(USHRT_MAX);-
1842 const qreal b = ct.argb.blue / qreal(USHRT_MAX);-
1843 qreal c = qreal(1.0) - r;-
1844 qreal m = qreal(1.0) - g;-
1845 qreal y = qreal(1.0) - b;-
1846-
1847 // cmy -> cmyk-
1848 const qreal k = qMin(c, qMin(m, y));-
1849-
1850 if (!qFuzzyIsNull(k - 1)) {
!qFuzzyIsNull(k - 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
1851 c = (c - k) / (qreal(1.0) - k);-
1852 m = (m - k) / (qreal(1.0) - k);-
1853 y = (y - k) / (qreal(1.0) - k);-
1854 }
never executed: end of block
0
1855-
1856 color.ct.acmyk.cyan = qRound(c * USHRT_MAX);-
1857 color.ct.acmyk.magenta = qRound(m * USHRT_MAX);-
1858 color.ct.acmyk.yellow = qRound(y * USHRT_MAX);-
1859 color.ct.acmyk.black = qRound(k * USHRT_MAX);-
1860-
1861 return color;
never executed: return color;
0
1862}-
1863-
1864QColor QColor::convertTo(QColor::Spec colorSpec) const Q_DECL_NOTHROW-
1865{-
1866 if (colorSpec == cspec)
colorSpec == cspecDescription
TRUEnever evaluated
FALSEnever evaluated
0
1867 return *this;
never executed: return *this;
0
1868 switch (colorSpec) {-
1869 case Rgb:
never executed: case Rgb:
0
1870 return toRgb();
never executed: return toRgb();
0
1871 case Hsv:
never executed: case Hsv:
0
1872 return toHsv();
never executed: return toHsv();
0
1873 case Cmyk:
never executed: case Cmyk:
0
1874 return toCmyk();
never executed: return toCmyk();
0
1875 case Hsl:
never executed: case Hsl:
0
1876 return toHsl();
never executed: return toHsl();
0
1877 case Invalid:
never executed: case Invalid:
0
1878 break;
never executed: break;
0
1879 }-
1880 return QColor(); // must be invalid
never executed: return QColor();
0
1881}-
1882-
1883-
1884/*!-
1885 Static convenience function that returns a QColor constructed from the-
1886 given QRgb value \a rgb.-
1887-
1888 The alpha component of \a rgb is ignored (i.e. it is automatically set to-
1889 255), use the fromRgba() function to include the alpha-channel specified by-
1890 the given QRgb value.-
1891-
1892 \sa fromRgba(), fromRgbF(), toRgb(), isValid()-
1893*/-
1894-
1895QColor QColor::fromRgb(QRgb rgb) Q_DECL_NOTHROW-
1896{-
1897 return fromRgb(qRed(rgb), qGreen(rgb), qBlue(rgb));
never executed: return fromRgb(qRed(rgb), qGreen(rgb), qBlue(rgb));
0
1898}-
1899-
1900-
1901/*!-
1902 Static convenience function that returns a QColor constructed from the-
1903 given QRgb value \a rgba.-
1904-
1905 Unlike the fromRgb() function, the alpha-channel specified by the given-
1906 QRgb value is included.-
1907-
1908 \sa fromRgb(), fromRgba64(), isValid()-
1909*/-
1910-
1911QColor QColor::fromRgba(QRgb rgba) Q_DECL_NOTHROW-
1912{-
1913 return fromRgb(qRed(rgba), qGreen(rgba), qBlue(rgba), qAlpha(rgba));
never executed: return fromRgb(qRed(rgba), qGreen(rgba), qBlue(rgba), qAlpha(rgba));
0
1914}-
1915-
1916/*!-
1917 Static convenience function that returns a QColor constructed from the RGB-
1918 color values, \a r (red), \a g (green), \a b (blue), and \a a-
1919 (alpha-channel, i.e. transparency).-
1920-
1921 All the values must be in the range 0-255.-
1922-
1923 \sa toRgb(), fromRgba64(), fromRgbF(), isValid()-
1924*/-
1925QColor QColor::fromRgb(int r, int g, int b, int a)-
1926{-
1927 if (r < 0 || r > 255
r < 0Description
TRUEnever evaluated
FALSEnever evaluated
r > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1928 || g < 0 || g > 255
g < 0Description
TRUEnever evaluated
FALSEnever evaluated
g > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1929 || b < 0 || b > 255
b < 0Description
TRUEnever evaluated
FALSEnever evaluated
b > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1930 || a < 0 || a > 255) {
a < 0Description
TRUEnever evaluated
FALSEnever evaluated
a > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
1931 qWarning("QColor::fromRgb: RGB parameters out of range");-
1932 return QColor();
never executed: return QColor();
0
1933 }-
1934-
1935 QColor color;-
1936 color.cspec = Rgb;-
1937 color.ct.argb.alpha = a * 0x101;-
1938 color.ct.argb.red = r * 0x101;-
1939 color.ct.argb.green = g * 0x101;-
1940 color.ct.argb.blue = b * 0x101;-
1941 color.ct.argb.pad = 0;-
1942 return color;
never executed: return color;
0
1943}-
1944-
1945/*!-
1946 Static convenience function that returns a QColor constructed from the RGB-
1947 color values, \a r (red), \a g (green), \a b (blue), and \a a-
1948 (alpha-channel, i.e. transparency).-
1949-
1950 All the values must be in the range 0.0-1.0.-
1951-
1952 \sa fromRgb(), fromRgba64(), toRgb(), isValid()-
1953*/-
1954QColor QColor::fromRgbF(qreal r, qreal g, qreal b, qreal a)-
1955{-
1956 if (r < qreal(0.0) || r > qreal(1.0)
r < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
r > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1957 || g < qreal(0.0) || g > qreal(1.0)
g < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
g > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1958 || b < qreal(0.0) || b > qreal(1.0)
b < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
b > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1959 || a < qreal(0.0) || a > qreal(1.0)) {
a < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
a > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1960 qWarning("QColor::fromRgbF: RGB parameters out of range");-
1961 return QColor();
never executed: return QColor();
0
1962 }-
1963-
1964 QColor color;-
1965 color.cspec = Rgb;-
1966 color.ct.argb.alpha = qRound(a * USHRT_MAX);-
1967 color.ct.argb.red = qRound(r * USHRT_MAX);-
1968 color.ct.argb.green = qRound(g * USHRT_MAX);-
1969 color.ct.argb.blue = qRound(b * USHRT_MAX);-
1970 color.ct.argb.pad = 0;-
1971 return color;
never executed: return color;
0
1972}-
1973-
1974-
1975/*!-
1976 \since 5.6-
1977-
1978 Static convenience function that returns a QColor constructed from the RGBA64-
1979 color values, \a r (red), \a g (green), \a b (blue), and \a a-
1980 (alpha-channel, i.e. transparency).-
1981-
1982 \sa fromRgb(), fromRgbF(), toRgb(), isValid()-
1983*/-
1984QColor QColor::fromRgba64(ushort r, ushort g, ushort b, ushort a) Q_DECL_NOTHROW-
1985{-
1986 QColor color;-
1987 color.setRgba64(qRgba64(r, g, b, a));-
1988 return color;
never executed: return color;
0
1989}-
1990-
1991/*!-
1992 \since 5.6-
1993-
1994 Static convenience function that returns a QColor constructed from the-
1995 given QRgba64 value \a rgba64.-
1996-
1997 \sa fromRgb(), fromRgbF(), toRgb(), isValid()-
1998*/-
1999QColor QColor::fromRgba64(QRgba64 rgba64) Q_DECL_NOTHROW-
2000{-
2001 QColor color;-
2002 color.setRgba64(rgba64);-
2003 return color;
never executed: return color;
0
2004}-
2005-
2006/*!-
2007 Static convenience function that returns a QColor constructed from the HSV-
2008 color values, \a h (hue), \a s (saturation), \a v (value), and \a a-
2009 (alpha-channel, i.e. transparency).-
2010-
2011 The value of \a s, \a v, and \a a must all be in the range 0-255; the value-
2012 of \a h must be in the range 0-359.-
2013-
2014 \sa toHsv(), fromHsvF(), isValid(), {QColor#The HSV Color Model}{The HSV Color Model}-
2015*/-
2016QColor QColor::fromHsv(int h, int s, int v, int a)-
2017{-
2018 if (((h < 0 || h >= 360) && h != -1)
h < 0Description
TRUEnever evaluated
FALSEnever evaluated
h >= 360Description
TRUEnever evaluated
FALSEnever evaluated
h != -1Description
TRUEnever evaluated
FALSEnever evaluated
0
2019 || s < 0 || s > 255
s < 0Description
TRUEnever evaluated
FALSEnever evaluated
s > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2020 || v < 0 || v > 255
v < 0Description
TRUEnever evaluated
FALSEnever evaluated
v > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2021 || a < 0 || a > 255) {
a < 0Description
TRUEnever evaluated
FALSEnever evaluated
a > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2022 qWarning("QColor::fromHsv: HSV parameters out of range");-
2023 return QColor();
never executed: return QColor();
0
2024 }-
2025-
2026 QColor color;-
2027 color.cspec = Hsv;-
2028 color.ct.ahsv.alpha = a * 0x101;-
2029 color.ct.ahsv.hue = h == -1 ? USHRT_MAX : (h % 360) * 100;
h == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
2030 color.ct.ahsv.saturation = s * 0x101;-
2031 color.ct.ahsv.value = v * 0x101;-
2032 color.ct.ahsv.pad = 0;-
2033 return color;
never executed: return color;
0
2034}-
2035-
2036/*!-
2037 \overload-
2038-
2039 Static convenience function that returns a QColor constructed from the HSV-
2040 color values, \a h (hue), \a s (saturation), \a v (value), and \a a-
2041 (alpha-channel, i.e. transparency).-
2042-
2043 All the values must be in the range 0.0-1.0.-
2044-
2045 \sa toHsv(), fromHsv(), isValid(), {QColor#The HSV Color Model}{The HSV Color Model}-
2046*/-
2047QColor QColor::fromHsvF(qreal h, qreal s, qreal v, qreal a)-
2048{-
2049 if (((h < qreal(0.0) || h > qreal(1.0)) && h != qreal(-1.0))
h < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
h > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
h != qreal(-1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2050 || (s < qreal(0.0) || s > qreal(1.0))
s < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
s > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2051 || (v < qreal(0.0) || v > qreal(1.0))
v < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
v > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2052 || (a < qreal(0.0) || a > qreal(1.0))) {
a < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
a > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2053 qWarning("QColor::fromHsvF: HSV parameters out of range");-
2054 return QColor();
never executed: return QColor();
0
2055 }-
2056-
2057 QColor color;-
2058 color.cspec = Hsv;-
2059 color.ct.ahsv.alpha = qRound(a * USHRT_MAX);-
2060 color.ct.ahsv.hue = h == qreal(-1.0) ? USHRT_MAX : qRound(h * 36000);
h == qreal(-1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2061 color.ct.ahsv.saturation = qRound(s * USHRT_MAX);-
2062 color.ct.ahsv.value = qRound(v * USHRT_MAX);-
2063 color.ct.ahsv.pad = 0;-
2064 return color;
never executed: return color;
0
2065}-
2066-
2067/*!-
2068 \since 4.6-
2069-
2070 Static convenience function that returns a QColor constructed from the HSV-
2071 color values, \a h (hue), \a s (saturation), \a l (lightness), and \a a-
2072 (alpha-channel, i.e. transparency).-
2073-
2074 The value of \a s, \a l, and \a a must all be in the range 0-255; the value-
2075 of \a h must be in the range 0-359.-
2076-
2077 \sa toHsl(), fromHslF(), isValid()-
2078*/-
2079QColor QColor::fromHsl(int h, int s, int l, int a)-
2080{-
2081 if (((h < 0 || h >= 360) && h != -1)
h < 0Description
TRUEnever evaluated
FALSEnever evaluated
h >= 360Description
TRUEnever evaluated
FALSEnever evaluated
h != -1Description
TRUEnever evaluated
FALSEnever evaluated
0
2082 || s < 0 || s > 255
s < 0Description
TRUEnever evaluated
FALSEnever evaluated
s > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2083 || l < 0 || l > 255
l < 0Description
TRUEnever evaluated
FALSEnever evaluated
l > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2084 || a < 0 || a > 255) {
a < 0Description
TRUEnever evaluated
FALSEnever evaluated
a > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2085 qWarning("QColor::fromHsl: HSL parameters out of range");-
2086 return QColor();
never executed: return QColor();
0
2087 }-
2088-
2089 QColor color;-
2090 color.cspec = Hsl;-
2091 color.ct.ahsl.alpha = a * 0x101;-
2092 color.ct.ahsl.hue = h == -1 ? USHRT_MAX : (h % 360) * 100;
h == -1Description
TRUEnever evaluated
FALSEnever evaluated
0
2093 color.ct.ahsl.saturation = s * 0x101;-
2094 color.ct.ahsl.lightness = l * 0x101;-
2095 color.ct.ahsl.pad = 0;-
2096 return color;
never executed: return color;
0
2097}-
2098-
2099/*!-
2100 \overload-
2101 \since 4.6-
2102-
2103 Static convenience function that returns a QColor constructed from the HSV-
2104 color values, \a h (hue), \a s (saturation), \a l (lightness), and \a a-
2105 (alpha-channel, i.e. transparency).-
2106-
2107 All the values must be in the range 0.0-1.0.-
2108-
2109 \sa toHsl(), fromHsl(), isValid()-
2110*/-
2111QColor QColor::fromHslF(qreal h, qreal s, qreal l, qreal a)-
2112{-
2113 if (((h < qreal(0.0) || h > qreal(1.0)) && h != qreal(-1.0))
h < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
h > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
h != qreal(-1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2114 || (s < qreal(0.0) || s > qreal(1.0))
s < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
s > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2115 || (l < qreal(0.0) || l > qreal(1.0))
l < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
l > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2116 || (a < qreal(0.0) || a > qreal(1.0))) {
a < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
a > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2117 qWarning("QColor::fromHslF: HSL parameters out of range");-
2118 return QColor();
never executed: return QColor();
0
2119 }-
2120-
2121 QColor color;-
2122 color.cspec = Hsl;-
2123 color.ct.ahsl.alpha = qRound(a * USHRT_MAX);-
2124 color.ct.ahsl.hue = (h == qreal(-1.0)) ? USHRT_MAX : qRound(h * 36000);
(h == qreal(-1.0))Description
TRUEnever evaluated
FALSEnever evaluated
0
2125 if (color.ct.ahsl.hue == 36000)
color.ct.ahsl.hue == 36000Description
TRUEnever evaluated
FALSEnever evaluated
0
2126 color.ct.ahsl.hue = 0;
never executed: color.ct.ahsl.hue = 0;
0
2127 color.ct.ahsl.saturation = qRound(s * USHRT_MAX);-
2128 color.ct.ahsl.lightness = qRound(l * USHRT_MAX);-
2129 color.ct.ahsl.pad = 0;-
2130 return color;
never executed: return color;
0
2131}-
2132-
2133-
2134/*!-
2135 Sets the contents pointed to by \a c, \a m, \a y, \a k, and \a a, to the-
2136 cyan, magenta, yellow, black, and alpha-channel (transparency) components-
2137 of the color's CMYK value.-
2138-
2139 These components can be retrieved individually using the cyan(), magenta(),-
2140 yellow(), black() and alpha() functions.-
2141-
2142 \sa setCmyk(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
2143*/-
2144void QColor::getCmyk(int *c, int *m, int *y, int *k, int *a)-
2145{-
2146 if (!c || !m || !y || !k)
!cDescription
TRUEnever evaluated
FALSEnever evaluated
!mDescription
TRUEnever evaluated
FALSEnever evaluated
!yDescription
TRUEnever evaluated
FALSEnever evaluated
!kDescription
TRUEnever evaluated
FALSEnever evaluated
0
2147 return;
never executed: return;
0
2148-
2149 if (cspec != Invalid && cspec != Cmyk) {
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
2150 toCmyk().getCmyk(c, m, y, k, a);-
2151 return;
never executed: return;
0
2152 }-
2153-
2154 *c = ct.acmyk.cyan >> 8;-
2155 *m = ct.acmyk.magenta >> 8;-
2156 *y = ct.acmyk.yellow >> 8;-
2157 *k = ct.acmyk.black >> 8;-
2158-
2159 if (a)
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
2160 *a = ct.acmyk.alpha >> 8;
never executed: *a = ct.acmyk.alpha >> 8;
0
2161}
never executed: end of block
0
2162-
2163/*!-
2164 Sets the contents pointed to by \a c, \a m, \a y, \a k, and \a a, to the-
2165 cyan, magenta, yellow, black, and alpha-channel (transparency) components-
2166 of the color's CMYK value.-
2167-
2168 These components can be retrieved individually using the cyanF(),-
2169 magentaF(), yellowF(), blackF() and alphaF() functions.-
2170-
2171 \sa setCmykF(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
2172*/-
2173void QColor::getCmykF(qreal *c, qreal *m, qreal *y, qreal *k, qreal *a)-
2174{-
2175 if (!c || !m || !y || !k)
!cDescription
TRUEnever evaluated
FALSEnever evaluated
!mDescription
TRUEnever evaluated
FALSEnever evaluated
!yDescription
TRUEnever evaluated
FALSEnever evaluated
!kDescription
TRUEnever evaluated
FALSEnever evaluated
0
2176 return;
never executed: return;
0
2177-
2178 if (cspec != Invalid && cspec != Cmyk) {
cspec != InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
cspec != CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
2179 toCmyk().getCmykF(c, m, y, k, a);-
2180 return;
never executed: return;
0
2181 }-
2182-
2183 *c = ct.acmyk.cyan / qreal(USHRT_MAX);-
2184 *m = ct.acmyk.magenta / qreal(USHRT_MAX);-
2185 *y = ct.acmyk.yellow / qreal(USHRT_MAX);-
2186 *k = ct.acmyk.black / qreal(USHRT_MAX);-
2187-
2188 if (a)
aDescription
TRUEnever evaluated
FALSEnever evaluated
0
2189 *a = ct.acmyk.alpha / qreal(USHRT_MAX);
never executed: *a = ct.acmyk.alpha / qreal((32767 * 2 + 1));
0
2190}
never executed: end of block
0
2191-
2192/*!-
2193 Sets the color to CMYK values, \a c (cyan), \a m (magenta), \a y (yellow),-
2194 \a k (black), and \a a (alpha-channel, i.e. transparency).-
2195-
2196 All the values must be in the range 0-255.-
2197-
2198 \sa getCmyk(), setCmykF(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
2199*/-
2200void QColor::setCmyk(int c, int m, int y, int k, int a)-
2201{-
2202 if (c < 0 || c > 255
c < 0Description
TRUEnever evaluated
FALSEnever evaluated
c > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2203 || m < 0 || m > 255
m < 0Description
TRUEnever evaluated
FALSEnever evaluated
m > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2204 || y < 0 || y > 255
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
y > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2205 || k < 0 || k > 255
k < 0Description
TRUEnever evaluated
FALSEnever evaluated
k > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2206 || a < 0 || a > 255) {
a < 0Description
TRUEnever evaluated
FALSEnever evaluated
a > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2207 qWarning("QColor::setCmyk: CMYK parameters out of range");-
2208 return;
never executed: return;
0
2209 }-
2210-
2211 cspec = Cmyk;-
2212 ct.acmyk.alpha = a * 0x101;-
2213 ct.acmyk.cyan = c * 0x101;-
2214 ct.acmyk.magenta = m * 0x101;-
2215 ct.acmyk.yellow = y * 0x101;-
2216 ct.acmyk.black = k * 0x101;-
2217}
never executed: end of block
0
2218-
2219/*!-
2220 \overload-
2221-
2222 Sets the color to CMYK values, \a c (cyan), \a m (magenta), \a y (yellow),-
2223 \a k (black), and \a a (alpha-channel, i.e. transparency).-
2224-
2225 All the values must be in the range 0.0-1.0.-
2226-
2227 \sa getCmykF(), setCmyk(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
2228*/-
2229void QColor::setCmykF(qreal c, qreal m, qreal y, qreal k, qreal a)-
2230{-
2231 if (c < qreal(0.0) || c > qreal(1.0)
c < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
c > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2232 || m < qreal(0.0) || m > qreal(1.0)
m < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
m > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2233 || y < qreal(0.0) || y > qreal(1.0)
y < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
y > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2234 || k < qreal(0.0) || k > qreal(1.0)
k < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
k > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2235 || a < qreal(0.0) || a > qreal(1.0)) {
a < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
a > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2236 qWarning("QColor::setCmykF: CMYK parameters out of range");-
2237 return;
never executed: return;
0
2238 }-
2239-
2240 cspec = Cmyk;-
2241 ct.acmyk.alpha = qRound(a * USHRT_MAX);-
2242 ct.acmyk.cyan = qRound(c * USHRT_MAX);-
2243 ct.acmyk.magenta = qRound(m * USHRT_MAX);-
2244 ct.acmyk.yellow = qRound(y * USHRT_MAX);-
2245 ct.acmyk.black = qRound(k * USHRT_MAX);-
2246}
never executed: end of block
0
2247-
2248/*!-
2249 Static convenience function that returns a QColor constructed from the-
2250 given CMYK color values: \a c (cyan), \a m (magenta), \a y (yellow), \a k-
2251 (black), and \a a (alpha-channel, i.e. transparency).-
2252-
2253 All the values must be in the range 0-255.-
2254-
2255 \sa toCmyk(), fromCmykF(), isValid(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
2256*/-
2257QColor QColor::fromCmyk(int c, int m, int y, int k, int a)-
2258{-
2259 if (c < 0 || c > 255
c < 0Description
TRUEnever evaluated
FALSEnever evaluated
c > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2260 || m < 0 || m > 255
m < 0Description
TRUEnever evaluated
FALSEnever evaluated
m > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2261 || y < 0 || y > 255
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
y > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2262 || k < 0 || k > 255
k < 0Description
TRUEnever evaluated
FALSEnever evaluated
k > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2263 || a < 0 || a > 255) {
a < 0Description
TRUEnever evaluated
FALSEnever evaluated
a > 255Description
TRUEnever evaluated
FALSEnever evaluated
0
2264 qWarning("QColor::fromCmyk: CMYK parameters out of range");-
2265 return QColor();
never executed: return QColor();
0
2266 }-
2267-
2268 QColor color;-
2269 color.cspec = Cmyk;-
2270 color.ct.acmyk.alpha = a * 0x101;-
2271 color.ct.acmyk.cyan = c * 0x101;-
2272 color.ct.acmyk.magenta = m * 0x101;-
2273 color.ct.acmyk.yellow = y * 0x101;-
2274 color.ct.acmyk.black = k * 0x101;-
2275 return color;
never executed: return color;
0
2276}-
2277-
2278/*!-
2279 \overload-
2280-
2281 Static convenience function that returns a QColor constructed from the-
2282 given CMYK color values: \a c (cyan), \a m (magenta), \a y (yellow), \a k-
2283 (black), and \a a (alpha-channel, i.e. transparency).-
2284-
2285 All the values must be in the range 0.0-1.0.-
2286-
2287 \sa toCmyk(), fromCmyk(), isValid(), {QColor#The CMYK Color Model}{The CMYK Color Model}-
2288*/-
2289QColor QColor::fromCmykF(qreal c, qreal m, qreal y, qreal k, qreal a)-
2290{-
2291 if (c < qreal(0.0) || c > qreal(1.0)
c < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
c > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2292 || m < qreal(0.0) || m > qreal(1.0)
m < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
m > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2293 || y < qreal(0.0) || y > qreal(1.0)
y < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
y > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2294 || k < qreal(0.0) || k > qreal(1.0)
k < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
k > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2295 || a < qreal(0.0) || a > qreal(1.0)) {
a < qreal(0.0)Description
TRUEnever evaluated
FALSEnever evaluated
a > qreal(1.0)Description
TRUEnever evaluated
FALSEnever evaluated
0
2296 qWarning("QColor::fromCmykF: CMYK parameters out of range");-
2297 return QColor();
never executed: return QColor();
0
2298 }-
2299-
2300 QColor color;-
2301 color.cspec = Cmyk;-
2302 color.ct.acmyk.alpha = qRound(a * USHRT_MAX);-
2303 color.ct.acmyk.cyan = qRound(c * USHRT_MAX);-
2304 color.ct.acmyk.magenta = qRound(m * USHRT_MAX);-
2305 color.ct.acmyk.yellow = qRound(y * USHRT_MAX);-
2306 color.ct.acmyk.black = qRound(k * USHRT_MAX);-
2307 return color;
never executed: return color;
0
2308}-
2309-
2310/*!-
2311 \fn QColor QColor::lighter(int factor) const-
2312 \since 4.3-
2313-
2314 Returns a lighter (or darker) color, but does not change this object.-
2315-
2316 If the \a factor is greater than 100, this functions returns a lighter-
2317 color. Setting \a factor to 150 returns a color that is 50% brighter. If-
2318 the \a factor is less than 100, the return color is darker, but we-
2319 recommend using the darker() function for this purpose. If the \a factor-
2320 is 0 or negative, the return value is unspecified.-
2321-
2322 The function converts the current RGB color to HSV, multiplies the value-
2323 (V) component by \a factor and converts the color back to RGB.-
2324-
2325 \sa darker(), isValid()-
2326*/-
2327-
2328/*!-
2329 \obsolete-
2330-
2331 Use lighter(\a factor) instead.-
2332*/-
2333QColor QColor::light(int factor) const Q_DECL_NOTHROW-
2334{-
2335 if (factor <= 0) // invalid lightness factor
factor <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2336 return *this;
never executed: return *this;
0
2337 else if (factor < 100) // makes color darker
factor < 100Description
TRUEnever evaluated
FALSEnever evaluated
0
2338 return darker(10000 / factor);
never executed: return darker(10000 / factor);
0
2339-
2340 QColor hsv = toHsv();-
2341 int s = hsv.ct.ahsv.saturation;-
2342 uint v = hsv.ct.ahsv.value;-
2343-
2344 v = (factor*v)/100;-
2345 if (v > USHRT_MAX) {
v > (32767 * 2 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
0
2346 // overflow... adjust saturation-
2347 s -= v - USHRT_MAX;-
2348 if (s < 0)
s < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2349 s = 0;
never executed: s = 0;
0
2350 v = USHRT_MAX;-
2351 }
never executed: end of block
0
2352-
2353 hsv.ct.ahsv.saturation = s;-
2354 hsv.ct.ahsv.value = v;-
2355-
2356 // convert back to same color spec as original color-
2357 return hsv.convertTo(cspec);
never executed: return hsv.convertTo(cspec);
0
2358}-
2359-
2360/*!-
2361 \fn QColor QColor::darker(int factor) const-
2362 \since 4.3-
2363-
2364 Returns a darker (or lighter) color, but does not change this object.-
2365-
2366 If the \a factor is greater than 100, this functions returns a darker-
2367 color. Setting \a factor to 300 returns a color that has one-third the-
2368 brightness. If the \a factor is less than 100, the return color is lighter,-
2369 but we recommend using the lighter() function for this purpose. If the-
2370 \a factor is 0 or negative, the return value is unspecified.-
2371-
2372 The function converts the current RGB color to HSV, divides the value (V)-
2373 component by \a factor and converts the color back to RGB.-
2374-
2375 \sa lighter(), isValid()-
2376*/-
2377-
2378/*!-
2379 \obsolete-
2380-
2381 Use darker(\a factor) instead.-
2382*/-
2383QColor QColor::dark(int factor) const Q_DECL_NOTHROW-
2384{-
2385 if (factor <= 0) // invalid darkness factor
factor <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
2386 return *this;
never executed: return *this;
0
2387 else if (factor < 100) // makes color lighter
factor < 100Description
TRUEnever evaluated
FALSEnever evaluated
0
2388 return lighter(10000 / factor);
never executed: return lighter(10000 / factor);
0
2389-
2390 QColor hsv = toHsv();-
2391 hsv.ct.ahsv.value = (hsv.ct.ahsv.value * 100) / factor;-
2392-
2393 // convert back to same color spec as original color-
2394 return hsv.convertTo(cspec);
never executed: return hsv.convertTo(cspec);
0
2395}-
2396-
2397#if QT_VERSION < QT_VERSION_CHECK(6,0,0)-
2398/*!-
2399 Assigns a copy of \a color to this color, and returns a reference to it.-
2400*/-
2401QColor &QColor::operator=(const QColor &color) Q_DECL_NOTHROW-
2402{-
2403 cspec = color.cspec;-
2404 ct.argb = color.ct.argb;-
2405 return *this;
never executed: return *this;
0
2406}-
2407#endif-
2408-
2409/*! \overload-
2410 Assigns a copy of \a color and returns a reference to this color.-
2411 */-
2412QColor &QColor::operator=(Qt::GlobalColor color) Q_DECL_NOTHROW-
2413{-
2414 return operator=(QColor(color));
never executed: return operator=(QColor(color));
0
2415}-
2416-
2417/*!-
2418 Returns \c true if this color has the same RGB and alpha values as \a color;-
2419 otherwise returns \c false.-
2420*/-
2421bool QColor::operator==(const QColor &color) const Q_DECL_NOTHROW-
2422{-
2423 if (cspec == Hsl && cspec == color.cspec) {
cspec == HslDescription
TRUEnever evaluated
FALSEnever evaluated
cspec == color.cspecDescription
TRUEnever evaluated
FALSEnever evaluated
0
2424 return (ct.argb.alpha == color.ct.argb.alpha
never executed: return (ct.argb.alpha == color.ct.argb.alpha && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50 || ct.ahsl.lightness == 0 || color.ct.ahsl.lightness == 0 || ct.ahsl.lightness == (32767 * 2 + 1) || color.ct.ahsl.lightness == (32767 * 2 + 1)) && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
0
2425 && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000
never executed: return (ct.argb.alpha == color.ct.argb.alpha && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50 || ct.ahsl.lightness == 0 || color.ct.ahsl.lightness == 0 || ct.ahsl.lightness == (32767 * 2 + 1) || color.ct.ahsl.lightness == (32767 * 2 + 1)) && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
0
2426 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50
never executed: return (ct.argb.alpha == color.ct.argb.alpha && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50 || ct.ahsl.lightness == 0 || color.ct.ahsl.lightness == 0 || ct.ahsl.lightness == (32767 * 2 + 1) || color.ct.ahsl.lightness == (32767 * 2 + 1)) && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
0
2427 || ct.ahsl.lightness == 0
never executed: return (ct.argb.alpha == color.ct.argb.alpha && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50 || ct.ahsl.lightness == 0 || color.ct.ahsl.lightness == 0 || ct.ahsl.lightness == (32767 * 2 + 1) || color.ct.ahsl.lightness == (32767 * 2 + 1)) && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
0
2428 || color.ct.ahsl.lightness == 0
never executed: return (ct.argb.alpha == color.ct.argb.alpha && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50 || ct.ahsl.lightness == 0 || color.ct.ahsl.lightness == 0 || ct.ahsl.lightness == (32767 * 2 + 1) || color.ct.ahsl.lightness == (32767 * 2 + 1)) && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
0
2429 || ct.ahsl.lightness == USHRT_MAX
never executed: return (ct.argb.alpha == color.ct.argb.alpha && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50 || ct.ahsl.lightness == 0 || color.ct.ahsl.lightness == 0 || ct.ahsl.lightness == (32767 * 2 + 1) || color.ct.ahsl.lightness == (32767 * 2 + 1)) && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
0
2430 || color.ct.ahsl.lightness == USHRT_MAX)
never executed: return (ct.argb.alpha == color.ct.argb.alpha && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50 || ct.ahsl.lightness == 0 || color.ct.ahsl.lightness == 0 || ct.ahsl.lightness == (32767 * 2 + 1) || color.ct.ahsl.lightness == (32767 * 2 + 1)) && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
0
2431 && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
never executed: return (ct.argb.alpha == color.ct.argb.alpha && ct.ahsl.hue % 36000 == color.ct.ahsl.hue % 36000 && (qAbs(ct.ahsl.saturation - color.ct.ahsl.saturation) < 50 || ct.ahsl.lightness == 0 || color.ct.ahsl.lightness == 0 || ct.ahsl.lightness == (32767 * 2 + 1) || color.ct.ahsl.lightness == (32767 * 2 + 1)) && (qAbs(ct.ahsl.lightness - color.ct.ahsl.lightness)) < 50);
0
2432 } else {-
2433 return (cspec == color.cspec
never executed: return (cspec == color.cspec && ct.argb.alpha == color.ct.argb.alpha && (((cspec == QColor::Hsv) && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000))) || (ct.ahsv.hue == color.ct.ahsv.hue)) && ct.argb.green == color.ct.argb.green && ct.argb.blue == color.ct.argb.blue && ct.argb.pad == color.ct.argb.pad);
0
2434 && ct.argb.alpha == color.ct.argb.alpha
never executed: return (cspec == color.cspec && ct.argb.alpha == color.ct.argb.alpha && (((cspec == QColor::Hsv) && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000))) || (ct.ahsv.hue == color.ct.ahsv.hue)) && ct.argb.green == color.ct.argb.green && ct.argb.blue == color.ct.argb.blue && ct.argb.pad == color.ct.argb.pad);
0
2435 && (((cspec == QColor::Hsv)
never executed: return (cspec == color.cspec && ct.argb.alpha == color.ct.argb.alpha && (((cspec == QColor::Hsv) && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000))) || (ct.ahsv.hue == color.ct.ahsv.hue)) && ct.argb.green == color.ct.argb.green && ct.argb.blue == color.ct.argb.blue && ct.argb.pad == color.ct.argb.pad);
0
2436 && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000)))
never executed: return (cspec == color.cspec && ct.argb.alpha == color.ct.argb.alpha && (((cspec == QColor::Hsv) && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000))) || (ct.ahsv.hue == color.ct.ahsv.hue)) && ct.argb.green == color.ct.argb.green && ct.argb.blue == color.ct.argb.blue && ct.argb.pad == color.ct.argb.pad);
0
2437 || (ct.ahsv.hue == color.ct.ahsv.hue))
never executed: return (cspec == color.cspec && ct.argb.alpha == color.ct.argb.alpha && (((cspec == QColor::Hsv) && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000))) || (ct.ahsv.hue == color.ct.ahsv.hue)) && ct.argb.green == color.ct.argb.green && ct.argb.blue == color.ct.argb.blue && ct.argb.pad == color.ct.argb.pad);
0
2438 && ct.argb.green == color.ct.argb.green
never executed: return (cspec == color.cspec && ct.argb.alpha == color.ct.argb.alpha && (((cspec == QColor::Hsv) && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000))) || (ct.ahsv.hue == color.ct.ahsv.hue)) && ct.argb.green == color.ct.argb.green && ct.argb.blue == color.ct.argb.blue && ct.argb.pad == color.ct.argb.pad);
0
2439 && ct.argb.blue == color.ct.argb.blue
never executed: return (cspec == color.cspec && ct.argb.alpha == color.ct.argb.alpha && (((cspec == QColor::Hsv) && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000))) || (ct.ahsv.hue == color.ct.ahsv.hue)) && ct.argb.green == color.ct.argb.green && ct.argb.blue == color.ct.argb.blue && ct.argb.pad == color.ct.argb.pad);
0
2440 && ct.argb.pad == color.ct.argb.pad);
never executed: return (cspec == color.cspec && ct.argb.alpha == color.ct.argb.alpha && (((cspec == QColor::Hsv) && ((ct.ahsv.hue % 36000) == (color.ct.ahsv.hue % 36000))) || (ct.ahsv.hue == color.ct.ahsv.hue)) && ct.argb.green == color.ct.argb.green && ct.argb.blue == color.ct.argb.blue && ct.argb.pad == color.ct.argb.pad);
0
2441 }-
2442}-
2443-
2444/*!-
2445 Returns \c true if this color has a different RGB and alpha values from-
2446 \a color; otherwise returns \c false.-
2447*/-
2448bool QColor::operator!=(const QColor &color) const Q_DECL_NOTHROW-
2449{
never executed: return !operator==(color);
return !operator==(color); }
never executed: return !operator==(color);
0
2450-
2451-
2452/*!-
2453 Returns the color as a QVariant-
2454*/-
2455QColor::operator QVariant() const-
2456{-
2457 return QVariant(QVariant::Color, this);
never executed: return QVariant(QVariant::Color, this);
0
2458}-
2459-
2460/*! \internal-
2461-
2462 Marks the color as invalid and sets all components to zero (alpha is set-
2463 to fully opaque for compatibility with Qt 3).-
2464*/-
2465void QColor::invalidate() Q_DECL_NOTHROW-
2466{-
2467 cspec = Invalid;-
2468 ct.argb.alpha = USHRT_MAX;-
2469 ct.argb.red = 0;-
2470 ct.argb.green = 0;-
2471 ct.argb.blue = 0;-
2472 ct.argb.pad = 0;-
2473}
never executed: end of block
0
2474-
2475/*****************************************************************************-
2476 QColor stream functions-
2477 *****************************************************************************/-
2478-
2479#ifndef QT_NO_DEBUG_STREAM-
2480QDebug operator<<(QDebug dbg, const QColor &c)-
2481{-
2482 QDebugStateSaver saver(dbg);-
2483 if (!c.isValid())
!c.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
0
2484 dbg.nospace() << "QColor(Invalid)";
never executed: dbg.nospace() << "QColor(Invalid)";
0
2485 else if (c.spec() == QColor::Rgb)
c.spec() == QColor::RgbDescription
TRUEnever evaluated
FALSEnever evaluated
0
2486 dbg.nospace() << "QColor(ARGB " << c.alphaF() << ", " << c.redF() << ", " << c.greenF() << ", " << c.blueF() << ')';
never executed: dbg.nospace() << "QColor(ARGB " << c.alphaF() << ", " << c.redF() << ", " << c.greenF() << ", " << c.blueF() << ')';
0
2487 else if (c.spec() == QColor::Hsv)
c.spec() == QColor::HsvDescription
TRUEnever evaluated
FALSEnever evaluated
0
2488 dbg.nospace() << "QColor(AHSV " << c.alphaF() << ", " << c.hueF() << ", " << c.saturationF() << ", " << c.valueF() << ')';
never executed: dbg.nospace() << "QColor(AHSV " << c.alphaF() << ", " << c.hueF() << ", " << c.saturationF() << ", " << c.valueF() << ')';
0
2489 else if (c.spec() == QColor::Cmyk)
c.spec() == QColor::CmykDescription
TRUEnever evaluated
FALSEnever evaluated
0
2490 dbg.nospace() << "QColor(ACMYK " << c.alphaF() << ", " << c.cyanF() << ", " << c.magentaF() << ", " << c.yellowF() << ", "
never executed: dbg.nospace() << "QColor(ACMYK " << c.alphaF() << ", " << c.cyanF() << ", " << c.magentaF() << ", " << c.yellowF() << ", " << c.blackF()<< ')';
0
2491 << c.blackF()<< ')';
never executed: dbg.nospace() << "QColor(ACMYK " << c.alphaF() << ", " << c.cyanF() << ", " << c.magentaF() << ", " << c.yellowF() << ", " << c.blackF()<< ')';
0
2492 else if (c.spec() == QColor::Hsl)
c.spec() == QColor::HslDescription
TRUEnever evaluated
FALSEnever evaluated
0
2493 dbg.nospace() << "QColor(AHSL " << c.alphaF() << ", " << c.hslHueF() << ", " << c.hslSaturationF() << ", " << c.lightnessF() << ')';
never executed: dbg.nospace() << "QColor(AHSL " << c.alphaF() << ", " << c.hslHueF() << ", " << c.hslSaturationF() << ", " << c.lightnessF() << ')';
0
2494-
2495 return dbg;
never executed: return dbg;
0
2496}-
2497#endif-
2498-
2499#ifndef QT_NO_DATASTREAM-
2500/*!-
2501 \fn QDataStream &operator<<(QDataStream &stream, const QColor &color)-
2502 \relates QColor-
2503-
2504 Writes the \a color to the \a stream.-
2505-
2506 \sa {Serializing Qt Data Types}-
2507*/-
2508QDataStream &operator<<(QDataStream &stream, const QColor &color)-
2509{-
2510 if (stream.version() < 7) {
stream.version() < 7Description
TRUEnever evaluated
FALSEnever evaluated
0
2511 if (!color.isValid())
!color.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
0
2512 return stream << quint32(0x49000000);
never executed: return stream << quint32(0x49000000);
0
2513 quint32 p = (quint32)color.rgb();-
2514 if (stream.version() == 1) // Swap red and blue
stream.version() == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
2515 p = ((p << 16) & 0xff0000) | ((p >> 16) & 0xff) | (p & 0xff00ff00);
never executed: p = ((p << 16) & 0xff0000) | ((p >> 16) & 0xff) | (p & 0xff00ff00);
0
2516 return stream << p;
never executed: return stream << p;
0
2517 }-
2518-
2519 qint8 s = color.cspec;-
2520 quint16 a = color.ct.argb.alpha;-
2521 quint16 r = color.ct.argb.red;-
2522 quint16 g = color.ct.argb.green;-
2523 quint16 b = color.ct.argb.blue;-
2524 quint16 p = color.ct.argb.pad;-
2525-
2526 stream << s;-
2527 stream << a;-
2528 stream << r;-
2529 stream << g;-
2530 stream << b;-
2531 stream << p;-
2532-
2533 return stream;
never executed: return stream;
0
2534}-
2535-
2536/*!-
2537 \fn QDataStream &operator>>(QDataStream &stream, QColor &color)-
2538 \relates QColor-
2539-
2540 Reads the \a color from the \a stream.-
2541-
2542 \sa {Serializing Qt Data Types}-
2543*/-
2544QDataStream &operator>>(QDataStream &stream, QColor &color)-
2545{-
2546 if (stream.version() < 7) {
stream.version() < 7Description
TRUEnever evaluated
FALSEnever evaluated
0
2547 quint32 p;-
2548 stream >> p;-
2549 if (p == 0x49000000) {
p == 0x49000000Description
TRUEnever evaluated
FALSEnever evaluated
0
2550 color.invalidate();-
2551 return stream;
never executed: return stream;
0
2552 }-
2553 if (stream.version() == 1) // Swap red and blue
stream.version() == 1Description
TRUEnever evaluated
FALSEnever evaluated
0
2554 p = ((p << 16) & 0xff0000) | ((p >> 16) & 0xff) | (p & 0xff00ff00);
never executed: p = ((p << 16) & 0xff0000) | ((p >> 16) & 0xff) | (p & 0xff00ff00);
0
2555 color.setRgb(p);-
2556 return stream;
never executed: return stream;
0
2557 }-
2558-
2559 qint8 s;-
2560 quint16 a, r, g, b, p;-
2561 stream >> s;-
2562 stream >> a;-
2563 stream >> r;-
2564 stream >> g;-
2565 stream >> b;-
2566 stream >> p;-
2567-
2568 color.cspec = QColor::Spec(s);-
2569 color.ct.argb.alpha = a;-
2570 color.ct.argb.red = r;-
2571 color.ct.argb.green = g;-
2572 color.ct.argb.blue = b;-
2573 color.ct.argb.pad = p;-
2574-
2575 return stream;
never executed: return stream;
0
2576}-
2577#endif // QT_NO_DATASTREAM-
2578-
2579// A table of precalculated results of 0x00ff00ff/alpha use by qUnpremultiply:-
2580const uint qt_inv_premul_factor[256] = {-
2581 0, 16711935, 8355967, 5570645, 4177983, 3342387, 2785322, 2387419,-
2582 2088991, 1856881, 1671193, 1519266, 1392661, 1285533, 1193709, 1114129,-
2583 1044495, 983055, 928440, 879575, 835596, 795806, 759633, 726605,-
2584 696330, 668477, 642766, 618960, 596854, 576273, 557064, 539094,-
2585 522247, 506422, 491527, 477483, 464220, 451673, 439787, 428511,-
2586 417798, 407608, 397903, 388649, 379816, 371376, 363302, 355573,-
2587 348165, 341059, 334238, 327685, 321383, 315319, 309480, 303853,-
2588 298427, 293191, 288136, 283253, 278532, 273966, 269547, 265268,-
2589 261123, 257106, 253211, 249431, 245763, 242201, 238741, 235379,-
2590 232110, 228930, 225836, 222825, 219893, 217038, 214255, 211543,-
2591 208899, 206320, 203804, 201348, 198951, 196611, 194324, 192091,-
2592 189908, 187774, 185688, 183647, 181651, 179698, 177786, 175915,-
2593 174082, 172287, 170529, 168807, 167119, 165464, 163842, 162251,-
2594 160691, 159161, 157659, 156186, 154740, 153320, 151926, 150557,-
2595 149213, 147893, 146595, 145321, 144068, 142837, 141626, 140436,-
2596 139266, 138115, 136983, 135869, 134773, 133695, 132634, 131590,-
2597 130561, 129549, 128553, 127572, 126605, 125653, 124715, 123792,-
2598 122881, 121984, 121100, 120229, 119370, 118524, 117689, 116866,-
2599 116055, 115254, 114465, 113686, 112918, 112160, 111412, 110675,-
2600 109946, 109228, 108519, 107818, 107127, 106445, 105771, 105106,-
2601 104449, 103800, 103160, 102527, 101902, 101284, 100674, 100071,-
2602 99475, 98887, 98305, 97730, 97162, 96600, 96045, 95496,-
2603 94954, 94417, 93887, 93362, 92844, 92331, 91823, 91322,-
2604 90825, 90334, 89849, 89368, 88893, 88422, 87957, 87497,-
2605 87041, 86590, 86143, 85702, 85264, 84832, 84403, 83979,-
2606 83559, 83143, 82732, 82324, 81921, 81521, 81125, 80733,-
2607 80345, 79961, 79580, 79203, 78829, 78459, 78093, 77729,-
2608 77370, 77013, 76660, 76310, 75963, 75619, 75278, 74941,-
2609 74606, 74275, 73946, 73620, 73297, 72977, 72660, 72346,-
2610 72034, 71725, 71418, 71114, 70813, 70514, 70218, 69924,-
2611 69633, 69344, 69057, 68773, 68491, 68211, 67934, 67659,-
2612 67386, 67116, 66847, 66581, 66317, 66055, 65795, 65537-
2613};-
2614-
2615/*****************************************************************************-
2616 QColor global functions (documentation only)-
2617 *****************************************************************************/-
2618-
2619/*!-
2620 \fn int qRed(QRgb rgb)-
2621 \relates QColor-
2622-
2623 Returns the red component of the ARGB quadruplet \a rgb.-
2624-
2625 \sa qRgb(), QColor::red()-
2626*/-
2627-
2628/*!-
2629 \fn int qGreen(QRgb rgb)-
2630 \relates QColor-
2631-
2632 Returns the green component of the ARGB quadruplet \a rgb.-
2633-
2634 \sa qRgb(), QColor::green()-
2635*/-
2636-
2637/*!-
2638 \fn int qBlue(QRgb rgb)-
2639 \relates QColor-
2640-
2641 Returns the blue component of the ARGB quadruplet \a rgb.-
2642-
2643 \sa qRgb(), QColor::blue()-
2644*/-
2645-
2646/*!-
2647 \fn int qAlpha(QRgb rgba)-
2648 \relates QColor-
2649-
2650 Returns the alpha component of the ARGB quadruplet \a rgba.-
2651-
2652 \sa qRgb(), QColor::alpha()-
2653*/-
2654-
2655/*!-
2656 \fn QRgb qRgb(int r, int g, int b)-
2657 \relates QColor-
2658-
2659 Returns the ARGB quadruplet (255, \a{r}, \a{g}, \a{b}).-
2660-
2661 \sa qRgba(), qRed(), qGreen(), qBlue()-
2662*/-
2663-
2664/*!-
2665 \fn QRgb qRgba(int r, int g, int b, int a)-
2666 \relates QColor-
2667-
2668 Returns the ARGB quadruplet (\a{a}, \a{r}, \a{g}, \a{b}).-
2669-
2670 \sa qRgb(), qRed(), qGreen(), qBlue()-
2671*/-
2672-
2673/*!-
2674 \fn int qGray(int r, int g, int b)-
2675 \relates QColor-
2676-
2677 Returns a gray value (0 to 255) from the (\a r, \a g, \a b)-
2678 triplet.-
2679-
2680 The gray value is calculated using the formula (\a r * 11 + \a g * 16 +-
2681 \a b * 5)/32.-
2682*/-
2683-
2684/*!-
2685 \fn int qGray(QRgb rgb)-
2686 \overload-
2687 \relates QColor-
2688-
2689 Returns a gray value (0 to 255) from the given ARGB quadruplet \a rgb.-
2690-
2691 The gray value is calculated using the formula (R * 11 + G * 16 + B * 5)/32;-
2692 the alpha-channel is ignored.-
2693*/-
2694-
2695/*!-
2696 \fn QRgb qPremultiply(QRgb rgb)-
2697 \since 5.3-
2698 \relates QColor-
2699-
2700 Converts an unpremultiplied ARGB quadruplet \a rgb into a premultiplied ARGB quadruplet.-
2701-
2702 \sa qUnpremultiply()-
2703*/-
2704-
2705/*!-
2706 \fn QRgb qUnpremultiply(QRgb rgb)-
2707 \since 5.3-
2708 \relates QColor-
2709-
2710 Converts a premultiplied ARGB quadruplet \a rgb into an unpremultiplied ARGB quadruplet.-
2711-
2712 \sa qPremultiply()-
2713*/-
2714-
2715/*!-
2716 \fn QColor QColor::convertTo(Spec colorSpec) const-
2717-
2718 Creates a copy of \e this color in the format specified by \a colorSpec.-
2719-
2720 \sa spec(), toCmyk(), toHsv(), toRgb(), isValid()-
2721*/-
2722-
2723/*!-
2724 \typedef QRgb-
2725 \relates QColor-
2726-
2727 An ARGB quadruplet on the format #AARRGGBB, equivalent to an unsigned int.-
2728-
2729 The type also holds a value for the alpha-channel. The default alpha-
2730 channel is \c ff, i.e opaque. For more information, see the-
2731 \l{QColor#Alpha-Blended Drawing}{Alpha-Blended Drawing} section.-
2732-
2733 \sa QColor::rgb(), QColor::rgba()-
2734*/-
2735-
2736QT_END_NAMESPACE-
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9