diff --git a/ui/side_reviews.cpp b/ui/side_reviews.cpp index 5eca64139..976408f52 100644 --- a/ui/side_reviews.cpp +++ b/ui/side_reviews.cpp @@ -212,24 +212,20 @@ void Reviews::activated( const QModelIndex &index ) m_document->setViewport( vp, -1, true ); } -QModelIndexList Reviews::retrieveAnnotations(const QModelIndex& idx) +QList Reviews::retrieveAnnotations(const QModelIndex& idx) const { - QModelIndexList ret; - if ( idx.isValid() ) + QList ret; + if(idx.isValid() && idx.model()->hasChildren(idx)) { - if ( idx.model()->hasChildren( idx ) ) + for(int i=0; irowCount(idx); i++) { - int rowCount = idx.model()->rowCount( idx ); - for ( int i = 0; i < rowCount; i++ ) - { - ret += retrieveAnnotations( idx.child( i, idx.column() ) ); - } - } - else - { - ret += idx; + ret += retrieveAnnotations(idx.child(i, idx.column())); } } + else if(idx.isValid()) + { + ret += idx; + } return ret; } @@ -245,14 +241,14 @@ void Reviews::contextMenuRequested( const QPoint &pos ) QModelIndexList indexes = m_view->selectionModel()->selectedIndexes(); Q_FOREACH ( const QModelIndex &index, indexes ) { - QModelIndexList annotations = retrieveAnnotations(index); - Q_FOREACH ( const QModelIndex &idx, annotations ) + QList annotations = retrieveAnnotations(index); + Q_FOREACH(const QModelIndex &idx, annotations) { const QModelIndex authorIndex = m_authorProxy->mapToSource( idx ); const QModelIndex filterIndex = m_groupProxy->mapToSource( authorIndex ); const QModelIndex annotIndex = m_filterProxy->mapToSource( filterIndex ); Okular::Annotation *annotation = m_model->annotationForIndex( annotIndex ); - if ( annotation ) + if(annotation) { const int pageNumber = m_model->data( annotIndex, AnnotationModel::PageRole ).toInt(); popup.addAnnotation( annotation, pageNumber ); diff --git a/ui/side_reviews.h b/ui/side_reviews.h index 38cc96bf4..ebbf478d2 100644 --- a/ui/side_reviews.h +++ b/ui/side_reviews.h @@ -56,7 +56,7 @@ class Reviews : public QWidget, public Okular::DocumentObserver void contextMenuRequested( const QPoint& ); private: - QModelIndexList retrieveAnnotations(const QModelIndex& idx); + QModelIndexList retrieveAnnotations(const QModelIndex& idx) const; // data fields (GUI) TreeView * m_view;