Mercurial > hg > sonic-visualiser
changeset 340:3211f8cef51a sv-v1.7.1
* Layer data editor window: fix sorting for columns in region model,
add Find feature
* RDF import: assign names to layers based on event types, if no suitable
labels are found in the RDF
* Add label to status bar showing the last text that was passed in current
layer (so e.g. counting 1, 2, 3, 4 if that's what beats are labelled)
* Better layout of text labels for region layers in segmentation mode when
they are close together
* Give text layer the same method for finding "nearest point" as region and
note layers, should improve its editability
author | Chris Cannam |
---|---|
date | Thu, 22 Oct 2009 15:54:21 +0000 |
parents | e91910707283 |
children | a22d19f50673 |
files | main/MainWindow.cpp main/MainWindow.h |
diffstat | 2 files changed, 33 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/main/MainWindow.cpp Fri Oct 16 08:31:02 2009 +0000 +++ b/main/MainWindow.cpp Thu Oct 22 15:54:21 2009 +0000 @@ -37,6 +37,7 @@ #include "layer/SliceLayer.h" #include "layer/SliceableLayer.h" #include "layer/ImageLayer.h" +#include "layer/RegionLayer.h" #include "widgets/Fader.h" #include "view/Overview.h" #include "widgets/PropertyBox.h" @@ -277,6 +278,8 @@ setupHelpMenu(); statusBar(); + m_currentLabel = new QLabel; + statusBar()->addPermanentWidget(m_currentLabel); connect(m_viewManager, SIGNAL(activity(QString)), m_activityLog, SLOT(activityHappened(QString))); @@ -3491,6 +3494,33 @@ } statusBar()->showMessage(m_myStatusMessage); + + updatePositionStatusDisplays(); +} + +void +MainWindow::updatePositionStatusDisplays() const +{ + if (!statusBar()->isVisible()) return; + + Pane *pane = 0; + size_t frame = m_viewManager->getPlaybackFrame(); + + if (m_paneStack) pane = m_paneStack->getCurrentPane(); + if (!pane) return; + + int layers = pane->getLayerCount(); + if (layers == 0) m_currentLabel->setText(""); + + for (int i = layers-1; i >= 0; --i) { + Layer *layer = pane->getLayer(i); + if (!layer) continue; + if (!layer->isLayerEditable()) continue; + QString label = layer->getLabelPreceding + (pane->alignFromReference(frame)); + m_currentLabel->setText(label); + break; + } } void
--- a/main/MainWindow.h Fri Oct 16 08:31:02 2009 +0000 +++ b/main/MainWindow.h Thu Oct 22 15:54:21 2009 +0000 @@ -213,6 +213,8 @@ QFrame *m_playControlsSpacer; int m_playControlsWidth; + QLabel *m_currentLabel; + QPointer<PreferencesDialog> m_preferencesDialog; QPointer<LayerTreeDialog> m_layerTreeDialog; @@ -268,6 +270,7 @@ virtual bool checkSaveModified(); virtual void updateVisibleRangeDisplay(Pane *p) const; + virtual void updatePositionStatusDisplays() const; virtual bool shouldCreateNewSessionForRDFAudio(bool *cancel);