From: <sag...@us...> - 2010-12-23 23:06:23
|
Revision: 777 http://modplug.svn.sourceforge.net/modplug/?rev=777&view=rev Author: saga-games Date: 2010-12-23 23:06:16 +0000 (Thu, 23 Dec 2010) Log Message: ----------- [Fix] Note Properties: Changing values didn't create an undo point. (http://bugs.openmpt.org/view.php?id=56) Modified Paths: -------------- trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/mptrack/dlg_misc.h Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp =================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.cpp 2010-12-20 23:03:47 UTC (rev 776) +++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2010-12-23 23:06:16 UTC (rev 777) @@ -1187,6 +1187,7 @@ m_pageNote = NULL; m_pageVolume = NULL; m_pageEffect = NULL; + m_bModified = false; } @@ -1301,6 +1302,11 @@ MODCOMMAND *m = pSndFile->Patterns[m_nPattern]+m_nRow*pSndFile->m_nChannels+m_nChannel; if ((m->note != note) || (m->instr != instr)) { + if(!m_bModified) // let's create just one undo step. + { + m_pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, m_nChannel, m_nRow, 1, 1); + m_bModified = true; + } m->note = note; m->instr = instr; m_Command = *m; @@ -1325,6 +1331,11 @@ MODCOMMAND *m = pSndFile->Patterns[m_nPattern]+m_nRow*pSndFile->m_nChannels+m_nChannel; if ((m->volcmd != volcmd) || (m->vol != vol)) { + if(!m_bModified) // let's create just one undo step. + { + m_pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, m_nChannel, m_nRow, 1, 1); + m_bModified = true; + } m->volcmd = volcmd; m->vol = vol; m_pModDoc->SetModified(); @@ -1359,6 +1370,11 @@ if ((m->command != command) || (m->param != param)) { + if(!m_bModified) // let's create just one undo step. + { + m_pModDoc->GetPatternUndo()->PrepareUndo(m_nPattern, m_nChannel, m_nRow, 1, 1); + m_bModified = true; + } m->command = command; m->param = param; m_pModDoc->SetModified(); @@ -1386,7 +1402,7 @@ //----------------------------------- { CPropertyPage::OnInitDialog(); - m_bInitialized = TRUE; + m_bInitialized = true; UpdateDialog(); return TRUE; } Modified: trunk/OpenMPT/mptrack/dlg_misc.h =================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.h 2010-12-20 23:03:47 UTC (rev 776) +++ trunk/OpenMPT/mptrack/dlg_misc.h 2010-12-23 23:06:16 UTC (rev 777) @@ -255,10 +255,10 @@ protected: CModDoc *m_pModDoc; CEditCommand *m_pParent; - BOOL m_bInitialized; + bool m_bInitialized; public: - CPageEditCommand(CModDoc *pModDoc, CEditCommand *parent, UINT id):CPropertyPage(id) { m_pModDoc = pModDoc; m_pParent = parent; m_bInitialized = FALSE; } + CPageEditCommand(CModDoc *pModDoc, CEditCommand *parent, UINT id):CPropertyPage(id) { m_pModDoc = pModDoc; m_pParent = parent; m_bInitialized = false; } virtual ~CPageEditCommand() {} virtual BOOL OnInitDialog(); virtual void Init(MODCOMMAND&)=0; @@ -358,6 +358,7 @@ HWND m_hWndView; UINT m_nPattern, m_nRow, m_nChannel; MODCOMMAND m_Command; + bool m_bModified; public: CEditCommand(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |