X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolCreatorBase.cxx;h=075e3352913d6ed59123d7aa866e21cd35b0e5a1;hb=d1dc57c5af88ff53c75904b1dd55722f9631a21e;hp=394602e37afca3f9ca0b6edc0a9dfcb8abaa7367;hpb=0b7c9b1e1215634b02cbd38d4e4ba101d6111ba8;p=clitk.git diff --git a/vv/vvToolCreatorBase.cxx b/vv/vvToolCreatorBase.cxx index 394602e..075e335 100644 --- a/vv/vvToolCreatorBase.cxx +++ b/vv/vvToolCreatorBase.cxx @@ -1,9 +1,9 @@ /*========================================================================= Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Authors belong to: + Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,36 +14,81 @@ - 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" #include #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; +} +//------------------------------------------------------------------------------