wxDocument::Revert() method existed but didn't do anything, provide a
default implementation for it. Also document it and show it in the sample.
Closes #11849.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63748
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- Added wxTreeCtrl::SelectChildren() (Nikolay Tjushkov).
- Show pages icons in window list menu in wxAuiNotebook (Ronny Krüger).
- Add "initial selection" parameter to wxGetSingleChoice() (Nikolay Tjushkov).
- Added wxTreeCtrl::SelectChildren() (Nikolay Tjushkov).
- Show pages icons in window list menu in wxAuiNotebook (Ronny Krüger).
- Add "initial selection" parameter to wxGetSingleChoice() (Nikolay Tjushkov).
+- Implement wxDocument::Revert() (troelsk).
// Handlers for UI update commands
void OnUpdateFileOpen(wxUpdateUIEvent& event);
void OnUpdateDisableIfNoDoc(wxUpdateUIEvent& event);
// Handlers for UI update commands
void OnUpdateFileOpen(wxUpdateUIEvent& event);
void OnUpdateDisableIfNoDoc(wxUpdateUIEvent& event);
+ void OnUpdateFileRevert(wxUpdateUIEvent& event);
void OnUpdateFileNew(wxUpdateUIEvent& event);
void OnUpdateFileSave(wxUpdateUIEvent& event);
void OnUpdateUndo(wxUpdateUIEvent& event);
void OnUpdateFileNew(wxUpdateUIEvent& event);
void OnUpdateFileSave(wxUpdateUIEvent& event);
void OnUpdateUndo(wxUpdateUIEvent& event);
*/
virtual bool SaveAs();
*/
virtual bool SaveAs();
+ /**
+ Discard changes and load last saved version.
+
+ Prompts the user first, and then calls DoOpenDocument() to reload the
+ current file.
+ */
+ virtual bool Revert();
+
//@{
/**
Override this function and call it from your own SaveObject() before
//@{
/**
Override this function and call it from your own SaveObject() before
menu->Append(wxID_CLOSE);
menu->Append(wxID_SAVE);
menu->Append(wxID_SAVEAS);
menu->Append(wxID_CLOSE);
menu->Append(wxID_SAVE);
menu->Append(wxID_SAVEAS);
+ menu->Append(wxID_REVERT, _("Re&vert..."));
if ( supportsPrinting )
{
if ( supportsPrinting )
{
bool wxDocument::Revert()
{
bool wxDocument::Revert()
{
+ if ( wxMessageBox
+ (
+ _("Discard changes and reload the last saved version?"),
+ wxTheApp->GetAppDisplayName(),
+ wxYES_NO | wxCANCEL | wxICON_QUESTION,
+ GetDocumentWindow()
+ ) != wxYES )
+ return false;
+
+ if ( !DoOpenDocument(GetFilename()) )
+ return false;
+
+ Modify(false);
+ UpdateAllViews();
+
+ return true;
EVT_UPDATE_UI(wxID_OPEN, wxDocManager::OnUpdateFileOpen)
EVT_UPDATE_UI(wxID_CLOSE, wxDocManager::OnUpdateDisableIfNoDoc)
EVT_UPDATE_UI(wxID_CLOSE_ALL, wxDocManager::OnUpdateDisableIfNoDoc)
EVT_UPDATE_UI(wxID_OPEN, wxDocManager::OnUpdateFileOpen)
EVT_UPDATE_UI(wxID_CLOSE, wxDocManager::OnUpdateDisableIfNoDoc)
EVT_UPDATE_UI(wxID_CLOSE_ALL, wxDocManager::OnUpdateDisableIfNoDoc)
- EVT_UPDATE_UI(wxID_REVERT, wxDocManager::OnUpdateDisableIfNoDoc)
+ EVT_UPDATE_UI(wxID_REVERT, wxDocManager::OnUpdateFileRevert)
EVT_UPDATE_UI(wxID_NEW, wxDocManager::OnUpdateFileNew)
EVT_UPDATE_UI(wxID_SAVE, wxDocManager::OnUpdateFileSave)
EVT_UPDATE_UI(wxID_SAVEAS, wxDocManager::OnUpdateDisableIfNoDoc)
EVT_UPDATE_UI(wxID_NEW, wxDocManager::OnUpdateFileNew)
EVT_UPDATE_UI(wxID_SAVE, wxDocManager::OnUpdateFileSave)
EVT_UPDATE_UI(wxID_SAVEAS, wxDocManager::OnUpdateDisableIfNoDoc)
event.Enable( GetCurrentDocument() != NULL );
}
event.Enable( GetCurrentDocument() != NULL );
}
+void wxDocManager::OnUpdateFileRevert(wxUpdateUIEvent& event)
+{
+ wxDocument* doc = GetCurrentDocument();
+ event.Enable(doc && doc->IsModified() && doc->GetDocumentSaved());
+}
+
void wxDocManager::OnUpdateFileNew(wxUpdateUIEvent& event)
{
// CreateDocument() (which is called from OnFileNew) may succeed
void wxDocManager::OnUpdateFileNew(wxUpdateUIEvent& event)
{
// CreateDocument() (which is called from OnFileNew) may succeed