View is the base class of widgets that display one or more overlaid views of data against a horizontal time scale. More...

#include <View.h>

Inheritance diagram for View:
Inheritance graph
Collaboration diagram for View:
Collaboration graph

Classes

struct  AlignmentProgressBarRec
 
struct  ProgressBarRec
 

Public Types

typedef PropertyContainer::PropertyName PropertyName
 
typedef std::set< ModelId > ModelSet
 

Public Slots

virtual void modelChanged (ModelId)
 
virtual void modelChangedWithin (ModelId, sv_frame_t startFrame, sv_frame_t endFrame)
 
virtual void modelCompletionChanged (ModelId)
 
virtual void modelAlignmentCompletionChanged (ModelId)
 
virtual void modelReplaced ()
 
virtual void layerParametersChanged ()
 
virtual void layerParameterRangesChanged ()
 
virtual void layerMeasurementRectsChanged ()
 
virtual void layerNameChanged ()
 
virtual void globalCentreFrameChanged (sv_frame_t)
 
virtual void viewCentreFrameChanged (View *, sv_frame_t)
 
virtual void viewManagerPlaybackFrameChanged (sv_frame_t)
 
virtual void viewZoomLevelChanged (View *, ZoomLevel, bool)
 
virtual void propertyContainerSelected (View *, PropertyContainer *pc)
 A property container has been selected, for example in the associated property stack. More...
 
virtual void selectionChanged ()
 
virtual void toolModeChanged ()
 
virtual void overlayModeChanged ()
 
virtual void zoomWheelsEnabledChanged ()
 
virtual void cancelClicked ()
 
virtual void progressCheckStalledTimerElapsed ()
 

Signals

void propertyContainerAdded (PropertyContainer *pc)
 
void propertyContainerRemoved (PropertyContainer *pc)
 
void propertyContainerPropertyChanged (PropertyContainer *pc)
 
void propertyContainerPropertyRangeChanged (PropertyContainer *pc)
 
void propertyContainerNameChanged (PropertyContainer *pc)
 
void propertyContainerSelected (PropertyContainer *pc)
 
void propertyChanged (PropertyContainer::PropertyName)
 
void layerModelChanged ()
 
void cancelButtonPressed (Layer *)
 
void centreFrameChanged (sv_frame_t frame, bool globalScroll, PlaybackFollowMode followMode)
 
void zoomLevelChanged (ZoomLevel level, bool locked)
 
void contextHelpChanged (const QString &)
 

Public Member Functions

virtual ~View ()
 Deleting a View does not delete any of its layers. More...
 
int getId () const override
 Retrieve the id of this object. More...
 
sv_frame_t getStartFrame () const override
 Retrieve the first visible sample frame on the widget. More...
 
void setStartFrame (sv_frame_t)
 Set the widget pan based on the given first visible frame. More...
 
sv_frame_t getCentreFrame () const override
 Return the centre frame of the visible widget. More...
 
void setCentreFrame (sv_frame_t f)
 Set the centre frame of the visible widget. More...
 
sv_frame_t getEndFrame () const override
 Retrieve the last visible sample frame on the widget. More...
 
int getXForFrame (sv_frame_t frame) const override
 Return the pixel x-coordinate corresponding to a given sample frame. More...
 
sv_frame_t getFrameForX (int x) const override
 Return the closest frame to the given pixel x-coordinate. More...
 
int getXForViewX (int viewx) const override
 Return the closest pixel x-coordinate corresponding to a given view x-coordinate. More...
 
int getViewXForX (int x) const override
 Return the closest view x-coordinate corresponding to a given pixel x-coordinate. More...
 
double getYForFrequency (double frequency, double minFreq, double maxFreq, bool logarithmic) const override
 Return the pixel y-coordinate corresponding to a given frequency, if the frequency range is as specified. More...
 
double getFrequencyForY (double y, double minFreq, double maxFreq, bool logarithmic) const override
 Return the closest frequency to the given pixel y-coordinate, if the frequency range is as specified. More...
 
ZoomLevel getZoomLevel () const override
 Return the zoom level, i.e. More...
 
virtual void setZoomLevel (ZoomLevel z)
 Set the zoom level, i.e. More...
 
virtual void zoom (bool in)
 Zoom in or out. More...
 
virtual void scroll (bool right, bool lots, bool doEmit=true)
 Scroll left or right by a smallish or largish amount. More...
 
virtual void addLayer (Layer *v)
 Add a layer to the view. More...
 
virtual void removeLayer (Layer *v)
 Remove a layer from the view. More...
 
virtual int getLayerCount () const
 Return the number of layers, regardless of whether visible or dormant, i.e. More...
 
virtual LayergetLayer (int n)
 Return the nth layer, counted in stacking order. More...
 
virtual LayergetFixedOrderLayer (int n)
 Return the nth layer, counted in the order they were added. More...
 
virtual LayergetInteractionLayer ()
 Return the layer currently active for tool interaction. More...
 
virtual const LayergetInteractionLayer () const
 
virtual LayergetSelectedLayer ()
 Return the layer most recently selected by the user. More...
 
virtual const LayergetSelectedLayer () const
 
virtual LayergetTopLayer ()
 Return the "top" layer in the view, whether visible or dormant. More...
 
virtual void setViewManager (ViewManager *m)
 
virtual void setViewManager (ViewManager *m, sv_frame_t initialFrame)
 
ViewManagergetViewManager () const override
 
virtual void setFollowGlobalPan (bool f)
 
virtual bool getFollowGlobalPan () const
 
virtual void setFollowGlobalZoom (bool f)
 
virtual bool getFollowGlobalZoom () const
 
bool hasLightBackground () const override
 
QColor getForeground () const override
 
