Implement wxDocument::Revert() and show its use in the sample.
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
This commit is contained in:
@@ -497,6 +497,7 @@ All (GUI):
|
|||||||
- Added wxTreeCtrl::SelectChildren() (Nikolay Tjushkov).
|
- Added wxTreeCtrl::SelectChildren() (Nikolay Tjushkov).
|
||||||
- Show pages icons in window list menu in wxAuiNotebook (Ronny Krüger).
|
- Show pages icons in window list menu in wxAuiNotebook (Ronny Krüger).
|
||||||
- Add "initial selection" parameter to wxGetSingleChoice() (Nikolay Tjushkov).
|
- Add "initial selection" parameter to wxGetSingleChoice() (Nikolay Tjushkov).
|
||||||
|
- Implement wxDocument::Revert() (troelsk).
|
||||||
|
|
||||||
GTK:
|
GTK:
|
||||||
|
|
||||||
|
@@ -377,6 +377,7 @@ public:
|
|||||||
// Handlers for UI update commands
|
// Handlers for UI update commands
|
||||||
void OnUpdateFileOpen(wxUpdateUIEvent& event);
|
void OnUpdateFileOpen(wxUpdateUIEvent& event);
|
||||||
void OnUpdateDisableIfNoDoc(wxUpdateUIEvent& event);
|
void OnUpdateDisableIfNoDoc(wxUpdateUIEvent& event);
|
||||||
|
void OnUpdateFileRevert(wxUpdateUIEvent& event);
|
||||||
void OnUpdateFileNew(wxUpdateUIEvent& event);
|
void OnUpdateFileNew(wxUpdateUIEvent& event);
|
||||||
void OnUpdateFileSave(wxUpdateUIEvent& event);
|
void OnUpdateFileSave(wxUpdateUIEvent& event);
|
||||||
void OnUpdateUndo(wxUpdateUIEvent& event);
|
void OnUpdateUndo(wxUpdateUIEvent& event);
|
||||||
|
@@ -1332,6 +1332,14 @@ public:
|
|||||||
*/
|
*/
|
||||||
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
|
||||||
|
@@ -247,6 +247,7 @@ void MyApp::AppendDocumentFileCommands(wxMenu *menu, bool supportsPrinting)
|
|||||||
menu->Append(wxID_CLOSE);
|
menu->Append(wxID_CLOSE);
|
||||||
menu->Append(wxID_SAVE);
|
menu->Append(wxID_SAVE);
|
||||||
menu->Append(wxID_SAVEAS);
|
menu->Append(wxID_SAVEAS);
|
||||||
|
menu->Append(wxID_REVERT, _("Re&vert..."));
|
||||||
|
|
||||||
if ( supportsPrinting )
|
if ( supportsPrinting )
|
||||||
{
|
{
|
||||||
|
@@ -418,7 +418,22 @@ wxOutputStream& wxDocument::SaveObject(wxOutputStream& stream)
|
|||||||
|
|
||||||
bool wxDocument::Revert()
|
bool wxDocument::Revert()
|
||||||
{
|
{
|
||||||
return false;
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -888,7 +903,7 @@ BEGIN_EVENT_TABLE(wxDocManager, wxEvtHandler)
|
|||||||
EVT_UPDATE_UI(wxID_OPEN, wxDocManager::OnUpdateFileOpen)
|
EVT_UPDATE_UI(wxID_OPEN, wxDocManager::OnUpdateFileOpen)
|
||||||
EVT_UPDATE_UI(wxID_CLOSE, wxDocManager::OnUpdateDisableIfNoDoc)
|
EVT_UPDATE_UI(wxID_CLOSE, wxDocManager::OnUpdateDisableIfNoDoc)
|
||||||
EVT_UPDATE_UI(wxID_CLOSE_ALL, 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_NEW, wxDocManager::OnUpdateFileNew)
|
||||||
EVT_UPDATE_UI(wxID_SAVE, wxDocManager::OnUpdateFileSave)
|
EVT_UPDATE_UI(wxID_SAVE, wxDocManager::OnUpdateFileSave)
|
||||||
EVT_UPDATE_UI(wxID_SAVEAS, wxDocManager::OnUpdateDisableIfNoDoc)
|
EVT_UPDATE_UI(wxID_SAVEAS, wxDocManager::OnUpdateDisableIfNoDoc)
|
||||||
@@ -1168,6 +1183,12 @@ void wxDocManager::OnUpdateDisableIfNoDoc(wxUpdateUIEvent& event)
|
|||||||
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)
|
void wxDocManager::OnUpdateFileNew(wxUpdateUIEvent& event)
|
||||||
{
|
{
|
||||||
// CreateDocument() (which is called from OnFileNew) may succeed
|
// CreateDocument() (which is called from OnFileNew) may succeed
|
||||||
|
Reference in New Issue
Block a user