mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7342 Property Editor : Support multi-select of objects of same type
This commit is contained in:
parent
f14386314e
commit
14c09f30cf
@ -1423,10 +1423,9 @@ void RiuMainWindow::selectedObjectsChanged()
|
|||||||
m_projectTreeView->selectedUiItems( uiItems );
|
m_projectTreeView->selectedUiItems( uiItems );
|
||||||
|
|
||||||
caf::PdmObjectHandle* firstSelectedObject = nullptr;
|
caf::PdmObjectHandle* firstSelectedObject = nullptr;
|
||||||
|
if ( !uiItems.empty() )
|
||||||
if ( uiItems.size() == 1 )
|
|
||||||
{
|
{
|
||||||
firstSelectedObject = dynamic_cast<caf::PdmObjectHandle*>( uiItems[0] );
|
firstSelectedObject = dynamic_cast<caf::PdmObjectHandle*>( uiItems.front() );
|
||||||
}
|
}
|
||||||
|
|
||||||
updateUiFieldsFromActiveResult( firstSelectedObject );
|
updateUiFieldsFromActiveResult( firstSelectedObject );
|
||||||
@ -1439,7 +1438,7 @@ void RiuMainWindow::selectedObjectsChanged()
|
|||||||
|
|
||||||
if ( !firstSelectedObject )
|
if ( !firstSelectedObject )
|
||||||
{
|
{
|
||||||
caf::PdmFieldHandle* selectedField = dynamic_cast<caf::PdmFieldHandle*>( uiItems[0] );
|
caf::PdmFieldHandle* selectedField = dynamic_cast<caf::PdmFieldHandle*>( uiItems.front() );
|
||||||
if ( selectedField ) firstSelectedObject = selectedField->ownerObject();
|
if ( selectedField ) firstSelectedObject = selectedField->ownerObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -832,10 +832,9 @@ void RiuPlotMainWindow::selectedObjectsChanged()
|
|||||||
m_projectTreeView->selectedUiItems( uiItems );
|
m_projectTreeView->selectedUiItems( uiItems );
|
||||||
|
|
||||||
caf::PdmObjectHandle* firstSelectedObject = nullptr;
|
caf::PdmObjectHandle* firstSelectedObject = nullptr;
|
||||||
|
if ( !uiItems.empty() )
|
||||||
if ( uiItems.size() == 1 )
|
|
||||||
{
|
{
|
||||||
firstSelectedObject = dynamic_cast<caf::PdmObjectHandle*>( uiItems[0] );
|
firstSelectedObject = dynamic_cast<caf::PdmObjectHandle*>( uiItems.front() );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_pdmUiPropertyView->showProperties( firstSelectedObject );
|
m_pdmUiPropertyView->showProperties( firstSelectedObject );
|
||||||
@ -846,7 +845,7 @@ void RiuPlotMainWindow::selectedObjectsChanged()
|
|||||||
|
|
||||||
if ( !firstSelectedObject )
|
if ( !firstSelectedObject )
|
||||||
{
|
{
|
||||||
caf::PdmFieldHandle* selectedField = dynamic_cast<caf::PdmFieldHandle*>( uiItems[0] );
|
caf::PdmFieldHandle* selectedField = dynamic_cast<caf::PdmFieldHandle*>( uiItems.front() );
|
||||||
if ( selectedField ) firstSelectedObject = selectedField->ownerObject();
|
if ( selectedField ) firstSelectedObject = selectedField->ownerObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,18 +90,18 @@ void PdmUiCommandSystemProxy::setUiValueToField( PdmUiFieldHandle* uiFieldHandle
|
|||||||
fieldsToUpdate.push_back( editorField );
|
fieldsToUpdate.push_back( editorField );
|
||||||
|
|
||||||
// For level 1 selection, find all fields with same keyword
|
// For level 1 selection, find all fields with same keyword
|
||||||
// Todo: Should traverse the ui ordering and find all fields with same keyword and same ownerobject type.
|
// Todo: Should traverse the ui ordering and find all fields with same keyword and same owner object type.
|
||||||
// Until we do, fields embedded into the property panel from a different object will not work with
|
// Until we do, fields embedded into the property panel from a different object will not work with
|
||||||
// multiselection edit For now we only makes sure we have same ownerobject type
|
// multi selection edit For now we only makes sure we have same owner object type
|
||||||
{
|
{
|
||||||
std::vector<PdmUiItem*> items;
|
std::vector<PdmUiItem*> items;
|
||||||
|
|
||||||
int selectionLevel = 1; // = 0;
|
int selectionLevel = 0;
|
||||||
SelectionManager::instance()->selectedItems( items, selectionLevel );
|
SelectionManager::instance()->selectedItems( items, selectionLevel );
|
||||||
|
|
||||||
for ( size_t i = 0; i < items.size(); i++ )
|
for ( auto& item : items )
|
||||||
{
|
{
|
||||||
PdmObjectHandle* objectHandle = dynamic_cast<PdmObjectHandle*>( items[i] );
|
PdmObjectHandle* objectHandle = dynamic_cast<PdmObjectHandle*>( item );
|
||||||
if ( objectHandle && typeid( *objectHandle ) == fieldOwnerTypeId )
|
if ( objectHandle && typeid( *objectHandle ) == fieldOwnerTypeId )
|
||||||
{
|
{
|
||||||
// An object is selected, find field with same keyword as the current field being edited
|
// An object is selected, find field with same keyword as the current field being edited
|
||||||
@ -115,7 +115,7 @@ void PdmUiCommandSystemProxy::setUiValueToField( PdmUiFieldHandle* uiFieldHandle
|
|||||||
{
|
{
|
||||||
// Todo Remove when dust has settled. Selection manager is not supposed to select single fields
|
// Todo Remove when dust has settled. Selection manager is not supposed to select single fields
|
||||||
// A field is selected, check if keywords are identical
|
// A field is selected, check if keywords are identical
|
||||||
PdmUiFieldHandle* itemFieldHandle = dynamic_cast<PdmUiFieldHandle*>( items[i] );
|
PdmUiFieldHandle* itemFieldHandle = dynamic_cast<PdmUiFieldHandle*>( item );
|
||||||
if ( itemFieldHandle )
|
if ( itemFieldHandle )
|
||||||
{
|
{
|
||||||
PdmFieldHandle* field = itemFieldHandle->fieldHandle();
|
PdmFieldHandle* field = itemFieldHandle->fieldHandle();
|
||||||
|
Loading…
Reference in New Issue
Block a user