CHANGED: #1471 Removing widget properties from the widget properties dialog will now work.
This commit is contained in:
parent
b223bb43ad
commit
c7131429c9
3 changed files with 37 additions and 3 deletions
|
@ -84,6 +84,14 @@ namespace GUIEditor
|
|||
return removeNode( info->name );
|
||||
}
|
||||
|
||||
/// Removes this property from all of the nodes
|
||||
void removePropertyFromAll( const SPropEntry &prop )
|
||||
{
|
||||
if( root == NULL )
|
||||
return;
|
||||
root->removePropertyFromAll( prop );
|
||||
}
|
||||
|
||||
/// Get the node names and put them into the vector
|
||||
void getNames( std::vector< std::string > &v ) const
|
||||
{
|
||||
|
|
|
@ -144,6 +144,33 @@ namespace GUIEditor
|
|||
info.props.push_back( prop );
|
||||
}
|
||||
|
||||
/// Removes this property from the node
|
||||
void removeProperty( const SPropEntry &prop )
|
||||
{
|
||||
std::vector< SPropEntry >::const_iterator itr = info.props.begin();
|
||||
while( itr != info.props.end() )
|
||||
{
|
||||
if( ( itr->propName == prop.propName ) &&
|
||||
( itr->propType == prop.propType ) &&
|
||||
( itr->propDefault == prop.propDefault ) )
|
||||
break;
|
||||
++itr;
|
||||
}
|
||||
if( itr != info.props.end() )
|
||||
info.props.erase( itr );
|
||||
}
|
||||
|
||||
/// Removes this property from all of the nodes recursively
|
||||
void removePropertyFromAll( const SPropEntry &prop )
|
||||
{
|
||||
removeProperty( prop );
|
||||
for( std::vector< CWidgetInfoTreeNode* >::iterator itr = children.begin(); itr != children.end(); ++itr )
|
||||
{
|
||||
( *itr )->removePropertyFromAll( prop );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Find the node by it's name and then return a pointer to it
|
||||
CWidgetInfoTreeNode* findNodeByName( const std::string &name )
|
||||
{
|
||||
|
|
|
@ -95,9 +95,8 @@ namespace GUIEditor{
|
|||
if( reply != QMessageBox::Yes )
|
||||
return;
|
||||
|
||||
/*
|
||||
Remove the damned thing here
|
||||
*/
|
||||
SPropEntry prop = *itr;
|
||||
tree->removePropertyFromAll( prop );
|
||||
|
||||
onListSelectionChanged( widgetList->currentRow() );
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue