X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolCreatorBase.cxx;h=075e3352913d6ed59123d7aa866e21cd35b0e5a1;hb=HEAD;hp=b2b834c4290416c96ddaf7fa273d79d39df4f05b;hpb=e9d128ac8da88b43fb86f8cfff490b46800ca2f6;p=clitk.git diff --git a/vv/vvToolCreatorBase.cxx b/vv/vvToolCreatorBase.cxx index b2b834c..075e335 100644 --- a/vv/vvToolCreatorBase.cxx +++ b/vv/vvToolCreatorBase.cxx @@ -1,29 +1,20 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Module: $RCSfile: vvToolCreatorBase.cxx,v $ - Language: C++ - Date: $Date: 2010/03/24 13:37:34 $ - Version: $Revision: 1.3 $ - 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 "vvToolManager.h" @@ -31,29 +22,73 @@ #include //------------------------------------------------------------------------------ -vvToolCreatorBase::vvToolCreatorBase(QString name): mExperimental(false) { +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::InsertToolInMenu(vvMainWindowBase * m) { - mMainWindow = m; +void vvToolCreatorBase::InsertToolInMenu(vvMainWindowBase * m) +{ + mMainWindow = m; + if (mUseContextMenu) { + InsertToolInContextMenu(); + return; + } // Create main action - if (mToolIconFilename == "noicon") + 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())); if (mExperimental) - mMainWindow->GetExperimentalToolMenu()->addAction(mAction); - else - mMainWindow->GetToolMenu()->addAction(mAction); -} + mMainWindow->GetExperimentalToolMenu()->addAction(mAction); + else { + mMainWindow->GetMenu(m_MenuName)->addAction(mAction); + } +} //------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +void vvToolCreatorBase::InsertToolInContextMenu() +{ + mMainWindow->GetContextMenu()->addMenu(mToolMenu); + for(unsigned int i=0; iactions().size(); i++) { + mListOfActions.push_back(m->actions()[i]); + } + mUseContextMenu = true; +} +//------------------------------------------------------------------------------