1
0
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:
Marc Zinnschlag 2014-04-26 13:11:27 +02:00
parent dbb192f084
commit ddb0496dca
4 changed files with 17 additions and 6 deletions

View File

@ -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);
}

View File

@ -87,6 +87,8 @@ namespace CS
void documentAdded (CSMDoc::Document *document);
void lastDocumentDeleted();
private:
QString mIpcServerName;

View File

@ -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
}

View File

@ -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();
};
}