1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 Jochen Becher
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of Qt Creator.
7 **
8 ** Commercial License Usage
9 ** Licensees holding valid commercial Qt licenses may use this file in
10 ** accordance with the commercial license agreement provided with the
11 ** Software or, alternatively, in accordance with the terms contained in
12 ** a written agreement between you and The Qt Company. For licensing terms
13 ** and conditions see https://www.qt.io/terms-conditions. For further
14 ** information use the contact form at https://www.qt.io/contact-us.
15 **
16 ** GNU General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU
18 ** General Public License version 3 as published by the Free Software
19 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
20 ** included in the packaging of this file. Please review the following
21 ** information to ensure the GNU General Public License requirements will
22 ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
23 **
24 ****************************************************************************/
25 
26 #include "objectvisuals.h"
27 
28 #include <qhash.h>
29 
30 namespace qmt {
31 
ObjectVisuals()32 ObjectVisuals::ObjectVisuals()
33 {
34 }
35 
ObjectVisuals(DObject::VisualPrimaryRole visualPrimaryRole,DObject::VisualSecondaryRole visualSecondaryRole,bool emphasized,const QColor & baseColor,int depth)36 ObjectVisuals::ObjectVisuals(DObject::VisualPrimaryRole visualPrimaryRole,
37                              DObject::VisualSecondaryRole visualSecondaryRole,
38                              bool emphasized, const QColor &baseColor, int depth)
39     : m_visualPrimaryRole(visualPrimaryRole),
40       m_visualSecondaryRole(visualSecondaryRole),
41       m_isEmphasized(emphasized),
42       m_baseColor(baseColor),
43       m_depth(depth)
44 {
45 }
46 
~ObjectVisuals()47 ObjectVisuals::~ObjectVisuals()
48 {
49 }
50 
setVisualPrimaryRole(DObject::VisualPrimaryRole visualPrimaryRole)51 void ObjectVisuals::setVisualPrimaryRole(DObject::VisualPrimaryRole visualPrimaryRole)
52 {
53     m_visualPrimaryRole = visualPrimaryRole;
54 }
55 
setVisualSecondaryRole(DObject::VisualSecondaryRole visualSecondaryRole)56 void ObjectVisuals::setVisualSecondaryRole(DObject::VisualSecondaryRole visualSecondaryRole)
57 {
58     m_visualSecondaryRole = visualSecondaryRole;
59 }
60 
setEmphasized(bool emphasized)61 void ObjectVisuals::setEmphasized(bool emphasized)
62 {
63     m_isEmphasized = emphasized;
64 }
65 
setBaseColor(const QColor & baseColor)66 void ObjectVisuals::setBaseColor(const QColor &baseColor)
67 {
68     m_baseColor = baseColor;
69 }
70 
setDepth(int depth)71 void ObjectVisuals::setDepth(int depth)
72 {
73     m_depth = depth;
74 }
75 
operator ==(const ObjectVisuals & lhs,const ObjectVisuals & rhs)76 bool operator==(const ObjectVisuals &lhs, const ObjectVisuals &rhs)
77 {
78     return lhs.visualPrimaryRole() == rhs.visualPrimaryRole()
79             && lhs.visualSecondaryRole() == rhs.visualSecondaryRole()
80             && lhs.isEmphasized() == rhs.isEmphasized()
81             && lhs.baseColor() == rhs.baseColor()
82             && lhs.depth() == rhs.depth();
83 }
84 
qHash(const ObjectVisuals & objectVisuals)85 uint qHash(const ObjectVisuals &objectVisuals)
86 {
87     return ::qHash(static_cast<int>(objectVisuals.visualPrimaryRole()))
88             ^ ::qHash(static_cast<int>(objectVisuals.visualSecondaryRole()))
89             ^ ::qHash(objectVisuals.isEmphasized())
90             ^ ::qHash(objectVisuals.baseColor().rgb())
91             ^ ::qHash(objectVisuals.depth());
92 }
93 
94 } // namespace qmt
95