MCPcopy Create free account
hub / github.com/NatronGitHub/Natron / onSettingsPanelClosed

Method onSettingsPanelClosed

Gui/TrackerPanel.cpp:1747–1802  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1745}
1746
1747void
1748TrackerPanel::onSettingsPanelClosed(bool closed)
1749{
1750 TimeLinePtr timeline = getNode()->getNode()->getApp()->getTimeLine();
1751
1752 if (closed) {
1753 ///remove all keyframes from the structure kept
1754 std::list<int> toRemove, toRemoveUser;
1755
1756 for (TrackKeysMap::iterator it = _imp->keys.begin(); it != _imp->keys.end(); ++it) {
1757 if (it->second.visible) {
1758 it->second.visible = false;
1759 toRemoveUser.insert( toRemoveUser.end(), it->second.userKeys.begin(), it->second.userKeys.end() );
1760 toRemove.insert( toRemove.end(), it->second.centerKeys.begin(), it->second.centerKeys.end() );
1761 }
1762 }
1763
1764 _imp->setVisibleItemKeyframes(toRemove, false, true);
1765 _imp->setVisibleItemUserKeyframes(toRemoveUser, false, true);
1766 _imp->keys.clear();
1767 } else {
1768 ///rebuild all the keyframe structure
1769
1770 std::list<TrackMarkerPtr> selectedMarkers;
1771 getContext()->getSelectedMarkers(&selectedMarkers);
1772
1773 std::list<int> toAdd, toAddUser;
1774 for (TrackItems::iterator it = _imp->items.begin(); it != _imp->items.end(); ++it) {
1775 TrackMarkerPtr marker = it->marker.lock();
1776 if (!marker) {
1777 continue;
1778 }
1779 TrackKeys keys;
1780 marker->getUserKeyframes(&keys.userKeys);
1781 keys.visible = false;
1782 marker->getCenterKeyframes(&keys.centerKeys);
1783
1784
1785 std::pair<TrackKeysMap::iterator, bool> ret = _imp->keys.insert( std::make_pair(marker, keys) );
1786 assert(ret.second);
1787
1788 std::list<TrackMarkerPtr>::iterator foundSelected =
1789 std::find(selectedMarkers.begin(), selectedMarkers.end(), marker);
1790
1791 ///If the item is selected, make its keyframes visible
1792 if ( foundSelected != selectedMarkers.end() ) {
1793 toAddUser.insert( toAddUser.end(), keys.userKeys.begin(), keys.userKeys.end() );
1794 toAdd.insert( toAdd.end(), keys.centerKeys.begin(), keys.centerKeys.end() );
1795 ret.first->second.visible = true;
1796 break;
1797 }
1798 }
1799 _imp->setVisibleItemKeyframes(toAdd, true, true);
1800 _imp->setVisibleItemUserKeyframes(toAddUser, true, true);
1801 }
1802} // TrackerPanel::onSettingsPanelClosed
1803
1804void

Callers

nothing calls this directly

Calls 14

getSelectedMarkersMethod · 0.80
getCenterKeyframesMethod · 0.80
getNodeFunction · 0.70
getTimeLineMethod · 0.45
getAppMethod · 0.45
getNodeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
insertMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected