X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolCreatorBase.cxx;h=075e3352913d6ed59123d7aa866e21cd35b0e5a1;hb=706d7e2dc69e12b3823cfae2f3be3f903e4d3c80;hp=e47fa142deb9c61e7d21c01194d89e581bf8e36a;hpb=f7dee5f397e4efa933ef32507698ff1c1e573c2e;p=clitk.git diff --git a/vv/vvToolCreatorBase.cxx b/vv/vvToolCreatorBase.cxx index e47fa14..075e335 100644 --- a/vv/vvToolCreatorBase.cxx +++ b/vv/vvToolCreatorBase.cxx @@ -1,68 +1,94 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Module: $RCSfile: vvToolCreatorBase.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 "vvToolCreatorBase.h" -#include "vvSlicerManager.h" #include "vvToolManager.h" #include +#include //------------------------------------------------------------------------------ -vvToolCreatorBase::vvToolCreatorBase(QString name) { +vvToolCreatorBase::vvToolCreatorBase(QString name): mAction(NULL), mExperimental(false) +{ + mUseContextMenu = false; mToolName = name; - vvToolManager::GetInstance()->AddTool(this); + m_MenuName = "Tools"; + mReadStateFlag = false; + mImageIndex = 0; + vvToolManager::GetInstance()->AddTool(this); +} +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +void vvToolCreatorBase::MenuToolSlot() +{ + mSender = QObject::sender(); + MenuSpecificToolSlot(); } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ -void vvToolCreatorBase::Initialize(vvMainWindow * m) { +void vvToolCreatorBase::InsertToolInMenu(vvMainWindowBase * m) +{ mMainWindow = m; - - // Create main Action - if (mToolIconFilename == "noicon") + if (mUseContextMenu) { + InsertToolInContextMenu(); + return; + } + // Create main action + if (mToolIconFilename == "noicon") mAction = new QAction(QString("&").append(mToolMenuName), this); - else - mAction = new QAction(QIcon(mToolIconFilename), + else { + mAction = new QAction(QIcon(mToolIconFilename), QString("&").append(mToolMenuName), this); + mAction->setIconVisibleInMenu(true); + } + mAction->setStatusTip(mToolTip); + // Connect the action connect(mAction, SIGNAL(triggered()), this, SLOT(MenuToolSlot())); - mMainWindow->GetInfoForTool()->mMenuTools->addAction(mAction); - //UpdateEnabledTool(); -} + if (mExperimental) + mMainWindow->GetExperimentalToolMenu()->addAction(mAction); + else { + mMainWindow->GetMenu(m_MenuName)->addAction(mAction); + } +} +//------------------------------------------------------------------------------ + + +//------------------------------------------------------------------------------ +void vvToolCreatorBase::InsertToolInContextMenu() +{ + mMainWindow->GetContextMenu()->addMenu(mToolMenu); + for(unsigned int i=0; iGetInfoForTool()->mSlicerManagers->size()); - if (mMainWindow->GetInfoForTool()->mSlicerManagers->size() < 1) - mAction->setEnabled(false); - else mAction->setEnabled(true); +void vvToolCreatorBase::addMenuToContextMenu(QMenu * m) +{ + mToolMenu = m; + for(int i=0; iactions().size(); i++) { + mListOfActions.push_back(m->actions()[i]); + } + mUseContextMenu = true; } //------------------------------------------------------------------------------