[netinstall] Implement immutable groups
- An immutable group doesn't show a checkbox at all
This commit is contained in:
parent
7a42a4d71f
commit
63b940a623
@ -119,7 +119,7 @@ PackageModel::data( const QModelIndex& index, int role ) const
|
|||||||
switch ( role )
|
switch ( role )
|
||||||
{
|
{
|
||||||
case Qt::CheckStateRole:
|
case Qt::CheckStateRole:
|
||||||
return index.column() == NameColumn ? item->isSelected() : QVariant();
|
return index.column() == NameColumn ? ( item->isImmutable() ? QVariant() : item->isSelected() ) : QVariant();
|
||||||
case Qt::DisplayRole:
|
case Qt::DisplayRole:
|
||||||
return item->isHidden() ? QVariant() : item->data( index.column() );
|
return item->isHidden() ? QVariant() : item->data( index.column() );
|
||||||
case MetaExpandRole:
|
case MetaExpandRole:
|
||||||
@ -158,6 +158,11 @@ PackageModel::flags( const QModelIndex& index ) const
|
|||||||
}
|
}
|
||||||
if ( index.column() == NameColumn )
|
if ( index.column() == NameColumn )
|
||||||
{
|
{
|
||||||
|
PackageTreeItem* item = static_cast< PackageTreeItem* >( index.internalPointer() );
|
||||||
|
if ( item->isImmutable() )
|
||||||
|
{
|
||||||
|
return QAbstractItemModel::flags( index ); //Qt::NoItemFlags;
|
||||||
|
}
|
||||||
return Qt::ItemIsUserCheckable | QAbstractItemModel::flags( index );
|
return Qt::ItemIsUserCheckable | QAbstractItemModel::flags( index );
|
||||||
}
|
}
|
||||||
return QAbstractItemModel::flags( index );
|
return QAbstractItemModel::flags( index );
|
||||||
|
@ -41,6 +41,7 @@ PackageTreeItem::PackageTreeItem( const QString& packageName, PackageTreeItem* p
|
|||||||
, m_packageName( packageName )
|
, m_packageName( packageName )
|
||||||
, m_selected( parentCheckState( parent ) )
|
, m_selected( parentCheckState( parent ) )
|
||||||
, m_isGroup( false )
|
, m_isGroup( false )
|
||||||
|
, m_showReadOnly( parent ? parent->isImmutable() : false )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,6 +97,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
bool expandOnStart() const { return m_startExpanded; }
|
bool expandOnStart() const { return m_startExpanded; }
|
||||||
|
|
||||||
|
/** @brief Is this an immutable item?
|
||||||
|
*
|
||||||
|
* Groups can be immutable: then you can't toggle the selected
|
||||||
|
* state of any of its items.
|
||||||
|
*/
|
||||||
|
bool isImmutable() const { return m_showReadOnly; }
|
||||||
|
|
||||||
/** @brief is this item selected?
|
/** @brief is this item selected?
|
||||||
*
|
*
|
||||||
* Groups may be partially selected; packages are only on or off.
|
* Groups may be partially selected; packages are only on or off.
|
||||||
|
Loading…
Reference in New Issue
Block a user