chdir to ~ on Linux if frozen

This commit is contained in:
Lipu Fei 2019-08-20 11:04:54 +02:00
parent f4dc9cc6a2
commit 4762711c33
2 changed files with 8 additions and 15 deletions

View file

@ -166,24 +166,9 @@ class AuthorizationService:
"code_challenge_method": "S512"
})
# GITHUB issue #6194: https://github.com/Ultimaker/Cura/issues/6194
# With AppImage 2 on Linux, the current working directory will be somewhere in /tmp/<rand>/usr, which is owned
# by root. For some reason, QDesktopServices.openUrl() requires to have a usable current working directory,
# otherwise it doesn't work. This is a workaround on Linux that before we call QDesktopServices.openUrl(), we
# switch to a directory where the user has the ownership.
old_work_dir = ""
if Platform.isLinux():
# Change the working directory to user home
old_work_dir = os.getcwd()
os.chdir(os.path.expanduser("~"))
# Open the authorization page in a new browser window.
QDesktopServices.openUrl(QUrl("{}?{}".format(self._auth_url, query_string)))
if Platform.isLinux():
# Change the working directory back
os.chdir(old_work_dir)
# Start a local web server to receive the callback URL on.
self._server.start(verification_code)