This commit is contained in:
Joey Yakimowich-Payne 2026-02-06 09:15:25 -07:00
commit 750868c63f
4 changed files with 119 additions and 16 deletions

View file

@ -8,8 +8,10 @@
#include <QHash>
#include <QPointF>
#include <QSize>
#include <QPointer>
#include <QString>
#include <optional>
#include <unordered_map>
#include <unordered_set>
@ -77,6 +79,9 @@ public:
const WarpNodeData *warpNodeData(QtNodes::NodeId nodeId) const;
QtNodes::NodeId qtNodeIdForPw(uint32_t pwNodeId) const;
bool isGhost(QtNodes::NodeId nodeId) const;
bool ghostConnectionExists(QtNodes::ConnectionId connectionId) const;
std::unordered_set<QtNodes::ConnectionId> allGhostConnectionIds(
QtNodes::NodeId nodeId) const;
void setPendingPosition(const std::string &nodeName, QPointF pos);
static WarpNodeType classifyNode(const warppipe::NodeInfo &info);
@ -91,6 +96,8 @@ public:
NodeVolumeState nodeVolumeState(QtNodes::NodeId nodeId) const;
Q_SIGNALS:
void beginBatchUpdate();
void endBatchUpdate();
void nodeVolumeChanged(QtNodes::NodeId nodeId, NodeVolumeState previous,
NodeVolumeState current);
@ -120,6 +127,8 @@ private:
static QVariant styleForNode(WarpNodeType type, bool ghost);
QPointF nextPosition(const WarpNodeData &data);
QPointF findNonOverlappingPosition(QPointF candidate, const WarpNodeData &data) const;
std::optional<QPointF> findAppGroupPosition(const WarpNodeData &data) const;
static std::string appGroupKey(const warppipe::NodeInfo &info);
static QSize estimateNodeSize(const WarpNodeData &data);
warppipe::Client *m_client = nullptr;
@ -158,6 +167,6 @@ private:
ViewState m_savedViewState{};
std::unordered_map<QtNodes::NodeId, NodeVolumeState> m_volumeStates;
std::unordered_map<QtNodes::NodeId, QWidget *> m_volumeWidgets;
std::unordered_map<QtNodes::NodeId, QPointer<QWidget>> m_volumeWidgets;
mutable std::unordered_map<QtNodes::NodeId, QVariant> m_styleCache;
};