Commit bc9d2d1c authored by fw4splbot's avatar fw4splbot
Browse files

merge(dev): release 14.0.0

parents e2a9386b ab00907b
......@@ -15,3 +15,6 @@ syntax: glob
# reject and backup file
*.rej
*.orig
# macos
.DS_Store
\ No newline at end of file
......@@ -15,7 +15,6 @@ set( REQUIREMENTS
memory
fwlauncher
io
ioAtoms
ioITK
ioVTK
......
set( NAME ctrlMemory )
set( VERSION 0.1 )
set( TYPE BUNDLE )
set( DEPENDENCIES fwCom fwCore fwTools fwData fwRuntime fwServices ctrlSelection )
set( REQUIREMENTS )
/* ***** BEGIN LICENSE BLOCK *****
* FW4SPL - Copyright (C) IRCAD, 2009-2017.
* Distributed under the terms of the GNU Lesser General Public License (LGPL) as
* published by the Free Software Foundation.
* ****** END LICENSE BLOCK ****** */
#ifndef __CTRLMEMORY_MANAGER_LOCKDUMPMANAGERSRV_HPP__
#define __CTRLMEMORY_MANAGER_LOCKDUMPMANAGERSRV_HPP__
#include "ctrlMemory/config.hpp"
#include <fwData/Composite.hpp>
#include <ctrlSelection/IManagerSrv.hpp>
#include <map>
#include <string>
#include <vector>
namespace fwData
{
class ObjectLock;
}
namespace ctrlMemory
{
namespace manager
{
/**
* @brief This service allows to lock an object for dump when it is contained in the composite.
*/
class CTRLMEMORY_CLASS_API LockDumpManagerSrv : public ::ctrlSelection::IManagerSrv
{
public:
fwCoreServiceClassDefinitionsMacro( (LockDumpManagerSrv)(::ctrlSelection::IManagerSrv) );
/// Constructor. Does nothing.
CTRLMEMORY_API LockDumpManagerSrv() noexcept;
/// Destructor. Does nothing.
CTRLMEMORY_API virtual ~LockDumpManagerSrv() noexcept;
/**
* @brief Returns proposals to connect service slots to associated object signals,
* this method is used for obj/srv auto connection
*
* Connect Composite::s_ADDED_OBJECTS_SIG to this::s_ADD_OBJECTS_SLOT
* Connect Composite::s_CHANGED_OBJECTS_SIG to this::s_CHANGE_OBJECTS_SLOT
* Connect Composite::s_REMOVED_OBJECTS_SIG to this::s_REMOVE_OBJECTS_SLOT
*/
CTRLMEMORY_API virtual KeyConnectionsType getObjSrvConnections() const override;
protected:
/// Dump lock composite objects
CTRLMEMORY_API virtual void starting() override;
/// Dump unlock composite objects
CTRLMEMORY_API virtual void stopping() override;
/// Does nothing
CTRLMEMORY_API virtual void reconfiguring() override;
/// Does nothing
CTRLMEMORY_API virtual void updating() override;
/// Does nothing
CTRLMEMORY_API virtual void info( std::ostream& _sstream ) override;
/**
* @brief Implements configuring method.
* configuration \<manageLockOn key="CompositeObjectKey" /\>
* if configuration is empty, service locks all composite objects
*/
CTRLMEMORY_API virtual void configuring() override;
private:
/// Slot: add objects
void addObjects(::fwData::Composite::ContainerType objects);
/// Slot: change objects
void changeObjects(::fwData::Composite::ContainerType newObjects, ::fwData::Composite::ContainerType oldObjects);
/// Slot: remove objects
void removeObjects(::fwData::Composite::ContainerType objects);
typedef std::string CompositeKeyType;
typedef std::map< CompositeKeyType, ::fwData::ObjectLock > LockMapType;
/// Add or remove lock ( _isLocked parameter ) on composite objects
void setDumpLockOnImages(LockMapType& lockMap, ::fwData::Composite::ContainerType objects, bool _isLocked );
/// Composite keys managed by this service
std::vector< std::string > m_managedKeys;
/// Container to manages dump lock on composite sub object
LockMapType m_lockedObjects;
};
} // manager
} // ctrlMemory
#endif // __CTRLMEMORY_MANAGER_LOCKDUMPMANAGERSRV_HPP__
<plugin id="ctrlMemory" class="::ctrlMemory::Plugin" version="@PROJECT_VERSION@" >
<library name="ctrlMemory" />
<requirement id="dataReg" />
<requirement id="servicesReg" />
<requirement id="ctrlSelection" />
<extension implements="::fwServices::registry::ServiceFactory">
<type>::ctrlSelection::IManagerSrv</type>
<service>::ctrlMemory::manager::LockDumpManagerSrv</service>
<object>::fwData::Composite</object>
</extension>
<extension implements="::fwServices::registry::ServiceFactory">
<type>::fwServices::IController</type>
<service>::ctrlMemory::LockDumpSrv</service>
<object>::fwData::Object</object>
</extension>
</plugin>
/* ***** BEGIN LICENSE BLOCK *****
* FW4SPL - Copyright (C) IRCAD, 2009-2016.
* Distributed under the terms of the GNU Lesser General Public License (LGPL) as
* published by the Free Software Foundation.
* ****** END LICENSE BLOCK ****** */
#include "ctrlMemory/manager/LockDumpManagerSrv.hpp"
#include <fwCom/Slot.hpp>
#include <fwCom/Slot.hxx>
#include <fwCom/Slots.hpp>
#include <fwCom/Slots.hxx>
#include <fwData/Composite.hpp>
#include <fwData/ObjectLock.hpp>
#include <fwServices/macros.hpp>
namespace ctrlMemory
{
namespace manager
{
static const ::fwCom::Slots::SlotKeyType s_ADD_OBJECTS_SLOT = "addObject";
static const ::fwCom::Slots::SlotKeyType s_CHANGE_OBJECTS_SLOT = "changeObject";
static const ::fwCom::Slots::SlotKeyType s_REMOVE_OBJECTS_SLOT = "removeObjects";
//-----------------------------------------------------------------------------
fwServicesRegisterMacro( ::ctrlSelection::IManagerSrv, ::ctrlMemory::manager::LockDumpManagerSrv, ::fwData::Composite );
//-----------------------------------------------------------------------------
LockDumpManagerSrv::LockDumpManagerSrv() noexcept
{
newSlot(s_ADD_OBJECTS_SLOT, &LockDumpManagerSrv::addObjects, this);
newSlot(s_CHANGE_OBJECTS_SLOT, &LockDumpManagerSrv::changeObjects, this);
newSlot(s_REMOVE_OBJECTS_SLOT, &LockDumpManagerSrv::removeObjects, this);
}
//-----------------------------------------------------------------------------
LockDumpManagerSrv::~LockDumpManagerSrv() noexcept
{
}
//-----------------------------------------------------------------------------
void LockDumpManagerSrv::setDumpLockOnImages( LockMapType &lockMap, ::fwData::Composite::ContainerType objects,
bool _isLocked )
{
for( ::fwData::Composite::value_type objectId : objects )
{
if ( m_managedKeys.empty()
|| std::find(m_managedKeys.begin(), m_managedKeys.end(), objectId.first) != m_managedKeys.end() )
{
if (_isLocked)
{
lockMap.insert( LockMapType::value_type( objectId.first, ::fwData::ObjectLock( objectId.second ) ) );
OSLM_TRACE("Locking Key : " << objectId.first);
}
else
{
SLM_ASSERT( "ERROR image not locked !!!", lockMap.find(objectId.first) != lockMap.end() );
lockMap.erase( objectId.first );
}
}
}
}
//-----------------------------------------------------------------------------
void LockDumpManagerSrv::starting()
{
::fwData::Composite::sptr composite = this->getObject< ::fwData::Composite >();
this->setDumpLockOnImages(m_lockedObjects, composite->getContainer(), true);
}
//-----------------------------------------------------------------------------
void LockDumpManagerSrv::stopping()
{
m_lockedObjects.clear();
}
//-----------------------------------------------------------------------------
void LockDumpManagerSrv::configuring()
{
::fwRuntime::ConfigurationElementContainer updaters = m_configuration->findAllConfigurationElement("manageLockOn");
m_managedKeys.clear();
for( ::fwRuntime::ConfigurationElementContainer::Iterator item = updaters.begin();
item != updaters.end();
++item )
{
SLM_FATAL_IF( "The attribute \"key\" is missing", !(*item)->hasAttribute("key") );
std::string key = (*item)->getExistingAttributeValue("key");
m_managedKeys.push_back(key);
}
}
//-----------------------------------------------------------------------------
void LockDumpManagerSrv::reconfiguring()
{
}
//-----------------------------------------------------------------------------
void LockDumpManagerSrv::updating()
{
}
//-----------------------------------------------------------------------------
void LockDumpManagerSrv::info( std::ostream &_sstream )
{
}
//------------------------------------------------------------------------------
void LockDumpManagerSrv::addObjects(::fwData::Composite::ContainerType objects)
{
this->setDumpLockOnImages(m_lockedObjects, objects, true);
}
//------------------------------------------------------------------------------
void LockDumpManagerSrv::changeObjects(::fwData::Composite::ContainerType newObjects,
::fwData::Composite::ContainerType oldObjects)
{
LockMapType newLocks = m_lockedObjects;
this->setDumpLockOnImages(newLocks, oldObjects, false);
this->setDumpLockOnImages(newLocks, newObjects, true);
m_lockedObjects = newLocks;
}
//------------------------------------------------------------------------------
void LockDumpManagerSrv::removeObjects(::fwData::Composite::ContainerType objects)
{
this->setDumpLockOnImages(m_lockedObjects, objects, false);
}
//------------------------------------------------------------------------------
::fwServices::IService::KeyConnectionsType LockDumpManagerSrv::getObjSrvConnections() const
{
KeyConnectionsType connections;
connections.push_back( std::make_pair( ::fwData::Composite::s_ADDED_OBJECTS_SIG, s_ADD_OBJECTS_SLOT ) );
connections.push_back( std::make_pair( ::fwData::Composite::s_CHANGED_OBJECTS_SIG, s_CHANGE_OBJECTS_SLOT ) );
connections.push_back( std::make_pair( ::fwData::Composite::s_REMOVED_OBJECTS_SIG, s_REMOVE_OBJECTS_SLOT ) );
return connections;
}
//-----------------------------------------------------------------------------
} // manager
} // ctrlMemory
<plugin id="monitor" class="::monitor::Plugin" version="@PROJECT_VERSION@" >
<library name="monitor" />
<requirement id="gui" />
<extension implements="::fwServices::registry::ServiceFactory">
<type>::fwGui::IActionSrv</type>
<service>::monitor::action::MemoryInfo</service>
<object>::fwData::Object</object>
</extension>
<extension implements="::fwServices::registry::ServiceFactory">
<type>::fwGui::IActionSrv</type>
<service>::monitor::action::fwMetrics</service>
<object>::fwData::Object</object>
</extension>
<extension implements="::fwServices::registry::ServiceFactory">
<type>::fwGui::IActionSrv</type>
<service>::monitor::action::MemoryConsumption</service>
<object>::fwData::Object</object>
</extension>
<extension implements="::fwServices::registry::ServiceFactory">
<type>::fwGui::IActionSrv</type>
<service>::monitor::action::SDumpAll</service>
<object>::fwData::Object</object>
</extension>
</plugin>
<plugin id="opImageFilter" class="::opImageFilter::Plugin" version="@PROJECT_VERSION@" >
<library name="opImageFilter" />
<requirement id="dataReg" />
<requirement id="gui" />
<extension implements="::fwServices::registry::ServiceFactory">
<type>::fwGui::IActionSrv</type>
<service>::opImageFilter::action::SThreshold</service>
<object>::fwData::Object</object>
</extension>
</plugin>
<plugin id="opVTKMesh" class="::opVTKMesh::Plugin" version="@PROJECT_VERSION@" >
<library name="opVTKMesh" />
<requirement id="dataReg" />
<requirement id="gui" />
<extension implements="::fwServices::registry::ServiceFactory">
<type>::fwGui::IActionSrv</type>
<service>::opVTKMesh::action::SMeshCreation</service>
<object>::fwData::Object</object>
</extension>
<extension implements="::fwServices::registry::ServiceFactory">
<type>::opVTKMesh::IMesher</type>
<service>::opVTKMesh::SVTKMesher</service>
<object>::fwData::Composite</object>
</extension>
</plugin>
<plugin id="basicRegistration" class="::basicRegistration::Plugin" version="@PROJECT_VERSION@" >
<library name="basicRegistration" />
<extension implements="::fwServices::registry::ServiceFactory">
<type>::fwServices::IController</type>
<service>::basicRegistration::SPointListRegistration</service>
<object>::fwData::Composite</object>
</extension>
<extension implements="::fwServices::registry::ServiceFactory">
<type>::gui::editor::IEditor</type>
<service>::basicRegistration::SImagesSubstract</service>
<object>::fwData::Composite</object>
</extension>
</plugin>
set( NAME uiTF )
set( VERSION 0.1 )
set( TYPE BUNDLE )
set( DEPENDENCIES fwTools fwCore fwData fwGui fwGuiQt fwRuntime fwServices gui io)
set( REQUIREMENTS )
<plugin id="uiTF" class="::uiTF::Plugin" version="@PROJECT_VERSION@" >
<library name="uiTF" />
<requirement id="dataReg" />
<requirement id="servicesReg" />
<requirement id="gui" />
<requirement id="io" />
<requirement id="ioAtoms" />
<extension implements="::fwServices::registry::ServiceFactory">
<type>::gui::editor::IEditor</type>
<service>::uiTF::TransferFunctionEditor</service>
<object>::fwData::Composite</object>
</extension>
</plugin>
/* ***** BEGIN LICENSE BLOCK *****
* FW4SPL - Copyright (C) IRCAD, 2009-2017.
* Distributed under the terms of the GNU Lesser General Public License (LGPL) as
* published by the Free Software Foundation.
* ****** END LICENSE BLOCK ****** */
#ifndef __UIVISUQT_BASICFLOATEDITOR_HPP__
#define __UIVISUQT_BASICFLOATEDITOR_HPP__
#include "uiVisuQt/config.hpp"
#include <fwTools/Failed.hpp>
#include <gui/editor/IEditor.hpp>
#include <QLineEdit>
#include <QObject>
#include <QPointer>
namespace uiVisuQt
{
/**
* @brief BasicFloatEditor service permits to edit a float value.
* * @section XML XML Configuration
*
* @code{.xml}
<service type="::uiVisuQt::BasicFloatEditor">
<inout key="float" uid="..." />
</service>
@endcode
* @subsection InOut InOut
* - \b float [::fwData::Float]: float.
*/
class UIVISUQT_CLASS_API BasicFloatEditor : public QObject,
public ::gui::editor::IEditor
{
Q_OBJECT
public:
fwCoreServiceClassDefinitionsMacro( (BasicFloatEditor)(::gui::editor::IEditor) );
/// Constructor. Do nothing.
UIVISUQT_API BasicFloatEditor() noexcept;
/// Destructor. Do nothing.
UIVISUQT_API virtual ~BasicFloatEditor() noexcept;
protected:
typedef ::fwRuntime::ConfigurationElement::sptr Configuration;
/// Install the layout.
virtual void starting() override;
/// Destroy the layout.
virtual void stopping() override;
/// Do nothing
virtual void updating() override;
/// Do nothing
virtual void swapping() override;
/// Configure the editor. Do nothing.
virtual void configuring() override;
/// Overrides
virtual void info( std::ostream& _sstream ) override;
protected Q_SLOTS:
/**
* @brief This method is called when the value change.
*
* Check if the value is a valid float, update the Float object value and notify the modification.
*/
void onModifyValue(QString value);
private:
QPointer< QLineEdit > m_valueCtrl;
};
} // uiVisuQt
#endif // __UIVISUQT_BASICFLOATEDITOR_HPP__
/* ***** BEGIN LICENSE BLOCK *****
* FW4SPL - Copyright (C) IRCAD, 2009-2017.
* Distributed under the terms of the GNU Lesser General Public License (LGPL) as
* published by the Free Software Foundation.
* ****** END LICENSE BLOCK ****** */
#include "uiVisuQt/BasicFloatEditor.hpp"
#include <fwCom/Signal.hpp>
#include <fwCom/Signal.hxx>
#include <fwCom/Signals.hpp>
#include <fwCore/base.hpp>
#include <fwData/Float.hpp>
#include <fwData/String.hpp>
#include <fwGuiQt/container/QtContainer.hpp>
#include <fwServices/IService.hpp>
#include <fwServices/macros.hpp>
#include <QApplication>
#include <QDoubleValidator>
#include <QHBoxLayout>
namespace uiVisuQt
{
fwServicesRegisterMacro( ::gui::editor::IEditor, ::uiVisuQt::BasicFloatEditor );
BasicFloatEditor::BasicFloatEditor() noexcept
{
}
//------------------------------------------------------------------------------
BasicFloatEditor::~BasicFloatEditor() noexcept
{
}
//------------------------------------------------------------------------------
void BasicFloatEditor::starting()
{
SLM_TRACE_FUNC();
this->::fwGui::IGuiContainerSrv::create();
::fwGuiQt::container::QtContainer::sptr qtContainer = ::fwGuiQt::container::QtContainer::dynamicCast(
this->getContainer() );
::fwData::Float::sptr floatObj = this->getInOut< ::fwData::Float >("float");
QHBoxLayout* layout = new QHBoxLayout();
QDoubleValidator* doubleValidator = new QDoubleValidator( m_valueCtrl );
m_valueCtrl = new QLineEdit( );
m_valueCtrl->setValidator( doubleValidator );
layout->addWidget( m_valueCtrl, 1);