void KACLListView::setACL( const KACL &acl ) { if ( !acl.isValid() ) return; // Remove any entries left over from displaying a previous ACL m_ACL = acl; fillItemsFromACL( m_ACL ); m_mask = acl.maskPermissions( m_hasMask ); calculateEffectiveRights(); }
void KACLListView::setDefaultACL( const KACL &acl ) { if ( !acl.isValid() ) return; m_defaultACL = acl; fillItemsFromACL( m_defaultACL, true ); calculateEffectiveRights(); }
void KACLListView::fillItemsFromACL(const KACL &pACL, bool defaults) { // clear out old entries of that ilk QListViewItemIterator it(this); while(KACLListViewItem *item = static_cast< KACLListViewItem * >(it.current())) { ++it; if(item->isDefault == defaults) delete item; } KACLListViewItem *item = new KACLListViewItem(this, User, pACL.ownerPermissions(), defaults); item = new KACLListViewItem(this, Group, pACL.owningGroupPermissions(), defaults); item = new KACLListViewItem(this, Others, pACL.othersPermissions(), defaults); bool hasMask = false; unsigned short mask = pACL.maskPermissions(hasMask); if(hasMask) { item = new KACLListViewItem(this, Mask, mask, defaults); } // read all named user entries const ACLUserPermissionsList &userList = pACL.allUserPermissions(); ACLUserPermissionsConstIterator itu = userList.begin(); while(itu != userList.end()) { new KACLListViewItem(this, NamedUser, (*itu).second, defaults, (*itu).first); ++itu; } // and now all named groups const ACLUserPermissionsList &groupList = pACL.allGroupPermissions(); ACLUserPermissionsConstIterator itg = groupList.begin(); while(itg != groupList.end()) { new KACLListViewItem(this, NamedGroup, (*itg).second, defaults, (*itg).first); ++itg; } }