QColor getBackground () const override
 
void drawMeasurementRect (QPainter &p, const Layer *, QRect rect, bool focus) const override
 
bool shouldShowFeatureLabels () const override
 
bool shouldIlluminateLocalFeatures (const Layer *, QPoint &) const override
 
virtual bool shouldIlluminateLocalSelection (QPoint &, bool &, bool &) const
 
virtual void setPlaybackFollow (PlaybackFollowMode m)
 
virtual PlaybackFollowMode getPlaybackFollow () const
 
virtual PropertyContainer::PropertyList getProperties () const
 
virtual QString getPropertyLabel (const PropertyName &) const
 
virtual PropertyContainer::PropertyType getPropertyType (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)
 
virtual QString getPropertyContainerName () const
 
virtual QString getPropertyContainerIconName () const =0
 
virtual int getPropertyContainerCount () const
 
virtual const PropertyContainer * getPropertyContainer (int i) const
 
virtual PropertyContainer * getPropertyContainer (int i)
 
virtual QImage * renderToNewImage ()
 Render the view contents to a new QImage (which may be wider than the visible View). More...
 
virtual QImage * renderPartToNewImage (sv_frame_t f0, sv_frame_t f1)
 Render the view contents between the given frame extents to a new QImage (which may be wider than the visible View). More...
 
virtual QSize getRenderedImageSize ()
 Calculate and return the size of image that will be generated by renderToNewImage(). More...
 
virtual QSize getRenderedPartImageSize (sv_frame_t f0, sv_frame_t f1)
 Calculate and return the size of image that will be generated by renderPartToNewImage(f0, f1). More...
 
virtual bool renderToSvgFile (QString filename)
 Render the view contents to a new SVG file. More...
 
virtual bool renderPartToSvgFile (QString filename, sv_frame_t f0, sv_frame_t f1)
 Render the view contents between the given frame extents to a new SVG file. More...
 
bool getVisibleExtentsForUnit (QString unit, double &min, double &max, bool &log) const override
 Return the visible vertical extents for the given unit, if any. More...
 
bool getVisibleExtentsForAnyUnit (double &min, double &max, bool &logarithmic, QString &unit) const
 Return some visible vertical extents and unit. More...
 
int getTextLabelYCoord (const Layer *layer, QPainter &) const override
 Return a y-coordinate at which text labels for individual items in a layer may be drawn, so as not to overlap with those of other layers. More...
 
void toXml (QTextStream &stream, QString indent="", QString extraAttributes="") const override
 
virtual sv_frame_t getFirstVisibleFrame () const
 
virtual sv_frame_t getLastVisibleFrame () const
 
sv_frame_t getModelsStartFrame () const override
 
sv_frame_t getModelsEndFrame () const override
 
QRect getPaintRect () const override
 To be called from a layer, to obtain the extent of the surface that the layer is currently painting to. More...
 
QSize getPaintSize () const override
 
int getPaintWidth () const override
 
int getPaintHeight () const override
 
double scaleSize (double size) const override
 
int scalePixelSize (int size) const override
 
double scalePenWidth (double width) const override
 
QPen scalePen (QPen pen) const override
 
ModelSet getModels ()
 
void setUseAligningProxy (bool uap)
 !!??? poor name, probably poor api, consider this More...
 
ModelId getAligningModel () const
 !! More...
 
void getAligningAndReferenceModels (ModelId &aligning, ModelId &reference) const
 
sv_frame_t alignFromReference (sv_frame_t) const
 
sv_frame_t alignToReference (sv_frame_t) const
 
sv_frame_t getAlignedPlaybackFrame () const
 
void updatePaintRect (QRect r) override
 
ViewgetView () override
 
const ViewgetView () const override
 

Protected Types

typedef std::vector< Layer * > LayerList
 
typedef std::map< Layer *, ProgressBarRecProgressMap
 

Protected Member Functions

 View (QWidget *, bool showProgress)
 
void paintEvent (QPaintEvent *e) override
 
virtual void drawSelections (QPainter &)
 
virtual bool shouldLabelSelections () const
 
virtual void drawPlayPointer (QPainter &)
 
virtual bool render (QPainter &paint, int x0, sv_frame_t f0, sv_frame_t f1)
 
virtual void setPaintFont (QPainter &paint)
 
QSize scaledSize (const QSize &s, int factor)
 
QRect scaledRect (const QRect &r, int factor)
 
sv_samplerate_t getModelsSampleRate () const
 
bool areLayersScrollable () const
 
LayerList getScrollableBackLayers (bool testChanged, bool &changed) const
 
LayerList getNonScrollableFrontLayers (bool testChanged, bool &changed) const
 
LayergetScaleProvidingLayerForUnit (QString unit) const
 
ZoomLevel getZoomConstraintLevel (ZoomLevel level, ZoomConstraint::RoundingDirection dir=ZoomConstraint::RoundNearest) const
 
int countZoomLevels () const
 
int getZoomLevelIndex (ZoomLevel level) const
 
ZoomLevel getZoomLevelByIndex (int ix) const
 
bool areLayerColoursSignificant () const
 
bool hasTopLayerTimeXAxis () const
 
bool setCentreFrame (sv_frame_t f, bool doEmit)
 
void movePlayPointer (sv_frame_t f)
 
void checkProgress (ModelId)
 
void checkAlignmentProgress (ModelId)
 
bool waitForLayersToBeReady ()
 
int getProgressBarWidth () const
 
int effectiveDevicePixelRatio () const
 

Static Protected Member Functions

static int getNextId ()
 

Protected Attributes

int m_id
 
sv_frame_t m_centreFrame
 
ZoomLevel m_zoomLevel
 
bool m_followPan
 
bool m_followZoom
 
