Krita Source Code Documentation
Loading...
Searching...
No Matches
TimelineNodeListKeeper::Private Struct Reference

Public Member Functions

void disconnectDummy (KisNodeDummy *dummy)
 
void findOtherLayers (KisNodeDummy *root, TimelineNodeListKeeper::OtherLayersList *list, const QString &prefix)
 
void populateDummiesList ()
 
 Private (TimelineNodeListKeeper *_q, ModelWithExternalNotifications *_model, KisDummiesFacadeBase *_dummiesFacade, KisNodeDisplayModeAdapter *_displayModeAdapter)
 
void tryConnectDummy (KisNodeDummy *dummy)
 

Public Attributes

KisSignalAutoConnectionsStore channelConnectionsStore
 
QSet< KisNodeDummy * > connectionsSet
 
TimelineFramesIndexConverter converter
 
KisNodeDisplayModeAdapterdisplayModeAdapter
 
KisDummiesFacadeBasedummiesFacade
 
QVector< KisNodeDummy * > dummiesList
 
ModelWithExternalNotificationsmodel
 
TimelineNodeListKeeperq
 
bool showGlobalSelectionMask
 

Detailed Description

Definition at line 19 of file timeline_node_list_keeper.cpp.

Constructor & Destructor Documentation

◆ Private()

TimelineNodeListKeeper::Private::Private ( TimelineNodeListKeeper * _q,
ModelWithExternalNotifications * _model,
KisDummiesFacadeBase * _dummiesFacade,
KisNodeDisplayModeAdapter * _displayModeAdapter )
inline

Member Function Documentation

◆ disconnectDummy()

void TimelineNodeListKeeper::Private::disconnectDummy ( KisNodeDummy * dummy)

Definition at line 171 of file timeline_node_list_keeper.cpp.

172{
173 if (!connectionsSet.contains(dummy)) return;
174
175 QMap<QString, KisKeyframeChannel*> channels = dummy->node()->keyframeChannels();
176
177 if (channels.isEmpty()) {
178 if (connectionsSet.contains(dummy)) {
179 connectionsSet.remove(dummy);
180 }
181 return;
182 }
183
184 Q_FOREACH(KisKeyframeChannel *channel, channels) {
186 }
187
188 connectionsSet.remove(dummy);
189}
KisKeyframeChannel stores and manages KisKeyframes. Maps units of time to virtual keyframe values....
KisNodeSP node() const
QMap< QString, KisKeyframeChannel * > keyframeChannels
KisSignalAutoConnectionsStore channelConnectionsStore

References KisBaseNode::keyframeChannels, and KisNodeDummy::node().

◆ findOtherLayers()

void TimelineNodeListKeeper::Private::findOtherLayers ( KisNodeDummy * root,
TimelineNodeListKeeper::OtherLayersList * list,
const QString & prefix )

Definition at line 253 of file timeline_node_list_keeper.cpp.

256{
257 KisNodeSP node = root->node();
258
260 !root->node()->isPinnedToTimeline()) {
261
262 *list <<
264 QString(prefix + node->name()),
265 root);
266 }
267
268 KisNodeDummy *dummy = root->lastChild();
269 while(dummy) {
270 findOtherLayers(dummy, list, prefix + " ");
271 dummy = dummy->prevSibling();
272 }
273}
KisNodeDummy * lastChild() const
KisNodeDummy * prevSibling() const
bool isDummyAvailableForTimeline(KisNodeDummy *dummy) const
bool isPinnedToTimeline() const
QString name() const
void findOtherLayers(KisNodeDummy *root, TimelineNodeListKeeper::OtherLayersList *list, const QString &prefix)

References KisBaseNode::isPinnedToTimeline(), KisNodeDummy::lastChild(), KisBaseNode::name(), KisNodeDummy::node(), and KisNodeDummy::prevSibling().

◆ populateDummiesList()

void TimelineNodeListKeeper::Private::populateDummiesList ( )
inline

◆ tryConnectDummy()

void TimelineNodeListKeeper::Private::tryConnectDummy ( KisNodeDummy * dummy)

Definition at line 142 of file timeline_node_list_keeper.cpp.

143{
144 QMap<QString, KisKeyframeChannel*> channels = dummy->node()->keyframeChannels();
145
146 if (channels.isEmpty()) {
147 if (connectionsSet.contains(dummy)) {
148 connectionsSet.remove(dummy);
149 }
150
151 return;
152 }
153
154 if (connectionsSet.contains(dummy)) return;
155
156 QPointer<KisNodeDummy> safeDummyPointer(dummy);
157
158 Q_FOREACH(KisKeyframeChannel *channel, channels) {
160 q,
161 [this, safeDummyPointer ] () {
162 // make sure that the pointer is invalidated when
163 // the dummy is destroyed, it might happen on
164 // reordering of the signals
165 q->slotUpdateDummyContent(safeDummyPointer);
166 });
167 }
168 connectionsSet.insert(dummy);
169}
void sigAnyKeyframeChange()
void addConnection(Sender sender, Signal signal, Receiver receiver, Method method, Qt::ConnectionType type=Qt::AutoConnection)
void slotUpdateDummyContent(QPointer< KisNodeDummy > dummy)

References KisSignalAutoConnectionsStore::addConnection(), channelConnectionsStore, connectionsSet, KisBaseNode::keyframeChannels, KisNodeDummy::node(), q, KisKeyframeChannel::sigAnyKeyframeChange(), and TimelineNodeListKeeper::slotUpdateDummyContent().

Member Data Documentation

◆ channelConnectionsStore

KisSignalAutoConnectionsStore TimelineNodeListKeeper::Private::channelConnectionsStore

Definition at line 45 of file timeline_node_list_keeper.cpp.

◆ connectionsSet

QSet<KisNodeDummy*> TimelineNodeListKeeper::Private::connectionsSet

Definition at line 44 of file timeline_node_list_keeper.cpp.

◆ converter

TimelineFramesIndexConverter TimelineNodeListKeeper::Private::converter

Definition at line 41 of file timeline_node_list_keeper.cpp.

◆ displayModeAdapter

KisNodeDisplayModeAdapter* TimelineNodeListKeeper::Private::displayModeAdapter

Definition at line 38 of file timeline_node_list_keeper.cpp.

◆ dummiesFacade

KisDummiesFacadeBase* TimelineNodeListKeeper::Private::dummiesFacade

Definition at line 37 of file timeline_node_list_keeper.cpp.

◆ dummiesList

QVector<KisNodeDummy*> TimelineNodeListKeeper::Private::dummiesList

Definition at line 43 of file timeline_node_list_keeper.cpp.

◆ model

ModelWithExternalNotifications* TimelineNodeListKeeper::Private::model

Definition at line 36 of file timeline_node_list_keeper.cpp.

◆ q

TimelineNodeListKeeper* TimelineNodeListKeeper::Private::q

Definition at line 35 of file timeline_node_list_keeper.cpp.

◆ showGlobalSelectionMask

bool TimelineNodeListKeeper::Private::showGlobalSelectionMask

Definition at line 39 of file timeline_node_list_keeper.cpp.


The documentation for this struct was generated from the following file: