forked from teamnwah/openmw-tes3coop
Refactor for better legibility.
This commit is contained in:
parent
77171b788b
commit
89f7608022
2 changed files with 19 additions and 27 deletions
|
@ -364,17 +364,17 @@ void CSVDoc::ViewManager::onExitWarningHandler (int state, CSMDoc::Document *doc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVDoc::ViewManager::exitApplication (CSVDoc::View *view)
|
bool CSVDoc::ViewManager::removeDocument (CSVDoc::View *view)
|
||||||
{
|
{
|
||||||
// close the current document first
|
|
||||||
if(!notifySaveOnClose(view))
|
if(!notifySaveOnClose(view))
|
||||||
return;
|
return false;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// don't bother closing views or updating indicies, but remove from mViews
|
// don't bother closing views or updating indicies, but remove from mViews
|
||||||
CSMDoc::Document * document = view->getDocument();
|
CSMDoc::Document * document = view->getDocument();
|
||||||
std::vector<View *> remainingViews;
|
std::vector<View *> remainingViews;
|
||||||
for (std::vector<View *>::const_iterator iter (mViews.begin()); iter!=mViews.end(); ++iter)
|
std::vector<View *>::const_iterator iter = mViews.begin();
|
||||||
|
for (; iter!=mViews.end(); ++iter)
|
||||||
{
|
{
|
||||||
if(document == (*iter)->getDocument())
|
if(document == (*iter)->getDocument())
|
||||||
(*iter)->setVisible(false);
|
(*iter)->setVisible(false);
|
||||||
|
@ -383,30 +383,21 @@ void CSVDoc::ViewManager::exitApplication (CSVDoc::View *view)
|
||||||
}
|
}
|
||||||
mDocumentManager.removeDocument(document);
|
mDocumentManager.removeDocument(document);
|
||||||
mViews = remainingViews;
|
mViews = remainingViews;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// attempt to close all other documents
|
void CSVDoc::ViewManager::exitApplication (CSVDoc::View *view)
|
||||||
while(!mViews.empty())
|
{
|
||||||
{
|
if(!removeDocument(view)) // close the current document first
|
||||||
// raise the window to alert the user
|
|
||||||
mViews.back()->activateWindow();
|
|
||||||
mViews.back()->raise();
|
|
||||||
if (!notifySaveOnClose(mViews.back()))
|
|
||||||
return;
|
return;
|
||||||
else
|
|
||||||
|
while(!mViews.empty()) // attempt to close all other documents
|
||||||
{
|
{
|
||||||
document = mViews.back()->getDocument();
|
mViews.back()->activateWindow();
|
||||||
remainingViews.clear();
|
mViews.back()->raise(); // raise the window to alert the user
|
||||||
for (std::vector<View *>::const_iterator iter (mViews.begin()); iter!=mViews.end(); ++iter)
|
if(!removeDocument(mViews.back()))
|
||||||
{
|
return;
|
||||||
if(document == (*iter)->getDocument())
|
|
||||||
(*iter)->setVisible(false);
|
|
||||||
else
|
|
||||||
remainingViews.push_back(*iter);
|
|
||||||
}
|
|
||||||
mDocumentManager.removeDocument(document);
|
|
||||||
mViews = remainingViews;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Editor exits (via a signal) when the last document is deleted
|
// Editor exits (via a signal) when the last document is deleted
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ namespace CSVDoc
|
||||||
bool notifySaveOnClose (View *view = 0);
|
bool notifySaveOnClose (View *view = 0);
|
||||||
bool showModifiedDocumentMessageBox (View *view);
|
bool showModifiedDocumentMessageBox (View *view);
|
||||||
bool showSaveInProgressMessageBox (View *view);
|
bool showSaveInProgressMessageBox (View *view);
|
||||||
|
bool removeDocument(View *view);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue