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