mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#6106 Apply clang-format on AppFwk
This commit is contained in:
@@ -34,7 +34,6 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#include "cafCmdAddItemExec.h"
|
||||
|
||||
#include "cafCmdAddItemExecData.h"
|
||||
@@ -45,102 +44,102 @@
|
||||
|
||||
#include "cafPdmChildArrayField.h"
|
||||
|
||||
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString CmdAddItemExec::name()
|
||||
{
|
||||
PdmFieldHandle* field = PdmReferenceHelper::fieldFromReference(m_commandData->m_rootObject, m_commandData->m_pathToField);
|
||||
PdmFieldHandle* field =
|
||||
PdmReferenceHelper::fieldFromReference( m_commandData->m_rootObject, m_commandData->m_pathToField );
|
||||
|
||||
QString containedObjectType = "object";
|
||||
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>(field);
|
||||
if (listField)
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>( field );
|
||||
if ( listField )
|
||||
{
|
||||
PdmXmlFieldHandle* xfh = listField->xmlCapability();
|
||||
containedObjectType = xfh->dataTypeName();
|
||||
containedObjectType = xfh->dataTypeName();
|
||||
}
|
||||
|
||||
return QString("Create new '%1'").arg(containedObjectType);
|
||||
return QString( "Create new '%1'" ).arg( containedObjectType );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void CmdAddItemExec::redo()
|
||||
{
|
||||
PdmFieldHandle* field = PdmReferenceHelper::fieldFromReference(m_commandData->m_rootObject, m_commandData->m_pathToField);
|
||||
PdmFieldHandle* field =
|
||||
PdmReferenceHelper::fieldFromReference( m_commandData->m_rootObject, m_commandData->m_pathToField );
|
||||
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>(field);
|
||||
if (listField && field->xmlCapability())
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>( field );
|
||||
if ( listField && field->xmlCapability() )
|
||||
{
|
||||
QString classKeyword = field->xmlCapability()->dataTypeName();
|
||||
|
||||
if (classKeyword.isEmpty()) return;
|
||||
if ( classKeyword.isEmpty() ) return;
|
||||
|
||||
caf::PdmObjectHandle* obj = PdmDefaultObjectFactory::instance()->create(classKeyword);
|
||||
|
||||
if (!obj) return;
|
||||
caf::PdmObjectHandle* obj = PdmDefaultObjectFactory::instance()->create( classKeyword );
|
||||
|
||||
listField->insertAt(m_commandData->m_indexAfter, obj);
|
||||
if ( !obj ) return;
|
||||
|
||||
if (m_commandData->m_indexAfter == -1)
|
||||
listField->insertAt( m_commandData->m_indexAfter, obj );
|
||||
|
||||
if ( m_commandData->m_indexAfter == -1 )
|
||||
{
|
||||
m_commandData->m_createdItemIndex = static_cast<int>(listField->size() - 1);
|
||||
m_commandData->m_createdItemIndex = static_cast<int>( listField->size() - 1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_commandData->m_createdItemIndex = m_commandData->m_indexAfter;
|
||||
}
|
||||
|
||||
if (m_notificationCenter) m_notificationCenter->notifyObserversOfDataChange(obj);
|
||||
if ( m_notificationCenter ) m_notificationCenter->notifyObserversOfDataChange( obj );
|
||||
|
||||
listField->uiCapability()->updateConnectedEditors();
|
||||
|
||||
if (listField->ownerObject())
|
||||
if ( listField->ownerObject() )
|
||||
{
|
||||
caf::PdmUiObjectHandle* ownerUiObject = uiObj(listField->ownerObject());
|
||||
if (ownerUiObject)
|
||||
caf::PdmUiObjectHandle* ownerUiObject = uiObj( listField->ownerObject() );
|
||||
if ( ownerUiObject )
|
||||
{
|
||||
ownerUiObject->fieldChangedByUi(listField, QVariant(), QVariant());
|
||||
ownerUiObject->fieldChangedByUi( listField, QVariant(), QVariant() );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void CmdAddItemExec::undo()
|
||||
{
|
||||
PdmFieldHandle* field = PdmReferenceHelper::fieldFromReference(m_commandData->m_rootObject, m_commandData->m_pathToField);
|
||||
PdmFieldHandle* field =
|
||||
PdmReferenceHelper::fieldFromReference( m_commandData->m_rootObject, m_commandData->m_pathToField );
|
||||
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>(field);
|
||||
if (listField && m_commandData->m_createdItemIndex >= 0)
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>( field );
|
||||
if ( listField && m_commandData->m_createdItemIndex >= 0 )
|
||||
{
|
||||
std::vector<caf::PdmObjectHandle*> children;
|
||||
listField->childObjects(&children);
|
||||
listField->childObjects( &children );
|
||||
|
||||
caf::PdmObjectHandle* obj = children[m_commandData->m_createdItemIndex];
|
||||
|
||||
caf::SelectionManager::instance()->removeObjectFromAllSelections(obj);
|
||||
caf::SelectionManager::instance()->removeObjectFromAllSelections( obj );
|
||||
|
||||
listField->erase(m_commandData->m_createdItemIndex);
|
||||
listField->erase( m_commandData->m_createdItemIndex );
|
||||
listField->uiCapability()->updateConnectedEditors();
|
||||
|
||||
if (m_notificationCenter) m_notificationCenter->notifyObservers();
|
||||
if ( m_notificationCenter ) m_notificationCenter->notifyObservers();
|
||||
|
||||
if (listField->ownerObject())
|
||||
if ( listField->ownerObject() )
|
||||
{
|
||||
caf::PdmUiObjectHandle* ownerUiObject = uiObj(listField->ownerObject());
|
||||
if (ownerUiObject)
|
||||
caf::PdmUiObjectHandle* ownerUiObject = uiObj( listField->ownerObject() );
|
||||
if ( ownerUiObject )
|
||||
{
|
||||
ownerUiObject->fieldChangedByUi(listField, QVariant(), QVariant());
|
||||
ownerUiObject->fieldChangedByUi( listField, QVariant(), QVariant() );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,25 +148,23 @@ void CmdAddItemExec::undo()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
CmdAddItemExec::CmdAddItemExec(NotificationCenter* notificationCenter)
|
||||
: CmdExecuteCommand(notificationCenter)
|
||||
CmdAddItemExec::CmdAddItemExec( NotificationCenter* notificationCenter )
|
||||
: CmdExecuteCommand( notificationCenter )
|
||||
{
|
||||
m_commandData = new CmdAddItemExecData;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
CmdAddItemExec::~CmdAddItemExec()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
CmdAddItemExecData* CmdAddItemExec::commandData()
|
||||
{
|
||||
|
||||
@@ -34,36 +34,33 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafCmdExecuteCommand.h"
|
||||
|
||||
namespace caf
|
||||
namespace caf
|
||||
{
|
||||
|
||||
class PdmChildArrayFieldHandle;
|
||||
class CmdAddItemExecData;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class CmdAddItemExec : public CmdExecuteCommand
|
||||
{
|
||||
public:
|
||||
explicit CmdAddItemExec(NotificationCenter* notificationCenter);
|
||||
~CmdAddItemExec() override;;
|
||||
explicit CmdAddItemExec( NotificationCenter* notificationCenter );
|
||||
~CmdAddItemExec() override;
|
||||
;
|
||||
|
||||
CmdAddItemExecData* commandData();
|
||||
|
||||
QString name() override;
|
||||
void redo() override;
|
||||
void undo() override;
|
||||
void redo() override;
|
||||
void undo() override;
|
||||
|
||||
private:
|
||||
CmdAddItemExecData* m_commandData;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -34,13 +34,10 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#include "cafCmdAddItemExecData.h"
|
||||
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
CAF_PDM_SOURCE_INIT(CmdAddItemExecData, "CmdAddItemExecData");
|
||||
CAF_PDM_SOURCE_INIT( CmdAddItemExecData, "CmdAddItemExecData" );
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -34,18 +34,15 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
|
||||
namespace caf
|
||||
namespace caf
|
||||
{
|
||||
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class CmdAddItemExecData : public PdmObject
|
||||
{
|
||||
@@ -54,20 +51,24 @@ class CmdAddItemExecData : public PdmObject
|
||||
public:
|
||||
CmdAddItemExecData()
|
||||
{
|
||||
CAF_PDM_InitObject("CmdAddItemExecData uiName", "", "CmdAddItemExecData tooltip", "CmdAddItemExecData whatsthis");
|
||||
CAF_PDM_InitObject( "CmdAddItemExecData uiName", "", "CmdAddItemExecData tooltip", "CmdAddItemExecData whatsthis" );
|
||||
|
||||
CAF_PDM_InitField(&m_pathToField, "PathToField", QString(), "PathToField", "", "PathToField tooltip", "PathToField whatsthis");
|
||||
CAF_PDM_InitField(&m_indexAfter, "indexAfter", -1, "indexAfter", "", "indexAfter tooltip", "indexAfter whatsthis");
|
||||
CAF_PDM_InitField(&m_createdItemIndex, "createdItemIndex", -1, "createdItemIndex", "", "createdItemIndex tooltip", "createdItemIndex whatsthis");
|
||||
CAF_PDM_InitField( &m_pathToField, "PathToField", QString(), "PathToField", "", "PathToField tooltip", "PathToField whatsthis" );
|
||||
CAF_PDM_InitField( &m_indexAfter, "indexAfter", -1, "indexAfter", "", "indexAfter tooltip", "indexAfter whatsthis" );
|
||||
CAF_PDM_InitField( &m_createdItemIndex,
|
||||
"createdItemIndex",
|
||||
-1,
|
||||
"createdItemIndex",
|
||||
"",
|
||||
"createdItemIndex tooltip",
|
||||
"createdItemIndex whatsthis" );
|
||||
}
|
||||
|
||||
caf::PdmPointer<PdmObjectHandle> m_rootObject;
|
||||
|
||||
caf::PdmField<QString> m_pathToField;
|
||||
caf::PdmField<int> m_indexAfter;
|
||||
caf::PdmField<int> m_createdItemIndex;
|
||||
caf::PdmField<QString> m_pathToField;
|
||||
caf::PdmField<int> m_indexAfter;
|
||||
caf::PdmField<int> m_createdItemIndex;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#include "cafCmdAddItemFeature.h"
|
||||
|
||||
#include "cafCmdAddItemExec.h"
|
||||
@@ -52,40 +51,37 @@
|
||||
|
||||
#include <QAction>
|
||||
|
||||
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
CAF_CMD_SOURCE_INIT(CmdAddItemFeature, "PdmListField_AddItem");
|
||||
CAF_CMD_SOURCE_INIT( CmdAddItemFeature, "PdmListField_AddItem" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
CmdExecuteCommand* CmdAddItemFeature::createExecuteCommand()
|
||||
{
|
||||
caf::PdmChildArrayFieldHandle* childArrayFieldHandle = SelectionManager::instance()->activeChildArrayFieldHandle();
|
||||
if (!childArrayFieldHandle) return nullptr;
|
||||
|
||||
int indexAfter = -1;
|
||||
CmdAddItemExec* addItemExec = new CmdAddItemExec(SelectionManager::instance()->notificationCenter());
|
||||
if ( !childArrayFieldHandle ) return nullptr;
|
||||
|
||||
int indexAfter = -1;
|
||||
CmdAddItemExec* addItemExec = new CmdAddItemExec( SelectionManager::instance()->notificationCenter() );
|
||||
|
||||
CmdAddItemExecData* data = addItemExec->commandData();
|
||||
data->m_rootObject = PdmReferenceHelper::findRoot(childArrayFieldHandle);
|
||||
data->m_pathToField = PdmReferenceHelper::referenceFromRootToField(data->m_rootObject, childArrayFieldHandle);
|
||||
data->m_indexAfter = indexAfter;
|
||||
data->m_rootObject = PdmReferenceHelper::findRoot( childArrayFieldHandle );
|
||||
data->m_pathToField = PdmReferenceHelper::referenceFromRootToField( data->m_rootObject, childArrayFieldHandle );
|
||||
data->m_indexAfter = indexAfter;
|
||||
|
||||
return addItemExec;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool CmdAddItemFeature::isCommandEnabled()
|
||||
bool CmdAddItemFeature::isCommandEnabled()
|
||||
{
|
||||
caf::PdmChildArrayFieldHandle* childArrayFieldHandle = SelectionManager::instance()->activeChildArrayFieldHandle();
|
||||
|
||||
if (childArrayFieldHandle)
|
||||
if ( childArrayFieldHandle )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -96,30 +92,30 @@ bool CmdAddItemFeature::isCommandEnabled()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void CmdAddItemFeature::onActionTriggered(bool isChecked)
|
||||
void CmdAddItemFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
if (isCommandEnabled())
|
||||
if ( isCommandEnabled() )
|
||||
{
|
||||
CmdExecuteCommand* exeCmd = createExecuteCommand();
|
||||
if (exeCmd)
|
||||
if ( exeCmd )
|
||||
{
|
||||
CmdExecCommandManager::instance()->processExecuteCommand(exeCmd);
|
||||
CmdExecCommandManager::instance()->processExecuteCommand( exeCmd );
|
||||
}
|
||||
else
|
||||
{
|
||||
CAF_ASSERT(0);
|
||||
CAF_ASSERT( 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void CmdAddItemFeature::setupActionLook(QAction* actionToSetup)
|
||||
void CmdAddItemFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setText("Add new object");
|
||||
actionToSetup->setText( "Add new object" );
|
||||
}
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -34,31 +34,27 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafCmdFeature.h"
|
||||
|
||||
namespace caf
|
||||
namespace caf
|
||||
{
|
||||
|
||||
class CmdExecuteCommand;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class CmdAddItemFeature : public CmdFeature
|
||||
class CmdAddItemFeature : public CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
|
||||
protected:
|
||||
CmdExecuteCommand* createExecuteCommand();
|
||||
CmdExecuteCommand* createExecuteCommand();
|
||||
|
||||
bool isCommandEnabled() override;
|
||||
void onActionTriggered( bool isChecked ) override;
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#include "cafCmdDeleteItemExec.h"
|
||||
#include "cafCmdDeleteItemExecData.h"
|
||||
|
||||
@@ -45,12 +44,10 @@
|
||||
#include "cafNotificationCenter.h"
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString CmdDeleteItemExec::name()
|
||||
{
|
||||
@@ -58,89 +55,92 @@ QString CmdDeleteItemExec::name()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void CmdDeleteItemExec::redo()
|
||||
{
|
||||
PdmFieldHandle* field = PdmReferenceHelper::fieldFromReference(m_commandData->m_rootObject, m_commandData->m_pathToField);
|
||||
PdmFieldHandle* field =
|
||||
PdmReferenceHelper::fieldFromReference( m_commandData->m_rootObject, m_commandData->m_pathToField );
|
||||
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>(field);
|
||||
if (listField)
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>( field );
|
||||
if ( listField )
|
||||
{
|
||||
std::vector<PdmObjectHandle*> children;
|
||||
listField->childObjects(&children);
|
||||
listField->childObjects( &children );
|
||||
|
||||
PdmObjectHandle* obj = children[m_commandData->m_indexToObject];
|
||||
caf::SelectionManager::instance()->removeObjectFromAllSelections(obj);
|
||||
caf::SelectionManager::instance()->removeObjectFromAllSelections( obj );
|
||||
|
||||
if (m_commandData->m_deletedObjectAsXml().isEmpty())
|
||||
if ( m_commandData->m_deletedObjectAsXml().isEmpty() )
|
||||
{
|
||||
QString encodedXml;
|
||||
{
|
||||
m_commandData->m_deletedObjectAsXml = xmlObj(obj)->writeObjectToXmlString();
|
||||
m_commandData->m_deletedObjectAsXml = xmlObj( obj )->writeObjectToXmlString();
|
||||
}
|
||||
}
|
||||
|
||||
listField->erase(m_commandData->m_indexToObject);
|
||||
listField->erase( m_commandData->m_indexToObject );
|
||||
|
||||
|
||||
// TODO: The notification here could possibly be changed to
|
||||
// TODO: The notification here could possibly be changed to
|
||||
// PdmUiFieldHandle::notifyDataChange() similar to void CmdFieldChangeExec::redo()
|
||||
|
||||
caf::PdmUiObjectHandle* ownerUiObject = uiObj(listField->ownerObject());
|
||||
if (ownerUiObject)
|
||||
caf::PdmUiObjectHandle* ownerUiObject = uiObj( listField->ownerObject() );
|
||||
if ( ownerUiObject )
|
||||
{
|
||||
ownerUiObject->fieldChangedByUi(field, QVariant(), QVariant());
|
||||
ownerUiObject->fieldChangedByUi( field, QVariant(), QVariant() );
|
||||
}
|
||||
|
||||
listField->uiCapability()->updateConnectedEditors();
|
||||
|
||||
if (m_notificationCenter) m_notificationCenter->notifyObservers();
|
||||
if ( m_notificationCenter ) m_notificationCenter->notifyObservers();
|
||||
|
||||
delete obj;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void CmdDeleteItemExec::undo()
|
||||
{
|
||||
PdmFieldHandle* field = PdmReferenceHelper::fieldFromReference(m_commandData->m_rootObject, m_commandData->m_pathToField);
|
||||
PdmFieldHandle* field =
|
||||
PdmReferenceHelper::fieldFromReference( m_commandData->m_rootObject, m_commandData->m_pathToField );
|
||||
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>(field);
|
||||
if (listField)
|
||||
PdmChildArrayFieldHandle* listField = dynamic_cast<PdmChildArrayFieldHandle*>( field );
|
||||
if ( listField )
|
||||
{
|
||||
PdmObjectHandle* obj = PdmXmlObjectHandle::readUnknownObjectFromXmlString(m_commandData->m_deletedObjectAsXml(), PdmDefaultObjectFactory::instance(), false);
|
||||
PdmObjectHandle* obj = PdmXmlObjectHandle::readUnknownObjectFromXmlString( m_commandData->m_deletedObjectAsXml(),
|
||||
PdmDefaultObjectFactory::instance(),
|
||||
false );
|
||||
|
||||
listField->insertAt(m_commandData->m_indexToObject, obj);
|
||||
listField->insertAt( m_commandData->m_indexToObject, obj );
|
||||
|
||||
// TODO: The notification here could possibly be changed to
|
||||
// TODO: The notification here could possibly be changed to
|
||||
// PdmUiFieldHandle::notifyDataChange() similar to void CmdFieldChangeExec::redo()
|
||||
|
||||
caf::PdmUiObjectHandle* ownerUiObject = uiObj(listField->ownerObject());
|
||||
if (ownerUiObject)
|
||||
caf::PdmUiObjectHandle* ownerUiObject = uiObj( listField->ownerObject() );
|
||||
if ( ownerUiObject )
|
||||
{
|
||||
ownerUiObject->fieldChangedByUi(field, QVariant(), QVariant());
|
||||
ownerUiObject->fieldChangedByUi( field, QVariant(), QVariant() );
|
||||
}
|
||||
|
||||
listField->uiCapability()->updateConnectedEditors();
|
||||
|
||||
if (m_notificationCenter) m_notificationCenter->notifyObservers();
|
||||
if ( m_notificationCenter ) m_notificationCenter->notifyObservers();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
CmdDeleteItemExec::CmdDeleteItemExec(NotificationCenter* notificationCenter)
|
||||
: CmdExecuteCommand(notificationCenter)
|
||||
CmdDeleteItemExec::CmdDeleteItemExec( NotificationCenter* notificationCenter )
|
||||
: CmdExecuteCommand( notificationCenter )
|
||||
{
|
||||
m_commandData = new CmdDeleteItemExecData;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
CmdDeleteItemExecData* CmdDeleteItemExec::commandData()
|
||||
{
|
||||
|
||||
@@ -34,37 +34,32 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafCmdExecuteCommand.h"
|
||||
|
||||
namespace caf
|
||||
namespace caf
|
||||
{
|
||||
|
||||
class PdmChildArrayFieldHandle;
|
||||
class CmdDeleteItemExecData;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class CmdDeleteItemExec : public CmdExecuteCommand
|
||||
{
|
||||
public:
|
||||
explicit CmdDeleteItemExec(NotificationCenter* notificationCenter);
|
||||
~CmdDeleteItemExec() override {};
|
||||
|
||||
explicit CmdDeleteItemExec( NotificationCenter* notificationCenter );
|
||||
~CmdDeleteItemExec() override{};
|
||||
|
||||
CmdDeleteItemExecData* commandData();
|
||||
|
||||
QString name() override;
|
||||
void redo() override;
|
||||
void undo() override;
|
||||
void redo() override;
|
||||
void undo() override;
|
||||
|
||||
private:
|
||||
CmdDeleteItemExecData* m_commandData;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -34,13 +34,10 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#include "cafCmdDeleteItemExecData.h"
|
||||
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
CAF_PDM_SOURCE_INIT(CmdDeleteItemExecData, "CmdDeleteItemExecData");
|
||||
CAF_PDM_SOURCE_INIT( CmdDeleteItemExecData, "CmdDeleteItemExecData" );
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -34,18 +34,15 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
|
||||
namespace caf
|
||||
namespace caf
|
||||
{
|
||||
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class CmdDeleteItemExecData : public PdmObject
|
||||
{
|
||||
@@ -54,20 +51,33 @@ class CmdDeleteItemExecData : public PdmObject
|
||||
public:
|
||||
CmdDeleteItemExecData()
|
||||
{
|
||||
CAF_PDM_InitObject("CmdDeleteItemExecData uiName", "", "CmdDeleteItemExecData tooltip", "CmdDeleteItemExecData whatsthis");
|
||||
CAF_PDM_InitObject( "CmdDeleteItemExecData uiName",
|
||||
"",
|
||||
"CmdDeleteItemExecData tooltip",
|
||||
"CmdDeleteItemExecData whatsthis" );
|
||||
|
||||
CAF_PDM_InitField(&m_pathToField, "PathToField", QString(), "PathToField", "", "PathToField tooltip", "PathToField whatsthis");
|
||||
CAF_PDM_InitField(&m_indexToObject, "indexToObject", -1, "indexToObject", "", "indexToObject tooltip", "indexToObject whatsthis");
|
||||
CAF_PDM_InitField(&m_deletedObjectAsXml, "deletedObjectAsXml", QString(), "deletedObjectAsXml", "", "deletedObjectAsXml tooltip", "deletedObjectAsXml whatsthis");
|
||||
CAF_PDM_InitField( &m_pathToField, "PathToField", QString(), "PathToField", "", "PathToField tooltip", "PathToField whatsthis" );
|
||||
CAF_PDM_InitField( &m_indexToObject,
|
||||
"indexToObject",
|
||||
-1,
|
||||
"indexToObject",
|
||||
"",
|
||||
"indexToObject tooltip",
|
||||
"indexToObject whatsthis" );
|
||||
CAF_PDM_InitField( &m_deletedObjectAsXml,
|
||||
"deletedObjectAsXml",
|
||||
QString(),
|
||||
"deletedObjectAsXml",
|
||||
"",
|
||||
"deletedObjectAsXml tooltip",
|
||||
"deletedObjectAsXml whatsthis" );
|
||||
}
|
||||
|
||||
caf::PdmPointer<PdmObjectHandle> m_rootObject;
|
||||
|
||||
caf::PdmField<QString> m_pathToField;
|
||||
caf::PdmField<int> m_indexToObject;
|
||||
caf::PdmField<QString> m_deletedObjectAsXml;
|
||||
caf::PdmField<QString> m_pathToField;
|
||||
caf::PdmField<int> m_indexToObject;
|
||||
caf::PdmField<QString> m_deletedObjectAsXml;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
|
||||
#include "cafCmdDeleteItemFeature.h"
|
||||
|
||||
#include "cafCmdExecCommandManager.h"
|
||||
#include "cafCmdDeleteItemExec.h"
|
||||
#include "cafCmdDeleteItemExecData.h"
|
||||
#include "cafCmdExecCommandManager.h"
|
||||
#include "cafCmdSelectionHelper.h"
|
||||
#include "cafPdmReferenceHelper.h"
|
||||
#include "cafSelectionManager.h"
|
||||
@@ -50,97 +50,100 @@
|
||||
|
||||
namespace caf
|
||||
{
|
||||
CAF_CMD_SOURCE_INIT(CmdDeleteItemFeature, "PdmListField_DeleteItem");
|
||||
CAF_CMD_SOURCE_INIT( CmdDeleteItemFeature, "PdmListField_DeleteItem" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
CmdExecuteCommand* CmdDeleteItemFeature::createExecuteCommand()
|
||||
{
|
||||
std::vector<PdmUiItem*> items;
|
||||
SelectionManager::instance()->selectedItems(items, SelectionManager::FIRST_LEVEL);
|
||||
SelectionManager::instance()->selectedItems( items, SelectionManager::FIRST_LEVEL );
|
||||
|
||||
caf::PdmChildArrayFieldHandle* childArrayFieldHandle = caf::SelectionManager::instance()->activeChildArrayFieldHandle();
|
||||
if (!childArrayFieldHandle) return nullptr;
|
||||
caf::PdmChildArrayFieldHandle* childArrayFieldHandle =
|
||||
caf::SelectionManager::instance()->activeChildArrayFieldHandle();
|
||||
if ( !childArrayFieldHandle ) return nullptr;
|
||||
|
||||
caf::PdmObjectHandle* currentPdmObject = nullptr;
|
||||
|
||||
for (size_t i = 0; i < items.size(); i++)
|
||||
for ( size_t i = 0; i < items.size(); i++ )
|
||||
{
|
||||
if (dynamic_cast<caf::PdmUiObjectHandle*>(items[i]))
|
||||
if ( dynamic_cast<caf::PdmUiObjectHandle*>( items[i] ) )
|
||||
{
|
||||
currentPdmObject = dynamic_cast<caf::PdmUiObjectHandle*>(items[i])->objectHandle();
|
||||
currentPdmObject = dynamic_cast<caf::PdmUiObjectHandle*>( items[i] )->objectHandle();
|
||||
}
|
||||
}
|
||||
|
||||
if (!currentPdmObject) return nullptr;
|
||||
if ( !currentPdmObject ) return nullptr;
|
||||
|
||||
int indexAfter = -1;
|
||||
|
||||
std::vector<PdmObjectHandle*> childObjects;
|
||||
childArrayFieldHandle->childObjects(&childObjects);
|
||||
childArrayFieldHandle->childObjects( &childObjects );
|
||||
|
||||
for (size_t i = 0; i < childObjects.size(); i++)
|
||||
for ( size_t i = 0; i < childObjects.size(); i++ )
|
||||
{
|
||||
if (childObjects[i] == currentPdmObject)
|
||||
if ( childObjects[i] == currentPdmObject )
|
||||
{
|
||||
indexAfter = static_cast<int>(i);
|
||||
indexAfter = static_cast<int>( i );
|
||||
}
|
||||
}
|
||||
|
||||
// Did not find currently selected pdm object in the current list field
|
||||
CAF_ASSERT(indexAfter != -1);
|
||||
CAF_ASSERT( indexAfter != -1 );
|
||||
|
||||
CmdDeleteItemExec* executeCmd = new CmdDeleteItemExec( SelectionManager::instance()->notificationCenter() );
|
||||
|
||||
CmdDeleteItemExec* executeCmd = new CmdDeleteItemExec(SelectionManager::instance()->notificationCenter());
|
||||
|
||||
CmdDeleteItemExecData* data = executeCmd->commandData();
|
||||
data->m_rootObject = PdmReferenceHelper::findRoot(childArrayFieldHandle);
|
||||
data->m_pathToField = PdmReferenceHelper::referenceFromRootToField(data->m_rootObject, childArrayFieldHandle);
|
||||
data->m_rootObject = PdmReferenceHelper::findRoot( childArrayFieldHandle );
|
||||
data->m_pathToField = PdmReferenceHelper::referenceFromRootToField( data->m_rootObject, childArrayFieldHandle );
|
||||
data->m_indexToObject = indexAfter;
|
||||
|
||||
return executeCmd;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool CmdDeleteItemFeature::isCommandEnabled()
|
||||
bool CmdDeleteItemFeature::isCommandEnabled()
|
||||
{
|
||||
caf::PdmObject* currentPdmObject = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem(caf::SelectionManager::FIRST_LEVEL));
|
||||
if (!currentPdmObject) return false;
|
||||
caf::PdmObject* currentPdmObject = dynamic_cast<caf::PdmObject*>(
|
||||
caf::SelectionManager::instance()->selectedItem( caf::SelectionManager::FIRST_LEVEL ) );
|
||||
if ( !currentPdmObject ) return false;
|
||||
|
||||
caf::PdmChildArrayFieldHandle* childArrayFieldHandle = caf::SelectionManager::instance()->activeChildArrayFieldHandle();
|
||||
if (!childArrayFieldHandle) return false;
|
||||
caf::PdmChildArrayFieldHandle* childArrayFieldHandle =
|
||||
caf::SelectionManager::instance()->activeChildArrayFieldHandle();
|
||||
if ( !childArrayFieldHandle ) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void CmdDeleteItemFeature::onActionTriggered(bool isChecked)
|
||||
void CmdDeleteItemFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
if (isCommandEnabled())
|
||||
if ( isCommandEnabled() )
|
||||
{
|
||||
CmdExecuteCommand* exeCmd = createExecuteCommand();
|
||||
if (exeCmd)
|
||||
if ( exeCmd )
|
||||
{
|
||||
CmdExecCommandManager::instance()->processExecuteCommand(exeCmd);
|
||||
CmdExecCommandManager::instance()->processExecuteCommand( exeCmd );
|
||||
}
|
||||
else
|
||||
{
|
||||
CAF_ASSERT(0);
|
||||
CAF_ASSERT( 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void CmdDeleteItemFeature::setupActionLook(QAction* actionToSetup)
|
||||
void CmdDeleteItemFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setText("Delete object");
|
||||
applyShortcutWithHintToAction(actionToSetup, QKeySequence::Delete);
|
||||
actionToSetup->setText( "Delete object" );
|
||||
applyShortcutWithHintToAction( actionToSetup, QKeySequence::Delete );
|
||||
}
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -34,22 +34,21 @@
|
||||
//
|
||||
//##################################################################################################
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cafCmdFeature.h"
|
||||
|
||||
namespace caf
|
||||
namespace caf
|
||||
{
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class CmdDeleteItemFeature : public CmdFeature
|
||||
class CmdDeleteItemFeature : public CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
|
||||
protected:
|
||||
CmdExecuteCommand* createExecuteCommand();
|
||||
CmdExecuteCommand* createExecuteCommand();
|
||||
|
||||
// Overrides
|
||||
bool isCommandEnabled() override;
|
||||
@@ -57,6 +56,4 @@ protected:
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // end namespace caf
|
||||
|
||||
@@ -44,36 +44,35 @@
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
CAF_CMD_SOURCE_INIT(ToggleItemsFeature, "cafToggleItemsFeature");
|
||||
CAF_CMD_SOURCE_INIT( ToggleItemsFeature, "cafToggleItemsFeature" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool ToggleItemsFeature::isCommandEnabled()
|
||||
bool ToggleItemsFeature::isCommandEnabled()
|
||||
{
|
||||
return ToggleItemsFeatureImpl::isToggleCommandsAvailable();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsFeature::onActionTriggered(bool isChecked)
|
||||
void ToggleItemsFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
ToggleItemsFeatureImpl::setObjectToggleStateForSelection(ToggleItemsFeatureImpl::TOGGLE_SUBITEMS);
|
||||
ToggleItemsFeatureImpl::setObjectToggleStateForSelection( ToggleItemsFeatureImpl::TOGGLE_SUBITEMS );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsFeature::setupActionLook(QAction* actionToSetup)
|
||||
void ToggleItemsFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
if (ToggleItemsFeatureImpl::isToggleCommandsForSubItems())
|
||||
actionToSetup->setText("Toggle Sub Items");
|
||||
if ( ToggleItemsFeatureImpl::isToggleCommandsForSubItems() )
|
||||
actionToSetup->setText( "Toggle Sub Items" );
|
||||
else
|
||||
actionToSetup->setText("Toggle");
|
||||
actionToSetup->setText( "Toggle" );
|
||||
|
||||
actionToSetup->setIcon(QIcon(":/cafCommandFeatures/ToggleOnOffL16x16.png"));
|
||||
actionToSetup->setIcon( QIcon( ":/cafCommandFeatures/ToggleOnOffL16x16.png" ) );
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
@@ -41,17 +41,17 @@
|
||||
namespace caf
|
||||
{
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class ToggleItemsFeature : public caf::CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
protected:
|
||||
|
||||
protected:
|
||||
// Overrides
|
||||
bool isCommandEnabled() override;
|
||||
void onActionTriggered( bool isChecked ) override;
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
@@ -50,38 +50,36 @@
|
||||
|
||||
#include <QModelIndex>
|
||||
|
||||
#include <vector>
|
||||
#include "cafCmdFeatureManager.h"
|
||||
#include <vector>
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool ToggleItemsFeatureImpl::isToggleCommandsAvailable()
|
||||
{
|
||||
std::vector<caf::PdmUiItem*> selectedItems;
|
||||
caf::SelectionManager::instance()->selectedItems(selectedItems);
|
||||
caf::SelectionManager::instance()->selectedItems( selectedItems );
|
||||
|
||||
if (selectedItems.size() == 1)
|
||||
if ( selectedItems.size() == 1 )
|
||||
{
|
||||
caf::PdmUiTreeOrdering* treeItem = findTreeItemFromSelectedUiItem(selectedItems[0]);
|
||||
caf::PdmUiTreeOrdering* treeItem = findTreeItemFromSelectedUiItem( selectedItems[0] );
|
||||
|
||||
if (!treeItem) return false;
|
||||
if ( !treeItem ) return false;
|
||||
|
||||
for (int cIdx = 0; cIdx < treeItem->childCount(); ++ cIdx)
|
||||
for ( int cIdx = 0; cIdx < treeItem->childCount(); ++cIdx )
|
||||
{
|
||||
caf::PdmUiTreeOrdering* child = treeItem->child(cIdx);
|
||||
if (!child) continue;
|
||||
if (!child->isRepresentingObject()) continue;
|
||||
caf::PdmUiTreeOrdering* child = treeItem->child( cIdx );
|
||||
if ( !child ) continue;
|
||||
if ( !child->isRepresentingObject() ) continue;
|
||||
|
||||
caf::PdmObjectHandle* childObj = child->object();
|
||||
caf::PdmUiObjectHandle* uiObjectHandleChild = uiObj(childObj);
|
||||
caf::PdmObjectHandle* childObj = child->object();
|
||||
caf::PdmUiObjectHandle* uiObjectHandleChild = uiObj( childObj );
|
||||
|
||||
if (uiObjectHandleChild &&
|
||||
uiObjectHandleChild->objectToggleField() &&
|
||||
!uiObjectHandleChild->objectToggleField()->uiCapability()->isUiReadOnly())
|
||||
if ( uiObjectHandleChild && uiObjectHandleChild->objectToggleField() &&
|
||||
!uiObjectHandleChild->objectToggleField()->uiCapability()->isUiReadOnly() )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -89,11 +87,11 @@ bool ToggleItemsFeatureImpl::isToggleCommandsAvailable()
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < selectedItems.size(); ++i)
|
||||
for ( size_t i = 0; i < selectedItems.size(); ++i )
|
||||
{
|
||||
caf::PdmUiObjectHandle* uiObjectHandle = dynamic_cast<caf::PdmUiObjectHandle*>(selectedItems[i]);
|
||||
caf::PdmUiObjectHandle* uiObjectHandle = dynamic_cast<caf::PdmUiObjectHandle*>( selectedItems[i] );
|
||||
|
||||
if (uiObjectHandle && uiObjectHandle->objectToggleField())
|
||||
if ( uiObjectHandle && uiObjectHandle->objectToggleField() )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -104,73 +102,73 @@ bool ToggleItemsFeatureImpl::isToggleCommandsAvailable()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool ToggleItemsFeatureImpl::isToggleCommandsForSubItems()
|
||||
{
|
||||
std::vector<caf::PdmUiItem*> selectedItems;
|
||||
caf::SelectionManager::instance()->selectedItems(selectedItems);
|
||||
if (isToggleCommandsAvailable() && selectedItems.size() == 1)
|
||||
{
|
||||
caf::SelectionManager::instance()->selectedItems( selectedItems );
|
||||
if ( isToggleCommandsAvailable() && selectedItems.size() == 1 )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Set toggle state for list of model indices.
|
||||
/// Set toggle state for list of model indices.
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsFeatureImpl::setObjectToggleStateForSelection(SelectionToggleType state)
|
||||
void ToggleItemsFeatureImpl::setObjectToggleStateForSelection( SelectionToggleType state )
|
||||
{
|
||||
std::vector<caf::PdmUiItem*> selectedItems;
|
||||
caf::SelectionManager::instance()->selectedItems(selectedItems);
|
||||
if (state != TOGGLE && selectedItems.size() == 1)
|
||||
caf::SelectionManager::instance()->selectedItems( selectedItems );
|
||||
if ( state != TOGGLE && selectedItems.size() == 1 )
|
||||
{
|
||||
// If only one item is selected, loop over its children, and toggle them instead of the
|
||||
// If only one item is selected, loop over its children, and toggle them instead of the
|
||||
// selected item directly
|
||||
|
||||
// We need to get the children through the tree view, because that is where the actually shown children is
|
||||
|
||||
caf::PdmUiTreeOrdering* treeItem = findTreeItemFromSelectedUiItem(selectedItems[0]);
|
||||
|
||||
if (!treeItem) return;
|
||||
// We need to get the children through the tree view, because that is where the actually shown children is
|
||||
|
||||
for (int cIdx = 0; cIdx < treeItem->childCount(); ++ cIdx)
|
||||
caf::PdmUiTreeOrdering* treeItem = findTreeItemFromSelectedUiItem( selectedItems[0] );
|
||||
|
||||
if ( !treeItem ) return;
|
||||
|
||||
for ( int cIdx = 0; cIdx < treeItem->childCount(); ++cIdx )
|
||||
{
|
||||
caf::PdmUiTreeOrdering* child = treeItem->child(cIdx);
|
||||
if (!child) continue;
|
||||
if (!child->isRepresentingObject()) continue;
|
||||
caf::PdmUiTreeOrdering* child = treeItem->child( cIdx );
|
||||
if ( !child ) continue;
|
||||
if ( !child->isRepresentingObject() ) continue;
|
||||
|
||||
caf::PdmObjectHandle* childObj = child->object();
|
||||
caf::PdmUiObjectHandle* uiObjectHandleChild = uiObj(childObj);
|
||||
caf::PdmObjectHandle* childObj = child->object();
|
||||
caf::PdmUiObjectHandle* uiObjectHandleChild = uiObj( childObj );
|
||||
|
||||
if (uiObjectHandleChild && uiObjectHandleChild->objectToggleField())
|
||||
if ( uiObjectHandleChild && uiObjectHandleChild->objectToggleField() )
|
||||
{
|
||||
caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>(uiObjectHandleChild->objectToggleField());
|
||||
caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>( uiObjectHandleChild->objectToggleField() );
|
||||
|
||||
if (state == TOGGLE_ON) field->setValueWithFieldChanged(true);
|
||||
if (state == TOGGLE_OFF) field->setValueWithFieldChanged(false);
|
||||
if (state == TOGGLE_SUBITEMS) field->setValueWithFieldChanged(!(field->v()));
|
||||
if ( state == TOGGLE_ON ) field->setValueWithFieldChanged( true );
|
||||
if ( state == TOGGLE_OFF ) field->setValueWithFieldChanged( false );
|
||||
if ( state == TOGGLE_SUBITEMS ) field->setValueWithFieldChanged( !( field->v() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < selectedItems.size(); ++i)
|
||||
for ( size_t i = 0; i < selectedItems.size(); ++i )
|
||||
{
|
||||
caf::PdmUiObjectHandle* uiObjectHandle = dynamic_cast< caf::PdmUiObjectHandle*>(selectedItems[i]);
|
||||
caf::PdmUiObjectHandle* uiObjectHandle = dynamic_cast<caf::PdmUiObjectHandle*>( selectedItems[i] );
|
||||
|
||||
if (uiObjectHandle && uiObjectHandle->objectToggleField())
|
||||
if ( uiObjectHandle && uiObjectHandle->objectToggleField() )
|
||||
{
|
||||
caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>* >(uiObjectHandle->objectToggleField());
|
||||
caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>( uiObjectHandle->objectToggleField() );
|
||||
|
||||
if (state == TOGGLE_ON) field->setValueWithFieldChanged(true);
|
||||
if (state == TOGGLE_OFF) field->setValueWithFieldChanged(false);
|
||||
if (state == TOGGLE_SUBITEMS || state == TOGGLE)
|
||||
if ( state == TOGGLE_ON ) field->setValueWithFieldChanged( true );
|
||||
if ( state == TOGGLE_OFF ) field->setValueWithFieldChanged( false );
|
||||
if ( state == TOGGLE_SUBITEMS || state == TOGGLE )
|
||||
{
|
||||
field->setValueWithFieldChanged(!(field->v()));
|
||||
field->setValueWithFieldChanged( !( field->v() ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -178,27 +176,28 @@ void ToggleItemsFeatureImpl::setObjectToggleStateForSelection(SelectionToggleTyp
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmUiTreeView* ToggleItemsFeatureImpl::findTreeView(const caf::PdmUiItem* uiItem)
|
||||
caf::PdmUiTreeView* ToggleItemsFeatureImpl::findTreeView( const caf::PdmUiItem* uiItem )
|
||||
{
|
||||
caf::PdmUiTreeView* customActiveTreeView = dynamic_cast<caf::PdmUiTreeView*>(CmdFeatureManager::instance()->currentContextMenuTargetWidget());
|
||||
|
||||
caf::PdmUiTreeView* customActiveTreeView =
|
||||
dynamic_cast<caf::PdmUiTreeView*>( CmdFeatureManager::instance()->currentContextMenuTargetWidget() );
|
||||
|
||||
return customActiveTreeView;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Finds the tree item in either the 3D main window or plot main window project tree view
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmUiTreeOrdering* ToggleItemsFeatureImpl::findTreeItemFromSelectedUiItem(const caf::PdmUiItem* uiItem)
|
||||
caf::PdmUiTreeOrdering* ToggleItemsFeatureImpl::findTreeItemFromSelectedUiItem( const caf::PdmUiItem* uiItem )
|
||||
{
|
||||
caf::PdmUiTreeView* pdmUiTreeView = findTreeView(uiItem);
|
||||
caf::PdmUiTreeView* pdmUiTreeView = findTreeView( uiItem );
|
||||
|
||||
if (pdmUiTreeView)
|
||||
if ( pdmUiTreeView )
|
||||
{
|
||||
QModelIndex modIndex = pdmUiTreeView->findModelIndex(uiItem);
|
||||
return static_cast<caf::PdmUiTreeOrdering*>(modIndex.internalPointer());
|
||||
QModelIndex modIndex = pdmUiTreeView->findModelIndex( uiItem );
|
||||
return static_cast<caf::PdmUiTreeOrdering*>( modIndex.internalPointer() );
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
@@ -38,33 +38,32 @@
|
||||
|
||||
namespace caf
|
||||
{
|
||||
class PdmUiItem;
|
||||
class PdmUiTreeOrdering;
|
||||
class PdmUiTreeView;
|
||||
|
||||
class PdmUiItem;
|
||||
class PdmUiTreeOrdering;
|
||||
class PdmUiTreeView;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class ToggleItemsFeatureImpl
|
||||
class ToggleItemsFeatureImpl
|
||||
{
|
||||
public:
|
||||
enum SelectionToggleType
|
||||
{
|
||||
TOGGLE_ON,
|
||||
TOGGLE_OFF,
|
||||
TOGGLE_SUBITEMS,
|
||||
TOGGLE,
|
||||
TOGGLE_UNDEFINED
|
||||
};
|
||||
enum SelectionToggleType
|
||||
{
|
||||
TOGGLE_ON,
|
||||
TOGGLE_OFF,
|
||||
TOGGLE_SUBITEMS,
|
||||
TOGGLE,
|
||||
TOGGLE_UNDEFINED
|
||||
};
|
||||
|
||||
static bool isToggleCommandsAvailable();
|
||||
static bool isToggleCommandsForSubItems();
|
||||
static void setObjectToggleStateForSelection(SelectionToggleType state);
|
||||
static bool isToggleCommandsAvailable();
|
||||
static bool isToggleCommandsForSubItems();
|
||||
static void setObjectToggleStateForSelection( SelectionToggleType state );
|
||||
|
||||
private:
|
||||
static caf::PdmUiTreeView* findTreeView(const caf::PdmUiItem* uiItem);
|
||||
static caf::PdmUiTreeOrdering* findTreeItemFromSelectedUiItem(const caf::PdmUiItem* uiItem);
|
||||
static caf::PdmUiTreeView* findTreeView( const caf::PdmUiItem* uiItem );
|
||||
static caf::PdmUiTreeOrdering* findTreeItemFromSelectedUiItem( const caf::PdmUiItem* uiItem );
|
||||
};
|
||||
|
||||
};
|
||||
}; // namespace caf
|
||||
|
||||
@@ -44,37 +44,35 @@
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
CAF_CMD_SOURCE_INIT(ToggleItemsOffFeature, "cafToggleItemsOffFeature");
|
||||
CAF_CMD_SOURCE_INIT( ToggleItemsOffFeature, "cafToggleItemsOffFeature" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool ToggleItemsOffFeature::isCommandEnabled()
|
||||
bool ToggleItemsOffFeature::isCommandEnabled()
|
||||
{
|
||||
return ToggleItemsFeatureImpl::isToggleCommandsAvailable();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsOffFeature::onActionTriggered(bool isChecked)
|
||||
void ToggleItemsOffFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
ToggleItemsFeatureImpl::setObjectToggleStateForSelection(ToggleItemsFeatureImpl::TOGGLE_OFF);
|
||||
ToggleItemsFeatureImpl::setObjectToggleStateForSelection( ToggleItemsFeatureImpl::TOGGLE_OFF );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsOffFeature::setupActionLook(QAction* actionToSetup)
|
||||
void ToggleItemsOffFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
if (ToggleItemsFeatureImpl::isToggleCommandsForSubItems())
|
||||
actionToSetup->setText("Sub Items Off");
|
||||
if ( ToggleItemsFeatureImpl::isToggleCommandsForSubItems() )
|
||||
actionToSetup->setText( "Sub Items Off" );
|
||||
else
|
||||
actionToSetup->setText("Off");
|
||||
|
||||
actionToSetup->setIcon(QIcon(":/cafCommandFeatures/ToggleOffL16x16.png"));
|
||||
actionToSetup->setText( "Off" );
|
||||
|
||||
actionToSetup->setIcon( QIcon( ":/cafCommandFeatures/ToggleOffL16x16.png" ) );
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
@@ -41,17 +41,17 @@
|
||||
namespace caf
|
||||
{
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class ToggleItemsOffFeature : public caf::CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
protected:
|
||||
|
||||
protected:
|
||||
// Overrides
|
||||
bool isCommandEnabled() override;
|
||||
void onActionTriggered( bool isChecked ) override;
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
@@ -44,37 +44,35 @@
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
CAF_CMD_SOURCE_INIT(ToggleItemsOnFeature, "cafToggleItemsOnFeature");
|
||||
CAF_CMD_SOURCE_INIT( ToggleItemsOnFeature, "cafToggleItemsOnFeature" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool ToggleItemsOnFeature::isCommandEnabled()
|
||||
bool ToggleItemsOnFeature::isCommandEnabled()
|
||||
{
|
||||
return ToggleItemsFeatureImpl::isToggleCommandsAvailable();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsOnFeature::onActionTriggered(bool isChecked)
|
||||
void ToggleItemsOnFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
ToggleItemsFeatureImpl::setObjectToggleStateForSelection(ToggleItemsFeatureImpl::TOGGLE_ON);
|
||||
ToggleItemsFeatureImpl::setObjectToggleStateForSelection( ToggleItemsFeatureImpl::TOGGLE_ON );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsOnFeature::setupActionLook(QAction* actionToSetup)
|
||||
void ToggleItemsOnFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
if (ToggleItemsFeatureImpl::isToggleCommandsForSubItems())
|
||||
actionToSetup->setText("Sub Items On");
|
||||
if ( ToggleItemsFeatureImpl::isToggleCommandsForSubItems() )
|
||||
actionToSetup->setText( "Sub Items On" );
|
||||
else
|
||||
actionToSetup->setText("On");
|
||||
|
||||
actionToSetup->setIcon(QIcon(":/cafCommandFeatures/ToggleOnL16x16.png"));
|
||||
actionToSetup->setText( "On" );
|
||||
|
||||
actionToSetup->setIcon( QIcon( ":/cafCommandFeatures/ToggleOnL16x16.png" ) );
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
@@ -40,19 +40,18 @@
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class ToggleItemsOnFeature : public caf::CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
protected:
|
||||
|
||||
protected:
|
||||
// Overrides
|
||||
bool isCommandEnabled() override;
|
||||
void onActionTriggered( bool isChecked ) override;
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
@@ -40,79 +40,76 @@
|
||||
|
||||
#include "cafSelectionManager.h"
|
||||
|
||||
#include <QAction>
|
||||
#include "cafPdmObjectHandle.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmObjectHandle.h"
|
||||
#include "cafPdmUiItem.h"
|
||||
#include <QAction>
|
||||
|
||||
namespace caf
|
||||
{
|
||||
|
||||
CAF_CMD_SOURCE_INIT(ToggleItemsOnOthersOffFeature, "cafToggleItemsOnOthersOffFeature");
|
||||
CAF_CMD_SOURCE_INIT( ToggleItemsOnOthersOffFeature, "cafToggleItemsOnOthersOffFeature" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool ToggleItemsOnOthersOffFeature::isCommandEnabled()
|
||||
bool ToggleItemsOnOthersOffFeature::isCommandEnabled()
|
||||
{
|
||||
std::vector<caf::PdmObject*> selectedObjects;
|
||||
caf::SelectionManager::instance()->objectsByType(&selectedObjects);
|
||||
caf::SelectionManager::instance()->objectsByType( &selectedObjects );
|
||||
|
||||
caf::PdmFieldHandle* commonParent = verifySameParentForSelection(selectedObjects);
|
||||
std::vector<caf::PdmObjectHandle*> children = childObjects(commonParent);
|
||||
caf::PdmFieldHandle* commonParent = verifySameParentForSelection( selectedObjects );
|
||||
std::vector<caf::PdmObjectHandle*> children = childObjects( commonParent );
|
||||
|
||||
return commonParent != nullptr
|
||||
&& children.size() > 0
|
||||
&& objectToggleField(children.front())
|
||||
&& children.size() > selectedObjects.size();
|
||||
return commonParent != nullptr && children.size() > 0 && objectToggleField( children.front() ) &&
|
||||
children.size() > selectedObjects.size();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsOnOthersOffFeature::onActionTriggered(bool isChecked)
|
||||
void ToggleItemsOnOthersOffFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
std::vector<caf::PdmObject*> selectedObjects;
|
||||
caf::SelectionManager::instance()->objectsByType(&selectedObjects);
|
||||
caf::SelectionManager::instance()->objectsByType( &selectedObjects );
|
||||
|
||||
// First toggle off all siblings
|
||||
|
||||
caf::PdmFieldHandle* commonParent = verifySameParentForSelection(selectedObjects);
|
||||
caf::PdmFieldHandle* commonParent = verifySameParentForSelection( selectedObjects );
|
||||
|
||||
for (caf::PdmObjectHandle* child : childObjects(commonParent))
|
||||
for ( caf::PdmObjectHandle* child : childObjects( commonParent ) )
|
||||
{
|
||||
caf::PdmField<bool>* field = objectToggleField(child);
|
||||
caf::PdmField<bool>* field = objectToggleField( child );
|
||||
|
||||
if (field)
|
||||
if ( field )
|
||||
{
|
||||
field->setValueWithFieldChanged(false);
|
||||
field->setValueWithFieldChanged( false );
|
||||
}
|
||||
}
|
||||
|
||||
// Then toggle on the selected item(s)
|
||||
for (caf::PdmObject* selectedObject : selectedObjects)
|
||||
for ( caf::PdmObject* selectedObject : selectedObjects )
|
||||
{
|
||||
caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>(selectedObject->objectToggleField());
|
||||
caf::PdmField<bool>* field = dynamic_cast<caf::PdmField<bool>*>( selectedObject->objectToggleField() );
|
||||
|
||||
field->setValueWithFieldChanged(true);
|
||||
field->setValueWithFieldChanged( true );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void ToggleItemsOnOthersOffFeature::setupActionLook(QAction* actionToSetup)
|
||||
void ToggleItemsOnOthersOffFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setText("On - Others Off");
|
||||
|
||||
actionToSetup->setIcon(QIcon(":/cafCommandFeatures/ToggleOnOthersOffL16x16.png"));
|
||||
actionToSetup->setText( "On - Others Off" );
|
||||
|
||||
actionToSetup->setIcon( QIcon( ":/cafCommandFeatures/ToggleOnOthersOffL16x16.png" ) );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* ToggleItemsOnOthersOffFeature::verifySameParentForSelection(const std::vector<caf::PdmObject*>& selection)
|
||||
caf::PdmFieldHandle*
|
||||
ToggleItemsOnOthersOffFeature::verifySameParentForSelection( const std::vector<caf::PdmObject*>& selection )
|
||||
{
|
||||
caf::PdmFieldHandle* sameParent = nullptr;
|
||||
|
||||
@@ -137,29 +134,29 @@ caf::PdmFieldHandle* ToggleItemsOnOthersOffFeature::verifySameParentForSelection
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<caf::PdmObjectHandle*> ToggleItemsOnOthersOffFeature::childObjects(caf::PdmFieldHandle* parent)
|
||||
std::vector<caf::PdmObjectHandle*> ToggleItemsOnOthersOffFeature::childObjects( caf::PdmFieldHandle* parent )
|
||||
{
|
||||
std::vector<caf::PdmObjectHandle*> children;
|
||||
if ( parent )
|
||||
{
|
||||
parent->childObjects(&children);
|
||||
parent->childObjects( &children );
|
||||
}
|
||||
return children;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmField<bool>* ToggleItemsOnOthersOffFeature::objectToggleField(caf::PdmObjectHandle* objectHandle)
|
||||
caf::PdmField<bool>* ToggleItemsOnOthersOffFeature::objectToggleField( caf::PdmObjectHandle* objectHandle )
|
||||
{
|
||||
caf::PdmUiObjectHandle* childUiObject = uiObj(objectHandle);
|
||||
caf::PdmUiObjectHandle* childUiObject = uiObj( objectHandle );
|
||||
if ( childUiObject && childUiObject->objectToggleField() )
|
||||
{
|
||||
return dynamic_cast<caf::PdmField<bool>*>(childUiObject->objectToggleField());
|
||||
return dynamic_cast<caf::PdmField<bool>*>( childUiObject->objectToggleField() );
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
@@ -41,28 +41,27 @@
|
||||
|
||||
namespace caf
|
||||
{
|
||||
class PdmFieldHandle;
|
||||
class PdmObject;
|
||||
class PdmObjectHandle;
|
||||
|
||||
class PdmFieldHandle;
|
||||
class PdmObject;
|
||||
class PdmObjectHandle;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
//==================================================================================================
|
||||
class ToggleItemsOnOthersOffFeature : public caf::CmdFeature
|
||||
{
|
||||
CAF_CMD_HEADER_INIT;
|
||||
protected:
|
||||
|
||||
protected:
|
||||
// Overrides
|
||||
bool isCommandEnabled() override;
|
||||
void onActionTriggered( bool isChecked ) override;
|
||||
void setupActionLook( QAction* actionToSetup ) override;
|
||||
|
||||
private:
|
||||
caf::PdmFieldHandle* verifySameParentForSelection(const std::vector<caf::PdmObject*>& selectedObjects);
|
||||
std::vector<caf::PdmObjectHandle*> childObjects(caf::PdmFieldHandle* parent);
|
||||
caf::PdmField<bool>* objectToggleField(caf::PdmObjectHandle* objectHandle);
|
||||
caf::PdmFieldHandle* verifySameParentForSelection( const std::vector<caf::PdmObject*>& selectedObjects );
|
||||
std::vector<caf::PdmObjectHandle*> childObjects( caf::PdmFieldHandle* parent );
|
||||
caf::PdmField<bool>* objectToggleField( caf::PdmObjectHandle* objectHandle );
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace caf
|
||||
Reference in New Issue
Block a user