Start making the annotation system DRM-aware. In case the document does not want changes to its annotations (and okular is set to obey),

- disable the review toolbar
- make the annotation prioerties dialog read-only
- disable the removal

svn path=/trunk/KDE/kdegraphics/okular/; revision=705415
This commit is contained in:
Pino Toscano 2007-08-27 22:11:18 +00:00
parent b480fc0670
commit 8b0a80ba4b
3 changed files with 35 additions and 6 deletions

View file

@ -41,6 +41,7 @@ void AnnotationPopup::exec( const QPoint &point )
menu.addTitle( i18n( "Annotation" ) );
popoutWindow = menu.addAction( KIcon( "comment" ), i18n( "&Open Pop-up Note" ) );
deleteNote = menu.addAction( KIcon( "list-remove" ), i18n( "&Delete" ) );
deleteNote->setEnabled( mDocument->isAllowed( Okular::AllowNotes ) );
if ( mAnnotation->flags() & Okular::Annotation::DenyDelete )
deleteNote->setEnabled( false );

View file

@ -34,11 +34,20 @@ AnnotsPropertiesDialog::AnnotsPropertiesDialog( QWidget *parent, Okular::Documen
{
setFaceType( Tabbed );
m_annot=ann;
bool canEditAnnotations = m_document->isAllowed( Okular::AllowNotes );
setCaptionTextbyAnnotType();
setButtons( Ok | Apply | Cancel );
enableButton( Apply, false );
connect( this, SIGNAL( applyClicked() ), this, SLOT( slotapply() ) );
connect( this, SIGNAL( okClicked() ), this, SLOT( slotapply() ) );
if ( canEditAnnotations )
{
setButtons( Ok | Apply | Cancel );
enableButton( Apply, false );
connect( this, SIGNAL( applyClicked() ), this, SLOT( slotapply() ) );
connect( this, SIGNAL( okClicked() ), this, SLOT( slotapply() ) );
}
else
{
setButtons( Close );
setDefaultButton( Close );
}
m_annotWidget = AnnotationWidgetFactory::widgetFor( ann );
@ -55,6 +64,7 @@ AnnotsPropertiesDialog::AnnotsPropertiesDialog( QWidget *parent, Okular::Documen
hlay->addWidget( tmplabel );
colorBn = new KColorButton( page );
colorBn->setColor( ann->style().color() );
colorBn->setEnabled( canEditAnnotations );
tmplabel->setBuddy( colorBn );
hlay->addWidget( colorBn );
@ -65,11 +75,16 @@ AnnotsPropertiesDialog::AnnotsPropertiesDialog( QWidget *parent, Okular::Documen
m_opacity = new KIntNumInput( page );
m_opacity->setRange( 0, 100, 1, true );
m_opacity->setValue( (int)( ann->style().opacity() * 100 ) );
m_opacity->setEnabled( canEditAnnotations );
tmplabel->setBuddy( m_opacity );
hlay->addWidget( m_opacity );
if ( m_annotWidget )
lay->addWidget( m_annotWidget->widget() );
{
QWidget * configWidget = m_annotWidget->widget();
lay->addWidget( configWidget );
configWidget->setEnabled( canEditAnnotations );
}
lay->addItem( new QSpacerItem( 5, 5, QSizePolicy::Fixed, QSizePolicy::Expanding ) );
//END tab1
@ -81,6 +96,7 @@ AnnotsPropertiesDialog::AnnotsPropertiesDialog( QWidget *parent, Okular::Documen
QGridLayout * gridlayout = new QGridLayout( page );
tmplabel = new QLabel( i18n( "&Author:" ), page );
AuthorEdit = new QLineEdit( ann->author(), page );
AuthorEdit->setEnabled( canEditAnnotations );
tmplabel->setBuddy( AuthorEdit );
gridlayout->addWidget( tmplabel, 0, 0 );
gridlayout->addWidget( AuthorEdit, 0, 1 );
@ -109,6 +125,7 @@ AnnotsPropertiesDialog::AnnotsPropertiesDialog( QWidget *parent, Okular::Documen
m_contents->setAcceptRichText( false );
m_contents->setReadOnly( true );
m_contents->setPlainText( ann->contents() );
m_contents->setEnabled( canEditAnnotations );
gridlayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Fixed, QSizePolicy::Expanding ), 4, 0 );
//END advance

View file

@ -714,8 +714,19 @@ void PageView::notifySetup( const QVector< Okular::Page * > & pageSet, bool docu
{ // may be null if dummy mode is on
d->aToggleForms->setEnabled( !pageSet.isEmpty() && hasformwidgets );
}
bool allowAnnotations = d->document->isAllowed( Okular::AllowNotes );
if ( d->annotator )
d->annotator->setTextToolsEnabled( d->document->supportsSearching() );
{
if ( allowAnnotations )
{
d->annotator->setTextToolsEnabled( d->document->supportsSearching() );
}
else if ( d->aToggleAnnotator->isChecked() )
{
d->aToggleAnnotator->trigger();
}
}
d->aToggleAnnotator->setEnabled( allowAnnotations );
}
void PageView::notifyViewportChanged( bool smoothMove )