add an handy DocumentViewport::isValid() and use it where possible instead of doing checks manually

svn path=/trunk/playground/graphics/okular/; revision=616667
remotes/origin/KDE/4.0
Pino Toscano 20 years ago
parent 349dfb7eb1
commit b7328d7234
  1. 13
      core/document.cpp
  2. 1
      core/document.h
  3. 2
      core/link.cpp
  4. 2
      generators/poppler/generator_pdf.cpp
  5. 2
      ui/toc.cpp

@ -269,7 +269,7 @@ bool Document::openDocument( const QString & docFile, const KUrl& url, const KMi
// 4. set initial page (restoring the page saved in xml if loaded) // 4. set initial page (restoring the page saved in xml if loaded)
DocumentViewport loadedViewport = (*d->viewportIterator); DocumentViewport loadedViewport = (*d->viewportIterator);
if ( loadedViewport.pageNumber != -1 ) if ( loadedViewport.isValid() )
{ {
(*d->viewportIterator) = DocumentViewport(); (*d->viewportIterator) = DocumentViewport();
if ( loadedViewport.pageNumber >= (int)pages_vector.size() ) if ( loadedViewport.pageNumber >= (int)pages_vector.size() )
@ -295,7 +295,7 @@ bool Document::openDocument( const QString & docFile, const KUrl& url, const KMi
} }
d->memCheckTimer->start( 2000 ); d->memCheckTimer->start( 2000 );
if (d->nextDocumentViewport.pageNumber != -1) if (d->nextDocumentViewport.isValid())
{ {
setViewport(d->nextDocumentViewport); setViewport(d->nextDocumentViewport);
d->nextDocumentViewport = DocumentViewport(); d->nextDocumentViewport = DocumentViewport();
@ -865,7 +865,7 @@ void Document::setViewport( const DocumentViewport & viewport, int excludeId, bo
// kDebug() << "setViewport with the same viewport." << endl; // kDebug() << "setViewport with the same viewport." << endl;
// set internal viewport taking care of history // set internal viewport taking care of history
if ( oldViewport.pageNumber == viewport.pageNumber || oldViewport.pageNumber == -1 ) if ( oldViewport.pageNumber == viewport.pageNumber || !oldViewport.isValid() )
{ {
// if page is unchanged save the viewport at current position in queue // if page is unchanged save the viewport at current position in queue
oldViewport = viewport; oldViewport = viewport;
@ -1279,7 +1279,7 @@ void Document::processLink( const Link * link )
else else
{ {
// skip local links that point to nowhere (broken ones) // skip local links that point to nowhere (broken ones)
if (d->nextDocumentViewport.pageNumber == -1) if (!d->nextDocumentViewport.isValid())
return; return;
setViewport( d->nextDocumentViewport, -1, true ); setViewport( d->nextDocumentViewport, -1, true );
@ -2054,6 +2054,11 @@ QString DocumentViewport::toString() const
return s; return s;
} }
bool DocumentViewport::isValid() const
{
return pageNumber != -1;
}
bool DocumentViewport::operator==( const DocumentViewport & vp ) const bool DocumentViewport::operator==( const DocumentViewport & vp ) const
{ {
bool equal = ( pageNumber == vp.pageNumber ) && bool equal = ( pageNumber == vp.pageNumber ) &&

@ -235,6 +235,7 @@ class OKULAR_EXPORT DocumentViewport
DocumentViewport( int pageNumber = -1 ); DocumentViewport( int pageNumber = -1 );
DocumentViewport( const QString & xmlDesc ); DocumentViewport( const QString & xmlDesc );
QString toString() const; QString toString() const;
bool isValid() const;
bool operator==( const DocumentViewport & vp ) const; bool operator==( const DocumentViewport & vp ) const;
}; };

@ -37,7 +37,7 @@ Link::LinkType LinkGoto::linkType() const
QString LinkGoto::linkTip() const QString LinkGoto::linkTip() const
{ {
return m_extFileName.isEmpty() ? ( m_vp.pageNumber != -1 ? i18n( "Go to page %1", m_vp.pageNumber + 1 ) : "" ) : return m_extFileName.isEmpty() ? ( m_vp.isValid() ? i18n( "Go to page %1", m_vp.pageNumber + 1 ) : "" ) :
i18n("Open external file"); i18n("Open external file");
} }

@ -74,7 +74,7 @@ static void fillViewportFromLinkDestination( Okular::DocumentViewport &viewport,
{ {
viewport.pageNumber = destination.pageNumber() - 1; viewport.pageNumber = destination.pageNumber() - 1;
if (viewport.pageNumber == -1) return; if (!viewport.isValid()) return;
// get destination position // get destination position
// TODO add other attributes to the viewport (taken from link) // TODO add other attributes to the viewport (taken from link)

@ -57,7 +57,7 @@ class TOCItem : public QTreeWidgetItem
} }
QString text = e.tagName(); QString text = e.tagName();
if ( m_viewport.pageNumber != -1 ) if ( m_viewport.isValid() )
text.prepend( QString::number( m_viewport.pageNumber + 1 ) + PAGEITEMDELEGATE_SEPARATOR ); text.prepend( QString::number( m_viewport.pageNumber + 1 ) + PAGEITEMDELEGATE_SEPARATOR );
setText( 0, text ); setText( 0, text );
} }

Loading…
Cancel
Save