From: <sag...@us...> - 2010-02-20 19:20:46
|
Revision: 501 http://modplug.svn.sourceforge.net/modplug/?rev=501&view=rev Author: saga-games Date: 2010-02-20 19:20:37 +0000 (Sat, 20 Feb 2010) Log Message: ----------- [Fix] Treeview: Insert/Duplicate sequence actions didn't set the document modified. Grey out those two actions if no additional sequences can be added. [Imp] Orderlist: Sequence menu also allows to insert empty sequences now. Modified Paths: -------------- trunk/OpenMPT/mptrack/Ctrl_seq.cpp trunk/OpenMPT/mptrack/View_tre.cpp Modified: trunk/OpenMPT/mptrack/Ctrl_seq.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2010-02-20 16:32:10 UTC (rev 500) +++ trunk/OpenMPT/mptrack/Ctrl_seq.cpp 2010-02-20 19:20:37 UTC (rev 501) @@ -60,7 +60,7 @@ ON_COMMAND(ID_ORDERLIST_COPY, OnDuplicatePattern) ON_COMMAND(ID_PATTERNCOPY, OnPatternCopy) ON_COMMAND(ID_PATTERNPASTE, OnPatternPaste) - ON_COMMAND_RANGE(ID_SEQUENCE_ITEM, ID_SEQUENCE_ITEM + MAX_SEQUENCES + 1, OnSelectSequence) + ON_COMMAND_RANGE(ID_SEQUENCE_ITEM, ID_SEQUENCE_ITEM + MAX_SEQUENCES + 2, OnSelectSequence) ON_MESSAGE(WM_MOD_DRAGONDROPPING, OnDragonDropping) ON_MESSAGE(WM_HELPHITTEST, OnHelpHitTest) ON_MESSAGE(WM_MOD_KEYCOMMAND, OnCustomKeyMsg) @@ -1070,9 +1070,12 @@ AppendMenu(menuSequence, flags, ID_SEQUENCE_ITEM + i, str); } if (pSndFile->Order.GetNumSequences() < MAX_SEQUENCES) - AppendMenu(menuSequence, MF_STRING, ID_SEQUENCE_ITEM + MAX_SEQUENCES, TEXT("Create new sequence")); + { + AppendMenu(menuSequence, MF_STRING, ID_SEQUENCE_ITEM + MAX_SEQUENCES, TEXT("Duplicate current sequence")); + AppendMenu(menuSequence, MF_STRING, ID_SEQUENCE_ITEM + MAX_SEQUENCES + 1, TEXT("Create empty sequence")); + } if (pSndFile->Order.GetNumSequences() > 1) - AppendMenu(menuSequence, MF_STRING, ID_SEQUENCE_ITEM + MAX_SEQUENCES + 1, TEXT("Delete current sequence")); + AppendMenu(menuSequence, MF_STRING, ID_SEQUENCE_ITEM + MAX_SEQUENCES + 2, TEXT("Delete current sequence")); } } AppendMenu(hMenu, MF_SEPARATOR, NULL, ""); @@ -1366,7 +1369,7 @@ BEGIN_CRITICAL(); CMainFrame::GetMainFrame()->ResetNotificationBuffer(); CSoundFile& rSf = *m_pModDoc->GetSoundFile(); - if (nSeq == MAX_SEQUENCES + 1) + if (nSeq == MAX_SEQUENCES + 2) { CString strParam; strParam.Format(TEXT("%u: %s"), rSf.Order.GetCurrentSequenceIndex(), rSf.Order.m_sName); CString str; @@ -1379,8 +1382,8 @@ return; } } - else if (nSeq == MAX_SEQUENCES) - rSf.Order.AddSequence(); + else if (nSeq == MAX_SEQUENCES || nSeq == MAX_SEQUENCES + 1) + rSf.Order.AddSequence((nSeq == MAX_SEQUENCES)); else if (nSeq < rSf.Order.GetNumSequences()) rSf.Order.SetSequence(nSeq); ORDERINDEX nPosCandidate = rSf.Order.GetLengthTailTrimmed() - 1; Modified: trunk/OpenMPT/mptrack/View_tre.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_tre.cpp 2010-02-20 16:32:10 UTC (rev 500) +++ trunk/OpenMPT/mptrack/View_tre.cpp 2010-02-20 19:20:37 UTC (rev 501) @@ -2333,8 +2333,8 @@ { AppendMenu(hMenu, MF_STRING, ID_MODTREE_SWITCHTO, "&Switch to Seqeuence"); } - AppendMenu(hMenu, MF_STRING, ID_MODTREE_INSERT, "&Insert Sequence"); - AppendMenu(hMenu, MF_STRING, ID_MODTREE_DUPLICATE, "D&uplicate Sequence"); + AppendMenu(hMenu, MF_STRING | (pSndFile->Order.GetNumSequences() < MAX_SEQUENCES ? 0 : MF_GRAYED), ID_MODTREE_INSERT, "&Insert Sequence"); + AppendMenu(hMenu, MF_STRING | (pSndFile->Order.GetNumSequences() < MAX_SEQUENCES ? 0 : MF_GRAYED), ID_MODTREE_DUPLICATE , "D&uplicate Sequence"); AppendMenu(hMenu, MF_STRING, ID_MODTREE_REMOVE, "&Delete Sequence"); } break; @@ -2867,6 +2867,7 @@ { pSndFile->Order.SetSequence((SEQUENCEINDEX)modItemID); pSndFile->Order.AddSequence(true); + pModDoc->SetModified(); UpdateView(GetDocumentIDFromModDoc(pModDoc), HINT_SEQNAMES|HINT_MODSEQUENCE); pModDoc->UpdateAllViews(NULL, HINT_SEQNAMES|HINT_MODSEQUENCE); } @@ -2889,6 +2890,7 @@ if (pModDoc && pSndFile && ((modItemType == MODITEM_SEQUENCE) || (modItemType == MODITEM_HDR_ORDERS))) { pSndFile->Order.AddSequence(false); + pModDoc->SetModified(); UpdateView(GetDocumentIDFromModDoc(pModDoc), HINT_SEQNAMES|HINT_MODSEQUENCE); pModDoc->UpdateAllViews(NULL, HINT_SEQNAMES|HINT_MODSEQUENCE); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |