reloading form widgets with layer show and hide

remotes/origin/gsoc2015_layer_feature
Saheb Preet Singh 11 years ago
parent 19e4a9abd6
commit d891436231
  1. 1
      part.cpp
  2. 3
      ui/formwidgets.cpp
  3. 7
      ui/layers.cpp
  4. 4
      ui/layers.h
  5. 14
      ui/pageview.cpp
  6. 1
      ui/pageview.h
  7. 12
      ui/pageviewutils.cpp
  8. 1
      ui/pageviewutils.h

@ -464,6 +464,7 @@ m_cliPresentation(false), m_cliPrint(false), m_embedMode(detectEmbedMode(parentW
connect( m_document, SIGNAL(sourceReferenceActivated(const QString&,int,int,bool*)), this, SLOT(slotHandleActivatedSourceReference(const QString&,int,int,bool*)) );
connect( m_pageView, SIGNAL(fitWindowToPage(QSize,QSize)), this, SIGNAL(fitWindowToPage(QSize,QSize)) );
rightLayout->addWidget( m_pageView );
m_layers->setPageView( m_pageView );
m_findBar = new FindBar( m_document, rightContainer );
rightLayout->addWidget( m_findBar );
m_bottomBar = new QWidget( rightContainer );

@ -267,9 +267,6 @@ void FormWidgetIface::moveTo( int x, int y )
bool FormWidgetIface::setVisibility( bool visible )
{
if ( !m_ff->isVisible() )
return false;
bool hadfocus = m_widget->hasFocus();
if ( hadfocus )
m_widget->clearFocus();

@ -18,6 +18,7 @@
// local includes
#include "core/document.h"
#include "ktreeviewsearchline.h"
#include "ui/pageview.h"
Layers::Layers(QWidget *parent, Okular::Document *document) : QWidget(parent), m_document(document)
{
@ -69,6 +70,7 @@ void Layers::notifySetup( const QVector< Okular::Page * > & /*pages*/, int /*set
m_searchLine->addTreeView( m_treeView );
emit hasLayers( true );
connect( layersModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), m_document, SLOT(reloadDocument()) );
connect( layersModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), m_pageView, SLOT(reloadForms()) );
}
else
{
@ -76,6 +78,11 @@ void Layers::notifySetup( const QVector< Okular::Page * > & /*pages*/, int /*set
}
}
void Layers::setPageView(PageView *pageView)
{
m_pageView = pageView;
}
void Layers::saveSearchOptions()
{
Okular::Settings::setLayersSearchRegularExpression( m_searchLine->regularExpression() );

@ -15,6 +15,7 @@
#include "okular_part_export.h"
class PageView;
class QModelIndex;
class QTreeView;
class KTreeViewSearchLine;
@ -36,6 +37,8 @@ Q_OBJECT
// inherited from DocumentObserver
void notifySetup( const QVector< Okular::Page * > & pages, int setupFlags );
void setPageView( PageView *pageView );
signals:
void hasLayers(bool has);
@ -47,6 +50,7 @@ Q_OBJECT
Okular::Document *m_document;
QTreeView *m_treeView;
KTreeViewSearchLine *m_searchLine;
PageView *m_pageView;
};
#endif

@ -1353,6 +1353,7 @@ void PageView::notifyCurrentPageChanged( int previous, int current )
// update zoom text and factor if in a ZoomFit/* zoom mode
if ( d->zoomMode != ZoomFixed )
updateZoomText();
}
}
@ -3907,6 +3908,19 @@ void PageView::updateCursor( const QPoint &p )
}
}
void PageView::reloadForms()
{
QLinkedList< PageViewItem * >::const_iterator iIt = d->visibleItems.constBegin(), iEnd = d->visibleItems.constEnd();
if( d->m_formsVisible )
{
for ( ; iIt != iEnd; ++iIt )
{
(*iIt)->reloadFormWidgetsState();
}
}
}
void PageView::moveMagnifier( const QPoint& p ) // non scaled point
{
const int w = d->magnifierView->width() * 0.5;

@ -118,6 +118,7 @@ Q_OBJECT
void selectAll();
void openAnnotationWindow( Okular::Annotation *annotation, int pageNumber );
void reloadForms();
signals:
void rightClick( const Okular::Page *, const QPoint & );

@ -36,6 +36,7 @@
#include "videowidget.h"
#include "core/movie.h"
#include "core/page.h"
#include "core/form.h"
#include "settings.h"
/*********************/
@ -202,12 +203,21 @@ bool PageViewItem::setFormWidgetsVisible( bool visible )
QHash<int, FormWidgetIface*>::iterator it = m_formWidgets.begin(), itEnd = m_formWidgets.end();
for ( ; it != itEnd; ++it )
{
bool hadfocus = (*it)->setVisibility( visible );
bool hadfocus = (*it)->setVisibility( visible && (*it)->formField()->isVisible() );
somehadfocus = somehadfocus || hadfocus;
}
return somehadfocus;
}
void PageViewItem::reloadFormWidgetsState()
{
QHash<int, FormWidgetIface*>::iterator it = m_formWidgets.begin(), itEnd = m_formWidgets.end();
for ( ; it != itEnd; ++it )
{
(*it)->setVisibility( (*it)->formField()->isVisible() );
}
}
/*********************/
/** PageViewMessage */
/*********************/

@ -78,6 +78,7 @@ class PageViewItem
void setVisible( bool visible );
void invalidate();
bool setFormWidgetsVisible( bool visible );
void reloadFormWidgetsState();
private:
const Okular::Page * m_page;

Loading…
Cancel
Save