PlaybackFollowMode m_followPlay
 
bool m_followPlayIsDetached
 
sv_frame_t m_playPointerFrame
 
bool m_lightBackground
 
bool m_showProgress
 
QPixmap * m_cache
 
QPixmap * m_buffer
 
bool m_cacheValid
 
sv_frame_t m_cacheCentreFrame
 
ZoomLevel m_cacheZoomLevel
 
bool m_selectionCached
 
bool m_deleting
 
LayerList m_layerStack
 
LayerList m_fixedOrderLayers
 
bool m_haveSelectedLayer
 
bool m_useAligningProxy
 
QString m_lastError
 
LayerList m_lastScrollableBackLayers
 
LayerList m_lastNonScrollableBackLayers
 
ProgressMap m_progressBars
 
AlignmentProgressBarRec m_alignmentProgressBar
 
ViewManagerm_manager
 
ViewPropertyContainerm_propertyContainer
 

Detailed Description

View is the base class of widgets that display one or more overlaid views of data against a horizontal time scale.

A View may have any number of attached Layers, each of which is expected to have one data Model (although multiple views may share the same model).

A View may be panned in time and zoomed, although the mechanisms for doing so (as well as any other operations and properties available) depend on the subclass.

Definition at line 55 of file View.h.

Member Typedef Documentation

typedef PropertyContainer::PropertyName View::PropertyName

Definition at line 292 of file View.h.

typedef std::set<ModelId> View::ModelSet

Definition at line 400 of file View.h.

typedef std::vector<Layer *> View::LayerList
protected

Definition at line 498 of file View.h.

typedef std::map<Layer *, ProgressBarRec> View::ProgressMap
protected

Definition at line 577 of file View.h.

Constructor & Destructor Documentation

View::~View ( )
virtual

Deleting a View does not delete any of its layers.

They should be managed elsewhere (e.g. by the Document).

Definition at line 83 of file View.cpp.

References m_buffer, m_cache, m_deleting, and m_propertyContainer.

View::View ( QWidget *  w,
bool  showProgress 
)
protected

Definition at line 56 of file View.cpp.

References m_manager, and m_propertyContainer.

Referenced by getView().

Member Function Documentation

sv_frame_t View::getStartFrame ( ) const
overridevirtual

Retrieve the first visible sample frame on the widget.

This is a calculated value based on the centre-frame, widget width and zoom level. The result may be negative.

Implements LayerGeometryProvider.

Definition at line 445 of file View.cpp.

References getFrameForX().

Referenced by Pane::drawModelTimeExtents(), drawPlayPointer(), Pane::edgeScrollMaybe(), getFirstVisibleFrame(), getId(), ViewProxy::getStartFrame(), modelChangedWithin(), movePlayPointer(), Overview::paintEvent(), paintEvent(), scroll(), Pane::wheelHorizontalFine(), and Pane::zoomToRegion().

void View::setStartFrame ( sv_frame_t  f)

Set the widget pan based on the given first visible frame.

The frame value may be negative.

Definition at line 457 of file View.cpp.

References m_zoomLevel, and setCentreFrame().

Referenced by getId(), and Pane::zoomToRegion().

sv_frame_t View::getCentreFrame ( ) const
inlineoverridevirtual

Return the centre frame of the visible widget.

This is an exact value that does not depend on the zoom block size. Other frame values (start, end) are calculated from this based on the zoom and other factors.

Implements LayerGeometryProvider.

Definition at line 93 of file View.h.

References m_centreFrame.

Referenced by drawPlayPointer(), ViewProxy::getCentreFrame(), getFrameForX(), and getXForFrame().

void View::setCentreFrame ( sv_frame_t  f)
inline
sv_frame_t View::getEndFrame ( ) const
overridevirtual

Retrieve the last visible sample frame on the widget.

This is a calculated value based on the centre-frame, widget width and zoom level.

Implements LayerGeometryProvider.

Definition at line 451 of file View.cpp.

References getFrameForX().

Referenced by Pane::drawModelTimeExtents(), drawPlayPointer(), Pane::edgeScrollMaybe(), ViewProxy::getEndFrame(), getLastVisibleFrame(), modelChangedWithin(), movePlayPointer(), scroll(), setCentreFrame(), Pane::wheelHorizontalFine(), and Pane::zoomToRegion().

int View::getXForFrame ( sv_frame_t  frame) const
overridevirtual

Return the pixel x-coordinate corresponding to a given sample frame.

The frame is permitted to be negative, and the result may be outside the currently visible area. But this should not be called with frame values very far away from the currently visible area, as that could lead to overflow. In that situation an error will be logged and 0 returned.

Implements LayerGeometryProvider.

Definition at line 527 of file View.cpp.

References getCentreFrame(), getFrameForX(), getId(), m_centreFrame, and m_zoomLevel.

Referenced by Pane::dragTopLayer(), Pane::drawEditingSelection(), Pane::drawModelTimeExtents(), drawPlayPointer(), drawSelections(), Pane::editSelectionEnd(), getFrameForX(), Pane::getSelectionAt(), ViewProxy::getXForFrame(), movePlayPointer(), AlignmentView::paintEvent(), Overview::paintEvent(), paintEvent(), setCentreFrame(), and Overview::viewManagerPlaybackFrameChanged().

int View::getXForViewX ( int  viewx) const
inlineoverridevirtual

Return the closest pixel x-coordinate corresponding to a given view x-coordinate.

Default is no scaling, ViewProxy handles scaling case.

Implements LayerGeometryProvider.

Definition at line 127 of file View.h.

int View::getViewXForX ( int  x) const
inlineoverridevirtual

Return the closest view x-coordinate corresponding to a given pixel x-coordinate.

