Mercurial > hg > svapp
comparison framework/MainWindowBase.cpp @ 577:58354f2934ec 3.0-integration
Ensure a time ruler layer created from a template is identified as such, so that it gets added to subsequent panes as well
author | Chris Cannam |
---|---|
date | Wed, 04 Jan 2017 18:54:50 +0000 |
parents | 7b115a6505b8 |
children | 702272b78bbe |
comparison
equal
deleted
inserted
replaced
576:150cadf9c5fe | 577:58354f2934ec |
---|---|
1374 { | 1374 { |
1375 SVDEBUG << "MainWindowBase::openAudio(" << source.getLocation() << ") with mode " << mode << " and template " << templateName << endl; | 1375 SVDEBUG << "MainWindowBase::openAudio(" << source.getLocation() << ") with mode " << mode << " and template " << templateName << endl; |
1376 | 1376 |
1377 if (templateName == "") { | 1377 if (templateName == "") { |
1378 templateName = getDefaultSessionTemplate(); | 1378 templateName = getDefaultSessionTemplate(); |
1379 SVDEBUG << "(Default template is: \"" << templateName << "\")" << endl; | |
1379 } | 1380 } |
1380 | 1381 |
1381 // cerr << "template is: \"" << templateName << "\"" << endl; | 1382 // cerr << "template is: \"" << templateName << "\"" << endl; |
1382 | 1383 |
1383 if (!source.isAvailable()) { | 1384 if (!source.isAvailable()) { |
1494 | 1495 |
1495 SVDEBUG << "SV looking for template " << templateName << endl; | 1496 SVDEBUG << "SV looking for template " << templateName << endl; |
1496 if (templateName != "") { | 1497 if (templateName != "") { |
1497 FileOpenStatus tplStatus = openSessionTemplate(templateName); | 1498 FileOpenStatus tplStatus = openSessionTemplate(templateName); |
1498 if (tplStatus == FileOpenCancelled) { | 1499 if (tplStatus == FileOpenCancelled) { |
1499 cerr << "Template load cancelled" << endl; | 1500 SVDEBUG << "Template load cancelled" << endl; |
1500 return FileOpenCancelled; | 1501 return FileOpenCancelled; |
1501 } | 1502 } |
1502 if (tplStatus != FileOpenFailed) { | 1503 if (tplStatus != FileOpenFailed) { |
1503 cerr << "Template load succeeded" << endl; | 1504 SVDEBUG << "Template load succeeded" << endl; |
1504 loadedTemplate = true; | 1505 loadedTemplate = true; |
1505 } | 1506 } |
1506 } | 1507 } |
1507 | 1508 |
1508 if (!loadedTemplate) { | 1509 if (!loadedTemplate) { |
1553 | 1554 |
1554 if (!source.isRemote()) m_audioFile = source.getLocalFilename(); | 1555 if (!source.isRemote()) m_audioFile = source.getLocalFilename(); |
1555 | 1556 |
1556 } else if (mode == CreateAdditionalModel) { | 1557 } else if (mode == CreateAdditionalModel) { |
1557 | 1558 |
1559 SVCERR << "Mode is CreateAdditionalModel" << endl; | |
1560 | |
1558 CommandHistory::getInstance()->startCompoundOperation | 1561 CommandHistory::getInstance()->startCompoundOperation |
1559 (tr("Import \"%1\"").arg(source.getBasename()), true); | 1562 (tr("Import \"%1\"").arg(source.getBasename()), true); |
1560 | 1563 |
1561 m_document->addImportedModel(newModel); | 1564 m_document->addImportedModel(newModel); |
1562 | 1565 |
1564 CommandHistory::getInstance()->addCommand(command); | 1567 CommandHistory::getInstance()->addCommand(command); |
1565 | 1568 |
1566 Pane *pane = command->getPane(); | 1569 Pane *pane = command->getPane(); |
1567 | 1570 |
1568 if (m_timeRulerLayer) { | 1571 if (m_timeRulerLayer) { |
1572 SVCERR << "Have time ruler, adding it" << endl; | |
1569 m_document->addLayerToView(pane, m_timeRulerLayer); | 1573 m_document->addLayerToView(pane, m_timeRulerLayer); |
1574 } else { | |
1575 SVCERR << "Do not have time ruler" << endl; | |
1570 } | 1576 } |
1571 | 1577 |
1572 Layer *newLayer = m_document->createImportedLayer(newModel); | 1578 Layer *newLayer = m_document->createImportedLayer(newModel); |
1573 | 1579 |
1574 if (newLayer) { | 1580 if (newLayer) { |
2008 .arg(source.getLocation())); | 2014 .arg(source.getLocation())); |
2009 | 2015 |
2010 if (!source.isRemote()) m_sessionFile = source.getLocalFilename(); | 2016 if (!source.isRemote()) m_sessionFile = source.getLocalFilename(); |
2011 | 2017 |
2012 setupMenus(); | 2018 setupMenus(); |
2019 findTimeRulerLayer(); | |
2013 | 2020 |
2014 CommandHistory::getInstance()->clear(); | 2021 CommandHistory::getInstance()->clear(); |
2015 CommandHistory::getInstance()->documentSaved(); | 2022 CommandHistory::getInstance()->documentSaved(); |
2016 m_documentModified = false; | 2023 m_documentModified = false; |
2017 updateMenuStates(); | 2024 updateMenuStates(); |
2100 if (ok) { | 2107 if (ok) { |
2101 | 2108 |
2102 emit activity(tr("Open session template \"%1\"").arg(source.getLocation())); | 2109 emit activity(tr("Open session template \"%1\"").arg(source.getLocation())); |
2103 | 2110 |
2104 setupMenus(); | 2111 setupMenus(); |
2112 findTimeRulerLayer(); | |
2105 | 2113 |
2106 CommandHistory::getInstance()->clear(); | 2114 CommandHistory::getInstance()->clear(); |
2107 CommandHistory::getInstance()->documentSaved(); | 2115 CommandHistory::getInstance()->documentSaved(); |
2108 m_documentModified = false; | 2116 m_documentModified = false; |
2109 updateMenuStates(); | 2117 updateMenuStates(); |
2130 createDocument(); | 2138 createDocument(); |
2131 | 2139 |
2132 FileOpenStatus status = openLayersFromRDF(source); | 2140 FileOpenStatus status = openLayersFromRDF(source); |
2133 | 2141 |
2134 setupMenus(); | 2142 setupMenus(); |
2143 findTimeRulerLayer(); | |
2135 | 2144 |
2136 setWindowTitle(tr("%1: %2") | 2145 setWindowTitle(tr("%1: %2") |
2137 .arg(QApplication::applicationName()) | 2146 .arg(QApplication::applicationName()) |
2138 .arg(source.getLocation())); | 2147 .arg(source.getLocation())); |
2139 CommandHistory::getInstance()->clear(); | 2148 CommandHistory::getInstance()->clear(); |
2689 | 2698 |
2690 void | 2699 void |
2691 MainWindowBase::showAllOverlays() | 2700 MainWindowBase::showAllOverlays() |
2692 { | 2701 { |
2693 m_viewManager->setOverlayMode(ViewManager::AllOverlays); | 2702 m_viewManager->setOverlayMode(ViewManager::AllOverlays); |
2703 } | |
2704 | |
2705 void | |
2706 MainWindowBase::findTimeRulerLayer() | |
2707 { | |
2708 for (int i = 0; i < m_paneStack->getPaneCount(); ++i) { | |
2709 Pane *pane = m_paneStack->getPane(i); | |
2710 if (!pane) continue; | |
2711 for (int j = 0; j < pane->getLayerCount(); ++j) { | |
2712 Layer *layer = pane->getLayer(j); | |
2713 if (!dynamic_cast<TimeRulerLayer *>(layer)) continue; | |
2714 m_timeRulerLayer = layer; | |
2715 return; | |
2716 } | |
2717 } | |
2718 if (m_timeRulerLayer) { | |
2719 SVCERR << "WARNING: Time ruler layer was not reset to 0 before session template loaded?" << endl; | |
2720 delete m_timeRulerLayer; | |
2721 m_timeRulerLayer = 0; | |
2722 } | |
2694 } | 2723 } |
2695 | 2724 |
2696 void | 2725 void |
2697 MainWindowBase::toggleTimeRulers() | 2726 MainWindowBase::toggleTimeRulers() |
2698 { | 2727 { |
2931 PlayParameterRepository::getInstance()->removePlayable(prevMain); | 2960 PlayParameterRepository::getInstance()->removePlayable(prevMain); |
2932 } | 2961 } |
2933 | 2962 |
2934 m_document->setMainModel(model); | 2963 m_document->setMainModel(model); |
2935 setupMenus(); | 2964 setupMenus(); |
2965 findTimeRulerLayer(); | |
2936 | 2966 |
2937 if (loadedTemplate || (m_sessionFile == "")) { | 2967 if (loadedTemplate || (m_sessionFile == "")) { |
2938 //!!! shouldn't be dealing directly with title from here -- call a method | 2968 //!!! shouldn't be dealing directly with title from here -- call a method |
2939 setWindowTitle(tr("%1: %2") | 2969 setWindowTitle(tr("%1: %2") |
2940 .arg(QApplication::applicationName()) | 2970 .arg(QApplication::applicationName()) |