Mercurial > hg > svapp
diff framework/MainWindowBase.cpp @ 350:aebee52e86b3
Merge from branch tony_integration
author | Chris Cannam |
---|---|
date | Wed, 14 May 2014 09:54:46 +0100 |
parents | b3609adae921 |
children | 1d8cb0d92f4b |
line wrap: on
line diff
--- a/framework/MainWindowBase.cpp Thu Feb 06 15:31:57 2014 +0000 +++ b/framework/MainWindowBase.cpp Wed May 14 09:54:46 2014 +0100 @@ -22,6 +22,7 @@ #include "data/model/WaveFileModel.h" #include "data/model/SparseOneDimensionalModel.h" #include "data/model/NoteModel.h" +#include "data/model/FlexiNoteModel.h" #include "data/model/Labeller.h" #include "data/model/TabularModel.h" #include "view/ViewManager.h" @@ -35,6 +36,7 @@ #include "layer/SliceableLayer.h" #include "layer/ImageLayer.h" #include "layer/NoteLayer.h" +#include "layer/FlexiNoteLayer.h" #include "layer/RegionLayer.h" #include "widgets/ListInputDialog.h" @@ -43,6 +45,7 @@ #include "widgets/MIDIFileImportDialog.h" #include "widgets/CSVFormatDialog.h" #include "widgets/ModelDataTableDialog.h" +#include "widgets/InteractiveFileFinder.h" #include "audioio/AudioCallbackPlaySource.h" #include "audioio/AudioCallbackPlayTarget.h" @@ -309,6 +312,10 @@ return ff->getOpenFileName(type, m_sessionFile); case FileFinder::LayerFileNoMidi: return ff->getOpenFileName(type, m_sessionFile); + case FileFinder::LayerFileNonSV: + return ff->getOpenFileName(type, m_sessionFile); + case FileFinder::LayerFileNoMidiNonSV: + return ff->getOpenFileName(type, m_sessionFile); case FileFinder::SessionOrAudioFile: return ff->getOpenFileName(type, m_sessionFile); case FileFinder::ImageFile: @@ -341,6 +348,10 @@ return ff->getSaveFileName(type, m_sessionFile); case FileFinder::LayerFileNoMidi: return ff->getSaveFileName(type, m_sessionFile); + case FileFinder::LayerFileNonSV: + return ff->getSaveFileName(type, m_sessionFile); + case FileFinder::LayerFileNoMidiNonSV: + return ff->getSaveFileName(type, m_sessionFile); case FileFinder::SessionOrAudioFile: return ff->getSaveFileName(type, m_sessionFile); case FileFinder::ImageFile: @@ -430,6 +441,7 @@ bool haveCurrentDurationLayer = (haveCurrentLayer && (dynamic_cast<NoteLayer *>(currentLayer) || + dynamic_cast<FlexiNoteLayer *>(currentLayer) || dynamic_cast<RegionLayer *>(currentLayer))); bool haveCurrentColour3DPlot = (haveCurrentLayer && @@ -1015,6 +1027,25 @@ CommandHistory::getInstance()->addCommand(c, false); return; } + + FlexiNoteModel *fnm = dynamic_cast<FlexiNoteModel *>(layer->getModel()); + if (fnm) { + FlexiNoteModel::Point point(alignedStart, + rm->getValueMinimum(), + alignedDuration, + 1.f, + ""); + FlexiNoteModel::EditCommand *command = + new FlexiNoteModel::EditCommand(fnm, tr("Add Point")); + command->addPoint(point); + command->setName(name); + c = command->finish(); + } + + if (c) { + CommandHistory::getInstance()->addCommand(c, false); + return; + } } void @@ -1363,6 +1394,8 @@ currentPaneChanged(m_paneStack->getCurrentPane()); + emit audioFileLoaded(); + return FileOpenSucceeded; } @@ -1607,7 +1640,10 @@ if (!source.isAvailable()) return FileOpenFailed; source.waitForData(); - if (source.getExtension().toLower() != "sv") { + QString sessionExt = + InteractiveFileFinder::getInstance()->getApplicationSessionExtension(); + + if (source.getExtension().toLower() != sessionExt) { RDFImporter::RDFDocumentType rdfType = RDFImporter::identifyDocumentType @@ -1638,7 +1674,7 @@ BZipFileDevice *bzFile = 0; QFile *rawFile = 0; - if (source.getExtension().toLower() == "sv") { + if (source.getExtension().toLower() == sessionExt) { bzFile = new BZipFileDevice(source.getLocalFilename()); if (!bzFile->open(QIODevice::ReadOnly)) { delete bzFile; @@ -1712,6 +1748,8 @@ source.getLocalFilename()); } + emit sessionLoaded(); + } else { setWindowTitle(QApplication::applicationName()); } @@ -1794,6 +1832,8 @@ CommandHistory::getInstance()->documentSaved(); m_documentModified = false; updateMenuStates(); + + emit sessionLoaded(); } return ok ? FileOpenSucceeded : FileOpenFailed; @@ -1825,6 +1865,8 @@ CommandHistory::getInstance()->documentSaved(); m_documentModified = false; + emit sessionLoaded(); + return status; } @@ -2179,6 +2221,7 @@ Pane * MainWindowBase::addPaneToStack() { + cerr << "MainWindowBase::addPaneToStack()" << endl; AddPaneCommand *command = new AddPaneCommand(this); CommandHistory::getInstance()->addCommand(command); Pane *pane = command->getPane(); @@ -2229,7 +2272,11 @@ MainWindowBase::zoomDefault() { Pane *currentPane = m_paneStack->getCurrentPane(); - if (currentPane) currentPane->setZoomLevel(1024); + QSettings settings; + settings.beginGroup("MainWindow"); + int zoom = settings.value("zoom-default", 1024).toInt(); + settings.endGroup(); + if (currentPane) currentPane->setZoomLevel(zoom); } void @@ -2283,7 +2330,7 @@ void MainWindowBase::showMinimalOverlays() { - m_viewManager->setOverlayMode(ViewManager::MinimalOverlays); + m_viewManager->setOverlayMode(ViewManager::StandardOverlays); } void @@ -3091,6 +3138,7 @@ MainWindowBase::modelAdded(Model *model) { // SVDEBUG << "MainWindowBase::modelAdded(" << model << ")" << endl; + std::cerr << "\nAdding model " << model->getTypeName() << " to playsource " << std::endl; m_playSource->addModel(model); } @@ -3172,7 +3220,10 @@ { Pane *currentPane = 0; if (m_paneStack) currentPane = m_paneStack->getCurrentPane(); - if (currentPane) updateVisibleRangeDisplay(currentPane); + if (currentPane) { + //cerr << "JTEST: mouse event on selection pane" << endl; + updateVisibleRangeDisplay(currentPane); + } } void