File: ConnectionState.hpp

package info (click to toggle)
qnodeeditor 2.1.7-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 2,144 kB
  • sloc: cpp: 8,823; makefile: 3
file content (52 lines) | stat: -rw-r--r-- 1,251 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once
#include "PortType.hpp"

#include <QtCore/QUuid>
class QPointF;
namespace QtNodes
{
    class Node;
    /// Stores currently draggind end.
    /// Remembers last hovered Node.
    class ConnectionState
    {
      public:
        ConnectionState(PortType port = PortType::None) : _requiredPort(port)
        {
        }
        ConnectionState(const ConnectionState &) = delete;
        ConnectionState operator=(const ConnectionState &) = delete;
        ~ConnectionState();

      public:
        void setRequiredPort(PortType end)
        {
            _requiredPort = end;
        }
        PortType requiredPort() const
        {
            return _requiredPort;
        }
        bool requiresPort() const
        {
            return _requiredPort != PortType::None;
        }
        void setNoRequiredPort()
        {
            _requiredPort = PortType::None;
        }

      public:
        void interactWithNode(Node *node);
        void setLastHoveredNode(Node *node);
        Node *lastHoveredNode() const
        {
            return _lastHoveredNode;
        }
        void resetLastHoveredNode();

      private:
        PortType _requiredPort;
        Node *_lastHoveredNode{ nullptr };
    };
} // namespace QtNodes