mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 05:33:33 +00:00
* GuiView::closeEvent(): adjust buffer closing WRT multi-view and child documents.
- a child document is kept loaded in any case. It is saved if needed before being hidden. - a document which is not viewed in another window is closed now. - we do nothing for documents that are also viewed in another window. There is two FIXME related to this last item in the code: // FIXME 1: should we put an alert box here that the buffer // is viewed elsewhere? // FIXME 2: should we try to save this buffer in any case? //saveBuffer(b); git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23250 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
83ae753214
commit
d1511fcb47
@ -390,6 +390,42 @@ void GuiView::closeEvent(QCloseEvent * close_event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (Buffer * b = buffer()) {
|
||||||
|
if (b->parent()) {
|
||||||
|
// This is a child document, just close the tab after saving
|
||||||
|
// but keep the file loaded.
|
||||||
|
if (!saveBuffer(*b)) {
|
||||||
|
close_event->ignore();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
removeWorkArea(d.current_work_area_);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<int> const & ids = guiApp->viewIds();
|
||||||
|
for (int i = 0; i != ids.size(); ++i) {
|
||||||
|
if (id_ == ids[i])
|
||||||
|
continue;
|
||||||
|
if (GuiWorkArea * wa = guiApp->view(ids[i]).workArea(*b)) {
|
||||||
|
// FIXME 1: should we put an alert box here that the buffer
|
||||||
|
// is viewed elsewhere?
|
||||||
|
// FIXME 2: should we try to save this buffer in any case?
|
||||||
|
//saveBuffer(b);
|
||||||
|
|
||||||
|
// This buffer is also opened in another view, so
|
||||||
|
// but close the associated work area nevertheless.
|
||||||
|
removeWorkArea(d.current_work_area_);
|
||||||
|
// but don't close it.
|
||||||
|
b = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (b && !closeBuffer(*b)) {
|
||||||
|
close_event->ignore();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Make sure that no LFUN use this close to be closed View.
|
// Make sure that no LFUN use this close to be closed View.
|
||||||
theLyXFunc().setLyXView(0);
|
theLyXFunc().setLyXView(0);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user