diff --git a/toonz/sources/tnztools/tool.cpp b/toonz/sources/tnztools/tool.cpp index eab99e2..38434c5 100644 --- a/toonz/sources/tnztools/tool.cpp +++ b/toonz/sources/tnztools/tool.cpp @@ -222,23 +222,24 @@ void TTool::bind(int targetType) { if (!toolNames) toolNames = new std::set(); + ToolTargetType targets[] = { + EmptyTarget, + ToonzImage, + VectorImage, + RasterImage, + MeshImage, + MetaImage }; + int targetsCount = sizeof(targets)/sizeof(*targets); + std::string name = getName(); if (toolNames->count(name) == 0) { toolNames->insert(name); // Initialize with the dummy tool - toolTable->insert( - std::make_pair(std::make_pair(name, EmptyTarget), &theDummyTool)); - toolTable->insert( - std::make_pair(std::make_pair(name, ToonzImage), &theDummyTool)); - toolTable->insert( - std::make_pair(std::make_pair(name, VectorImage), &theDummyTool)); - toolTable->insert( - std::make_pair(std::make_pair(name, RasterImage), &theDummyTool)); - toolTable->insert( - std::make_pair(std::make_pair(name, MeshImage), &theDummyTool)); - toolTable->insert( - std::make_pair(std::make_pair(name, MetaImage), &theDummyTool)); + for(int i = 0; i < targetsCount; ++i) + if (!toolTable->count(std::make_pair(name, targets[i]))) + toolTable->insert( + std::make_pair(std::make_pair(name, targets[i]), &theDummyTool)); ToolSelector *toolSelector = new ToolSelector(name); CommandManager::instance()->setHandler( @@ -246,24 +247,10 @@ void TTool::bind(int targetType) { toolSelector, &ToolSelector::selectTool)); } - if (targetType & EmptyTarget) - toolTable->insert( - std::make_pair(std::make_pair(name, EmptyTarget), this)); - if (targetType & ToonzImage) - toolTable->insert( - std::make_pair(std::make_pair(name, ToonzImage), this)); - if (targetType & VectorImage) - toolTable->insert( - std::make_pair(std::make_pair(name, VectorImage), this)); - if (targetType & RasterImage) - toolTable->insert( - std::make_pair(std::make_pair(name, RasterImage), this)); - if (targetType & MeshImage) - toolTable->insert( - std::make_pair(std::make_pair(name, MeshImage), this)); - if (targetType & MetaImage) - toolTable->insert( - std::make_pair(std::make_pair(name, MetaImage), this)); + for(int i = 0; i < targetsCount; ++i) + if (targetType & targets[i]) + toolTable->insert( + std::make_pair(std::make_pair(name, targets[i]), this)); } //-----------------------------------------------------------------------------