Example #1
0
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();
}