mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-13 12:40:04 +00:00
replaced return value of removeDocument with a signal
This commit is contained in:
parent
dbb192f084
commit
ddb0496dca
@ -39,6 +39,8 @@ CS::Editor::Editor (OgreInit::OgreInit& ogreInit)
|
||||
|
||||
connect (&mDocumentManager, SIGNAL (documentAdded (CSMDoc::Document *)),
|
||||
this, SLOT (documentAdded (CSMDoc::Document *)));
|
||||
connect (&mDocumentManager, SIGNAL (lastDocumentDeleted()),
|
||||
this, SLOT (lastDocumentDeleted()));
|
||||
|
||||
connect (&mViewManager, SIGNAL (newGameRequest ()), this, SLOT (createGame ()));
|
||||
connect (&mViewManager, SIGNAL (newAddonRequest ()), this, SLOT (createAddon ()));
|
||||
@ -290,4 +292,9 @@ std::auto_ptr<sh::Factory> CS::Editor::setupGraphics()
|
||||
void CS::Editor::documentAdded (CSMDoc::Document *document)
|
||||
{
|
||||
mViewManager.addView (document);
|
||||
}
|
||||
|
||||
void CS::Editor::lastDocumentDeleted()
|
||||
{
|
||||
exit (0);
|
||||
}
|
@ -87,6 +87,8 @@ namespace CS
|
||||
|
||||
void documentAdded (CSMDoc::Document *document);
|
||||
|
||||
void lastDocumentDeleted();
|
||||
|
||||
private:
|
||||
|
||||
QString mIpcServerName;
|
||||
|
@ -53,17 +53,18 @@ void CSMDoc::DocumentManager::addDocument (const std::vector<boost::filesystem::
|
||||
mLoader.hasThingsToDo().wakeAll();
|
||||
}
|
||||
|
||||
bool CSMDoc::DocumentManager::removeDocument (Document *document)
|
||||
void CSMDoc::DocumentManager::removeDocument (Document *document)
|
||||
{
|
||||
std::vector<Document *>::iterator iter = std::find (mDocuments.begin(), mDocuments.end(), document);
|
||||
|
||||
if (iter==mDocuments.end())
|
||||
throw std::runtime_error ("removing invalid document");
|
||||
throw std::runtime_error ("removing invalid document");
|
||||
|
||||
mDocuments.erase (iter);
|
||||
delete document;
|
||||
|
||||
return mDocuments.empty();
|
||||
if (mDocuments.empty())
|
||||
emit lastDocumentDeleted();
|
||||
}
|
||||
|
||||
void CSMDoc::DocumentManager::setResourceDir (const boost::filesystem::path& parResDir)
|
||||
@ -80,5 +81,4 @@ void CSMDoc::DocumentManager::documentNotLoaded (Document *document, const std::
|
||||
{
|
||||
removeDocument (document);
|
||||
/// \todo report error
|
||||
/// \todo handle removeDocument returning true
|
||||
}
|
@ -43,8 +43,8 @@ namespace CSMDoc
|
||||
///< \param new_ Do not load the last content file in \a files and instead create in an
|
||||
/// appropriate way.
|
||||
|
||||
bool removeDocument (Document *document);
|
||||
///< \return last document removed?
|
||||
void removeDocument (Document *document);
|
||||
///< Emits the lastDocumentDeleted signal, if applicable.
|
||||
|
||||
void setResourceDir (const boost::filesystem::path& parResDir);
|
||||
|
||||
@ -66,6 +66,8 @@ namespace CSMDoc
|
||||
void documentAdded (CSMDoc::Document *document);
|
||||
|
||||
void loadRequest (Document *document, bool _new);
|
||||
|
||||
void lastDocumentDeleted();
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user