X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolWidgetBase.h;h=7a3a5dfdc6e6ac692b58641e628250c72f4cb535;hb=1c6241402b25efea0052f0464be9a494e761b19e;hp=6f8e23fa92324f1c9a7b20ffb6ebb9000b85fb41;hpb=1c8e61413a024c1f3a15f344dcceec45399911b5;p=clitk.git diff --git a/vv/vvToolWidgetBase.h b/vv/vvToolWidgetBase.h index 6f8e23f..7a3a5df 100644 --- a/vv/vvToolWidgetBase.h +++ b/vv/vvToolWidgetBase.h @@ -1,71 +1,88 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Module: $RCSfile: vvToolWidgetBase.h,v $ - Language: C++ - Date: $Date: 2010/03/17 11:22:18 $ - 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) 2010 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr - CREATIS 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 +===========================================================================**/ #ifndef VVTOOLWIDGETBASE_H #define VVTOOLWIDGETBASE_H +#include +#if QT_VERSION >= 0x050000 +#include +#else #include +#endif #include "ui_vvToolWidgetBase.h" #include "clitkImageToImageGenericFilter.h" + +// qt + #include + class vvMainWindowBase; //------------------------------------------------------------------------------ class vvToolWidgetBase: - public QDialog, + public QWidget, public Ui::vvToolWidgetBase { Q_OBJECT public: - vvToolWidgetBase(vvMainWindowBase * parent=0, Qt::WindowFlags f=0); - ~vvToolWidgetBase(); + vvToolWidgetBase(vvMainWindowBase * parent=0, Qt::WindowFlags f=Qt::Dialog, bool initialize=true); // default is a dialog + virtual ~vvToolWidgetBase(); virtual void InputIsSelected(vvSlicerManager *m); virtual void InputIsSelected(std::vector & l); - void AddInputSelector(clitk::ImageToImageGenericFilterBase * f); - void AddInputSelector(); + void AddInputSelector(QString s, clitk::ImageToImageGenericFilterBase * f, bool allowSkip=false); + void AddInputSelector(QString s, bool allowSkip=false); + void HideInputSelector(); + void accept(); + void reject(); public slots: virtual void apply() = 0; virtual bool close(); void InputIsSelected(); - void AnImageIsBeingClosed(vvSlicerManager * m); + virtual void AnImageIsBeingClosed(vvSlicerManager * m); + virtual void SelectedImageHasChanged(vvSlicerManager * m); void show(); + virtual void keyPressEvent(QKeyEvent *event); protected: + virtual void Initialization(); void InitializeInputs(); Ui::vvToolWidgetBase ui; - clitk::ImageToImageGenericFilterBase * mFilter; - vvMainWindowBase * mMainWindowBase; + clitk::ImageToImageGenericFilterBase::Pointer mFilter; + vvMainWindowBase * mMainWindow; std::vector mSlicerManagersCompatible; vvSlicerManager * mCurrentSlicerManager; int mCurrentCompatibleIndex; vvImage * mCurrentImage; bool mIsInitialized; + QWidget * mWidgetForTab; + + // The static members manage all tool instances + static QWidget * mStaticWidgetForTab; // <-- MUST BE CHANGED IN VECTOR + static int mTabNumber; + static QVBoxLayout * mStaticVerticalLayout; // <-- MUST BE CHANGED IN VECTOR + static bool mIsAnotherToolWaitInput; + virtual void CheckInputList(std::vector & l, int & index) { } + virtual void closeEvent(QCloseEvent *event); + void SwapCurrentWidget(); + bool mPreventToUseTwoToolsOnSameInput; }; // end class vvToolWidgetBase //------------------------------------------------------------------------------