#include <PlotMoveableMarker.h>
List of all members.
Member Enumeration Documentation
- Enumerator:
Horizontal |
|
Vertical |
|
HorizontalAndVertical |
|
Constructor & Destructor Documentation
: QObject( parent ),
m_movementDirection( movementDirection )
{
m_mousePressed = false;
m_onTarget = false;
m_plot = NULL;
}
PlotMoveableMarker::~PlotMoveableMarker |
( |
|
) |
[virtual] |
Member Function Documentation
void PlotMoveableMarker::attach |
( |
Plot * |
plot |
) |
|
bool PlotMoveableMarker::eventFilter |
( |
QObject * |
object, |
|
|
QEvent * |
event | |
|
) |
| | [virtual] |
{
if ( object != ( QObject* )plot()->canvas() ) return false;
switch ( event->type() )
{
case QEvent::MouseButtonPress:
{
m_mousePressed = true;
if ( m_onTarget == true )
{
return true;
}
break;
}
case QEvent::MouseButtonRelease:
{
if ( m_mousePressed == true && m_onTarget == true )
{
m_mousePressed = false;
m_onTarget = false;
emit released();
plot()->canvas()->setCursor( m_storedCursor );
return true;
}
m_mousePressed = false;
m_onTarget = false;
}
case QEvent::MouseMove:
{
QMouseEvent* mouseEvent = ( QMouseEvent* )event;
if ( m_mousePressed == true && m_onTarget == false ) break;
if ( m_mousePressed == true && m_onTarget == true )
{
if ( m_movementDirection == Horizontal )
{
setXValue( plot()->invTransform( xAxis(), mouseEvent->pos().x() ) );
}
else if ( m_movementDirection == Vertical )
{
setYValue( plot()->invTransform( yAxis(), mouseEvent->pos().y() ) );
}
else
{
setXValue( plot()->invTransform( xAxis(), mouseEvent->pos().x() ) );
setYValue( plot()->invTransform( yAxis(), mouseEvent->pos().y() ) );
}
emit moved();
QTimer::singleShot(0, plot(), SLOT(replot()));
if ( m_plot->tracker() != NULL )
{
return m_plot->tracker()->eventFilter( object, event );
}
else
{
return true;
}
}
const QwtPlotItemList& itemList = plot()->itemList();
for ( QwtPlotItemIterator it = itemList.begin(); it != itemList.end(); ++it )
{
if ( *it == this )
{
if ( m_movementDirection == Horizontal )
{
double markerXValue = xValue();
double leftBound = plot()->invTransform( xAxis(), mouseEvent->pos().x() - 3 );
double rightBound = plot()->invTransform( xAxis(), mouseEvent->pos().x() + 3 );
if ( m_onTarget == false )
{
m_storedCursor = plot()->canvas()->cursor();
}
if ( markerXValue > leftBound && markerXValue < rightBound )
{
m_onTarget = true;
plot()->canvas()->installEventFilter( this );
plot()->canvas()->setCursor( Qt::SizeHorCursor );
}
else
{
m_onTarget = false;
plot()->canvas()->setCursor( m_storedCursor );
}
}
else if ( m_movementDirection == Vertical )
{
double markerYValue = yValue();
double upperBound = plot()->invTransform( yAxis(), mouseEvent->pos().y() - 3 );
double lowerBound = plot()->invTransform( yAxis(), mouseEvent->pos().y() + 3 );
if ( m_onTarget == false )
{
m_storedCursor = plot()->canvas()->cursor();
}
if ( markerYValue > lowerBound && markerYValue < upperBound )
{
m_onTarget = true;
plot()->canvas()->installEventFilter( this );
plot()->canvas()->setCursor( Qt::SizeVerCursor );
}
else
{
m_onTarget = false;
plot()->canvas()->setCursor( m_storedCursor );
}
}
else
{
double markerXValue = xValue();
double leftBound = plot()->invTransform( xAxis(), mouseEvent->pos().x() - 3 );
double rightBound = plot()->invTransform( xAxis(), mouseEvent->pos().x() + 3 );
double markerYValue = yValue();
double upperBound = plot()->invTransform( yAxis(), mouseEvent->pos().y() - 3 );
double lowerBound = plot()->invTransform( yAxis(), mouseEvent->pos().y() + 3 );
if ( m_onTarget == false )
{
m_storedCursor = plot()->canvas()->cursor();
}
if ( markerXValue > leftBound && markerXValue < rightBound
&& markerYValue > lowerBound && markerYValue < upperBound )
{
m_onTarget = true;
plot()->canvas()->installEventFilter( this );
plot()->canvas()->setCursor( Qt::SizeAllCursor );
}
else
{
m_onTarget = false;
plot()->canvas()->setCursor( m_storedCursor );
}
}
}
}
break;
}
default:
break;
}
return QObject::eventFilter( object, event );
}
void PlotMoveableMarker::moved |
( |
|
) |
[signal] |
{ return m_movementDirection; }
void PlotMoveableMarker::released |
( |
|
) |
[signal] |
int PlotMoveableMarker::rtti |
( |
|
) |
const [virtual] |
Reimplemented from QwtPlotMarker.
{
return QwtPlotItem::Rtti_PlotUserItem + 2;
}
The documentation for this class was generated from the following files: