@ -194,34 +194,41 @@ PackageTreeItem::setSelected( Qt::CheckState isSelected )
return ;
}
currentItem - > updateSelected ( ) ;
}
void
PackageTreeItem : : updateSelected ( )
{
// Figure out checked-state based on the children
int childrenSelected = 0 ;
int childrenPartiallySelected = 0 ;
for ( int i = 0 ; i < currentItem - > childCount ( ) ; i + + )
for ( int i = 0 ; i < c hildCount( ) ; i + + )
{
if ( currentItem - > child ( i ) - > isSelected ( ) = = Qt : : Checked )
if ( c hild( i ) - > isSelected ( ) = = Qt : : Checked )
{
childrenSelected + + ;
}
if ( c urrentItem- > c hild( i ) - > isSelected ( ) = = Qt : : PartiallyChecked )
if ( c hild( i ) - > isSelected ( ) = = Qt : : PartiallyChecked )
{
childrenPartiallySelected + + ;
}
}
if ( ! childrenSelected & & ! childrenPartiallySelected )
{
currentItem- > setSelected( Qt : : Unchecked ) ;
setSelected( Qt : : Unchecked ) ;
}
else if ( childrenSelected = = c urrentItem- > c hildCount( ) )
else if ( childrenSelected = = c hildCount( ) )
{
currentItem- > setSelected( Qt : : Checked ) ;
setSelected( Qt : : Checked ) ;
}
else
{
currentItem- > setSelected( Qt : : PartiallyChecked ) ;
setSelected( Qt : : PartiallyChecked ) ;
}
}
void
PackageTreeItem : : setChildrenSelected ( Qt : : CheckState isSelected )
{