Mercurial > hg > svgui
changeset 947:e53a87a5efb2
Allow layers to be loaded without models if their layer class explicitly says it's OK (otherwise default template won't load, as it has an empty waveform layer)
author | Chris Cannam |
---|---|
date | Mon, 20 Apr 2015 10:10:26 +0100 |
parents | 78c152e4db95 |
children | e3c7da3d896e 4b5efd76a55c 2633a1d73e39 |
files | layer/Layer.h layer/TimeRulerLayer.h layer/WaveformLayer.h |
diffstat | 3 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/layer/Layer.h Mon Apr 20 09:12:17 2015 +0100 +++ b/layer/Layer.h Mon Apr 20 10:10:26 2015 +0100 @@ -62,7 +62,7 @@ Model *getModel() { return const_cast<Model *>(const_cast<const Layer *>(this)->getModel()); } - + /** * Return a zoom constraint object defining the supported zoom * levels for this layer. If this returns zero, the layer will @@ -518,6 +518,13 @@ */ virtual RangeMapper *getNewVerticalZoomRangeMapper() const { return 0; } + /** + * Return true if this layer type can function without a model + * being set. If false (the default), the layer will not be loaded + * from a session if its model cannot be found. + */ + virtual bool canExistWithoutModel() const { return false; } + public slots: void showLayer(View *, bool show);
--- a/layer/TimeRulerLayer.h Mon Apr 20 09:12:17 2015 +0100 +++ b/layer/TimeRulerLayer.h Mon Apr 20 10:10:26 2015 +0100 @@ -60,6 +60,8 @@ void setProperties(const QXmlAttributes &attributes); + virtual bool canExistWithoutModel() const { return true; } + protected: Model *m_model; LabelHeight m_labelHeight;
--- a/layer/WaveformLayer.h Mon Apr 20 09:12:17 2015 +0100 +++ b/layer/WaveformLayer.h Mon Apr 20 10:10:26 2015 +0100 @@ -202,6 +202,8 @@ virtual int getCurrentVerticalZoomStep() const; virtual void setVerticalZoomStep(int); + virtual bool canExistWithoutModel() const { return true; } + protected: int dBscale(double sample, int m) const;