gui::PageViewMode_OperatorsSelection Class Reference

#include <pageviewmode.h>

Inheritance diagram for gui::PageViewMode_OperatorsSelection:
gui::PageViewMode gui::PageViewMode_GraphicalOperatorsSelection

List of all members.

Public Slots

virtual void mousePressLeftButton (QMouseEvent *e, QPainter *p, QWidget *w)
virtual void mouseReleaseLeftButton (QMouseEvent *e, QPainter *p, QWidget *w)
virtual void movedSelectedObjects (QMouseEvent *e, QPainter *p, QWidget *w)
virtual void resizeSelectedObjects (QMouseEvent *e, QPainter *p, QWidget *w)
virtual void resizedSelectedObjects (QMouseEvent *e, QPainter *p, QWidget *w)
virtual void mouseMoveWithPressedLeftButton (QMouseEvent *e, QPainter *p, QWidget *w)
virtual void setSelectedRegion (QRegion r)
virtual void addWorkOperators (const std::vector< boost::shared_ptr< PdfOperator > > &wOps)
virtual void clearWorkOperators ()

Public Member Functions

 PageViewMode_OperatorsSelection (const QString &drawingObject, const QString &_scriptFncAtMouseRelease, const QString &_scriptFncAtMoveSelectedObjects, const QString &_scriptFncAtResizeSelectedObjects)

Protected Member Functions

void findOperators (const std::vector< boost::shared_ptr< PdfOperator > > &in_v, std::vector< boost::shared_ptr< PdfOperator > > &founded, const QRegion &r)
bool findPrevOperator (std::vector< boost::shared_ptr< PdfOperator > >::iterator &it, std::vector< boost::shared_ptr< PdfOperator > > &v, bool &fromEnd, const QPoint &p)

Protected Attributes

std::vector< boost::shared_ptr
< PdfOperator > >::iterator 
lastSelectedOperator
QPoint resizingPress

Detailed Description

Class is STRATEGY pattern for mode construction. Includes method for selecting objects on page and manipulating with him.

