mirror of
https://invent.kde.org/graphics/okular
synced 2024-10-12 10:53:09 +00:00
Review toolbar:
- enable/disable (instead of hide/show) the tools that cannot be constructed (eg due to the document not extracting text) - disable the tools when there is no document open svn path=/trunk/KDE/kdegraphics/okular/; revision=746293
This commit is contained in:
parent
be088ab698
commit
995972052d
|
@ -769,6 +769,7 @@ void PageView::notifySetup( const QVector< Okular::Page * > & pageSet, int setup
|
||||||
bool allowAnnotations = d->document->isAllowed( Okular::AllowNotes );
|
bool allowAnnotations = d->document->isAllowed( Okular::AllowNotes );
|
||||||
if ( d->annotator )
|
if ( d->annotator )
|
||||||
{
|
{
|
||||||
|
d->annotator->setToolsEnabled( haspages );
|
||||||
if ( allowAnnotations )
|
if ( allowAnnotations )
|
||||||
{
|
{
|
||||||
d->annotator->setTextToolsEnabled( d->document->supportsSearching() );
|
d->annotator->setTextToolsEnabled( d->document->supportsSearching() );
|
||||||
|
|
|
@ -578,8 +578,8 @@ class TextSelectorEngine : public AnnotatorEngine
|
||||||
|
|
||||||
PageViewAnnotator::PageViewAnnotator( PageView * parent, Okular::Document * storage )
|
PageViewAnnotator::PageViewAnnotator( PageView * parent, Okular::Document * storage )
|
||||||
: QObject( parent ), m_document( storage ), m_pageView( parent ),
|
: QObject( parent ), m_document( storage ), m_pageView( parent ),
|
||||||
m_toolBar( 0 ), m_engine( 0 ), m_textToolsEnabled( true ), m_lastToolID( -1 ),
|
m_toolBar( 0 ), m_engine( 0 ), m_textToolsEnabled( false ), m_toolsEnabled( false ),
|
||||||
m_lockedItem( 0 )
|
m_lastToolID( -1 ), m_lockedItem( 0 )
|
||||||
{
|
{
|
||||||
// load the tools from the 'xml tools definition' file. store the tree internally.
|
// load the tools from the 'xml tools definition' file. store the tree internally.
|
||||||
QFile infoFile( KStandardDirs::locate("data", "okular/tools.xml") );
|
QFile infoFile( KStandardDirs::locate("data", "okular/tools.xml") );
|
||||||
|
@ -629,25 +629,6 @@ PageViewAnnotator::~PageViewAnnotator()
|
||||||
delete m_engine;
|
delete m_engine;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QLinkedList<AnnotationToolItem> filteredItems( const QLinkedList<AnnotationToolItem> &items, bool textTools )
|
|
||||||
{
|
|
||||||
if ( textTools )
|
|
||||||
{
|
|
||||||
return items;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QLinkedList<AnnotationToolItem> newitems;
|
|
||||||
QLinkedList<AnnotationToolItem>::ConstIterator it = items.begin(), itEnd = items.end();
|
|
||||||
for ( ; it != itEnd; ++it )
|
|
||||||
{
|
|
||||||
if ( !(*it).isText )
|
|
||||||
newitems.append( *it );
|
|
||||||
}
|
|
||||||
return newitems;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void PageViewAnnotator::setEnabled( bool on )
|
void PageViewAnnotator::setEnabled( bool on )
|
||||||
{
|
{
|
||||||
if ( !on )
|
if ( !on )
|
||||||
|
@ -670,7 +651,9 @@ void PageViewAnnotator::setEnabled( bool on )
|
||||||
{
|
{
|
||||||
m_toolBar = new PageViewToolBar( m_pageView, m_pageView->viewport() );
|
m_toolBar = new PageViewToolBar( m_pageView, m_pageView->viewport() );
|
||||||
m_toolBar->setSide( (PageViewToolBar::Side)Okular::Settings::editToolBarPlacement() );
|
m_toolBar->setSide( (PageViewToolBar::Side)Okular::Settings::editToolBarPlacement() );
|
||||||
m_toolBar->setItems( filteredItems( m_items, m_textToolsEnabled ) );
|
m_toolBar->setItems( m_items );
|
||||||
|
m_toolBar->setToolsEnabled( m_toolsEnabled );
|
||||||
|
m_toolBar->setTextToolsEnabled( m_textToolsEnabled );
|
||||||
connect( m_toolBar, SIGNAL( toolSelected(int) ),
|
connect( m_toolBar, SIGNAL( toolSelected(int) ),
|
||||||
this, SLOT( slotToolSelected(int) ) );
|
this, SLOT( slotToolSelected(int) ) );
|
||||||
connect( m_toolBar, SIGNAL( orientationChanged(int) ),
|
connect( m_toolBar, SIGNAL( orientationChanged(int) ),
|
||||||
|
@ -703,12 +686,16 @@ void PageViewAnnotator::setEnabled( bool on )
|
||||||
|
|
||||||
void PageViewAnnotator::setTextToolsEnabled( bool enabled )
|
void PageViewAnnotator::setTextToolsEnabled( bool enabled )
|
||||||
{
|
{
|
||||||
if ( m_textToolsEnabled == enabled )
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_textToolsEnabled = enabled;
|
m_textToolsEnabled = enabled;
|
||||||
if ( m_toolBar )
|
if ( m_toolBar )
|
||||||
m_toolBar->setItems( filteredItems( m_items, m_textToolsEnabled ) );
|
m_toolBar->setTextToolsEnabled( m_textToolsEnabled );
|
||||||
|
}
|
||||||
|
|
||||||
|
void PageViewAnnotator::setToolsEnabled( bool enabled )
|
||||||
|
{
|
||||||
|
m_toolsEnabled = enabled;
|
||||||
|
if ( m_toolBar )
|
||||||
|
m_toolBar->setToolsEnabled( m_toolsEnabled );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PageViewAnnotator::routeEvents() const
|
bool PageViewAnnotator::routeEvents() const
|
||||||
|
|
|
@ -58,6 +58,8 @@ class PageViewAnnotator : public QObject
|
||||||
// called to toggle the usage of text annotating tools
|
// called to toggle the usage of text annotating tools
|
||||||
void setTextToolsEnabled( bool enabled );
|
void setTextToolsEnabled( bool enabled );
|
||||||
|
|
||||||
|
void setToolsEnabled( bool enabled );
|
||||||
|
|
||||||
// methods used when creating the annotation
|
// methods used when creating the annotation
|
||||||
bool routeEvents() const;
|
bool routeEvents() const;
|
||||||
QRect routeEvent( QMouseEvent * event, PageViewItem * item );
|
QRect routeEvent( QMouseEvent * event, PageViewItem * item );
|
||||||
|
@ -78,6 +80,7 @@ class PageViewAnnotator : public QObject
|
||||||
QDomElement m_toolsDefinition;
|
QDomElement m_toolsDefinition;
|
||||||
QLinkedList<AnnotationToolItem> m_items;
|
QLinkedList<AnnotationToolItem> m_items;
|
||||||
bool m_textToolsEnabled;
|
bool m_textToolsEnabled;
|
||||||
|
bool m_toolsEnabled;
|
||||||
|
|
||||||
// creation related variables
|
// creation related variables
|
||||||
int m_lastToolID;
|
int m_lastToolID;
|
||||||
|
|
|
@ -332,7 +332,7 @@ void PageViewTopMessage::setActionButton( QAction * action )
|
||||||
/*********************/
|
/*********************/
|
||||||
|
|
||||||
ToolBarButton::ToolBarButton( QWidget * parent, const AnnotationToolItem &item )
|
ToolBarButton::ToolBarButton( QWidget * parent, const AnnotationToolItem &item )
|
||||||
: QToolButton( parent ), m_id( item.id )
|
: QToolButton( parent ), m_id( item.id ), m_isText( item.isText )
|
||||||
{
|
{
|
||||||
setCheckable( true );
|
setCheckable( true );
|
||||||
setAutoRaise( true );
|
setAutoRaise( true );
|
||||||
|
@ -797,4 +797,19 @@ void ToolBarPrivate::selectButton( ToolBarButton * button )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PageViewToolBar::setToolsEnabled( bool on )
|
||||||
|
{
|
||||||
|
QLinkedList< ToolBarButton * >::const_iterator it = d->buttons.begin(), end = d->buttons.end();
|
||||||
|
for ( ; it != end; ++it )
|
||||||
|
(*it)->setEnabled( on );
|
||||||
|
}
|
||||||
|
|
||||||
|
void PageViewToolBar::setTextToolsEnabled( bool on )
|
||||||
|
{
|
||||||
|
QLinkedList< ToolBarButton * >::const_iterator it = d->buttons.begin(), end = d->buttons.end();
|
||||||
|
for ( ; it != end; ++it )
|
||||||
|
if ( (*it)->isText() )
|
||||||
|
(*it)->setEnabled( on );
|
||||||
|
}
|
||||||
|
|
||||||
#include "pageviewutils.moc"
|
#include "pageviewutils.moc"
|
||||||
|
|
|
@ -134,9 +134,11 @@ class ToolBarButton : public QToolButton
|
||||||
|
|
||||||
ToolBarButton( QWidget * parent, const AnnotationToolItem &item );
|
ToolBarButton( QWidget * parent, const AnnotationToolItem &item );
|
||||||
int buttonID() const { return m_id; }
|
int buttonID() const { return m_id; }
|
||||||
|
bool isText() const { return m_isText; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int m_id;
|
int m_id;
|
||||||
|
bool m_isText;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -165,6 +167,9 @@ class PageViewToolBar : public QWidget
|
||||||
|
|
||||||
void selectButton( int id );
|
void selectButton( int id );
|
||||||
|
|
||||||
|
void setToolsEnabled( bool on );
|
||||||
|
void setTextToolsEnabled( bool on );
|
||||||
|
|
||||||
// query properties
|
// query properties
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
Loading…
Reference in a new issue