void song::clearProject() { engine::projectJournal()->setJournalling( false ); if( m_playing ) { stop(); } for( int i = 0; i < Mode_Count; i++ ) { setPlayPos( 0, ( PlayModes )i ); } engine::mixer()->lock(); if( engine::getBBEditor() ) { engine::getBBEditor()->clearAllTracks(); } if( engine::songEditor() ) { engine::songEditor()->clearAllTracks(); } if( engine::fxMixerView() ) { engine::fxMixerView()->clear(); } QCoreApplication::sendPostedEvents(); engine::getBBTrackContainer()->clearAllTracks(); clearAllTracks(); engine::fxMixer()->clear(); if( engine::automationEditor() ) { engine::automationEditor()->setCurrentPattern( NULL ); } if( engine::pianoRoll() ) { engine::pianoRoll()->reset(); } m_tempoModel.reset(); m_masterVolumeModel.reset(); m_masterPitchModel.reset(); m_timeSigModel.reset(); AutomationPattern::globalAutomationPattern( &m_tempoModel )->clear(); AutomationPattern::globalAutomationPattern( &m_masterVolumeModel )-> clear(); AutomationPattern::globalAutomationPattern( &m_masterPitchModel )-> clear(); engine::mixer()->unlock(); if( engine::getProjectNotes() ) { engine::getProjectNotes()->clear(); } // Move to function while( !m_controllers.empty() ) { delete m_controllers.last(); } emit dataChanged(); engine::projectJournal()->clearJournal(); engine::projectJournal()->setJournalling( true ); InstrumentTrackView::cleanupWindowCache(); }
void TrackContainer::loadSettings( const QDomElement & _this ) { bool journalRestore = _this.parentNode().nodeName() == "journaldata"; if( journalRestore ) { clearAllTracks(); } static QProgressDialog * pd = NULL; bool was_null = ( pd == NULL ); int start_val = 0; if( !journalRestore && engine::hasGUI() ) { if( pd == NULL ) { pd = new QProgressDialog( tr( "Loading project..." ), tr( "Cancel" ), 0, _this.childNodes().count(), engine::mainWindow() ); pd->setWindowModality( Qt::ApplicationModal ); pd->setWindowTitle( tr( "Please wait..." ) ); pd->show(); } else { start_val = pd->value(); pd->setMaximum( pd->maximum() + _this.childNodes().count() ); } } QDomNode node = _this.firstChild(); while( !node.isNull() ) { if( pd != NULL ) { pd->setValue( pd->value() + 1 ); QCoreApplication::instance()->processEvents( QEventLoop::AllEvents, 100 ); if( pd->wasCanceled() ) { break; } } if( node.isElement() && !node.toElement().attribute( "metadata" ).toInt() ) { track::create( node.toElement(), this ); } node = node.nextSibling(); } if( pd != NULL ) { pd->setValue( start_val + _this.childNodes().count() ); if( was_null ) { delete pd; pd = NULL; } } }
void Song::clearProject() { Engine::projectJournal()->setJournalling( false ); if( m_playing ) { stop(); } for( int i = 0; i < Mode_Count; i++ ) { setPlayPos( 0, ( PlayModes )i ); } Engine::mixer()->requestChangeInModel(); if( gui && gui->getBBEditor() ) { gui->getBBEditor()->trackContainerView()->clearAllTracks(); } if( gui && gui->songEditor() ) { gui->songEditor()->m_editor->clearAllTracks(); } if( gui && gui->fxMixerView() ) { gui->fxMixerView()->clear(); } QCoreApplication::sendPostedEvents(); Engine::getBBTrackContainer()->clearAllTracks(); clearAllTracks(); Engine::fxMixer()->clear(); if( gui && gui->automationEditor() ) { gui->automationEditor()->setCurrentPattern( NULL ); } if( gui && gui->pianoRoll() ) { gui->pianoRoll()->reset(); } m_tempoModel.reset(); m_masterVolumeModel.reset(); m_masterPitchModel.reset(); m_timeSigModel.reset(); AutomationPattern::globalAutomationPattern( &m_tempoModel )->clear(); AutomationPattern::globalAutomationPattern( &m_masterVolumeModel )-> clear(); AutomationPattern::globalAutomationPattern( &m_masterPitchModel )-> clear(); Engine::mixer()->doneChangeInModel(); if( gui && gui->getProjectNotes() ) { gui->getProjectNotes()->clear(); } removeAllControllers(); emit dataChanged(); Engine::projectJournal()->clearJournal(); Engine::projectJournal()->setJournalling( true ); InstrumentTrackView::cleanupWindowCache(); }
TrackContainer::~TrackContainer() { clearAllTracks(); }