From: werner s. <wsc...@us...> - 2004-10-01 08:46:51
|
Update of /cvsroot/lmuse/muse/muse In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15106 Modified Files: app.cpp app.h Log Message: fixes song reload Index: app.h =================================================================== RCS file: /cvsroot/lmuse/muse/muse/app.h,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** app.h 28 Sep 2004 18:32:20 -0000 1.41 --- app.h 1 Oct 2004 08:46:42 -0000 1.42 *************** *** 128,132 **** void write(Xml& xml) const; - bool clearSong(); bool save(const QString&, bool); void setUntitledProject(); --- 128,131 ---- Index: app.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/app.cpp,v retrieving revision 1.131 retrieving revision 1.132 diff -C2 -d -r1.131 -r1.132 *** app.cpp 28 Sep 2004 18:32:07 -0000 1.131 --- app.cpp 1 Oct 2004 08:46:42 -0000 1.132 *************** *** 987,994 **** if (audioMixer) audioMixer->clear(); ! if (clearSong()) ! return; ! emit startLoadSong(); QFileInfo fi(name); if (songTemplate) { --- 987,1035 ---- if (audioMixer) audioMixer->clear(); ! if (song->dirty) { ! int n = 0; ! n = QMessageBox::warning(this, appName, ! tr("The current Project contains unsaved data\n" ! "Load overwrites current Project:\n" ! "Save Current Project?"), ! tr("&Save"), tr("&Overwrite"), tr("&Abort"), 0, 2); ! switch (n) { ! case 0: ! if (!save()) // abort if save failed ! return; ! break; ! case 1: ! break; ! case 2: ! return; ! default: ! printf("InternalError: gibt %d\n", n); ! } ! } ! if (audio->isPlaying()) { ! audio->msgPlay(false); ! while (audio->isPlaying()) ! qApp->processEvents(); ! } + again: + for (iToplevel i = toplevels.begin(); i != toplevels.end(); ++i) { + Toplevel tl = *i; + int obj = tl.object(); + switch (tl.type()) { + case Toplevel::CLIPLIST: + break; + case Toplevel::PIANO_ROLL: + case Toplevel::LISTE: + case Toplevel::DRUM: + case Toplevel::MASTER: + case Toplevel::WAVE: + case Toplevel::LMASTER: + ((QWidget*)(obj))->close(true); + goto again; + } + } + emit startLoadSong(); + song->clear(false); QFileInfo fi(name); if (songTemplate) { *************** *** 1071,1074 **** --- 1112,1116 ---- selectionChanged(); // enable/disable "Copy" & "Paste" song->setLen(song->len()); // emit song->lenChanged() signal + emit endLoadSong(); song->update(); *************** *** 2624,2682 **** //--------------------------------------------------------- - // clearSong - // return true if operation aborted - // called with sequencer stopped - //--------------------------------------------------------- - - bool MusE::clearSong() - { - if (song->dirty) { - int n = 0; - n = QMessageBox::warning(this, appName, - tr("The current Project contains unsaved data\n" - "Load overwrites current Project:\n" - "Save Current Project?"), - tr("&Save"), tr("&Overwrite"), tr("&Abort"), 0, 2); - switch (n) { - case 0: - if (!save()) // abort if save failed - return true; - break; - case 1: - break; - case 2: - return true; - default: - printf("InternalError: gibt %d\n", n); - } - } - if (audio->isPlaying()) { - audio->msgPlay(false); - while (audio->isPlaying()) - qApp->processEvents(); - } - - again: - for (iToplevel i = toplevels.begin(); i != toplevels.end(); ++i) { - Toplevel tl = *i; - int obj = tl.object(); - switch (tl.type()) { - case Toplevel::CLIPLIST: - break; - case Toplevel::PIANO_ROLL: - case Toplevel::LISTE: - case Toplevel::DRUM: - case Toplevel::MASTER: - case Toplevel::WAVE: - case Toplevel::LMASTER: - ((QWidget*)(obj))->close(true); - goto again; - } - } - song->clear(false); - return false; - } - - //--------------------------------------------------------- // startEditInstrument //--------------------------------------------------------- --- 2666,2669 ---- |