diff --git a/toonz/sources/include/toonz/navigationtags.h b/toonz/sources/include/toonz/navigationtags.h index e5ee6270..06d9fd84 100644 --- a/toonz/sources/include/toonz/navigationtags.h +++ b/toonz/sources/include/toonz/navigationtags.h @@ -41,7 +41,9 @@ public: }; std::vector m_tags; - NavigationTags() {} + QColor m_lastTagColorUsed; + + NavigationTags(); ~NavigationTags() {} std::vector getTags() { return m_tags; } diff --git a/toonz/sources/toonzlib/navigationtags.cpp b/toonz/sources/toonzlib/navigationtags.cpp index 4ef73203..2fdf12a4 100644 --- a/toonz/sources/toonzlib/navigationtags.cpp +++ b/toonz/sources/toonzlib/navigationtags.cpp @@ -2,11 +2,21 @@ #include "tstream.h" #include "texception.h" +#include "tenv.h" #ifndef _WIN32 #include #endif +TEnv::IntVar NavigationTagLastColorR("NavigationTagLastColorR", 255); +TEnv::IntVar NavigationTagLastColorG("NavigationTagLastColorG", 0); +TEnv::IntVar NavigationTagLastColorB("NavigationTagLastColorB", 255); + +NavigationTags::NavigationTags() { + m_lastTagColorUsed = QColor(NavigationTagLastColorR, NavigationTagLastColorG, + NavigationTagLastColorB); +} + //----------------------------------------------------------------------------- int NavigationTags::getCount() const { @@ -28,7 +38,7 @@ NavigationTags::Tag NavigationTags::getTag(int frame) { void NavigationTags::addTag(int frame, QString label) { if (frame < 0 || isTagged(frame)) return; - m_tags.push_back(Tag(frame, label)); + m_tags.push_back(Tag(frame, label, m_lastTagColorUsed)); std::sort(m_tags.begin(), m_tags.end()); } @@ -146,7 +156,7 @@ void NavigationTags::setTagLabel(int frame, QString label) { QColor NavigationTags::getTagColor(int frame) { Tag tag = getTag(frame); - return tag.m_color; + return (tag.m_frame == -1) ? m_lastTagColorUsed : tag.m_color; } //----------------------------------------------------------------------------- @@ -159,6 +169,11 @@ void NavigationTags::setTagColor(int frame, QColor color) { m_tags[i].m_color = color; break; } + + m_lastTagColorUsed = color; + NavigationTagLastColorR = color.red(); + NavigationTagLastColorG = color.green(); + NavigationTagLastColorB = color.blue(); } //-----------------------------------------------------------------------------