예제 #1
0
void KACLListView::calculateEffectiveRights()
{
    QTreeWidgetItemIterator it( this );
    KACLListViewItem* pItem;
    while ( ( pItem = dynamic_cast<KACLListViewItem*>( *it ) ) != 0 )
    {
        ++it;
        pItem->calcEffectiveRights();
    }
}
예제 #2
0
void KACLListView::calculateEffectiveRights()
{
    TQListViewItemIterator it( this );
    KACLListViewItem* pItem;
    while ( ( pItem = dynamic_cast<KACLListViewItem*>( it.current() ) ) != 0 )
    {
        ++it;
        pItem->calcEffectiveRights();
    }
}
예제 #3
0
void KACLListView::slotRemoveEntry()
{
    QListViewItemIterator it(this, QListViewItemIterator::Selected);
    while(it.current())
    {
        KACLListViewItem *item = static_cast< KACLListViewItem * >(it.current());
        ++it;
        /* First check if it's a mask entry and if so, make sure that there is
         * either no name user or group entry, which means the mask can be
         * removed, or don't remove it, but reset it. That is allowed. */
        if(item->type == Mask)
        {
            bool itemWasDefault = item->isDefault;
            if(!itemWasDefault && maskCanBeDeleted())
            {
                m_hasMask = false;
                m_mask = 0;
                delete item;
            }
            else if(itemWasDefault && defaultMaskCanBeDeleted())
            {
                delete item;
            }
            else
            {
                item->value = 0;
                item->repaint();
            }
            if(!itemWasDefault)
                calculateEffectiveRights();
        }
        else
        {
            // for the base permissions, disable them, which is what libacl does
            if(!item->isDefault && (item->type == User || item->type == Group || item->type == Others))
            {
                item->value = 0;
                item->repaint();
            }
            else
            {
                delete item;
            }
        }
    }
}
예제 #4
0
void KACLEditWidget::KACLEditWidgetPrivate::_k_slotUpdateButtons()
{
    bool atLeastOneIsNotDeletable = false;
    bool atLeastOneIsNotAllowedToChangeType = false;
    int selectedCount = 0;
    QList<QTreeWidgetItem*> selected = m_listView->selectedItems();
    QListIterator<QTreeWidgetItem*> it( selected );
    while ( it.hasNext() ) {
        KACLListViewItem *item = static_cast<KACLListViewItem*>( it.next() );
        ++selectedCount;
        if ( !item->isDeletable() )
            atLeastOneIsNotDeletable = true;
        if ( !item->isAllowedToChangeType() )
            atLeastOneIsNotAllowedToChangeType = true;
    }
    m_EditBtn->setEnabled( selectedCount && !atLeastOneIsNotAllowedToChangeType );
    m_DelBtn->setEnabled( selectedCount && !atLeastOneIsNotDeletable );
}