Default is no scaling, ViewProxy handles scaling case.

Implements LayerGeometryProvider.

Definition at line 134 of file View.h.

References addLayer(), getFrequencyForY(), getYForFrequency(), getZoomLevel(), removeLayer(), scroll(), setZoomLevel(), and zoom().

double View::getYForFrequency ( double  frequency,
double  minFreq,
double  maxFreq,
bool  logarithmic 
) const
overridevirtual

Return the pixel y-coordinate corresponding to a given frequency, if the frequency range is as specified.

This does not imply any policy about layer frequency ranges, but it might be useful for layers to match theirs up if desired.

Not thread-safe in logarithmic mode. Call only from GUI thread.

Implements LayerGeometryProvider.

Definition at line 666 of file View.cpp.

Referenced by getViewXForX(), and ViewProxy::getYForFrequency().

double View::getFrequencyForY ( double  y,
double  minFreq,
double  maxFreq,
bool  logarithmic 
) const
overridevirtual

Return the closest frequency to the given pixel y-coordinate, if the frequency range is as specified.

Not thread-safe in logarithmic mode. Call only from GUI thread.

Implements LayerGeometryProvider.

Definition at line 700 of file View.cpp.

Referenced by ViewProxy::getFrequencyForY(), and getViewXForX().

ZoomLevel View::getZoomLevel ( ) const
overridevirtual

Return the zoom level, i.e.

the number of frames per pixel or pixels per frame

Implements LayerGeometryProvider.

Definition at line 732 of file View.cpp.

References m_zoomLevel.

Referenced by getRenderedPartImageSize(), getViewXForX(), ViewProxy::getZoomLevel(), Pane::renderPartToNewImage(), renderPartToNewImage(), renderPartToSvgFile(), and Pane::updateHeadsUpDisplay().

void View::setZoomLevel ( ZoomLevel  z)
virtual

Set the zoom level, i.e.

the number of frames per pixel or pixels per frame. The centre frame will be unchanged; the start and end frames will change.

!! int dpratio = effectiveDevicePixelRatio();

Definition at line 760 of file View.cpp.

References m_followZoom, m_zoomLevel, and zoomLevelChanged().

Referenced by getViewXForX(), Pane::horizontalThumbwheelMoved(), setViewManager(), viewZoomLevelChanged(), Pane::wheelVertical(), zoom(), and Pane::zoomToRegion().

void View::zoom ( bool  in)
virtual

Zoom in or out.

Definition at line 1879 of file View.cpp.

References getZoomConstraintLevel(), m_zoomLevel, and setZoomLevel().

Referenced by getViewXForX().

void View::scroll ( bool  right,
bool  lots,
bool  doEmit = true 
)
virtual

Scroll left or right by a smallish or largish amount.

Definition at line 1899 of file View.cpp.

References getEndFrame(), getModelsEndFrame(), getStartFrame(), m_centreFrame, and setCentreFrame().

Referenced by getViewXForX().

void View::removeLayer ( Layer v)
virtual

Remove a layer from the view.

Does not delete the layer. (Normally this should be handled through some command abstraction instead of using this function directly.)

Definition at line 905 of file View.cpp.

References layerNameChanged(), layerParameterRangesChanged(), layerParametersChanged(), m_cacheValid, m_deleting, m_fixedOrderLayers, m_layerStack, m_progressBars, modelAlignmentCompletionChanged(), modelChanged(), modelChangedWithin(), modelCompletionChanged(), modelReplaced(), and propertyContainerRemoved().

Referenced by getViewXForX().

virtual Layer* View::getFixedOrderLayer ( int  n)
inlinevirtual

Return the nth layer, counted in the order they were added.

Unlike the stacking order used in getLayer(), which changes each time a layer is selected, this ordering remains fixed. The returned layer may be visible or it may be dormant, i.e. invisible.

Definition at line 217 of file View.h.

References getInteractionLayer(), getSelectedLayer(), and m_fixedOrderLayers.

Layer * View::getInteractionLayer ( )
virtual

Return the layer currently active for tool interaction.

This is the topmost non-dormant (i.e. visible) layer in the view. If there are no visible layers in the view, return 0.

Definition at line 960 of file View.cpp.

References getLayer(), getLayerCount(), getSelectedLayer(), Layer::isLayerDormant(), and m_layerStack.

Referenced by Pane::dragExtendSelection(), Pane::editSelectionEnd(), getFixedOrderLayer(), getInteractionLayer(), Pane::mouseDoubleClickEvent(), Pane::mouseMoveEvent(), Pane::mousePressEvent(), Pane::mouseReleaseEvent(), Pane::shouldIlluminateLocalFeatures(), Pane::shouldIlluminateLocalSelection(), Pane::updateContextHelp(), and Pane::zoomToRegion().

const Layer * View::getInteractionLayer ( ) const
virtual

Definition at line 980 of file View.cpp.

References getInteractionLayer().

Layer * View::getSelectedLayer ( )
virtual

Return the layer most recently selected by the user.

This is the layer that any non-tool-driven commands should operate on, in the case where this view is the "current" one.

If the user has selected the view itself more recently than any of the layers on it, this function will return 0, and any non-tool-driven layer commands should be deactivated while this view is current. It will also return 0 if there are no layers in the view.

Note that, unlike getInteractionLayer(), this could return an invisible (dormant) layer.

Definition at line 986 of file View.cpp.

References getLayer(), getLayerCount(), m_haveSelectedLayer, and m_layerStack.

Referenced by getFixedOrderLayer(), getInteractionLayer(), and getSelectedLayer().

const Layer * View::getSelectedLayer ( ) const
virtual

Definition at line 996 of file View.cpp.

References getSelectedLayer().

virtual Layer* View::getTopLayer ( )
inlinevirtual

Return the "top" layer in the view, whether visible or dormant.

This is the same as getLayer(getLayerCount()-1) if there is at least one layer, and 0 otherwise.

For most purposes involving interaction or commands, you probably want either getInteractionLayer() or getSelectedLayer() instead.

Definition at line 258 of file View.h.

References m_layerStack, and setViewManager().

Referenced by Pane::getRenderedPartImageSize(), Pane::getTopLayerDisplayExtents(), Pane::mouseDoubleClickEvent(), Pane::mouseMoveEvent(), Pane::mousePressEvent(), Pane::mouseReleaseEvent(), Pane::paintEvent(), Pane::render(), Pane::renderPartToNewImage(), and Pane::setTopLayerDisplayExtents().

void View::setViewManager ( ViewManager m,
sv_frame_t  initialFrame 
)
virtual

Definition at line 1076 of file View.cpp.

References setCentreFrame(), and setViewManager().

ViewManager* View::getViewManager ( ) const
inlineoverridevirtual

Implements LayerGeometryProvider.

Definition at line 264 of file View.h.

References m_manager, and setFollowGlobalPan().

Referenced by ViewProxy::getViewManager().

void View::setFollowGlobalPan ( bool  f)
virtual

Definition at line 1083 of file View.cpp.

References m_followPan, m_propertyContainer, and propertyContainerPropertyChanged().

Referenced by getViewManager(), and setProperty().

virtual bool View::getFollowGlobalPan ( ) const
inlinevirtual

Definition at line 267 of file View.h.

References m_followPan, and setFollowGlobalZoom().

void View::setFollowGlobalZoom ( bool  f)
virtual

Definition at line 1090 of file View.cpp.

References m_followZoom, m_propertyContainer, and propertyContainerPropertyChanged().

Referenced by getFollowGlobalPan(), and setProperty().

virtual bool View::getFollowGlobalZoom ( ) const
inlinevirtual
QColor View::getBackground ( ) const
overridevirtual
void View::drawMeasurementRect ( QPainter &  p,
const Layer topLayer,
QRect  rect,
bool  focus 
) const
overridevirtual
bool View::shouldShowFeatureLabels ( ) const
inlineoverridevirtual

Implements LayerGeometryProvider.

Definition at line 279 of file View.h.

References m_manager, and ViewManager::shouldShowFeatureLabels().

Referenced by ViewProxy::shouldShowFeatureLabels().

bool View::shouldIlluminateLocalFeatures ( const Layer ,
QPoint &   
) const
inlineoverridevirtual

Implements LayerGeometryProvider.

Definition at line 282 of file View.h.

Referenced by ViewProxy::shouldIlluminateLocalFeatures().

virtual bool View::shouldIlluminateLocalSelection ( QPoint &  ,
bool &  ,
bool &   
) const
inlinevirtual

Reimplemented in Pane.

Definition at line 285 of file View.h.

References setPlaybackFollow().

Referenced by drawSelections().

void View::setPlaybackFollow ( PlaybackFollowMode  m)
virtual
virtual PlaybackFollowMode View::getPlaybackFollow ( ) const
inlinevirtual

Definition at line 290 of file View.h.

References m_followPlay.

PropertyContainer::PropertyList View::getProperties ( ) const
virtual

Definition at line 94 of file View.cpp.

QString View::getPropertyLabel ( const PropertyName pn) const
virtual

Definition at line 104 of file View.cpp.

PropertyContainer::PropertyType View::getPropertyType ( const PropertyName name) const
virtual

Definition at line 113 of file View.cpp.

int View::getPropertyRangeAndValue ( const PropertyName name,
int *  min,
int *  max,
int *  deflt 
) const
virtual
QString View::getPropertyValueLabel ( const PropertyName name,
int  value 
) const
virtual

Definition at line 145 of file View.cpp.

void View::setProperty ( const PropertyName name,
int  value 
)
virtual
virtual QString View::getPropertyContainerIconName ( ) const
pure virtual

Implemented in Pane, Overview, and AlignmentView.

Referenced by getPropertyContainerName().

int View::getPropertyContainerCount ( ) const
virtual
const PropertyContainer * View::getPropertyContainer ( int  i) const
virtual
PropertyContainer * View::getPropertyContainer ( int  i)
virtual

Definition at line 190 of file View.cpp.

References m_fixedOrderLayers, and m_propertyContainer.

QImage * View::renderToNewImage ( )
virtual

Render the view contents to a new QImage (which may be wider than the visible View).

Reimplemented in Pane.

Definition at line 3151 of file View.cpp.

References getModelsEndFrame(), getModelsStartFrame(), renderPartToNewImage(), and waitForLayersToBeReady().

Referenced by getPropertyContainerName(), and Pane::renderToNewImage().

QImage * View::renderPartToNewImage ( sv_frame_t  f0,
sv_frame_t  f1 
)
virtual

Render the view contents between the given frame extents to a new QImage (which may be wider than the visible View).

Reimplemented in Pane.

Definition at line 3164 of file View.cpp.

References getZoomLevel(), and render().

Referenced by getPropertyContainerName(), and renderToNewImage().

QSize View::getRenderedImageSize ( )
virtual

Calculate and return the size of image that will be generated by renderToNewImage().

Reimplemented in Pane.

Definition at line 3183 of file View.cpp.

References getModelsEndFrame(), getModelsStartFrame(), and getRenderedPartImageSize().

Referenced by getPropertyContainerName(), and Pane::getRenderedImageSize().

QSize View::getRenderedPartImageSize ( sv_frame_t  f0,
sv_frame_t  f1 
)
virtual

Calculate and return the size of image that will be generated by renderPartToNewImage(f0, f1).

Reimplemented in Pane.

Definition at line 3192 of file View.cpp.

References getZoomLevel().

Referenced by getPropertyContainerName(), getRenderedImageSize(), and Pane::getRenderedPartImageSize().

bool View::renderToSvgFile ( QString  filename)
virtual

Render the view contents to a new SVG file.

Definition at line 3201 of file View.cpp.

References getModelsEndFrame(), getModelsStartFrame(), and renderPartToSvgFile().

Referenced by getPropertyContainerName().

bool View::renderPartToSvgFile ( QString  filename,
sv_frame_t  f0,
sv_frame_t  f1 
)
virtual

Render the view contents between the given frame extents to a new SVG file.

Definition at line 3210 of file View.cpp.

References getZoomLevel(), and render().

Referenced by getPropertyContainerName(), and renderToSvgFile().

bool View::getVisibleExtentsForUnit ( QString  unit,
double &  min,
double &  max,
bool &  log 
) const
overridevirtual

Return the visible vertical extents for the given unit, if any.

Overridden from LayerGeometryProvider (see docs there).

Implements LayerGeometryProvider.

Definition at line 197 of file View.cpp.

References Layer::getDisplayExtents(), getId(), getScaleProvidingLayerForUnit(), Layer::getValueExtents(), and m_layerStack.

Referenced by getPropertyContainerName(), and ViewProxy::getVisibleExtentsForUnit().

bool View::getVisibleExtentsForAnyUnit ( double &  min,
double &  max,
bool &  logarithmic,
QString &  unit 
) const

Return some visible vertical extents and unit.

That is, if at least one non-dormant layer has a non-empty unit and returns some values from its getDisplayExtents() method, return the extents and unit from the topmost of those. Otherwise return false.

Definition at line 323 of file View.cpp.

References Layer::getDisplayExtents(), Layer::getValueExtents(), Layer::isLayerDormant(), and m_layerStack.

Referenced by getPropertyContainerName().

int View::getTextLabelYCoord ( const Layer layer,
QPainter &   
) const
overridevirtual

Return a y-coordinate at which text labels for individual items in a layer may be drawn, so as not to overlap with those of other layers.

The returned coordinate will be near the top of the visible widget, but adjusted downward depending on how many other visible layers return true from their implementation of Layer::needsTextLabelHeight().

Implements LayerGeometryProvider.

Definition at line 367 of file View.cpp.

References m_layerStack, and scalePixelSize().

Referenced by getPropertyContainerName(), and ViewProxy::getTextLabelYCoord().

void View::toXml ( QTextStream &  stream,
QString  indent = "",
QString  extraAttributes = "" 
) const
override
sv_frame_t View::getFirstVisibleFrame ( ) const
virtual

Reimplemented in Pane.

Definition at line 1433 of file View.cpp.

References getModelsStartFrame(), and getStartFrame().

Referenced by Pane::getFirstVisibleFrame(), and getPropertyContainerName().

sv_frame_t View::getLastVisibleFrame ( ) const
virtual

Definition at line 1442 of file View.cpp.

References getEndFrame(), and getModelsEndFrame().

Referenced by getPropertyContainerName().

QRect View::getPaintRect ( ) const
overridevirtual

To be called from a layer, to obtain the extent of the surface that the layer is currently painting to.

This may be the extent of the view (if 1x display scaling is in effect) or of a larger cached pixmap (if greater display scaling is in effect).

Implements LayerGeometryProvider.

Definition at line 2219 of file View.cpp.

Referenced by getPaintHeight(), ViewProxy::getPaintRect(), getPaintSize(), getPaintWidth(), and getPropertyContainerName().

QSize View::getPaintSize ( ) const
inlineoverridevirtual

Reimplemented from LayerGeometryProvider.

Definition at line 391 of file View.h.

References getPaintRect().

int View::getPaintWidth ( ) const
inlineoverridevirtual

Reimplemented from LayerGeometryProvider.

Definition at line 392 of file View.h.

References getPaintRect().

int View::getPaintHeight ( ) const
inlineoverridevirtual

Reimplemented from LayerGeometryProvider.

Definition at line 393 of file View.h.

References getPaintRect(), scalePen(), scalePenWidth(), scalePixelSize(), and scaleSize().

double View::scaleSize ( double  size) const
overridevirtual

Implements LayerGeometryProvider.

Definition at line 1807 of file View.cpp.

Referenced by getPaintHeight(), scalePenWidth(), scalePixelSize(), and ViewProxy::scaleSize().

int View::scalePixelSize ( int  size) const
overridevirtual
double View::scalePenWidth ( double  width) const
overridevirtual

Implements LayerGeometryProvider.

Definition at line 1843 of file View.cpp.

References scaleSize().

Referenced by drawSelections(), getPaintHeight(), scalePen(), and ViewProxy::scalePenWidth().

QPen View::scalePen ( QPen  pen) const
overridevirtual

Implements LayerGeometryProvider.

Definition at line 1853 of file View.cpp.

References scalePenWidth().

Referenced by Pane::drawCentreLine(), and getPaintHeight().

View::ModelSet View::getModels ( )

Definition at line 1521 of file View.cpp.

References getLayer(), getLayerCount(), and Layer::getModel().

void View::setUseAligningProxy ( bool  uap)
inline

!!??? poor name, probably poor api, consider this

Definition at line 404 of file View.h.

References alignFromReference(), alignToReference(), getAlignedPlaybackFrame(), getAligningAndReferenceModels(), getAligningModel(), and m_useAligningProxy.

ModelId View::getAligningModel ( ) const
void View::getAligningAndReferenceModels ( ModelId &  aligning,
ModelId &  reference 
) const
sv_frame_t View::alignFromReference ( sv_frame_t  f) const
void View::updatePaintRect ( QRect  r)
inlineoverridevirtual

