File indexing completed on 2024-05-26 04:32:28

0001 /*
0002  *  SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef __TIMELINE_FRAMES_INDEX_CONVERTER_H
0008 #define __TIMELINE_FRAMES_INDEX_CONVERTER_H
0009 
0010 #include "kritaanimationdocker_export.h"
0011 
0012 class KisNodeDummy;
0013 
0014 class KisDummiesFacadeBase;
0015 
0016 class KRITAANIMATIONDOCKER_EXPORT TimelineFramesIndexConverter
0017 {
0018 public:
0019     TimelineFramesIndexConverter(KisDummiesFacadeBase *dummiesFacade);
0020     ~TimelineFramesIndexConverter();
0021 
0022     KisNodeDummy* dummyFromRow(int row);
0023     int rowForDummy(KisNodeDummy *dummy);
0024     int rowCount();
0025 
0026     KisNodeDummy* activeDummy() const;
0027     void updateActiveDummy(KisNodeDummy *dummy, bool *oldRemoved, bool *newAdded);
0028     void notifyDummyRemoved(KisNodeDummy *dummy);
0029 
0030     void setShowGlobalSelectionMask(bool value);
0031 
0032     bool isDummyAvailableForTimeline(KisNodeDummy *dummy) const;
0033     bool isDummyVisible(KisNodeDummy *dummy) const;
0034 
0035 private:
0036     KisNodeDummy* findNodeFromRow(KisNodeDummy *root, int &startCount);
0037     bool calcNodesInPath(KisNodeDummy *root, int &startCount, KisNodeDummy *endDummy);
0038 
0039 private:
0040     KisDummiesFacadeBase *m_dummiesFacade;
0041     KisNodeDummy *m_activeDummy;
0042     bool m_showGlobalSelectionMask;
0043 };
0044 
0045 #endif /* __TIMELINE_FRAMES_INDEX_CONVERTER_H */