This implementation is for selecting any operators on the page. If press left button and move mouse, and then release left button, mode select all oprators which are all inside the selected area. If press and then release left button (don't move), then mode select the last (top) operator which contains mouse button release position on the page. If press and then release left button over selected operator, mode select previous operator (operator which is first below now selected operators).


Constructor & Destructor Documentation

gui::PageViewMode_OperatorsSelection::PageViewMode_OperatorsSelection ( const QString &  drawingObject,
const QString &  _scriptFncAtMouseRelease,
const QString &  _scriptFncAtMoveSelectedObjects,
const QString &  _scriptFncAtResizeSelectedObjects 
)

Standard constructor.

Parameters:
drawingObject Text definition of drawing method (see DrawingObjectFactory)
_scriptFncAtMouseRelease Script command for call after selected object(s)
_scriptFncAtMoveSelectedObjects Script command for call after move selected object(s)
_scriptFncAtResizeSelectedObjects Script command for call after resize selected object(s)

References lastSelectedOperator, and gui::PageViewMode::workOperators.


Member Function Documentation

void gui::PageViewMode_OperatorsSelection::addWorkOperators ( const std::vector< boost::shared_ptr< PdfOperator > > &  wOps  )  [virtual, slot]

Add operators for selection on the page.

Parameters:
wOps Vector of operators.

Reimplemented from gui::PageViewMode.

Reimplemented in gui::PageViewMode_GraphicalOperatorsSelection.

References lastSelectedOperator, and gui::PageViewMode::workOperators.

void gui::PageViewMode_OperatorsSelection::clearWorkOperators (  )  [virtual, slot]

Clear all operators which can be possible select on the page.

Reimplemented from gui::PageViewMode.

References lastSelectedOperator, and gui::PageViewMode::workOperators.

void gui::PageViewMode_OperatorsSelection::findOperators ( const std::vector< boost::shared_ptr< PdfOperator > > &  in_v,
std::vector< boost::shared_ptr< PdfOperator > > &  founded,
const QRegion &  r 
) [protected]

Finf all operators which are all in region r.

Parameters:
in_v Vector of operator in which are finding.
founded Vector to puch all founded operators.
r Region which is selected.

References gui::PageViewMode::getBBox().

Referenced by mouseReleaseLeftButton(), and setSelectedRegion().

bool gui::PageViewMode_OperatorsSelection::findPrevOperator ( std::vector< boost::shared_ptr< PdfOperator > >::iterator &  it,
std::vector< boost::shared_ptr< PdfOperator > > &  v,
bool &  fromEnd,
const QPoint &  p 
) [protected]

Finf prev operator which is under position p.

Parameters:
it Iterator in vector of all operators which can be selected.
v Vector which will be contains previous operator.
fromEnd Boolean will be true, if nothing previous operator found.
p Point under which will be search previous operator.
Returns:
Return true if exist some operator on position p. Otherwise return false (founded is empty).

References gui::PageViewMode::getBBox().

Referenced by mouseReleaseLeftButton(), movedSelectedObjects(), and resizedSelectedObjects().

void gui::PageViewMode_OperatorsSelection::mouseMoveWithPressedLeftButton ( QMouseEvent *  e,
QPainter *  p,
QWidget *  w 
) [virtual, slot]

Method is calling if is press left mouse button and is moving with mouse.

Parameters:
e Pointer to mouse event (see Qt::QMouseEvent).
p Pointer to initialized painter for draw changes (see Qt::QPainter). Method emit at end 'needRepaint' if p is NULL.
w Pointer to widget (see Qt::QWidget). E.g. for change mouse cursor above operators.
See also:
updateSelection
PageViewMode::mousePressEvent

Reimplemented from gui::PageViewMode.

References gui::PageViewMode::drawingObject, gui::PageViewMode::needRepaint(), gui::PageViewMode::pressPosition, and gui::PageViewMode::releasePosition.

void gui::PageViewMode_OperatorsSelection::mousePressLeftButton ( QMouseEvent *  e,
QPainter *  p,
QWidget *  w 
) [virtual, slot]

Method is calling if is release left mouse button.

Parameters:
e Pointer to mouse event (see Qt::QMouseEvent).
p Pointer to initialized painter for draw changes (see Qt::QPainter). Method emit at end 'needRepaint' if p is NULL.
w Pointer to widget (see Qt::QWidget). E.g. for change mouse cursor above operators.
See also:
mousePressLeftButton
PageViewMode::mousePressEvent

Reimplemented from gui::PageViewMode.

References gui::PageViewMode::drawingObject, gui::PageViewMode::needRepaint(), gui::PageViewMode::pressPosition, and gui::PageViewMode::releasePosition.

void gui::PageViewMode_OperatorsSelection::mouseReleaseLeftButton ( QMouseEvent *  e,
QPainter *  p,
QWidget *  w 
) [virtual, slot]

Method is calling if is release left mouse button.

Parameters:
e Pointer to mouse event (see Qt::QMouseEvent).
p Pointer to initialized painter for draw changes (see Qt::QPainter). Method emit at end 'needRepaint' if p is NULL.
w Pointer to widget (see Qt::QWidget). E.g. for change mouse cursor above operators.
See also:
mousePressLeftButton
PageViewMode::mousePressEvent

Reimplemented from gui::PageViewMode.

References gui::PageViewMode::drawingObject, findOperators(), findPrevOperator(), lastSelectedOperator, gui::PageViewMode::needRepaint(), gui::PageViewMode::newSelectedOperators(), gui::PageViewMode::pressPosition, gui::PageViewMode::releasePosition, gui::PageViewMode::selectedOperators, gui::PageViewMode::setSelectedOperators(), and gui::PageViewMode::workOperators.

void gui::PageViewMode_OperatorsSelection::movedSelectedObjects ( QMouseEvent *  e,
QPainter *  p,
QWidget *  w 
) [virtual, slot]

Method is calling if is need move selected region (operation 'move' is finished).

Parameters:
e Pointer to mouse event (see Qt::QMouseEvent).
p Pointer to initialized painter for draw changes (see Qt::QPainter). Method emit at end 'needRepaint' if p is NULL.
w Pointer to widget (see Qt::QWidget). E.g. for change mouse cursor above operators.
See also:
movedSelectedObjects( QPoint )
moveSelectedObjects( QMouseEvent *, QPainter *, QWidget * )

Reimplemented from gui::PageViewMode.

References findPrevOperator(), lastSelectedOperator, gui::PageViewMode::mouseSelectedRegion, gui::PageViewMode::newSelectedOperators(), gui::PageViewMode::selectedOperators, gui::PageViewMode::selectedOpRegion, gui::PageViewMode::setSelectedOperators(), and gui::PageViewMode::workOperators.

void gui::PageViewMode_OperatorsSelection::resizedSelectedObjects ( QMouseEvent *  e,
QPainter *  p,
QWidget *  w 
) [virtual, slot]

Method is calling if is need resize selected region (operation 'resize' is finished).

Parameters:
e Pointer to mouse event (see Qt::QMouseEvent).
p Pointer to initialized painter for draw changes (see Qt::QPainter). Method emit at end 'needRepaint' if p is NULL.
w Pointer to widget (see Qt::QWidget). E.g. for change mouse cursor above operators.
See also:
resizeSelectedObjects( QMouseEvent *, QPainter *, QWidget * )
resizedSelectedObjects ( int, int, int, int )

Reimplemented from gui::PageViewMode.

References findPrevOperator(), lastSelectedOperator, gui::PageViewMode::newSelectedOperators(), resizingPress, gui::PageViewMode::selectedOperators, gui::PageViewMode::setSelectedOperators(), and gui::PageViewMode::workOperators.

void gui::PageViewMode_OperatorsSelection::resizeSelectedObjects ( QMouseEvent *  e,
QPainter *  p,
QWidget *  w 
) [virtual, slot]

Method is calling if is need resize selected region (operation 'resize' is NOT finished).

Parameters:
e Pointer to mouse event (see Qt::QMouseEvent).
p Pointer to initialized painter for draw changes (see Qt::QPainter). Method emit at end 'needRepaint' if p is NULL.
w Pointer to widget (see Qt::QWidget). E.g. for change mouse cursor above operators.
See also:
mousePressLeftButton
mouseReleaseLeftButton
mouseMoveWithPressedLeftButton
resizedSelectedObjects( QMouseEvent *, QPainter *, QWidget * )

Reimplemented from gui::PageViewMode.

References gui::PageViewMode::isResizing, and resizingPress.

void gui::PageViewMode_OperatorsSelection::setSelectedRegion ( QRegion  r  )  [virtual, slot]

Member Data Documentation

std::vector< boost::shared_ptr< PdfOperator > >::iterator gui::PageViewMode_OperatorsSelection::lastSelectedOperator [protected]

Helpes position for decide if user resize selected area or only click on that.

Referenced by resizedSelectedObjects(), and resizeSelectedObjects().


The documentation for this class was generated from the following files: