Mercurial > hg > svgui
annotate widgets/PropertyStack.h @ 33:651e4e868bcc
* Implement play mute, level and pan controls and a layer visibility control
* Handle swapping the buffers in AudioCallbackPlaySource more gracefully, so
  that in many cases it can be done inaudibly.  Still gets it wrong when
  playing in a noncontiguous selection.
* Fix to SV file save for non-2d sparse models
* Fixes to LED button drawing and AudioDial mouse functionality
* Add progress bar for Ogg file import
* Reshuffle PropertyContainer and its subclasses so it can be a QObject
* Add layer dormancy (invisible layer permitted to free its cache space)
* Optimisations to SpectrogramLayer, removing locks when reading/writing
  individual pixels in the cache (should be unnecessary there) -- there's
  still an issue here as we need a lock when reading from the model in
  case the model is replaced, and we don't currently have one
* Several munlock() calls to make it harder to exhaust real memory if
  running in an RT mode with mlockall() active
| author | Chris Cannam | 
|---|---|
| date | Fri, 17 Feb 2006 18:04:26 +0000 | 
| parents | 46d8f5add6f0 | 
| children | 2e2ad8510e52 | 
| rev | line source | 
|---|---|
| Chris@0 | 1 /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */ | 
| Chris@0 | 2 | 
| Chris@0 | 3 /* | 
| Chris@0 | 4 A waveform viewer and audio annotation editor. | 
| Chris@5 | 5 Chris Cannam, Queen Mary University of London, 2005-2006 | 
| Chris@0 | 6 | 
| Chris@0 | 7 This is experimental software. Not for distribution. | 
| Chris@0 | 8 */ | 
| Chris@0 | 9 | 
| Chris@0 | 10 #ifndef _PROPERTY_STACK_H_ | 
| Chris@0 | 11 #define _PROPERTY_STACK_H_ | 
| Chris@0 | 12 | 
| Chris@0 | 13 #include <QFrame> | 
| Chris@0 | 14 #include <QTabWidget> | 
| Chris@0 | 15 #include <vector> | 
| Chris@0 | 16 | 
| Chris@0 | 17 class Layer; | 
| Chris@0 | 18 class View; | 
| Chris@0 | 19 class PropertyBox; | 
| Chris@0 | 20 class PropertyContainer; | 
| Chris@0 | 21 | 
| Chris@0 | 22 class PropertyStack : public QTabWidget | 
| Chris@0 | 23 { | 
| Chris@0 | 24 Q_OBJECT | 
| Chris@0 | 25 | 
| Chris@0 | 26 public: | 
| Chris@0 | 27 PropertyStack(QWidget *parent, View *client); | 
| Chris@0 | 28 | 
| Chris@0 | 29 bool containsContainer(PropertyContainer *container) const; | 
| Chris@19 | 30 int getContainerIndex(PropertyContainer *container) const; | 
| Chris@0 | 31 | 
| Chris@0 | 32 signals: | 
| Chris@0 | 33 void propertyContainerSelected(PropertyContainer *container); | 
| Chris@0 | 34 | 
| Chris@0 | 35 public slots: | 
| Chris@0 | 36 void propertyContainerAdded(PropertyContainer *); | 
| Chris@0 | 37 void propertyContainerRemoved(PropertyContainer *); | 
| Chris@0 | 38 void propertyContainerPropertyChanged(PropertyContainer *); | 
| Chris@0 | 39 void propertyContainerNameChanged(PropertyContainer *); | 
| Chris@0 | 40 | 
| Chris@0 | 41 protected slots: | 
| Chris@0 | 42 void selectedContainerChanged(int); | 
| Chris@0 | 43 | 
| Chris@0 | 44 protected: | 
| Chris@0 | 45 View *m_client; | 
| Chris@0 | 46 std::vector<PropertyBox *> m_boxes; | 
| Chris@0 | 47 | 
| Chris@0 | 48 void repopulate(); | 
| Chris@0 | 49 void updateValues(PropertyContainer *); | 
| Chris@0 | 50 }; | 
| Chris@0 | 51 | 
| Chris@0 | 52 #endif | 