Implements LayerGeometryProvider.

Definition at line 415 of file View.h.

View* View::getView ( )
inlineoverridevirtual

Implements LayerGeometryProvider.

Definition at line 417 of file View.h.

void View::propertyContainerAdded ( PropertyContainer *  pc)
signal
void View::propertyContainerRemoved ( PropertyContainer *  pc)
signal

Referenced by getView(), and removeLayer().

void View::propertyContainerPropertyChanged ( PropertyContainer *  pc)
signal
void View::propertyContainerPropertyRangeChanged ( PropertyContainer *  pc)
signal
void View::propertyContainerNameChanged ( PropertyContainer *  pc)
signal

Referenced by getView(), and layerNameChanged().

void View::propertyContainerSelected ( PropertyContainer *  pc)
signal
void View::propertyChanged ( PropertyContainer::PropertyName  )
signal

Referenced by getView().

void View::layerModelChanged ( )
signal
void View::cancelButtonPressed ( Layer )
signal

Referenced by cancelClicked(), and getView().

void View::centreFrameChanged ( sv_frame_t  frame,
bool  globalScroll,
PlaybackFollowMode  followMode 
)
signal
void View::zoomLevelChanged ( ZoomLevel  level,
bool  locked 
)
signal
void View::modelChanged ( ModelId  modelId)
virtualslot
void View::modelChangedWithin ( ModelId  modelId,
sv_frame_t  startFrame,
sv_frame_t  endFrame 
)
virtualslot
void View::modelCompletionChanged ( ModelId  modelId)
virtualslot

Definition at line 1184 of file View.cpp.

References checkProgress(), and getId().

Referenced by addLayer(), getView(), and removeLayer().

void View::modelAlignmentCompletionChanged ( ModelId  modelId)
virtualslot

Definition at line 1193 of file View.cpp.

References checkAlignmentProgress(), and getId().

Referenced by addLayer(), getView(), Pane::modelAlignmentCompletionChanged(), and removeLayer().

void View::modelReplaced ( )
virtualslot

Definition at line 1202 of file View.cpp.

References getId(), and m_cacheValid.

Referenced by addLayer(), getView(), Overview::modelReplaced(), and removeLayer().

void View::layerParametersChanged ( )
virtualslot
void View::layerParameterRangesChanged ( )
virtualslot

Definition at line 1229 of file View.cpp.

References propertyContainerPropertyRangeChanged().

Referenced by addLayer(), getView(), and removeLayer().

void View::layerMeasurementRectsChanged ( )
virtualslot

Definition at line 1236 of file View.cpp.

Referenced by addLayer(), and getView().

void View::layerNameChanged ( )
virtualslot

Definition at line 1243 of file View.cpp.

References propertyContainerNameChanged().

Referenced by addLayer(), getView(), and removeLayer().

void View::globalCentreFrameChanged ( sv_frame_t  rf)
virtualslot
void View::viewCentreFrameChanged ( View ,
sv_frame_t   
)
virtualslot

Definition at line 1263 of file View.cpp.

Referenced by getView(), setViewManager(), and AlignmentView::viewCentreFrameChanged().

void View::viewManagerPlaybackFrameChanged ( sv_frame_t  f)
virtualslot

Definition at line 1269 of file View.cpp.

References getAlignedPlaybackFrame(), getId(), m_manager, and movePlayPointer().

Referenced by getView(), and setViewManager().

void View::viewZoomLevelChanged ( View p,
ZoomLevel  z,
bool  locked 
)
virtualslot

Definition at line 1412 of file View.cpp.

References getId(), m_followZoom, and setZoomLevel().

Referenced by getView(), setViewManager(), and Pane::viewZoomLevelChanged().

void View::propertyContainerSelected ( View client,
PropertyContainer *  pc 
)
virtualslot

A property container has been selected, for example in the associated property stack.

The property container may be a layer, in which case the effect should be to raise that layer to the front of the view and select it; or it may be the view's own property container, in which case the effect is to switch to a mode in which no layer is selected.

(This is the main slot for raising a layer.)

Definition at line 390 of file View.cpp.

References m_cacheValid, m_haveSelectedLayer, m_layerStack, m_propertyContainer, and propertyContainerSelected().

void View::selectionChanged ( )
virtualslot

Definition at line 1423 of file View.cpp.

References m_cacheValid, and m_selectionCached.

Referenced by getView(), and setViewManager().

void View::toolModeChanged ( )
virtualslot

Definition at line 426 of file View.cpp.

Referenced by getView(), and setViewManager().

void View::overlayModeChanged ( )
virtualslot

Definition at line 432 of file View.cpp.

References m_cacheValid.

Referenced by getView(), and setViewManager().

void View::zoomWheelsEnabledChanged ( )
virtualslot

Definition at line 439 of file View.cpp.

Referenced by getView(), and setViewManager().

void View::cancelClicked ( )
virtualslot

Definition at line 1925 of file View.cpp.

References cancelButtonPressed(), and m_progressBars.

Referenced by addLayer(), and getView().

void View::progressCheckStalledTimerElapsed ( )
virtualslot

Definition at line 2146 of file View.cpp.

References getId(), and m_progressBars.

Referenced by addLayer(), and getView().

virtual bool View::shouldLabelSelections ( ) const
inlineprotectedvirtual

Reimplemented in Overview, and AlignmentView.

Definition at line 485 of file View.h.

References drawPlayPointer(), render(), and setPaintFont().

Referenced by drawSelections().

bool View::render ( QPainter &  paint,
int  x0,
sv_frame_t  f0,
sv_frame_t  f1 
)
protectedvirtual
void View::setPaintFont ( QPainter &  paint)
protectedvirtual

