diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ca171aa8b9..5432577223 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3800,10 +3800,14 @@ void Application::handleSandboxStatus(QNetworkReply* reply) { // If this is a first run we short-circuit the address passed in if (_firstRun.get()) { - DependencyManager::get()->goToEntry(); - sentTo = SENT_TO_ENTRY; - _firstRun.set(false); - + if (!_overrideEntry) { + DependencyManager::get()->goToEntry(); + sentTo = SENT_TO_ENTRY; + } else { + DependencyManager::get()->loadSettings(addressLookupString); + sentTo = SENT_TO_PREVIOUS_LOCATION; + } + _firstRun.set(false); } else { QString goingTo = ""; if (addressLookupString.isEmpty()) { @@ -3819,7 +3823,7 @@ void Application::handleSandboxStatus(QNetworkReply* reply) { DependencyManager::get()->loadSettings(addressLookupString); sentTo = SENT_TO_PREVIOUS_LOCATION; } - + UserActivityLogger::getInstance().logAction("startup_sent_to", { { "sent_to", sentTo }, { "sandbox_is_running", sandboxIsRunning }, @@ -9354,11 +9358,13 @@ void Application::showUrlHandler(const QUrl& url) { } }); } - +void Application::overrideEntry(){ + _overrideEntry = true; +} void Application::forceDisplayName(const QString& displayName) { getMyAvatar()->setDisplayName(displayName); } -void Application::forceLogginWithTokens(const QString& tokens) { +void Application::forceLoginWithTokens(const QString& tokens) { DependencyManager::get()->setAccessTokens(tokens); } void Application::setConfigFileURL(const QString& fileUrl) { diff --git a/interface/src/Application.h b/interface/src/Application.h index 2eac2bc885..837fb8eae6 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -356,8 +356,9 @@ public: void openDirectory(const QString& path); + void overrideEntry(); void forceDisplayName(const QString& displayName); - void forceLogginWithTokens(const QString& tokens); + void forceLoginWithTokens(const QString& tokens); void setConfigFileURL(const QString& fileUrl); signals: @@ -832,5 +833,6 @@ private: bool _resumeAfterLoginDialogActionTaken_WasPostponed { false }; bool _resumeAfterLoginDialogActionTaken_SafeToRun { false }; bool _startUpFinished { false }; + bool _overrideEntry { false }; }; #endif // hifi_Application_h diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 140b79584c..7fc4a5b651 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -407,6 +407,9 @@ int main(int argc, const char* argv[]) { auto appPointer = dynamic_cast(&app); if (appPointer) { + if (parser.isSet(urlOption)) { + appPointer->overrideEntry(); + } if (parser.isSet(displayNameOption)) { QString displayName = QString(parser.value(displayNameOption)); appPointer->forceDisplayName(displayName); @@ -416,7 +419,7 @@ int main(int argc, const char* argv[]) { } if (parser.isSet(responseTokensOption)) { QString tokens = QString(parser.value(responseTokensOption)); - appPointer->forceLogginWithTokens(tokens); + appPointer->forceLoginWithTokens(tokens); } }