本文整理汇总了C++中TDocument::Commit方法的典型用法代码示例。如果您正苦于以下问题:C++ TDocument::Commit方法的具体用法?C++ TDocument::Commit怎么用?C++ TDocument::Commit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TDocument
的用法示例。
在下文中一共展示了TDocument::Commit方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: NotifyViews
//
/// Saves the current data to storage. When a file is closed, the document manager
/// calls either Commit or Revert. If force is true, all data is written to storage.
/// Commit checks any child documents and commits their changes to storage also.
/// Before the current data is saved, all child documents must return true. If all
/// child documents return true, Commit flushes the views for operations that
/// occurred since the last time the view was checked. After all data for the
/// document is updated and saved, Commit returns true.
//
bool
TDocument::Commit(bool force)
{
TDocument* pdoc = 0;
while ((pdoc = ChildDoc.Next(pdoc)) != 0) {
if (!pdoc->Commit(force))
return false;
}
WARNX(OwlDocView, !DocPath, 0, _T("Commit(): 0 DocPath!"));
return NotifyViews(vnCommit, force);
}
示例2: GetCurrentDoc
//
/// SelectAnySave() is called to get a template. Then the Commit() function is called
/// for the current document.
//
void
TDocManager::FileSaveAs()
{
TDocument* doc = GetCurrentDoc();
if (doc) {
TDocTemplate* tpl = SelectAnySave(*doc, true);
if (tpl) {
if (tpl != doc->Template)
doc->SetTemplate(tpl); // replace existing template
if (doc->Commit(true)) // force rewrite to new path
PostEvent(dnRename, *doc); // WM_OWLDOCUMENT
}
}
}
示例3: while
//
/// Method invoked when specified document is about to be closed.
/// Updates the document with any changes and prompts the user for confirmation of
/// updates.
/// Returns 'true' if DocManager should proceed with the closing
/// stages of the document, or 'false' otherwise.
//
bool
TDocManager::FlushDoc(TDocument& doc)
{
while (doc.IsDirty()) {
int saveOrNot = doc.IsEmbedded() ?
IDYES :
PostDocError(doc, IDS_DOCCHANGED, MB_YESNOCANCEL);
switch (saveOrNot) {
case IDYES:
// Prompt the user for filename in save-as situation
//
if (!doc.IsEmbedded() && doc.GetDocPath() == 0) {
// !BB
// !BB It does not make sense to invoke SelectAnySave
// !BB with false here... This would allow the user
// !BB to switch to any available template when saving the
// !BB document. In other words, a user would be allowed to
// !BB save a .TXT file as a .PTS file although they are
// !BB not related whatsoever...
// !BB
// !BB I'm switching this to use true - let me know if you
// !BB know of a reason for the prior behaviour.
// !BB
#if defined(OLD_DOCVIEW)
TDocTemplate* tpl = SelectAnySave(doc, false);
#else
TDocTemplate* tpl = SelectAnySave(doc, true);
#endif
if (!tpl)
continue;
// !BB
// !BB The following is suspicious: Is there a reason
// !BB to allow the user to switch the template in the first
// !BB place?? OK, if everyone agrees that same TDocument-derived
// !BB type implies compatible document, that would be OK.
// !BB However, that's not what we've encouraged. Our own
// !BB examples use the same TFileDocument for incompatible
// !BB document types. Hence, if an app. has a
// !BB TBitmapView/TFileDocument and a TTextView/TFileDocument pair,
// !BB the following would allow the user to save a text file as a .BMP
// !BB Ack!!
// !BB If the following is really the intent, then DV users must be
// !BB conscious that they will more often than not be using TFileDocument-
// !BB derived documents as a method to specify compatible and incompatible
// !BB document types.
//
if (tpl != doc.Template)
doc.SetTemplate(tpl);
}
if (doc.Commit())
return true;
continue;
case IDNO:
if (doc.Revert(true))
return true;
return false;
case IDCANCEL:
return false;
}
}
return true;
}