clear all octree related state when disconnecting from a domain

This commit is contained in:
ZappoMan 2014-11-06 17:25:49 -08:00
parent 372d8946d0
commit bceab4ead9
2 changed files with 15 additions and 3 deletions

View file

@ -255,6 +255,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) :
connect(&domainHandler, SIGNAL(connectedToDomain(const QString&)), SLOT(connectedToDomain(const QString&)));
connect(&domainHandler, SIGNAL(connectedToDomain(const QString&)), SLOT(updateWindowTitle()));
connect(&domainHandler, SIGNAL(disconnectedFromDomain()), SLOT(updateWindowTitle()));
connect(&domainHandler, SIGNAL(disconnectedFromDomain()), SLOT(clearDomainOctreeDetails()));
connect(&domainHandler, &DomainHandler::settingsReceived, this, &Application::domainSettingsReceived);
connect(&domainHandler, &DomainHandler::hostnameChanged, Menu::getInstance(), &Menu::clearLoginDialogDisplayedFlag);
@ -3565,9 +3566,8 @@ void Application::changeDomainHostname(const QString &newDomainHostname) {
}
}
void Application::domainChanged(const QString& domainHostname) {
updateWindowTitle();
void Application::clearDomainOctreeDetails() {
qDebug() << "Clearing domain octree details...";
// reset the environment so that we don't erroneously end up with multiple
_environment.resetToDefault();
@ -3576,7 +3576,13 @@ void Application::domainChanged(const QString& domainHostname) {
_voxelServerJurisdictions.clear();
_voxelServerJurisdictions.unlock();
_entityServerJurisdictions.lockForWrite();
_entityServerJurisdictions.clear();
_entityServerJurisdictions.unlock();
_octreeSceneStatsLock.lockForWrite();
_octreeServerSceneStats.clear();
_octreeSceneStatsLock.unlock();
// reset the model renderer
_entities.clear();
@ -3585,6 +3591,11 @@ void Application::domainChanged(const QString& domainHostname) {
_voxels.killLocalVoxels();
}
void Application::domainChanged(const QString& domainHostname) {
updateWindowTitle();
clearDomainOctreeDetails();
}
void Application::connectedToDomain(const QString& hostname) {
AccountManager& accountManager = AccountManager::getInstance();
const QUuid& domainID = NodeList::getInstance()->getDomainHandler().getUUID();

View file

@ -377,6 +377,7 @@ public slots:
void resetSensors();
private slots:
void clearDomainOctreeDetails();
void timer();
void idle();