Showing the changes to interface/src/Application.cpp (1 of 2 files). Show all
Unified · Split
| @@ -3118,6 +3118,9 @@ bool Application::isServerlessMode() const { · 3117 unmodified lines | ||
| 3118 | 3118 | |
| 3119 | 3119 | void Application::setIsServerlessDomain(bool serverlessDomain) { |
| 3120 | 3120 | auto tree = getEntities()->getTree(); |
| 3121 | + if (tree->isServerlessMode() && !serverlessDomain) { | |
| 3122 | + disconnectFromDomain(); | |
| 3123 | + } | |
| 3121 | 3124 | if (tree) { |
| 3122 | 3125 | tree->setIsServerlessMode(serverlessDomain); |
| 3123 | 3126 | } |
| @@ -3129,12 +3132,7 @@ void Application::loadServerlessDomain(QUrl domainURL) { · 5 unmodified lines | ||
| 3129 | 3132 | return; |
| 3130 | 3133 | } |
| 3131 | 3134 | |
| 3132 | − auto nodeList = DependencyManager::get<NodeList>(); | |
| 3133 | − clearDomainOctreeDetails(); | |
| 3134 | − getMyAvatar()->setSessionUUID(QUuid()); // clear the sessionID | |
| 3135 | − NodePermissions permissions; // deny all permissions | |
| 3136 | − permissions.setAll(false); | |
| 3137 | − nodeList->setPermissions(permissions); | |
| 3135 | + disconnectFromDomain(); | |
| 3138 | 3136 | |
| 3139 | 3137 | if (domainURL.isEmpty()) { |
| 3140 | 3138 | return; |
| @@ -3142,9 +3140,11 @@ void Application::loadServerlessDomain(QUrl domainURL) { · 1 unmodified line | ||
| 3142 | 3140 | |
| 3143 | 3141 | QUuid serverlessSessionID = QUuid::createUuid(); |
| 3144 | 3142 | getMyAvatar()->setSessionUUID(serverlessSessionID); |
| 3143 | + auto nodeList = DependencyManager::get<NodeList>(); | |
| 3145 | 3144 | nodeList->setSessionUUID(serverlessSessionID); |
| 3146 | 3145 | |
| 3147 | 3146 | // there is no domain-server to tell us our permissions, so enable all |
| 3147 | + NodePermissions permissions; | |
| 3148 | 3148 | permissions.setAll(true); |
| 3149 | 3149 | nodeList->setPermissions(permissions); |
| 3150 | 3150 | |
| @@ -3164,6 +3164,15 @@ void Application::loadServerlessDomain(QUrl domainURL) { · 13 unmodified lines | ||
| 3164 | 3164 | _fullSceneReceivedCounter++; |
| 3165 | 3165 | } |
| 3166 | 3166 | |
| 3167 | +void Application::disconnectFromDomain() { | |
| 3168 | + auto nodeList = DependencyManager::get<NodeList>(); | |
| 3169 | + clearDomainOctreeDetails(); | |
| 3170 | + getMyAvatar()->setSessionUUID(QUuid()); // clear the sessionID | |
| 3171 | + NodePermissions permissions; // deny all permissions | |
| 3172 | + permissions.setAll(false); | |
| 3173 | + nodeList->setPermissions(permissions); | |
| 3174 | +} | |
| 3175 | + | |
| 3167 | 3176 | bool Application::importImage(const QString& urlString) { |
| 3168 | 3177 | qCDebug(interfaceapp) << "An image file has been dropped in"; |
| 3169 | 3178 | QString filepath(urlString); |