diff --git a/client/devkit_client/gui2/gui2.py b/client/devkit_client/gui2/gui2.py index a52a6589f741b8c0eced26fc2bb6164255051fb2..e8a2d1acad354a90a97293dad74acd032bc7c2e6 100644 --- a/client/devkit_client/gui2/gui2.py +++ b/client/devkit_client/gui2/gui2.py @@ -2113,6 +2113,28 @@ class UpdateTitle(ToolWindow): logger.info('Cancelling upload operation') self.cancel_signal.emit() + def on_upload_done(self, **kwargs): + e = self.modal_wait.error + if e is not None and str(e).find('Please install app id 480') >= 0: + # user is trying to deploy the Steamworks SDK sample app, + # that requires having 480 installed to the account which isn't super obvious to do + # as it does not show in the store + logger.info('AppID 480 is needed, installing') + install_480_future = self.devkit_commands.simple_command( + self.devkits_window.selected_devkit, + ['steam', 'steam://install/480'] + ) + self.modal_wait = ModalWait( + self.viewport, + self.toolbar, + 'Installing Steamworks SDK example AppID 480 (Spacewars)', + install_480_future, + ) + def set_480_message(**kwargs): + self.modal_wait.override_output_text = 'Please follow instructions on your device to install the test app and try again.' + set_480_message() + self.modal_wait.signal_task_done.connect(set_480_message) + def do_upload(self): # build the rsync command line args for filtering upload content filter_args = [] @@ -2167,11 +2189,12 @@ class UpdateTitle(ToolWindow): cancel_signal=True, ) self.modal_wait.cancel_signal.connect(self.on_ui_cancel_upload) + self.modal_wait.signal_task_done.connect(self.on_upload_done) self.toolbar.focus_console() def on_build_success(self, name): auto_upload_pref = f'UpdateTitle.{name}.auto_upload' - if not ( auto_upload_pref in self.settings ): + if auto_upload_pref not in self.settings: raise Exception(f'No such title: {name}') if self.devkits_window.selected_devkit is None: raise Exception('No devkit selected') @@ -2196,7 +2219,7 @@ class UpdateTitle(ToolWindow): ) return # bring to the foreground if needed, in case some other title was selected - ret = self._select_title(name) + self._select_title(name) # we save title settings before doing a normal manual upload, follow the same pattern here self.save_settings(f'UpdateTitle.{self.title_name}.', self.settings) self.do_upload()