X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolManager.cxx;h=4c640577f8c48fd7cca4eb2728355e41623eb988;hb=fc2b78aedceae6ebeb0dbe8aae649bc84fd8e235;hp=0a80a4783fae56c9262c43e3f2ec31d53dcf08df;hpb=f7dee5f397e4efa933ef32507698ff1c1e573c2e;p=clitk.git diff --git a/vv/vvToolManager.cxx b/vv/vvToolManager.cxx index 0a80a47..4c64057 100644 --- a/vv/vvToolManager.cxx +++ b/vv/vvToolManager.cxx @@ -1,35 +1,34 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Module: $RCSfile: vvToolManager.cxx,v $ - Language: C++ - Date: $Date: 2010/01/29 13:54:37 $ - Version: $Revision: 1.1 $ - Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr) + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://www.centreleonberard.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr - Copyright (C) 2008 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr - CREATIS-LRMN http://www.creatis.insa-lyon.fr + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, version 3 of the License. + It is distributed under dual licence - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - - =========================================================================*/ + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +===========================================================================**/ #include "vvToolManager.h" -#include "vvMainWindow.h" +#include "vvToolCreatorBase.h" +#include "vvMainWindowBase.h" +#include +//------------------------------------------------------------------------------ +/// Unique static instance +vvToolManager* vvToolManager::mSingleton=0; +//------------------------------------------------------------------------------ + //------------------------------------------------------------------------------ -vvToolManager * vvToolManager::GetInstance() { +vvToolManager * vvToolManager::GetInstance() +{ if (mSingleton == 0) { mSingleton = new vvToolManager; } @@ -39,26 +38,54 @@ vvToolManager * vvToolManager::GetInstance() { //------------------------------------------------------------------------------ -void vvToolManager::AddTool(vvToolCreatorBase * v) { - std::cout << "Adding the tool <" << v->mToolName.toStdString() << ">." << std::endl; - mListOfTools.push_back(v); -} +void vvToolManager::AddTool(vvToolCreatorBase * v) +{ + //std::cout << "Adding the tool <" << v->mToolName.toStdString() << ">." << std::endl; + GetInstance()->mListOfTools.push_back(v); +} //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvToolManager::Initialize(vvMainWindow * m) { - for(unsigned int i=0; iInitialize(m); +void vvToolManager::InsertToolsInMenu(vvMainWindowBase * m) +{ + for(unsigned int i=0; imListOfTools.size(); i++) { + GetInstance()->mListOfTools[i]->InsertToolInMenu(m); } } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvToolManager::UpdateEnabledTool() { - for(unsigned int i=0; iUpdateEnabledTool(); +void vvToolManager::EnableToolsInMenu(vvMainWindowBase * m, bool enable){ + std::vector::iterator it; + for(it=GetInstance()->mListOfTools.begin(); it!=GetInstance()->mListOfTools.end(); ++it){ + if((*it)->mAction){ + (*it)->mAction->setEnabled(enable); + } } } //------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +vvToolCreatorBase * vvToolManager::GetToolCreatorFromName(QString toolTypeName) +{ + std::vector & v = vvToolManager::GetInstance()->GetListOfTools(); + int index=-1; + for(uint i=0; imToolName.toStdString()); + if (v[i]->mToolName == toolTypeName) { + index = i; + } + } + if (index == -1) { + std::cerr << "Error, ToolCreator named '" << toolTypeName.toStdString() + << "' does not exist. Abort." << std::endl; + return NULL; + } + return v[index]; +} +//------------------------------------------------------------------------------ + +