X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/35f5a520e2e918dc53baa8c65468fc12416ca219..cc4d5638c66a409e421420ed7110917755a66788:/src/common/cmdproc.cpp diff --git a/src/common/cmdproc.cpp b/src/common/cmdproc.cpp index f59886d0a5..54f14ea028 100644 --- a/src/common/cmdproc.cpp +++ b/src/common/cmdproc.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart (extracted from docview.h by VZ) // Modified by: // Created: 05.11.00 -// RCS-ID: $Id$ // Copyright: (c) wxWidgets team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -62,8 +61,8 @@ wxCommandProcessor::wxCommandProcessor(int maxCommands) #endif // wxUSE_MENUS #if wxUSE_ACCEL - m_undoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CMD, 'Z').ToString(); - m_redoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CMD, 'Y').ToString(); + m_undoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CTRL, 'Z').ToString(); + m_redoAccelerator = '\t' + wxAcceleratorEntry(wxACCEL_CTRL, 'Y').ToString(); #endif // wxUSE_ACCEL m_lastSavedCommand = @@ -328,4 +327,28 @@ void wxCommandProcessor::ClearCommands() m_lastSavedCommand = wxList::compatibility_iterator(); } +bool wxCommandProcessor::IsDirty() const +{ + if ( m_commands.empty() ) + { + // If we have never been modified, we can't be dirty. + return false; + } + + if ( !m_lastSavedCommand ) + { + // If we have been modified but have never been saved, we're dirty. + return true; + } + + if ( !m_currentCommand ) + { + // This only happens if all commands were undone after saving the + // document: we're dirty then. + return true; + } + + // Finally if both iterators are valid, we may just compare them. + return m_currentCommand != m_lastSavedCommand; +}