svgui  1.9
TimeValueLayer Class Reference

#include <TimeValueLayer.h>

Inheritance diagram for TimeValueLayer:
Collaboration diagram for TimeValueLayer:

List of all members.

Public Types

enum  PlotStyle {
  PlotPoints, PlotStems, PlotConnectedPoints, PlotLines,
  PlotCurve, PlotSegmentation, PlotDiscreteCurves
}
enum  VerticalScale { AutoAlignScale, LinearScale, LogScale, PlusMinusOneScale }
enum  VerticalPosition { PositionTop, PositionMiddle, PositionBottom }
enum  SnapType { SnapLeft, SnapRight, SnapNearest, SnapNeighbouring }
enum  ColourSignificance {
  ColourAbsent, ColourIrrelevant, ColourDistinguishes, ColourAndBackgroundSignificant,
  ColourHasMeaningfulValue
}

Public Slots

void showLayer (View *, bool show)

Signals

void modelChanged ()
void modelCompletionChanged ()
void modelAlignmentCompletionChanged ()
void modelChangedWithin (int startFrame, int endFrame)
void modelReplaced ()
void layerParametersChanged ()
void layerParameterRangesChanged ()
void layerMeasurementRectsChanged ()
void layerNameChanged ()
void verticalZoomChanged ()

Public Member Functions

 TimeValueLayer ()
virtual void paint (View *v, QPainter &paint, QRect rect) const
 Paint the given rectangle of this layer onto the given view using the given painter, superimposing it on top of any existing material in that view.
virtual int getVerticalScaleWidth (View *v, bool, QPainter &) const
virtual void paintVerticalScale (View *v, bool, QPainter &paint, QRect rect) const
virtual QString getFeatureDescription (View *v, QPoint &) const
virtual QString getLabelPreceding (int) const
virtual bool snapToFeatureFrame (View *v, int &frame, int &resolution, SnapType snap) const
 Adjust the given frame to snap to the nearest feature, if possible.
virtual bool snapToSimilarFeature (View *v, int &frame, int &resolution, SnapType snap) const
 Adjust the given frame to snap to the next feature that has "effectively" the same value as the feature prior to the given frame, if possible.
virtual void drawStart (View *v, QMouseEvent *)
virtual void drawDrag (View *v, QMouseEvent *)
virtual void drawEnd (View *v, QMouseEvent *)
virtual void eraseStart (View *v, QMouseEvent *)
virtual void eraseDrag (View *v, QMouseEvent *)
virtual void eraseEnd (View *v, QMouseEvent *)
virtual void editStart (View *v, QMouseEvent *)
virtual void editDrag (View *v, QMouseEvent *)
virtual void editEnd (View *v, QMouseEvent *)
virtual bool editOpen (View *v, QMouseEvent *)
 Open an editor on the item under the mouse (e.g.
virtual void moveSelection (Selection s, int newStartFrame)
virtual void resizeSelection (Selection s, Selection newSize)
virtual void deleteSelection (Selection s)
virtual void copy (View *v, Selection s, Clipboard &to)
virtual bool paste (View *v, const Clipboard &from, int frameOffset, bool interactive)
 Paste from the given clipboard onto the layer at the given frame offset.
virtual const Model * getModel () const
void setModel (SparseTimeValueModel *model)
virtual PropertyList getProperties () const
virtual QString getPropertyLabel (const PropertyName &) const
virtual QString getPropertyIconName (const PropertyName &) const
virtual PropertyType getPropertyType (const PropertyName &) const
virtual QString getPropertyGroupName (const PropertyName &) const
virtual int getPropertyRangeAndValue (const PropertyName &, int *min, int *max, int *deflt) const
virtual QString getPropertyValueLabel (const PropertyName &, int value) const
virtual void setProperty (const PropertyName &, int value)
void setFillColourMap (int)
int getFillColourMap () const
void setPlotStyle (PlotStyle style)
PlotStyle getPlotStyle () const
void setVerticalScale (VerticalScale scale)
VerticalScale getVerticalScale () const
void setDrawSegmentDivisions (bool)
bool getDrawSegmentDivisions () const
void setShowDerivative (bool)
bool getShowDerivative () const
virtual bool isLayerScrollable (const View *v) const
 This should return true if the layer can safely be scrolled automatically by a given view (simply copying the existing data and then refreshing the exposed area) without altering its meaning.
virtual bool isLayerEditable () const
 This should return true if the layer can be edited by the user.
virtual int getCompletion (View *) const
 Return the proportion of background work complete in drawing this view, as a percentage -- in most cases this will be the value returned by pointer from a call to the underlying model's isReady(int *) call.
virtual bool needsTextLabelHeight () const
virtual bool getValueExtents (float &min, float &max, bool &logarithmic, QString &unit) const
 Return the minimum and maximum values for the y axis of the model in this layer, as well as whether the layer is configured to use a logarithmic y axis display.
virtual bool getDisplayExtents (float &min, float &max) const
 Return the minimum and maximum values within the displayed range for the y axis, if only a subset of the whole range of the model (returned by getValueExtents) is being displayed.
virtual bool setDisplayExtents (float min, float max)
 Set the displayed minimum and maximum values for the y axis to the given range, if supported.
virtual int getVerticalZoomSteps (int &defaultStep) const
 Get the number of vertical zoom steps available for this layer.
virtual int getCurrentVerticalZoomStep () const
 Get the current vertical zoom step.
virtual void setVerticalZoomStep (int)
 Set the vertical zoom step.
virtual RangeMapper * getNewVerticalZoomRangeMapper () const
 Create and return a range mapper for vertical zoom step values.
virtual void toXml (QTextStream &stream, QString indent="", QString extraAttributes="") const
 Convert the layer's data (though not those of the model it refers to) into XML for file output.
void setProperties (const QXmlAttributes &attributes)
 Set the particular properties of a layer (those specific to the subclass) from a set of XML attributes.
virtual ColourSignificance getLayerColourSignificance () const
 Implements Layer::getLayerColourSignificance()
virtual int getYForValue (View *, float value) const
 VerticalScaleLayer and ColourScaleLayer methods.
virtual float getValueForY (View *, int y) const
virtual QString getScaleUnits () const
virtual QColor getColourForValue (View *v, float value) const
virtual void setBaseColour (int)
 Set the colour used to draw primary items in the layer.
virtual int getBaseColour () const
 Retrieve the current primary drawing colour, as a ColourDatabase index value.
virtual bool hasLightBackground () const
 Return true if the layer currently has a dark colour on a light background, false if it has a light colour on a dark background.
virtual QPixmap getLayerPresentationPixmap (QSize size) const
virtual RangeMapper * getNewPropertyRangeMapper (const PropertyName &) const
virtual void setDefaultColourFor (View *v)
Model * getModel ()
virtual const ZoomConstraint * getZoomConstraint () const
 Return a zoom constraint object defining the supported zoom levels for this layer.
virtual bool supportsOtherZoomLevels () const
 Return true if this layer can handle zoom levels other than those supported by its zoom constraint (presumably less efficiently or accurately than the officially supported zoom levels).
virtual void setSynchronousPainting (bool)
 Enable or disable synchronous painting.
virtual VerticalPosition getPreferredTimeRulerPosition () const
virtual VerticalPosition getPreferredFrameCountPosition () const
virtual QString getPropertyContainerIconName () const
virtual QString getPropertyContainerName () const
virtual void setPresentationName (QString name)
virtual QString getLayerPresentationName () const
virtual bool getCrosshairExtents (View *, QPainter &, QPoint, std::vector< QRect > &) const
virtual void paintCrosshairs (View *, QPainter &, QPoint) const
virtual void paintMeasurementRects (View *, QPainter &, bool showFocus, QPoint focusPoint) const
virtual bool nearestMeasurementRectChanged (View *, QPoint prev, QPoint now) const
virtual void splitStart (View *, QMouseEvent *)
virtual void splitEnd (View *, QMouseEvent *)
virtual void addNote (View *, QMouseEvent *)
virtual void measureStart (View *, QMouseEvent *)
virtual void measureDrag (View *, QMouseEvent *)
virtual void measureEnd (View *, QMouseEvent *)
virtual void measureDoubleClick (View *, QMouseEvent *)
virtual bool haveCurrentMeasureRect () const
virtual void deleteCurrentMeasureRect ()
virtual bool isLayerOpaque () const
 This should return true if the layer completely obscures any underlying layers.
virtual QString getError (View *) const
 Return an error string if any errors have occurred while loading or processing data for the given view.
virtual void setObjectName (const QString &name)
virtual void toBriefXml (QTextStream &stream, QString indent="", QString extraAttributes="") const
 Produce XML containing the layer's ID and type.
virtual void addMeasurementRect (const QXmlAttributes &)
 Add a measurement rectangle from the given XML attributes (presumably taken from a measurement element).
virtual void setLayerDormant (const View *v, bool dormant)
 Indicate that a layer is not currently visible in the given view and is not expected to become visible in the near future (for example because the user has explicitly removed or hidden it).
virtual bool isLayerDormant (const View *v) const
 Return whether the layer is dormant (i.e.
virtual PlayParameters * getPlayParameters ()
virtual bool hasTimeXAxis () const
virtual bool getXScaleValue (const View *v, int x, float &value, QString &unit) const
 Return the value and unit at the given x coordinate in the given view.
virtual bool getYScaleValue (const View *, int, float &, QString &) const
 Return the value and unit at the given y coordinate in the given view.
virtual bool getYScaleDifference (const View *v, int y0, int y1, float &diff, QString &unit) const
 Return the difference between the values at the given y coordinates in the given view, and the unit of the difference.

Protected Types

typedef std::map< int, int > ColourRefCount
typedef std::set< MeasureRectMeasureRectSet

Protected Member Functions

void getScaleExtents (View *, float &min, float &max, bool &log) const
bool shouldAutoAlign () const
SparseTimeValueModel::PointList getLocalPoints (View *v, int) const
virtual int getDefaultColourHint (bool dark, bool &impose)
void finish (SparseTimeValueModel::EditCommand *command)
virtual QColor getBaseQColor () const
virtual QColor getBackgroundQColor (View *v) const
virtual QColor getForegroundQColor (View *v) const
std::vector< QColor > getPartialShades (View *v) const
virtual void flagBaseColourChanged ()
void connectSignals (const Model *)
virtual int alignToReference (View *v, int frame) const
virtual int alignFromReference (View *v, int frame) const
bool clipboardHasDifferentAlignment (View *v, const Clipboard &clip) const
void addMeasureRectToSet (const MeasureRect &r)
void deleteMeasureRectFromSet (const MeasureRect &r)
void updateMeasurePixrects (View *v) const
virtual void updateMeasureRectYCoords (View *v, const MeasureRect &r) const
virtual void setMeasureRectYCoord (View *v, MeasureRect &r, bool start, int y) const
virtual void setMeasureRectFromPixrect (View *v, MeasureRect &r, QRect pixrect) const
MeasureRectSet::const_iterator findFocusedMeasureRect (QPoint) const
void paintMeasurementRect (View *v, QPainter &paint, const MeasureRect &r, bool focus) const

Protected Attributes

SparseTimeValueModel * m_model
bool m_editing
SparseTimeValueModel::Point m_originalPoint
SparseTimeValueModel::Point m_editingPoint
SparseTimeValueModel::EditCommand * m_editingCommand
int m_colourMap
PlotStyle m_plotStyle
VerticalScale m_verticalScale
bool m_drawSegmentDivisions
bool m_derivative
float m_scaleMinimum
float m_scaleMaximum
int m_colour
bool m_colourExplicitlySet
bool m_defaultColourSet
MeasureRectSet m_measureRects
MeasureRect m_draggingRect
bool m_haveDraggingRect
bool m_haveCurrentMeasureRect
QPoint m_currentMeasureRectPoint
QString m_presentationName

Static Protected Attributes

static ColourRefCount m_colourRefCount

Detailed Description

Definition at line 31 of file TimeValueLayer.h.


Member Typedef Documentation

typedef std::map<int, int> SingleColourLayer::ColourRefCount [protected, inherited]

Definition at line 89 of file SingleColourLayer.h.

typedef std::set<MeasureRect> Layer::MeasureRectSet [protected, inherited]

Definition at line 598 of file Layer.h.


Member Enumeration Documentation

Enumerator:
PlotPoints 
PlotStems 
PlotConnectedPoints 
PlotLines 
PlotCurve 
PlotSegmentation 
PlotDiscreteCurves 

Definition at line 94 of file TimeValueLayer.h.

Enumerator:
AutoAlignScale 
LinearScale 
LogScale 
PlusMinusOneScale 

Definition at line 107 of file TimeValueLayer.h.

enum Layer::VerticalPosition [inherited]
Enumerator:
PositionTop 
PositionMiddle 
PositionBottom 

Definition at line 106 of file Layer.h.

enum Layer::SnapType [inherited]
Enumerator:
SnapLeft 
SnapRight 
SnapNearest 
SnapNeighbouring 

Definition at line 157 of file Layer.h.

enum Layer::ColourSignificance [inherited]
Enumerator:
ColourAbsent 
ColourIrrelevant 
ColourDistinguishes 
ColourAndBackgroundSignificant 
ColourHasMeaningfulValue 

Definition at line 304 of file Layer.h.


Constructor & Destructor Documentation

Definition at line 53 of file TimeValueLayer.cpp.


Member Function Documentation

void TimeValueLayer::paint ( View ,
QPainter &  ,
QRect   
) const [virtual]

Paint the given rectangle of this layer onto the given view using the given painter, superimposing it on top of any existing material in that view.

The view is provided here because it is possible for one layer to exist in more than one view, so the dimensions of the view may vary from one paint call to another (without any view having been resized).

Implements Layer.

Definition at line 899 of file TimeValueLayer.cpp.

References View::drawVisibleText(), SingleColourLayer::getBaseQColor(), getColourForValue(), SingleColourLayer::getForegroundQColor(), View::getFrameForX(), getLocalPoints(), View::getModelsEndFrame(), SingleColourLayer::getPartialShades(), View::getTextLabelHeight(), View::getXForFrame(), getYForValue(), m_derivative, m_drawSegmentDivisions, m_model, m_plotStyle, View::OutlinedItalicText, View::OutlinedText, PlotConnectedPoints, PlotCurve, PlotDiscreteCurves, PlotLines, PlotPoints, PlotSegmentation, PlotStems, View::shouldIlluminateLocalFeatures(), and View::shouldShowFeatureLabels().

QString TimeValueLayer::getFeatureDescription ( View v,
QPoint &  pos 
) const [virtual]

Reimplemented from Layer.

Definition at line 589 of file TimeValueLayer.cpp.

References getLocalPoints(), getScaleUnits(), View::getXForFrame(), getYForValue(), and m_model.

QString TimeValueLayer::getLabelPreceding ( int  frame) const [virtual]

Reimplemented from Layer.

Definition at line 577 of file TimeValueLayer.cpp.

References m_model.

bool TimeValueLayer::snapToFeatureFrame ( View ,
int &  ,
int &  resolution,
SnapType   
) const [virtual]

Adjust the given frame to snap to the nearest feature, if possible.

If snap is SnapLeft or SnapRight, adjust the frame to match that of the nearest feature in the given direction regardless of how far away it is. If snap is SnapNearest, adjust the frame to that of the nearest feature in either direction. If snap is SnapNeighbouring, adjust the frame to that of the nearest feature if it is close, and leave it alone (returning false) otherwise. SnapNeighbouring should always choose the same feature that would be used in an editing operation through calls to editStart etc.

Return true if a suitable feature was found and frame adjusted accordingly. Return false if no suitable feature was available (and leave frame unmodified). If returning true, also return the resolution of the model in this layer in sample frames.

Reimplemented from Layer.

Definition at line 632 of file TimeValueLayer.cpp.

References getLocalPoints(), View::getXForFrame(), m_model, Layer::SnapLeft, Layer::SnapNeighbouring, and Layer::SnapRight.

bool TimeValueLayer::snapToSimilarFeature ( View ,
int &  ,
int &  resolution,
SnapType   
) const [virtual]

Adjust the given frame to snap to the next feature that has "effectively" the same value as the feature prior to the given frame, if possible.

The snap type must be SnapLeft (snap to the time of the next feature prior to the one preceding the given frame that has a similar value to it) or SnapRight (snap to the time of the next feature following the given frame that has a similar value to the feature preceding it). Other values are not permitted.

Return true if a suitable feature was found and frame adjusted accordingly. Return false if no suitable feature was available (and leave frame unmodified). If returning true, also return the resolution of the model in this layer in sample frames.

Reimplemented from Layer.

Definition at line 704 of file TimeValueLayer.cpp.

References m_model, Layer::SnapLeft, and Layer::SnapRight.

void TimeValueLayer::drawStart ( View v,
QMouseEvent *  e 
) [virtual]
void TimeValueLayer::drawDrag ( View v,
QMouseEvent *  e 
) [virtual]
void TimeValueLayer::drawEnd ( View v,
QMouseEvent *   
) [virtual]

Reimplemented from Layer.

Definition at line 1416 of file TimeValueLayer.cpp.

References finish(), m_editing, m_editingCommand, and m_model.

void TimeValueLayer::eraseStart ( View v,
QMouseEvent *  e 
) [virtual]

Reimplemented from Layer.

Definition at line 1428 of file TimeValueLayer.cpp.

References finish(), getLocalPoints(), m_editing, m_editingCommand, m_editingPoint, and m_model.

void TimeValueLayer::eraseDrag ( View v,
QMouseEvent *   
) [virtual]

Reimplemented from Layer.

Definition at line 1446 of file TimeValueLayer.cpp.

void TimeValueLayer::eraseEnd ( View v,
QMouseEvent *  e 
) [virtual]

Reimplemented from Layer.

Definition at line 1451 of file TimeValueLayer.cpp.

References finish(), getLocalPoints(), m_editing, m_editingCommand, m_editingPoint, and m_model.

void TimeValueLayer::editStart ( View v,
QMouseEvent *  e 
) [virtual]

Reimplemented from Layer.

Definition at line 1473 of file TimeValueLayer.cpp.

References finish(), getLocalPoints(), m_editing, m_editingCommand, m_editingPoint, m_model, and m_originalPoint.

void TimeValueLayer::editDrag ( View v,
QMouseEvent *  e 
) [virtual]

Reimplemented from Layer.

Definition at line 1496 of file TimeValueLayer.cpp.

References View::getFrameForX(), getValueForY(), m_editing, m_editingCommand, m_editingPoint, and m_model.

void TimeValueLayer::editEnd ( View v,
QMouseEvent *   
) [virtual]

Reimplemented from Layer.

Definition at line 1522 of file TimeValueLayer.cpp.

References finish(), m_editing, m_editingCommand, m_editingPoint, m_model, and m_originalPoint.

bool TimeValueLayer::editOpen ( View ,
QMouseEvent *   
) [virtual]

Open an editor on the item under the mouse (e.g.

on double-click). If there is no item or editing is not supported, return false.

Reimplemented from Layer.

Definition at line 1552 of file TimeValueLayer.cpp.

References finish(), ItemEditDialog::getFrameTime(), getLocalPoints(), getScaleUnits(), ItemEditDialog::getText(), ItemEditDialog::getValue(), m_model, ItemEditDialog::setFrameTime(), ItemEditDialog::setText(), ItemEditDialog::setValue(), ItemEditDialog::ShowText, ItemEditDialog::ShowTime, and ItemEditDialog::ShowValue.

void TimeValueLayer::moveSelection ( Selection  s,
int  newStartFrame 
) [virtual]

Reimplemented from Layer.

Definition at line 1591 of file TimeValueLayer.cpp.

References finish(), and m_model.

void TimeValueLayer::resizeSelection ( Selection  s,
Selection  newSize 
) [virtual]

Reimplemented from Layer.

Definition at line 1617 of file TimeValueLayer.cpp.

References finish(), and m_model.

void TimeValueLayer::deleteSelection ( Selection  s) [virtual]

Reimplemented from Layer.

Definition at line 1652 of file TimeValueLayer.cpp.

References finish(), and m_model.

void TimeValueLayer::copy ( View v,
Selection  s,
Clipboard &  to 
) [virtual]

Reimplemented from Layer.

Definition at line 1675 of file TimeValueLayer.cpp.

References Layer::alignToReference(), and m_model.

bool TimeValueLayer::paste ( View ,
const Clipboard &  ,
int  ,
bool   
) [virtual]

Paste from the given clipboard onto the layer at the given frame offset.

If interactive is true, the layer may ask the user about paste options through a dialog if desired, and may return false if the user cancelled the paste operation. This function should return true if a paste actually occurred.

Reimplemented from Layer.

Definition at line 1693 of file TimeValueLayer.cpp.

References Layer::alignFromReference(), Layer::clipboardHasDifferentAlignment(), finish(), ListInputDialog::getItem(), and m_model.

virtual const Model* TimeValueLayer::getModel ( ) const [inline, virtual]

Implements Layer.

Definition at line 77 of file TimeValueLayer.h.

References m_model.

Layer::PropertyList TimeValueLayer::getProperties ( ) const [virtual]

Reimplemented from SingleColourLayer.

Definition at line 97 of file TimeValueLayer.cpp.

QString TimeValueLayer::getPropertyLabel ( const PropertyName &  name) const [virtual]

Reimplemented from SingleColourLayer.

Definition at line 109 of file TimeValueLayer.cpp.

QString TimeValueLayer::getPropertyIconName ( const PropertyName &  name) const [virtual]

Definition at line 120 of file TimeValueLayer.cpp.

Layer::PropertyType TimeValueLayer::getPropertyType ( const PropertyName &  name) const [virtual]

Reimplemented from SingleColourLayer.

Definition at line 128 of file TimeValueLayer.cpp.

References m_plotStyle, and PlotSegmentation.

QString TimeValueLayer::getPropertyGroupName ( const PropertyName &  name) const [virtual]

Reimplemented from SingleColourLayer.

Definition at line 140 of file TimeValueLayer.cpp.

int TimeValueLayer::getPropertyRangeAndValue ( const PropertyName &  name,
int *  min,
int *  max,
int *  deflt 
) const [virtual]
QString TimeValueLayer::getPropertyValueLabel ( const PropertyName &  name,
int  value 
) const [virtual]

Reimplemented from SingleColourLayer.

Definition at line 220 of file TimeValueLayer.cpp.

References ColourMapper::getColourMapName(), m_plotStyle, and PlotSegmentation.

void TimeValueLayer::setProperty ( const PropertyName &  name,
int  value 
) [virtual]

Definition at line 273 of file TimeValueLayer.cpp.

References Layer::layerParametersChanged(), and m_colourMap.

Referenced by setProperties(), and setProperty().

int TimeValueLayer::getFillColourMap ( ) const [inline]

Definition at line 92 of file TimeValueLayer.h.

References m_colourMap.

Definition at line 105 of file TimeValueLayer.h.

References m_plotStyle.

Definition at line 115 of file TimeValueLayer.h.

References m_verticalScale.

bool TimeValueLayer::getDrawSegmentDivisions ( ) const [inline]

Definition at line 118 of file TimeValueLayer.h.

References m_drawSegmentDivisions.

void TimeValueLayer::setShowDerivative ( bool  show)

Definition at line 310 of file TimeValueLayer.cpp.

References Layer::layerParametersChanged(), and m_derivative.

Referenced by setProperties(), and setProperty().

bool TimeValueLayer::getShowDerivative ( ) const [inline]

Definition at line 121 of file TimeValueLayer.h.

References m_derivative.

bool TimeValueLayer::isLayerScrollable ( const View ) const [virtual]

This should return true if the layer can safely be scrolled automatically by a given view (simply copying the existing data and then refreshing the exposed area) without altering its meaning.

For the view widget as a whole this is usually not possible because of invariant (non-scrolling) material displayed over the top, but the widget may be able to optimise scrolling better if it is known that individual views can be scrolled safely in this way.

Reimplemented from Layer.

Definition at line 318 of file TimeValueLayer.cpp.

References m_plotStyle, PlotCurve, PlotDiscreteCurves, PlotLines, and View::shouldIlluminateLocalFeatures().

virtual bool TimeValueLayer::isLayerEditable ( ) const [inline, virtual]

This should return true if the layer can be edited by the user.

If this is the case, the appropriate edit tools may be made available by the application and the layer's drawStart/Drag/End and editStart/Drag/End methods should be implemented.

Reimplemented from Layer.

Definition at line 125 of file TimeValueLayer.h.

virtual int TimeValueLayer::getCompletion ( View ) const [inline, virtual]

Return the proportion of background work complete in drawing this view, as a percentage -- in most cases this will be the value returned by pointer from a call to the underlying model's isReady(int *) call.

The view may choose to show a progress meter if it finds that this returns < 100 at any given moment.

Reimplemented from Layer.

Definition at line 127 of file TimeValueLayer.h.

References m_model.

virtual bool TimeValueLayer::needsTextLabelHeight ( ) const [inline, virtual]

Reimplemented from Layer.

Definition at line 129 of file TimeValueLayer.h.

References m_model, m_plotStyle, and PlotSegmentation.

bool TimeValueLayer::getValueExtents ( float &  min,
float &  max,
bool &  logarithmic,
QString &  unit 
) const [virtual]

Return the minimum and maximum values for the y axis of the model in this layer, as well as whether the layer is configured to use a logarithmic y axis display.

Also return the unit for these values if known.

This function returns the "normal" extents for the layer, not necessarily the extents actually in use in the display.

Implements Layer.

Definition at line 332 of file TimeValueLayer.cpp.

References getScaleUnits(), LogScale, m_derivative, m_model, m_verticalScale, and shouldAutoAlign().

Referenced by getDisplayExtents(), getNewVerticalZoomRangeMapper(), paintVerticalScale(), and setVerticalZoomStep().

bool TimeValueLayer::getDisplayExtents ( float &  ,
float &   
) const [virtual]

Return the minimum and maximum values within the displayed range for the y axis, if only a subset of the whole range of the model (returned by getValueExtents) is being displayed.

Return false if the layer is not imposing a particular display extent (using the normal layer extents or deferring to whatever is in use for the same units elsewhere in the view).

Reimplemented from Layer.

Definition at line 373 of file TimeValueLayer.cpp.

References getValueExtents(), m_derivative, m_model, m_scaleMaximum, m_scaleMinimum, and shouldAutoAlign().

Referenced by getCurrentVerticalZoomStep(), getScaleExtents(), and setVerticalZoomStep().

bool TimeValueLayer::setDisplayExtents ( float  ,
float   
) [virtual]

Set the displayed minimum and maximum values for the y axis to the given range, if supported.

Return false if not supported on this layer (and set nothing). In most cases, layers that return false for getDisplayExtents should also return false for this function.

Reimplemented from Layer.

Definition at line 399 of file TimeValueLayer.cpp.

References Layer::layerParametersChanged(), m_model, m_scaleMaximum, and m_scaleMinimum.

Referenced by setProperties(), and setVerticalZoomStep().

int TimeValueLayer::getVerticalZoomSteps ( int &  ) const [virtual]

Get the number of vertical zoom steps available for this layer.

If vertical zooming is not available, return 0. The meaning of "zooming" is entirely up to the layer -- changing the zoom level may cause the layer to reset its display extents or change another property such as display gain. However, layers are advised for consistency to treat smaller zoom steps as "more distant" or "zoomed out" and larger ones as "closer" or "zoomed in".

Layers that provide this facility should also emit the verticalZoomChanged signal if their vertical zoom changes due to factors other than setVerticalZoomStep being called.

Reimplemented from Layer.

Definition at line 423 of file TimeValueLayer.cpp.

References m_model, and shouldAutoAlign().

Get the current vertical zoom step.

A layer may support finer control over ranges etc than is available through the integer zoom step mechanism; if this one does, it should just return the nearest of the available zoom steps to the current settings.

Reimplemented from Layer.

Definition at line 433 of file TimeValueLayer.cpp.

References getDisplayExtents(), getNewVerticalZoomRangeMapper(), m_model, and shouldAutoAlign().

void TimeValueLayer::setVerticalZoomStep ( int  ) [virtual]

Set the vertical zoom step.

The meaning of "zooming" is entirely up to the layer -- changing the zoom level may cause the layer to reset its display extents or change another property such as display gain.

Reimplemented from Layer.

Definition at line 456 of file TimeValueLayer.cpp.

References getDisplayExtents(), getNewVerticalZoomRangeMapper(), getValueExtents(), m_model, setDisplayExtents(), and shouldAutoAlign().

RangeMapper * TimeValueLayer::getNewVerticalZoomRangeMapper ( ) const [virtual]

Create and return a range mapper for vertical zoom step values.

See the RangeMapper documentation for more details. The returned value is allocated on the heap and will be deleted by the caller.

Reimplemented from Layer.

Definition at line 509 of file TimeValueLayer.cpp.

References getValueExtents(), and m_model.

Referenced by getCurrentVerticalZoomStep(), and setVerticalZoomStep().

void TimeValueLayer::toXml ( QTextStream &  stream,
QString  indent = "",
QString  extraAttributes = "" 
) const [virtual]

Convert the layer's data (though not those of the model it refers to) into XML for file output.

This class implements the basic name/type/model-id output; subclasses will typically call this superclass implementation with extra attributes describing their particular properties.

Reimplemented from SingleColourLayer.

Definition at line 1898 of file TimeValueLayer.cpp.

References m_colourMap, m_derivative, m_drawSegmentDivisions, m_plotStyle, m_scaleMaximum, m_scaleMinimum, and m_verticalScale.

void TimeValueLayer::setProperties ( const QXmlAttributes &  ) [virtual]

Set the particular properties of a layer (those specific to the subclass) from a set of XML attributes.

This is the effective inverse of the toXml method.

Reimplemented from SingleColourLayer.

Definition at line 1914 of file TimeValueLayer.cpp.

References setDisplayExtents(), setDrawSegmentDivisions(), setFillColourMap(), setPlotStyle(), setShowDerivative(), and setVerticalScale().

int TimeValueLayer::getYForValue ( View v,
float  value 
) const [virtual]

VerticalScaleLayer and ColourScaleLayer methods.

Implements VerticalScaleLayer.

Definition at line 821 of file TimeValueLayer.cpp.

References getScaleExtents().

Referenced by getFeatureDescription(), and paint().

float TimeValueLayer::getValueForY ( View v,
int  y 
) const [virtual]

Implements VerticalScaleLayer.

Definition at line 842 of file TimeValueLayer.cpp.

References getScaleExtents().

Referenced by drawDrag(), drawStart(), and editDrag().

QColor TimeValueLayer::getColourForValue ( View v,
float  value 
) const [virtual]

Implements ColourScaleLayer.

Definition at line 868 of file TimeValueLayer.cpp.

References getScaleExtents(), m_colourMap, and ColourMapper::map().

Referenced by paint().

void TimeValueLayer::getScaleExtents ( View v,
float &  min,
float &  max,
bool &  log 
) const [protected]
int TimeValueLayer::getDefaultColourHint ( bool  dark,
bool &  impose 
) [protected, virtual]

Reimplemented from SingleColourLayer.

Definition at line 891 of file TimeValueLayer.cpp.

References ColourDatabase::getColourIndex(), and ColourDatabase::getInstance().

void TimeValueLayer::finish ( SparseTimeValueModel::EditCommand *  command) [inline, protected]
void SingleColourLayer::setBaseColour ( int  colour) [virtual, inherited]
int SingleColourLayer::getBaseColour ( ) const [virtual, inherited]

Retrieve the current primary drawing colour, as a ColourDatabase index value.

Definition at line 235 of file SingleColourLayer.cpp.

References SingleColourLayer::m_colour.

bool SingleColourLayer::hasLightBackground ( ) const [virtual, inherited]

Return true if the layer currently has a dark colour on a light background, false if it has a light colour on a dark background.

Reimplemented from Layer.

Definition at line 53 of file SingleColourLayer.cpp.

References ColourDatabase::getInstance(), SingleColourLayer::m_colour, and ColourDatabase::useDarkBackground().

QPixmap SingleColourLayer::getLayerPresentationPixmap ( QSize  size) const [virtual, inherited]
RangeMapper * SingleColourLayer::getNewPropertyRangeMapper ( const PropertyName &  ) const [virtual, inherited]

Reimplemented in SpectrumLayer, WaveformLayer, and SliceLayer.

Definition at line 126 of file SingleColourLayer.cpp.

QColor SingleColourLayer::getBackgroundQColor ( View v) const [protected, virtual, inherited]
QColor SingleColourLayer::getForegroundQColor ( View v) const [protected, virtual, inherited]
std::vector< QColor > SingleColourLayer::getPartialShades ( View v) const [protected, inherited]
virtual void SingleColourLayer::flagBaseColourChanged ( ) [inline, protected, virtual, inherited]

Reimplemented in WaveformLayer.

Definition at line 85 of file SingleColourLayer.h.

Referenced by SingleColourLayer::setBaseColour(), and SingleColourLayer::setProperties().

Model* Layer::getModel ( ) [inline, inherited]

Definition at line 62 of file Layer.h.

References Layer::getModel().

virtual const ZoomConstraint* Layer::getZoomConstraint ( ) const [inline, virtual, inherited]

Return a zoom constraint object defining the supported zoom levels for this layer.

If this returns zero, the layer will support any integer zoom level.

Reimplemented in SpectrogramLayer, Colour3DPlotLayer, and WaveformLayer.

Definition at line 71 of file Layer.h.

virtual bool Layer::supportsOtherZoomLevels ( ) const [inline, virtual, inherited]

Return true if this layer can handle zoom levels other than those supported by its zoom constraint (presumably less efficiently or accurately than the officially supported zoom levels).

If true, the layer will unenthusistically accept any integer zoom level from 1 to the maximum returned by its zoom constraint.

Definition at line 81 of file Layer.h.

virtual void Layer::setSynchronousPainting ( bool  ) [inline, virtual, inherited]

Enable or disable synchronous painting.

If synchronous painting is enabled, a call to paint() must complete painting the entire rectangle before it returns. If synchronous painting is disabled (which should be the default), the paint() call may defer painting some regions if data is not yet available, by calling back on its view to schedule another update. Synchronous painting is necessary when rendering to an image. Simple layer types will always paint synchronously, and so may ignore this.

Reimplemented in SpectrogramLayer.

Definition at line 104 of file Layer.h.

virtual VerticalPosition Layer::getPreferredTimeRulerPosition ( ) const [inline, virtual, inherited]

Definition at line 109 of file Layer.h.

References Layer::PositionMiddle.

virtual VerticalPosition Layer::getPreferredFrameCountPosition ( ) const [inline, virtual, inherited]

Reimplemented in SpectrogramLayer, and SpectrumLayer.

Definition at line 112 of file Layer.h.

References Layer::PositionBottom.

QString Layer::getPropertyContainerIconName ( ) const [virtual, inherited]

Definition at line 65 of file Layer.cpp.

References LayerFactory::getInstance(), and LayerFactory::getLayerIconName().

Referenced by LayerTreeModel::data().

virtual QString Layer::getPropertyContainerName ( ) const [inline, virtual, inherited]

Definition at line 121 of file Layer.h.

References Layer::m_presentationName.

void Layer::setPresentationName ( QString  name) [virtual, inherited]

Definition at line 72 of file Layer.cpp.

References Layer::m_presentationName.

virtual bool Layer::getCrosshairExtents ( View ,
QPainter &  ,
QPoint  ,
std::vector< QRect > &   
) const [inline, virtual, inherited]

Reimplemented in SpectrogramLayer, and SpectrumLayer.

Definition at line 137 of file Layer.h.

virtual void Layer::paintCrosshairs ( View ,
QPainter &  ,
QPoint   
) const [inline, virtual, inherited]

Reimplemented in SpectrogramLayer, and SpectrumLayer.

Definition at line 141 of file Layer.h.

bool Layer::nearestMeasurementRectChanged ( View v,
QPoint  prev,
QPoint  now 
) const [virtual, inherited]

Definition at line 460 of file Layer.cpp.

References Layer::findFocusedMeasureRect(), and Layer::updateMeasurePixrects().

Referenced by Pane::mouseMoveEvent().

virtual void Layer::splitStart ( View ,
QMouseEvent *   
) [inline, virtual, inherited]

Reimplemented in FlexiNoteLayer.

Definition at line 232 of file Layer.h.

Referenced by Pane::mousePressEvent().

virtual void Layer::splitEnd ( View ,
QMouseEvent *   
) [inline, virtual, inherited]

Reimplemented in FlexiNoteLayer.

Definition at line 233 of file Layer.h.

Referenced by Pane::mouseReleaseEvent().

virtual void Layer::addNote ( View ,
QMouseEvent *   
) [inline, virtual, inherited]

Reimplemented in FlexiNoteLayer.

Definition at line 234 of file Layer.h.

Referenced by Pane::mouseDoubleClickEvent().

void Layer::measureStart ( View v,
QMouseEvent *  e 
) [virtual, inherited]
void Layer::measureDrag ( View v,
QMouseEvent *  e 
) [virtual, inherited]
void Layer::measureDoubleClick ( View ,
QMouseEvent *   
) [virtual, inherited]

Reimplemented in SpectrogramLayer.

Definition at line 408 of file Layer.cpp.

Referenced by Pane::mouseDoubleClickEvent().

virtual bool Layer::haveCurrentMeasureRect ( ) const [inline, virtual, inherited]

Definition at line 245 of file Layer.h.

References Layer::m_haveCurrentMeasureRect.

virtual bool Layer::isLayerOpaque ( ) const [inline, virtual, inherited]

This should return true if the layer completely obscures any underlying layers.

It's used to determine whether the view can safely draw any selection rectangles under the layer instead of over it, in the case where the layer is not scrollable and therefore needs to be redrawn each time (so that the selection rectangle can be cached).

Reimplemented in SpectrogramLayer.

Definition at line 302 of file Layer.h.

Referenced by View::getAligningModel().

virtual QString Layer::getError ( View ) const [inline, virtual, inherited]

Return an error string if any errors have occurred while loading or processing data for the given view.

Return the empty string if no error has occurred.

Reimplemented in SpectrogramLayer.

Definition at line 354 of file Layer.h.

void Layer::setObjectName ( const QString &  name) [virtual, inherited]

Definition at line 100 of file Layer.cpp.

References Layer::layerNameChanged().

Referenced by LayerFactory::createLayer().

void Layer::toBriefXml ( QTextStream &  stream,
QString  indent = "",
QString  extraAttributes = "" 
) const [virtual, inherited]

Produce XML containing the layer's ID and type.

This is used to refer to the layer in the display section of the SV session file, for a layer that has already been described in the data section.

Definition at line 626 of file Layer.cpp.

References LayerFactory::getInstance(), Layer::getModel(), and Layer::m_presentationName.

void Layer::addMeasurementRect ( const QXmlAttributes &  attributes) [virtual, inherited]

Add a measurement rectangle from the given XML attributes (presumably taken from a measurement element).

Does not use a command.

Definition at line 317 of file Layer.cpp.

References Layer::addMeasureRectToSet(), Layer::MeasureRect::endFrame, Layer::MeasureRect::endY, Layer::MeasureRect::haveFrames, Layer::MeasureRect::pixrect, Layer::MeasureRect::startFrame, and Layer::MeasureRect::startY.

void Layer::setLayerDormant ( const View v,
bool  dormant 
) [virtual, inherited]

Indicate that a layer is not currently visible in the given view and is not expected to become visible in the near future (for example because the user has explicitly removed or hidden it).

The layer may respond by (for example) freeing any cache memory it is using, until next time its paint method is called, when it should set itself un-dormant again.

A layer class that overrides this function must also call this class's implementation.

Reimplemented in SpectrogramLayer, ImageLayer, and Colour3DPlotLayer.

Definition at line 118 of file Layer.cpp.

References Layer::m_dormancy, and Layer::m_dormancyMutex.

Referenced by SpectrogramLayer::paint(), and Layer::showLayer().

bool Layer::isLayerDormant ( const View v) const [virtual, inherited]
virtual bool Layer::hasTimeXAxis ( ) const [inline, virtual, inherited]

Reimplemented in SliceLayer.

Definition at line 415 of file Layer.h.

Referenced by Layer::getXScaleValue(), Pane::mouseMoveEvent(), and Layer::setMeasureRectFromPixrect().

bool Layer::getXScaleValue ( const View v,
int  x,
float &  value,
QString &  unit 
) const [virtual, inherited]

Return the value and unit at the given x coordinate in the given view.

This is for descriptive purposes using the measurement tool. The default implementation works correctly if the layer hasTimeXAxis().

Reimplemented in SpectrumLayer.

Definition at line 142 of file Layer.cpp.

References View::getFrameForX(), Layer::getModel(), and Layer::hasTimeXAxis().

Referenced by View::drawMeasurementRect().

virtual bool Layer::getYScaleValue ( const View ,
int  ,
float &  ,
QString &   
) const [inline, virtual, inherited]

Return the value and unit at the given y coordinate in the given view.

Reimplemented in SpectrogramLayer, WaveformLayer, Colour3DPlotLayer, and SpectrumLayer.

Definition at line 467 of file Layer.h.

Referenced by View::drawMeasurementRect(), and Layer::getYScaleDifference().

bool Layer::getYScaleDifference ( const View v,
int  y0,
int  y1,
float &  diff,
QString &  unit 
) const [virtual, inherited]

Return the difference between the values at the given y coordinates in the given view, and the unit of the difference.

The default implementation just calls getYScaleValue twice and returns the difference, with the same unit.

Reimplemented in WaveformLayer, and SpectrumLayer.

Definition at line 155 of file Layer.cpp.

References Layer::getYScaleValue().

Referenced by View::drawMeasurementRect().

void Layer::showLayer ( View view,
bool  show 
) [slot, inherited]
void Layer::modelCompletionChanged ( ) [signal, inherited]

Referenced by Layer::connectSignals().

void Layer::modelAlignmentCompletionChanged ( ) [signal, inherited]

Referenced by Layer::connectSignals().

void Layer::modelChangedWithin ( int  startFrame,
int  endFrame 
) [signal, inherited]
void Layer::layerParametersChanged ( ) [signal, inherited]

Referenced by SpectrogramLayer::preferenceChanged(), WaveformLayer::setAggressiveCacheing(), WaveformLayer::setAutoNormalize(), SingleColourLayer::setBaseColour(), SpectrogramLayer::setBinDisplay(), SliceLayer::setBinScale(), Colour3DPlotLayer::setBinScale(), SpectrumLayer::setChannel(), SpectrogramLayer::setChannel(), WaveformLayer::setChannel(), WaveformLayer::setChannelMode(), Colour3DPlotLayer::setColourMap(), SpectrogramLayer::setColourMap(), SpectrogramLayer::setColourRotation(), Colour3DPlotLayer::setColourScale(), SpectrogramLayer::setColourScale(), NoteLayer::setDisplayExtents(), FlexiNoteLayer::setDisplayExtents(), setDisplayExtents(), Colour3DPlotLayer::setDisplayExtents(), SpectrogramLayer::setDisplayExtents(), setDrawSegmentDivisions(), SliceLayer::setEnergyScale(), SliceLayer::setFillColourMap(), setFillColourMap(), RegionLayer::setFillColourMap(), SpectrogramLayer::setFrequencyScale(), WaveformLayer::setGain(), SliceLayer::setGain(), Colour3DPlotLayer::setGain(), SpectrogramLayer::setGain(), Colour3DPlotLayer::setInvertVertical(), SpectrogramLayer::setMaxFrequency(), WaveformLayer::setMiddleLineHeight(), SpectrogramLayer::setMinFrequency(), SpectrumLayer::setModel(), WaveformLayer::setModel(), SliceLayer::setNormalize(), Colour3DPlotLayer::setNormalizeColumns(), SpectrogramLayer::setNormalizeColumns(), Colour3DPlotLayer::setNormalizeHybrid(), SpectrogramLayer::setNormalizeHybrid(), Colour3DPlotLayer::setNormalizeVisibleArea(), SpectrogramLayer::setNormalizeVisibleArea(), Colour3DPlotLayer::setOpaque(), TimeInstantLayer::setPlotStyle(), SliceLayer::setPlotStyle(), setPlotStyle(), RegionLayer::setPlotStyle(), SliceLayer::setSamplingMode(), WaveformLayer::setScale(), setShowDerivative(), WaveformLayer::setShowMeans(), SpectrumLayer::setShowPeaks(), Colour3DPlotLayer::setSmooth(), SliceLayer::setThreshold(), SpectrogramLayer::setThreshold(), WaveformLayer::setUseGreyscale(), NoteLayer::setVerticalScale(), RegionLayer::setVerticalScale(), setVerticalScale(), FlexiNoteLayer::setVerticalScale(), Colour3DPlotLayer::setVerticalZoomStep(), SpectrumLayer::setWindowHopLevel(), SpectrogramLayer::setWindowHopLevel(), SpectrumLayer::setWindowSize(), SpectrogramLayer::setWindowSize(), SpectrumLayer::setWindowType(), SpectrogramLayer::setWindowType(), SpectrogramLayer::setZeroPadLevel(), and Layer::showLayer().

void Layer::layerNameChanged ( ) [signal, inherited]

Referenced by Layer::setObjectName().

int Layer::alignFromReference ( View v,
int  frame 
) const [protected, virtual, inherited]
bool Layer::clipboardHasDifferentAlignment ( View v,
const Clipboard &  clip 
) const [protected, inherited]
void Layer::addMeasureRectToSet ( const MeasureRect r) [inline, protected, inherited]

Definition at line 588 of file Layer.h.

References Layer::layerMeasurementRectsChanged(), and Layer::m_measureRects.

Referenced by Layer::addMeasurementRect().

void Layer::deleteMeasureRectFromSet ( const MeasureRect r) [inline, protected, inherited]

Definition at line 593 of file Layer.h.

References Layer::layerMeasurementRectsChanged(), and Layer::m_measureRects.

void Layer::updateMeasureRectYCoords ( View v,
const MeasureRect r 
) const [protected, virtual, inherited]
void Layer::setMeasureRectYCoord ( View v,
MeasureRect r,
bool  start,
int  y 
) const [protected, virtual, inherited]

Reimplemented in SpectrogramLayer.

Definition at line 518 of file Layer.cpp.

References Layer::MeasureRect::endY, and Layer::MeasureRect::startY.

Referenced by Layer::setMeasureRectFromPixrect().

Layer::MeasureRectSet::const_iterator Layer::findFocusedMeasureRect ( QPoint  focusPoint) const [protected, inherited]

Member Data Documentation

SparseTimeValueModel::Point TimeValueLayer::m_originalPoint [protected]

Definition at line 173 of file TimeValueLayer.h.

Referenced by drawDrag(), drawStart(), editEnd(), and editStart().

SparseTimeValueModel::Point TimeValueLayer::m_editingPoint [protected]

Definition at line 174 of file TimeValueLayer.h.

Referenced by drawDrag(), drawStart(), editDrag(), editEnd(), editStart(), eraseEnd(), and eraseStart().

SparseTimeValueModel::EditCommand* TimeValueLayer::m_editingCommand [protected]
float TimeValueLayer::m_scaleMinimum [mutable, protected]

Definition at line 182 of file TimeValueLayer.h.

Referenced by getDisplayExtents(), setDisplayExtents(), setModel(), and toXml().

float TimeValueLayer::m_scaleMaximum [mutable, protected]

Definition at line 183 of file TimeValueLayer.h.

Referenced by getDisplayExtents(), setDisplayExtents(), setModel(), and toXml().

bool SingleColourLayer::m_defaultColourSet [protected, inherited]

Definition at line 94 of file SingleColourLayer.h.

Referenced by SingleColourLayer::setDefaultColourFor().

bool Layer::m_haveDraggingRect [protected, inherited]
bool Layer::m_haveCurrentMeasureRect [mutable, protected, inherited]
QPoint Layer::m_currentMeasureRectPoint [mutable, protected, inherited]

Definition at line 603 of file Layer.h.

Referenced by Layer::deleteCurrentMeasureRect(), and Layer::paintMeasurementRects().


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