comparison framework/MainWindowBase.cpp @ 644:6fd0ebfd2bbe

Merge from branch fix-static-analysis
author Chris Cannam
date Wed, 09 Jan 2019 15:25:09 +0000
parents 713b9a6b284a 8c5379570f36
children 3168deb50199
comparison
equal deleted inserted replaced
643:713b9a6b284a 644:6fd0ebfd2bbe
135 } 135 }
136 #undef Window 136 #undef Window
137 #endif 137 #endif
138 138
139 MainWindowBase::MainWindowBase(SoundOptions options) : 139 MainWindowBase::MainWindowBase(SoundOptions options) :
140 m_document(0), 140 m_document(nullptr),
141 m_paneStack(0), 141 m_paneStack(nullptr),
142 m_viewManager(0), 142 m_viewManager(nullptr),
143 m_timeRulerLayer(0), 143 m_timeRulerLayer(nullptr),
144 m_soundOptions(options), 144 m_soundOptions(options),
145 m_playSource(0), 145 m_playSource(nullptr),
146 m_recordTarget(0), 146 m_recordTarget(nullptr),
147 m_resamplerWrapper(0), 147 m_resamplerWrapper(nullptr),
148 m_playTarget(0), 148 m_playTarget(nullptr),
149 m_audioIO(0), 149 m_audioIO(nullptr),
150 m_oscQueue(0), 150 m_oscQueue(nullptr),
151 m_oscQueueStarter(0), 151 m_oscQueueStarter(nullptr),
152 m_midiInput(0), 152 m_midiInput(nullptr),
153 m_recentFiles("RecentFiles", 20), 153 m_recentFiles("RecentFiles", 20),
154 m_recentTransforms("RecentTransforms", 20), 154 m_recentTransforms("RecentTransforms", 20),
155 m_documentModified(false), 155 m_documentModified(false),
156 m_openingAudioFile(false), 156 m_openingAudioFile(false),
157 m_abandoning(false), 157 m_abandoning(false),
158 m_labeller(0), 158 m_labeller(nullptr),
159 m_lastPlayStatusSec(0), 159 m_lastPlayStatusSec(0),
160 m_initialDarkBackground(false), 160 m_initialDarkBackground(false),
161 m_defaultFfwdRwdStep(2, 0), 161 m_defaultFfwdRwdStep(2, 0),
162 m_audioRecordMode(RecordCreateAdditionalModel), 162 m_audioRecordMode(RecordCreateAdditionalModel),
163 m_statusLabel(0), 163 m_statusLabel(nullptr),
164 m_iconsVisibleInMenus(true), 164 m_iconsVisibleInMenus(true),
165 m_menuShortcutMapper(0) 165 m_menuShortcutMapper(nullptr)
166 { 166 {
167 Profiler profiler("MainWindowBase::MainWindowBase"); 167 Profiler profiler("MainWindowBase::MainWindowBase");
168 168
169 SVDEBUG << "MainWindowBase::MainWindowBase" << endl; 169 SVDEBUG << "MainWindowBase::MainWindowBase" << endl;
170 170
217 m_viewManager->setGlobalDarkBackground 217 m_viewManager->setGlobalDarkBackground
218 (mode == Preferences::DarkBackground); 218 (mode == Preferences::DarkBackground);
219 } 219 }
220 #endif 220 #endif
221 221
222 m_paneStack = new PaneStack(0, m_viewManager); 222 m_paneStack = new PaneStack(nullptr, m_viewManager);
223 connect(m_paneStack, SIGNAL(currentPaneChanged(Pane *)), 223 connect(m_paneStack, SIGNAL(currentPaneChanged(Pane *)),
224 this, SLOT(currentPaneChanged(Pane *))); 224 this, SLOT(currentPaneChanged(Pane *)));
225 connect(m_paneStack, SIGNAL(currentLayerChanged(Pane *, Layer *)), 225 connect(m_paneStack, SIGNAL(currentLayerChanged(Pane *, Layer *)),
226 this, SLOT(currentLayerChanged(Pane *, Layer *))); 226 this, SLOT(currentLayerChanged(Pane *, Layer *)));
227 connect(m_paneStack, SIGNAL(rightButtonMenuRequested(Pane *, QPoint)), 227 connect(m_paneStack, SIGNAL(rightButtonMenuRequested(Pane *, QPoint)),
327 327
328 delete m_viewManager; 328 delete m_viewManager;
329 delete m_midiInput; 329 delete m_midiInput;
330 330
331 if (m_oscQueueStarter) { 331 if (m_oscQueueStarter) {
332 disconnect(m_oscQueueStarter, 0, 0, 0); 332 disconnect(m_oscQueueStarter, nullptr, nullptr, nullptr);
333 m_oscQueueStarter->wait(1000); 333 m_oscQueueStarter->wait(1000);
334 if (m_oscQueueStarter->isRunning()) { 334 if (m_oscQueueStarter->isRunning()) {
335 m_oscQueueStarter->terminate(); 335 m_oscQueueStarter->terminate();
336 m_oscQueueStarter->wait(1000); 336 m_oscQueueStarter->wait(1000);
337 } 337 }
353 MainWindowBase::finaliseMenus() 353 MainWindowBase::finaliseMenus()
354 { 354 {
355 SVDEBUG << "MainWindowBase::finaliseMenus called" << endl; 355 SVDEBUG << "MainWindowBase::finaliseMenus called" << endl;
356 356
357 delete m_menuShortcutMapper; 357 delete m_menuShortcutMapper;
358 m_menuShortcutMapper = 0; 358 m_menuShortcutMapper = nullptr;
359 359
360 foreach (QShortcut *sc, m_appShortcuts) { 360 foreach (QShortcut *sc, m_appShortcuts) {
361 delete sc; 361 delete sc;
362 } 362 }
363 m_appShortcuts.clear(); 363 m_appShortcuts.clear();
524 MainWindowBase::getOpenFileName(FileFinder::FileType type) 524 MainWindowBase::getOpenFileName(FileFinder::FileType type)
525 { 525 {
526 FileFinder *ff = FileFinder::getInstance(); 526 FileFinder *ff = FileFinder::getInstance();
527 527
528 if (type == FileFinder::AnyFile) { 528 if (type == FileFinder::AnyFile) {
529 if (getMainModel() != 0 && 529 if (getMainModel() != nullptr &&
530 m_paneStack != 0 && 530 m_paneStack != nullptr &&
531 m_paneStack->getCurrentPane() != 0) { // can import a layer 531 m_paneStack->getCurrentPane() != nullptr) { // can import a layer
532 return ff->getOpenFileName(FileFinder::AnyFile, m_sessionFile); 532 return ff->getOpenFileName(FileFinder::AnyFile, m_sessionFile);
533 } else { 533 } else {
534 return ff->getOpenFileName(FileFinder::SessionOrAudioFile, 534 return ff->getOpenFileName(FileFinder::SessionOrAudioFile,
535 m_sessionFile); 535 m_sessionFile);
536 } 536 }
584 } 584 }
585 585
586 void 586 void
587 MainWindowBase::updateMenuStates() 587 MainWindowBase::updateMenuStates()
588 { 588 {
589 Pane *currentPane = 0; 589 Pane *currentPane = nullptr;
590 Layer *currentLayer = 0; 590 Layer *currentLayer = nullptr;
591 591
592 if (m_paneStack) currentPane = m_paneStack->getCurrentPane(); 592 if (m_paneStack) currentPane = m_paneStack->getCurrentPane();
593 if (currentPane) currentLayer = currentPane->getSelectedLayer(); 593 if (currentPane) currentLayer = currentPane->getSelectedLayer();
594 594
595 bool havePrevPane = false, haveNextPane = false; 595 bool havePrevPane = false, haveNextPane = false;
612 haveNextLayer = true; 612 haveNextLayer = true;
613 } 613 }
614 } 614 }
615 615
616 bool haveCurrentPane = 616 bool haveCurrentPane =
617 (currentPane != 0); 617 (currentPane != nullptr);
618 bool haveCurrentLayer = 618 bool haveCurrentLayer =
619 (haveCurrentPane && 619 (haveCurrentPane &&
620 (currentLayer != 0)); 620 (currentLayer != nullptr));
621 bool haveMainModel = 621 bool haveMainModel =
622 (getMainModel() != 0); 622 (getMainModel() != nullptr);
623 bool havePlayTarget = 623 bool havePlayTarget =
624 (m_playTarget != 0 || m_audioIO != 0); 624 (m_playTarget != nullptr || m_audioIO != nullptr);
625 bool haveSelection = 625 bool haveSelection =
626 (m_viewManager && 626 (m_viewManager &&
627 !m_viewManager->getSelections().empty()); 627 !m_viewManager->getSelections().empty());
628 bool haveCurrentEditableLayer = 628 bool haveCurrentEditableLayer =
629 (haveCurrentLayer && 629 (haveCurrentLayer &&
764 } 764 }
765 765
766 if (m_viewManager->getPlaySoloMode()) { 766 if (m_viewManager->getPlaySoloMode()) {
767 currentPaneChanged(m_paneStack->getCurrentPane()); 767 currentPaneChanged(m_paneStack->getCurrentPane());
768 } else { 768 } else {
769 m_viewManager->setPlaybackModel(0); 769 m_viewManager->setPlaybackModel(nullptr);
770 if (m_playSource) { 770 if (m_playSource) {
771 m_playSource->clearSoloModelSet(); 771 m_playSource->clearSoloModelSet();
772 } 772 }
773 } 773 }
774 } 774 }
782 if (!p) return; 782 if (!p) return;
783 783
784 if (!(m_viewManager && 784 if (!(m_viewManager &&
785 m_playSource && 785 m_playSource &&
786 m_viewManager->getPlaySoloMode())) { 786 m_viewManager->getPlaySoloMode())) {
787 if (m_viewManager) m_viewManager->setPlaybackModel(0); 787 if (m_viewManager) m_viewManager->setPlaybackModel(nullptr);
788 return; 788 return;
789 } 789 }
790 790
791 Model *prevPlaybackModel = m_viewManager->getPlaybackModel(); 791 Model *prevPlaybackModel = m_viewManager->getPlaybackModel();
792 792
1166 if (m_labeller->actingOnPrevPoint() && havePrevPoint) { 1166 if (m_labeller->actingOnPrevPoint() && havePrevPoint) {
1167 command->deletePoint(prevPoint); 1167 command->deletePoint(prevPoint);
1168 } 1168 }
1169 1169
1170 m_labeller->label<SparseOneDimensionalModel::Point> 1170 m_labeller->label<SparseOneDimensionalModel::Point>
1171 (point, havePrevPoint ? &prevPoint : 0); 1171 (point, havePrevPoint ? &prevPoint : nullptr);
1172 1172
1173 if (m_labeller->actingOnPrevPoint() && havePrevPoint) { 1173 if (m_labeller->actingOnPrevPoint() && havePrevPoint) {
1174 command->addPoint(prevPoint); 1174 command->addPoint(prevPoint);
1175 } 1175 }
1176 } 1176 }
1216 sv_frame_t alignedStart = pane->alignFromReference(frame); 1216 sv_frame_t alignedStart = pane->alignFromReference(frame);
1217 sv_frame_t alignedEnd = pane->alignFromReference(frame + duration); 1217 sv_frame_t alignedEnd = pane->alignFromReference(frame + duration);
1218 if (alignedStart >= alignedEnd) return; 1218 if (alignedStart >= alignedEnd) return;
1219 sv_frame_t alignedDuration = alignedEnd - alignedStart; 1219 sv_frame_t alignedDuration = alignedEnd - alignedStart;
1220 1220
1221 Command *c = 0; 1221 Command *c = nullptr;
1222 1222
1223 QString name = tr("Add Item at %1 s") 1223 QString name = tr("Add Item at %1 s")
1224 .arg(RealTime::frame2RealTime 1224 .arg(RealTime::frame2RealTime
1225 (alignedStart, 1225 (alignedStart,
1226 getMainModel()->getSampleRate()) 1226 getMainModel()->getSampleRate())
1377 FileOpenStatus status; 1377 FileOpenStatus status;
1378 1378
1379 if (!source.isAvailable()) return FileOpenFailed; 1379 if (!source.isAvailable()) return FileOpenFailed;
1380 source.waitForData(); 1380 source.waitForData();
1381 1381
1382 bool canImportLayer = (getMainModel() != 0 && 1382 bool canImportLayer = (getMainModel() != nullptr &&
1383 m_paneStack != 0 && 1383 m_paneStack != nullptr &&
1384 m_paneStack->getCurrentPane() != 0); 1384 m_paneStack->getCurrentPane() != nullptr);
1385 1385
1386 bool rdf = (source.getExtension().toLower() == "rdf" || 1386 bool rdf = (source.getExtension().toLower() == "rdf" ||
1387 source.getExtension().toLower() == "n3" || 1387 source.getExtension().toLower() == "n3" ||
1388 source.getExtension().toLower() == "ttl"); 1388 source.getExtension().toLower() == "ttl");
1389 1389
1707 // the current pane does not contain the main model, otherwise 1707 // the current pane does not contain the main model, otherwise
1708 // we would have reset it to ReplaceMainModel. But we don't 1708 // we would have reset it to ReplaceMainModel. But we don't
1709 // know whether the pane contains a waveform model at all. 1709 // know whether the pane contains a waveform model at all.
1710 1710
1711 Pane *pane = m_paneStack->getCurrentPane(); 1711 Pane *pane = m_paneStack->getCurrentPane();
1712 Layer *replace = 0; 1712 Layer *replace = nullptr;
1713 1713
1714 for (int i = 0; i < pane->getLayerCount(); ++i) { 1714 for (int i = 0; i < pane->getLayerCount(); ++i) {
1715 Layer *layer = pane->getLayer(i); 1715 Layer *layer = pane->getLayer(i);
1716 if (dynamic_cast<WaveformLayer *>(layer)) { 1716 if (dynamic_cast<WaveformLayer *>(layer)) {
1717 replace = layer; 1717 replace = layer;
2074 } else { 2074 } else {
2075 return FileOpenFailed; 2075 return FileOpenFailed;
2076 } 2076 }
2077 } 2077 }
2078 2078
2079 QXmlInputSource *inputSource = 0; 2079 QXmlInputSource *inputSource = nullptr;
2080 BZipFileDevice *bzFile = 0; 2080 BZipFileDevice *bzFile = nullptr;
2081 QFile *rawFile = 0; 2081 QFile *rawFile = nullptr;
2082 2082
2083 if (source.getExtension().toLower() == sessionExt) { 2083 if (source.getExtension().toLower() == sessionExt) {
2084 bzFile = new BZipFileDevice(source.getLocalFilename()); 2084 bzFile = new BZipFileDevice(source.getLocalFilename());
2085 if (!bzFile->open(QIODevice::ReadOnly)) { 2085 if (!bzFile->open(QIODevice::ReadOnly)) {
2086 delete bzFile; 2086 delete bzFile;
2200 cerr << "MainWindowBase::openSessionTemplate(" << source.getLocation() << ")" << endl; 2200 cerr << "MainWindowBase::openSessionTemplate(" << source.getLocation() << ")" << endl;
2201 2201
2202 if (!source.isAvailable()) return FileOpenFailed; 2202 if (!source.isAvailable()) return FileOpenFailed;
2203 source.waitForData(); 2203 source.waitForData();
2204 2204
2205 QXmlInputSource *inputSource = 0; 2205 QXmlInputSource *inputSource = nullptr;
2206 QFile *file = 0; 2206 QFile *file = nullptr;
2207 2207
2208 file = new QFile(source.getLocalFilename()); 2208 file = new QFile(source.getLocalFilename());
2209 inputSource = new QXmlInputSource(file); 2209 inputSource = new QXmlInputSource(file);
2210 2210
2211 if (!checkSaveModified()) { 2211 if (!checkSaveModified()) {
2344 WaveFileModel *w = dynamic_cast<WaveFileModel *>(m); 2344 WaveFileModel *w = dynamic_cast<WaveFileModel *>(m);
2345 2345
2346 if (w) { 2346 if (w) {
2347 2347
2348 Pane *pane = addPaneToStack(); 2348 Pane *pane = addPaneToStack();
2349 Layer *layer = 0; 2349 Layer *layer = nullptr;
2350 2350
2351 if (m_timeRulerLayer) { 2351 if (m_timeRulerLayer) {
2352 m_document->addLayerToView(pane, m_timeRulerLayer); 2352 m_document->addLayerToView(pane, m_timeRulerLayer);
2353 } 2353 }
2354 2354
2563 void 2563 void
2564 MainWindowBase::deleteAudioIO() 2564 MainWindowBase::deleteAudioIO()
2565 { 2565 {
2566 // First prevent this trying to call target. 2566 // First prevent this trying to call target.
2567 if (m_playSource) { 2567 if (m_playSource) {
2568 m_playSource->setSystemPlaybackTarget(0); 2568 m_playSource->setSystemPlaybackTarget(nullptr);
2569 m_playSource->setResamplerWrapper(0); 2569 m_playSource->setResamplerWrapper(nullptr);
2570 } 2570 }
2571 2571
2572 // Then delete the breakfastquay::System object. 2572 // Then delete the breakfastquay::System object.
2573 // Only one of these two exists! 2573 // Only one of these two exists!
2574 delete m_audioIO; 2574 delete m_audioIO;
2577 // And the breakfastquay resampler wrapper. We need to 2577 // And the breakfastquay resampler wrapper. We need to
2578 // delete/recreate this if the channel count changes, which is one 2578 // delete/recreate this if the channel count changes, which is one
2579 // of the use cases for recreateAudioIO() calling this 2579 // of the use cases for recreateAudioIO() calling this
2580 delete m_resamplerWrapper; 2580 delete m_resamplerWrapper;
2581 2581
2582 m_audioIO = 0; 2582 m_audioIO = nullptr;
2583 m_playTarget = 0; 2583 m_playTarget = nullptr;
2584 m_resamplerWrapper = 0; 2584 m_resamplerWrapper = nullptr;
2585 } 2585 }
2586 2586
2587 void 2587 void
2588 MainWindowBase::recreateAudioIO() 2588 MainWindowBase::recreateAudioIO()
2589 { 2589 {
2606 } 2606 }
2607 2607
2608 WaveFileModel * 2608 WaveFileModel *
2609 MainWindowBase::getMainModel() 2609 MainWindowBase::getMainModel()
2610 { 2610 {
2611 if (!m_document) return 0; 2611 if (!m_document) return nullptr;
2612 return m_document->getMainModel(); 2612 return m_document->getMainModel();
2613 } 2613 }
2614 2614
2615 const WaveFileModel * 2615 const WaveFileModel *
2616 MainWindowBase::getMainModel() const 2616 MainWindowBase::getMainModel() const
2617 { 2617 {
2618 if (!m_document) return 0; 2618 if (!m_document) return nullptr;
2619 return m_document->getMainModel(); 2619 return m_document->getMainModel();
2620 } 2620 }
2621 2621
2622 void 2622 void
2623 MainWindowBase::createDocument() 2623 MainWindowBase::createDocument()
2907 } 2907 }
2908 } 2908 }
2909 if (m_timeRulerLayer) { 2909 if (m_timeRulerLayer) {
2910 SVCERR << "WARNING: Time ruler layer was not reset to 0 before session template loaded?" << endl; 2910 SVCERR << "WARNING: Time ruler layer was not reset to 0 before session template loaded?" << endl;
2911 delete m_timeRulerLayer; 2911 delete m_timeRulerLayer;
2912 m_timeRulerLayer = 0; 2912 m_timeRulerLayer = nullptr;
2913 } 2913 }
2914 } 2914 }
2915 2915
2916 void 2916 void
2917 MainWindowBase::toggleTimeRulers() 2917 MainWindowBase::toggleTimeRulers()
3432 3432
3433 Layer * 3433 Layer *
3434 MainWindowBase::getSnapLayer() const 3434 MainWindowBase::getSnapLayer() const
3435 { 3435 {
3436 Pane *pane = m_paneStack->getCurrentPane(); 3436 Pane *pane = m_paneStack->getCurrentPane();
3437 if (!pane) return 0; 3437 if (!pane) return nullptr;
3438 3438
3439 Layer *layer = pane->getSelectedLayer(); 3439 Layer *layer = pane->getSelectedLayer();
3440 3440
3441 if (!dynamic_cast<TimeInstantLayer *>(layer) && 3441 if (!dynamic_cast<TimeInstantLayer *>(layer) &&
3442 !dynamic_cast<TimeValueLayer *>(layer) && 3442 !dynamic_cast<TimeValueLayer *>(layer) &&
3443 !dynamic_cast<RegionLayer *>(layer) && 3443 !dynamic_cast<RegionLayer *>(layer) &&
3444 !dynamic_cast<TimeRulerLayer *>(layer)) { 3444 !dynamic_cast<TimeRulerLayer *>(layer)) {
3445 3445
3446 layer = 0; 3446 layer = nullptr;
3447 3447
3448 for (int i = pane->getLayerCount(); i > 0; --i) { 3448 for (int i = pane->getLayerCount(); i > 0; --i) {
3449 Layer *l = pane->getLayer(i-1); 3449 Layer *l = pane->getLayer(i-1);
3450 if (dynamic_cast<TimeRulerLayer *>(l)) { 3450 if (dynamic_cast<TimeRulerLayer *>(l)) {
3451 layer = l; 3451 layer = l;
3482 } 3482 }
3483 } 3483 }
3484 3484
3485 MainWindowBase::AddPaneCommand::AddPaneCommand(MainWindowBase *mw) : 3485 MainWindowBase::AddPaneCommand::AddPaneCommand(MainWindowBase *mw) :
3486 m_mw(mw), 3486 m_mw(mw),
3487 m_pane(0), 3487 m_pane(nullptr),
3488 m_prevCurrentPane(0), 3488 m_prevCurrentPane(nullptr),
3489 m_added(false) 3489 m_added(false)
3490 { 3490 {
3491 } 3491 }
3492 3492
3493 MainWindowBase::AddPaneCommand::~AddPaneCommand() 3493 MainWindowBase::AddPaneCommand::~AddPaneCommand()
3529 } 3529 }
3530 3530
3531 MainWindowBase::RemovePaneCommand::RemovePaneCommand(MainWindowBase *mw, Pane *pane) : 3531 MainWindowBase::RemovePaneCommand::RemovePaneCommand(MainWindowBase *mw, Pane *pane) :
3532 m_mw(mw), 3532 m_mw(mw),
3533 m_pane(pane), 3533 m_pane(pane),
3534 m_prevCurrentPane(0), 3534 m_prevCurrentPane(nullptr),
3535 m_added(true) 3535 m_added(true)
3536 { 3536 {
3537 } 3537 }
3538 3538
3539 MainWindowBase::RemovePaneCommand::~RemovePaneCommand() 3539 MainWindowBase::RemovePaneCommand::~RemovePaneCommand()
3605 } 3605 }
3606 3606
3607 void 3607 void
3608 MainWindowBase::editCurrentLayer() 3608 MainWindowBase::editCurrentLayer()
3609 { 3609 {
3610 Layer *layer = 0; 3610 Layer *layer = nullptr;
3611 Pane *pane = m_paneStack->getCurrentPane(); 3611 Pane *pane = m_paneStack->getCurrentPane();
3612 if (pane) layer = pane->getSelectedLayer(); 3612 if (pane) layer = pane->getSelectedLayer();
3613 if (!layer) return; 3613 if (!layer) return;
3614 3614
3615 Model *model = layer->getModel(); 3615 Model *model = layer->getModel();
3725 } else { 3725 } else {
3726 for (int i = 0; i < count; ++i) { 3726 for (int i = 0; i < count; ++i) {
3727 if (currentPane->getFixedOrderLayer(i) == currentLayer) { 3727 if (currentPane->getFixedOrderLayer(i) == currentLayer) {
3728 if (i == 0) { 3728 if (i == 0) {
3729 m_paneStack->setCurrentLayer 3729 m_paneStack->setCurrentLayer
3730 (currentPane, 0); // pane 3730 (currentPane, nullptr); // pane
3731 } else { 3731 } else {
3732 m_paneStack->setCurrentLayer 3732 m_paneStack->setCurrentLayer
3733 (currentPane, currentPane->getFixedOrderLayer(i-1)); 3733 (currentPane, currentPane->getFixedOrderLayer(i-1));
3734 } 3734 }
3735 break; 3735 break;
3760 } else { 3760 } else {
3761 for (int i = 0; i < count; ++i) { 3761 for (int i = 0; i < count; ++i) {
3762 if (currentPane->getFixedOrderLayer(i) == currentLayer) { 3762 if (currentPane->getFixedOrderLayer(i) == currentLayer) {
3763 if (i == currentPane->getLayerCount()-1) { 3763 if (i == currentPane->getLayerCount()-1) {
3764 m_paneStack->setCurrentLayer 3764 m_paneStack->setCurrentLayer
3765 (currentPane, 0); // pane 3765 (currentPane, nullptr); // pane
3766 } else { 3766 } else {
3767 m_paneStack->setCurrentLayer 3767 m_paneStack->setCurrentLayer
3768 (currentPane, currentPane->getFixedOrderLayer(i+1)); 3768 (currentPane, currentPane->getFixedOrderLayer(i+1));
3769 } 3769 }
3770 break; 3770 break;
3824 3824
3825 void 3825 void
3826 MainWindowBase::globalCentreFrameChanged(sv_frame_t ) 3826 MainWindowBase::globalCentreFrameChanged(sv_frame_t )
3827 { 3827 {
3828 if ((m_playSource && m_playSource->isPlaying()) || !getMainModel()) return; 3828 if ((m_playSource && m_playSource->isPlaying()) || !getMainModel()) return;
3829 Pane *p = 0; 3829 Pane *p = nullptr;
3830 if (!m_paneStack || !(p = m_paneStack->getCurrentPane())) return; 3830 if (!m_paneStack || !(p = m_paneStack->getCurrentPane())) return;
3831 if (!p->getFollowGlobalPan()) return; 3831 if (!p->getFollowGlobalPan()) return;
3832 updateVisibleRangeDisplay(p); 3832 updateVisibleRangeDisplay(p);
3833 } 3833 }
3834 3834
3842 i != m_viewDataDialogMap[v].end(); ++i) { 3842 i != m_viewDataDialogMap[v].end(); ++i) {
3843 (*i)->userScrolledToFrame(frame); 3843 (*i)->userScrolledToFrame(frame);
3844 } 3844 }
3845 } 3845 }
3846 if ((m_playSource && m_playSource->isPlaying()) || !getMainModel()) return; 3846 if ((m_playSource && m_playSource->isPlaying()) || !getMainModel()) return;
3847 Pane *p = 0; 3847 Pane *p = nullptr;
3848 if (!m_paneStack || !(p = m_paneStack->getCurrentPane())) return; 3848 if (!m_paneStack || !(p = m_paneStack->getCurrentPane())) return;
3849 if (v == p) updateVisibleRangeDisplay(p); 3849 if (v == p) updateVisibleRangeDisplay(p);
3850 } 3850 }
3851 3851
3852 void 3852 void
3853 MainWindowBase::viewZoomLevelChanged(View *v, ZoomLevel, bool ) 3853 MainWindowBase::viewZoomLevelChanged(View *v, ZoomLevel, bool )
3854 { 3854 {
3855 if ((m_playSource && m_playSource->isPlaying()) || !getMainModel()) return; 3855 if ((m_playSource && m_playSource->isPlaying()) || !getMainModel()) return;
3856 Pane *p = 0; 3856 Pane *p = nullptr;
3857 if (!m_paneStack || !(p = m_paneStack->getCurrentPane())) return; 3857 if (!m_paneStack || !(p = m_paneStack->getCurrentPane())) return;
3858 if (v == p) updateVisibleRangeDisplay(p); 3858 if (v == p) updateVisibleRangeDisplay(p);
3859 } 3859 }
3860 3860
3861 void 3861 void
3879 3879
3880 removeLayerEditDialog(layer); 3880 removeLayerEditDialog(layer);
3881 3881
3882 if (m_timeRulerLayer && (layer == m_timeRulerLayer)) { 3882 if (m_timeRulerLayer && (layer == m_timeRulerLayer)) {
3883 // cerr << "(this is the time ruler layer)" << endl; 3883 // cerr << "(this is the time ruler layer)" << endl;
3884 m_timeRulerLayer = 0; 3884 m_timeRulerLayer = nullptr;
3885 } 3885 }
3886 } 3886 }
3887 3887
3888 void 3888 void
3889 MainWindowBase::layerInAView(Layer *layer, bool inAView) 3889 MainWindowBase::layerInAView(Layer *layer, bool inAView)
3962 void 3962 void
3963 MainWindowBase::modelAboutToBeDeleted(Model *model) 3963 MainWindowBase::modelAboutToBeDeleted(Model *model)
3964 { 3964 {
3965 // SVDEBUG << "MainWindowBase::modelAboutToBeDeleted(" << model << ")" << endl; 3965 // SVDEBUG << "MainWindowBase::modelAboutToBeDeleted(" << model << ")" << endl;
3966 if (model == m_viewManager->getPlaybackModel()) { 3966 if (model == m_viewManager->getPlaybackModel()) {
3967 m_viewManager->setPlaybackModel(0); 3967 m_viewManager->setPlaybackModel(nullptr);
3968 } 3968 }
3969 m_playSource->removeModel(model); 3969 m_playSource->removeModel(model);
3970 } 3970 }
3971 3971
3972 void 3972 void
4029 } 4029 }
4030 4030
4031 void 4031 void
4032 MainWindowBase::inProgressSelectionChanged() 4032 MainWindowBase::inProgressSelectionChanged()
4033 { 4033 {
4034 Pane *currentPane = 0; 4034 Pane *currentPane = nullptr;
4035 if (m_paneStack) currentPane = m_paneStack->getCurrentPane(); 4035 if (m_paneStack) currentPane = m_paneStack->getCurrentPane();
4036 if (currentPane) { 4036 if (currentPane) {
4037 //cerr << "JTEST: mouse event on selection pane" << endl; 4037 //cerr << "JTEST: mouse event on selection pane" << endl;
4038 updateVisibleRangeDisplay(currentPane); 4038 updateVisibleRangeDisplay(currentPane);
4039 } 4039 }