Mercurial > hg > sonic-visualiser
diff main/MainWindow.cpp @ 219:0f635e16881d
* Improvements to layer summary dialog (LayerTree, LayerTreeDialog), & rename.
It's still rather unstable though.
author | Chris Cannam |
---|---|
date | Wed, 28 Nov 2007 17:45:37 +0000 |
parents | e6b581c7c246 |
children | 474ddd0f4bb4 |
line wrap: on
line diff
--- a/main/MainWindow.cpp Mon Nov 26 13:33:44 2007 +0000 +++ b/main/MainWindow.cpp Wed Nov 28 17:45:37 2007 +0000 @@ -41,7 +41,7 @@ #include "widgets/PropertyStack.h" #include "widgets/AudioDial.h" #include "widgets/IconLoader.h" -#include "widgets/LayerTree.h" +#include "widgets/LayerTreeDialog.h" #include "widgets/ListInputDialog.h" #include "widgets/SubdividingMenu.h" #include "widgets/NotifyingPushButton.h" @@ -133,7 +133,7 @@ m_ffwdAction(0), m_rwdAction(0), m_preferencesDialog(0), - m_layerTreeView(0), + m_layerTreeDialog(0), m_keyReference(new KeyReference()) { setWindowTitle(tr("Sonic Visualiser")); @@ -285,7 +285,7 @@ { delete m_keyReference; delete m_preferencesDialog; - delete m_layerTreeView; + delete m_layerTreeDialog; Profiles::getInstance()->dump(); } @@ -818,8 +818,8 @@ menu->addSeparator(); - action = new QAction(tr("Show La&yer Hierarchy"), this); - action->setShortcut(tr("H")); + action = new QAction(tr("Show La&yer Summary"), this); + action->setShortcut(tr("Y")); action->setStatusTip(tr("Open a window displaying the hierarchy of panes and layers in this session")); connect(action, SIGNAL(triggered()), this, SLOT(showLayerTree())); m_keyReference->registerShortcut(action); @@ -2521,9 +2521,9 @@ m_preferencesDialog->applicationClosing(false); } - if (m_layerTreeView && - m_layerTreeView->isVisible()) { - delete m_layerTreeView; + if (m_layerTreeDialog && + m_layerTreeDialog->isVisible()) { + delete m_layerTreeDialog; } closeSession(); @@ -2877,6 +2877,21 @@ std::vector<Model *> candidateInputModels = m_document->getTransformerInputModels(); + Model *defaultInputModel = 0; + for (int j = 0; j < pane->getLayerCount(); ++j) { + Layer *layer = pane->getLayer(j); + if (!layer) continue; + Model *model = layer->getModel(); + if (!model) continue; + for (size_t k = 0; k < candidateInputModels.size(); ++k) { + if (candidateInputModels[k] == model) { + defaultInputModel = model; + break; + } + } + if (defaultInputModel) break; + } + size_t startFrame = 0, duration = 0; size_t endFrame = 0; m_viewManager->getSelection().getExtents(startFrame, endFrame); @@ -2886,6 +2901,7 @@ Model *inputModel = factory->getConfigurationForTransformer (transform, candidateInputModels, + defaultInputModel, context, configurationXml, m_playSource, @@ -3255,20 +3271,14 @@ void MainWindow::showLayerTree() { - if (!m_layerTreeView.isNull()) { - m_layerTreeView->show(); - m_layerTreeView->raise(); + if (!m_layerTreeDialog.isNull()) { + m_layerTreeDialog->show(); + m_layerTreeDialog->raise(); return; } - //!!! should use an actual dialog class - - m_layerTreeView = new QTreeView(); - LayerTreeModel *tree = new LayerTreeModel(m_paneStack); - m_layerTreeView->resize(500, 300); //!!! - m_layerTreeView->setModel(tree); - m_layerTreeView->expandAll(); - m_layerTreeView->show(); + m_layerTreeDialog = new LayerTreeDialog(m_paneStack); + m_layerTreeDialog->show(); } void