added wxDocument::AlreadySaved() and use it in OnUpdateFileSave() to ensure that the "Save" menu item is enabled for new documents, even although they're not modified yet (otherwise the standard Ctrl-S key doesn't work in this case which is pretty annoying)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -78,6 +78,11 @@ public:
|
|||||||
bool GetDocumentSaved() const { return m_savedYet; }
|
bool GetDocumentSaved() const { return m_savedYet; }
|
||||||
void SetDocumentSaved(bool saved = true) { m_savedYet = saved; }
|
void SetDocumentSaved(bool saved = true) { m_savedYet = saved; }
|
||||||
|
|
||||||
|
// return true if the document hasn't been modified since the last time it
|
||||||
|
// was saved (implying that it returns false if it was never saved, even if
|
||||||
|
// the document is not modified)
|
||||||
|
bool AlreadySaved() const { return !IsModified() && GetDocumentSaved(); }
|
||||||
|
|
||||||
virtual bool Close();
|
virtual bool Close();
|
||||||
virtual bool Save();
|
virtual bool Save();
|
||||||
virtual bool SaveAs();
|
virtual bool SaveAs();
|
||||||
|
@@ -1008,6 +1008,22 @@ public:
|
|||||||
*/
|
*/
|
||||||
virtual bool AddView(wxView* view);
|
virtual bool AddView(wxView* view);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns true if the document hasn't been modified since the last time
|
||||||
|
it had been saved.
|
||||||
|
|
||||||
|
Notice that this function returns @false if the document had been never
|
||||||
|
saved at all, so it may be also used to test whether it makes sense to
|
||||||
|
save the document: if it returns @true, there is nothing to save but if
|
||||||
|
@false is returned, it can be saved, even if it might be not modified
|
||||||
|
(this can be used to create an empty document file by the user).
|
||||||
|
|
||||||
|
@see IsModified(), GetDocumentSaved()
|
||||||
|
|
||||||
|
@since 2.9.0
|
||||||
|
*/
|
||||||
|
bool AlreadySaved() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Closes the document, by calling OnSaveModified() and then (if this
|
Closes the document, by calling OnSaveModified() and then (if this
|
||||||
returned @true) OnCloseDocument(). This does not normally delete the
|
returned @true) OnCloseDocument(). This does not normally delete the
|
||||||
|
@@ -259,7 +259,7 @@ bool wxDocument::OnNewDocument()
|
|||||||
|
|
||||||
bool wxDocument::Save()
|
bool wxDocument::Save()
|
||||||
{
|
{
|
||||||
if (!IsModified() && m_savedYet)
|
if ( AlreadySaved() )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if ( m_documentFile.empty() || !m_savedYet )
|
if ( m_documentFile.empty() || !m_savedYet )
|
||||||
@@ -1094,8 +1094,8 @@ void wxDocManager::OnUpdateFileNew(wxUpdateUIEvent& event)
|
|||||||
|
|
||||||
void wxDocManager::OnUpdateFileSave(wxUpdateUIEvent& event)
|
void wxDocManager::OnUpdateFileSave(wxUpdateUIEvent& event)
|
||||||
{
|
{
|
||||||
wxDocument *doc = GetCurrentDocument();
|
wxDocument * const doc = GetCurrentDocument();
|
||||||
event.Enable( doc && doc->IsModified() );
|
event.Enable( doc && !doc->AlreadySaved() );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDocManager::OnUpdateUndo(wxUpdateUIEvent& event)
|
void wxDocManager::OnUpdateUndo(wxUpdateUIEvent& event)
|
||||||
|
Reference in New Issue
Block a user