(#381) Handle key press events in new tree view

This commit is contained in:
Jacob Støren
2015-08-20 11:16:19 +02:00
parent 04368bd8a3
commit c75d09e3df
7 changed files with 167 additions and 5 deletions

View File

@@ -43,7 +43,7 @@ bool RicToggleItemsFeature::isCommandEnabled()
//--------------------------------------------------------------------------------------------------
void RicToggleItemsFeature::onActionTriggered(bool isChecked)
{
RicToggleItemsFeatureImpl::setObjectToggleStateForSelection(RicToggleItemsFeatureImpl::TOGGLE);
RicToggleItemsFeatureImpl::setObjectToggleStateForSelection(RicToggleItemsFeatureImpl::TOGGLE_SUBITEMS);
}
//--------------------------------------------------------------------------------------------------

View File

@@ -89,7 +89,7 @@ void RicToggleItemsFeatureImpl::setObjectToggleStateForSelection(SelectionToggle
{
std::vector<caf::PdmUiItem*> selectedItems;
caf::SelectionManager::instance()->selectedItems(selectedItems);
if (selectedItems.size() == 1)
if (state != TOGGLE && selectedItems.size() == 1)
{
// If only one item is selected, loop over its children, and toggle them instead of the
// selected item directly
@@ -118,7 +118,7 @@ void RicToggleItemsFeatureImpl::setObjectToggleStateForSelection(SelectionToggle
{
if (state == TOGGLE_ON) uiFieldHandle->setValueFromUi(true);
if (state == TOGGLE_OFF) uiFieldHandle->setValueFromUi(false);
if (state == TOGGLE) uiFieldHandle->setValueFromUi(!(field->v()));
if (state == TOGGLE_SUBITEMS) uiFieldHandle->setValueFromUi(!(field->v()));
}
}
}
@@ -138,7 +138,10 @@ void RicToggleItemsFeatureImpl::setObjectToggleStateForSelection(SelectionToggle
{
if (state == TOGGLE_ON) uiFieldHandle->setValueFromUi(true);
if (state == TOGGLE_OFF) uiFieldHandle->setValueFromUi(false);
if (state == TOGGLE) uiFieldHandle->setValueFromUi(!(field->v()));
if (state == TOGGLE_SUBITEMS || state == TOGGLE)
{
uiFieldHandle->setValueFromUi(!(field->v()));
}
}
}
}

View File

@@ -29,6 +29,7 @@ public:
{
TOGGLE_ON,
TOGGLE_OFF,
TOGGLE_SUBITEMS,
TOGGLE,
TOGGLE_UNDEFINED
};