1 /*
2 * SPDX-FileCopyrightText: 2014 Andreas Cord-Landwehr <cordlandwehr@kde.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6
7 #include "nodetypestyle.h"
8 #include <QColor>
9 #include <QString>
10 #include <QDebug>
11
12 using namespace GraphTheory;
13
14 class GraphTheory::NodeTypeStylePrivate {
15 public:
NodeTypeStylePrivate()16 NodeTypeStylePrivate()
17 : m_color(77, 77, 77) // dark gray
18 , m_visible(true)
19 , m_propertyNamesVisible(false)
20 {
21 }
22
~NodeTypeStylePrivate()23 ~NodeTypeStylePrivate()
24 {
25 }
26
27 QColor m_color;
28 bool m_visible;
29 bool m_propertyNamesVisible;
30 };
31
NodeTypeStyle()32 NodeTypeStyle::NodeTypeStyle()
33 : QObject()
34 , d(new NodeTypeStylePrivate)
35 {
36 connect(this, &NodeTypeStyle::colorChanged,
37 this, &NodeTypeStyle::changed);
38 connect(this, &NodeTypeStyle::visibilityChanged,
39 this, &NodeTypeStyle::changed);
40 connect(this, &NodeTypeStyle::propertyNamesVisibilityChanged,
41 this, &NodeTypeStyle::changed);
42 }
43
~NodeTypeStyle()44 NodeTypeStyle::~NodeTypeStyle()
45 {
46
47 }
48
setColor(const QColor & color)49 void NodeTypeStyle::setColor(const QColor &color)
50 {
51 if (d->m_color == color) {
52 return;
53 }
54 d->m_color = color;
55 Q_EMIT colorChanged(color);
56 }
57
color() const58 QColor NodeTypeStyle::color() const
59 {
60 return d->m_color;
61 }
62
setVisible(bool visible)63 void NodeTypeStyle::setVisible(bool visible)
64 {
65 if (d->m_visible == visible) {
66 return;
67 }
68 d->m_visible = visible;
69 Q_EMIT visibilityChanged(visible);
70 }
71
isVisible() const72 bool NodeTypeStyle::isVisible() const
73 {
74 return d->m_visible;
75 }
76
setPropertyNamesVisible(bool visible)77 void NodeTypeStyle::setPropertyNamesVisible(bool visible)
78 {
79 if (d->m_propertyNamesVisible == visible) {
80 return;
81 }
82 d->m_propertyNamesVisible = visible;
83 Q_EMIT propertyNamesVisibilityChanged(visible);
84 }
85
isPropertyNamesVisible() const86 bool NodeTypeStyle::isPropertyNamesVisible() const
87 {
88 return d->m_propertyNamesVisible;
89 }
90