Definition at line 2190 of file View.cpp.

References effectiveDevicePixelRatio().

Referenced by Pane::paintEvent(), paintEvent(), and shouldLabelSelections().

QSize View::scaledSize ( const QSize &  s,
int  factor 
)
inlineprotected

Definition at line 490 of file View.h.

Referenced by paintEvent().

QRect View::scaledRect ( const QRect &  r,
int  factor 
)
inlineprotected

Definition at line 493 of file View.h.

Referenced by paintEvent().

sv_samplerate_t View::getModelsSampleRate ( ) const
protected

!! Just go for the first, for now. If we were supporting

!! nah, this wants to always return the sr of the main model!

Definition at line 1500 of file View.cpp.

References m_layerStack.

Referenced by Pane::drawEditingSelection(), drawSelections(), and Pane::paintEvent().

bool View::areLayersScrollable ( ) const
protected

Definition at line 1630 of file View.cpp.

References m_layerStack.

View::LayerList View::getScrollableBackLayers ( bool  testChanged,
bool &  changed 
) const
protected

Definition at line 1640 of file View.cpp.

References m_lastScrollableBackLayers, and m_layerStack.

Referenced by modelChanged(), modelChangedWithin(), and paintEvent().

View::LayerList View::getNonScrollableFrontLayers ( bool  testChanged,
bool &  changed 
) const
protected

Definition at line 1676 of file View.cpp.

References m_lastNonScrollableBackLayers, and m_layerStack.

Referenced by paintEvent().

Layer * View::getScaleProvidingLayerForUnit ( QString  unit) const
protected
ZoomLevel View::getZoomConstraintLevel ( ZoomLevel  level,
ZoomConstraint::RoundingDirection  dir = ZoomConstraint::RoundNearest 
) const
protected
int View::countZoomLevels ( ) const
protected

Definition at line 1738 of file View.cpp.

References getZoomConstraintLevel().

Referenced by Pane::updateHeadsUpDisplay().

int View::getZoomLevelIndex ( ZoomLevel  level) const
protected

Definition at line 1782 of file View.cpp.

References getZoomConstraintLevel().

Referenced by Pane::updateHeadsUpDisplay().

ZoomLevel View::getZoomLevelByIndex ( int  ix) const
protected

Definition at line 1757 of file View.cpp.

References getZoomConstraintLevel().

Referenced by Pane::horizontalThumbwheelMoved().

bool View::areLayerColoursSignificant ( ) const
protected

Definition at line 1859 of file View.cpp.

References Layer::ColourHasMeaningfulValue, and m_layerStack.

Referenced by drawSelections().

bool View::hasTopLayerTimeXAxis ( ) const
protected
bool View::setCentreFrame ( sv_frame_t  f,
bool  doEmit 
)
protected
void View::checkProgress ( ModelId  modelId)
protected
void View::checkAlignmentProgress ( ModelId  modelId)
protected
bool View::waitForLayersToBeReady ( )
protected

Definition at line 3006 of file View.cpp.

References m_layerStack.

Referenced by render(), and renderToNewImage().

int View::getProgressBarWidth ( ) const
protected
int View::effectiveDevicePixelRatio ( ) const
protected

Definition at line 741 of file View.cpp.

Referenced by paintEvent(), and setPaintFont().

static int LayerGeometryProvider::getNextId ( )
inlinestaticprotectedinherited

Definition at line 48 of file LayerGeometryProvider.h.

Member Data Documentation

int View::m_id
protected

Definition at line 481 of file View.h.

Referenced by getId().

bool View::m_followPlayIsDetached
protected

Definition at line 545 of file View.h.

Referenced by movePlayPointer().

sv_frame_t View::m_playPointerFrame
protected
bool View::m_lightBackground
protected

Definition at line 547 of file View.h.

bool View::m_showProgress
protected

Definition at line 548 of file View.h.

Referenced by checkAlignmentProgress(), and checkProgress().

QPixmap* View::m_cache
protected

Definition at line 550 of file View.h.

Referenced by paintEvent(), and ~View().

QPixmap* View::m_buffer
protected

Definition at line 551 of file View.h.

Referenced by paintEvent(), and ~View().

sv_frame_t View::m_cacheCentreFrame
protected

Definition at line 553 of file View.h.

Referenced by paintEvent().

ZoomLevel View::m_cacheZoomLevel
protected

Definition at line 554 of file View.h.

Referenced by paintEvent().

bool View::m_selectionCached
protected

Definition at line 555 of file View.h.

Referenced by selectionChanged().

bool View::m_deleting
protected

Definition at line 557 of file View.h.

Referenced by removeLayer(), and ~View().

LayerList View::m_fixedOrderLayers
protected
bool View::m_haveSelectedLayer
protected

Definition at line 561 of file View.h.

Referenced by getSelectedLayer(), and propertyContainerSelected().

bool View::m_useAligningProxy
protected

Definition at line 563 of file View.h.

Referenced by paintEvent(), and setUseAligningProxy().

QString View::m_lastError
protected

Definition at line 565 of file View.h.

Referenced by checkProgress().

LayerList View::m_lastScrollableBackLayers
mutableprotected

Definition at line 568 of file View.h.

Referenced by getScrollableBackLayers().

LayerList View::m_lastNonScrollableBackLayers
mutableprotected

Definition at line 569 of file View.h.

Referenced by getNonScrollableFrontLayers().

ProgressMap View::m_progressBars
protected
AlignmentProgressBarRec View::m_alignmentProgressBar
protected

Definition at line 584 of file View.h.

Referenced by checkAlignmentProgress(), checkProgress(), and getProgressBarWidth().


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