void AddresseeEditorWidget::setAddressee( const KABC::Addressee &addr ) { if ( mAddressee.uid() == addr.uid() ) return; mAddressee = addr; bool readOnly = false; if ( KABC::Resource *res = addr.resource() ) { if ( res->readOnly() ) { readOnly = true; //Kolab resources have finer access control than planned in the overall design. } else if ( res->inherits( "KPIM::ResourceABC" ) ) { KPIM::ResourceABC *resAbc = static_cast<KPIM::ResourceABC *>( res ); QString subresource = resAbc->uidToResourceMap()[ addr.uid() ]; if ( !subresource.isEmpty() ) readOnly |= !resAbc->subresourceWritable( subresource ); } } setReadOnly( readOnly ); load(); }