def _handle_multiple_files(self, info, files): """Handle uploading of multiple files. Loosely based on Helpviewer/HelpBrowserWV.py from eric5. Args: info: The ChooseMultipleFilesExtensionOption instance. files: The ChooseMultipleFilesExtensionReturn instance to write return values to. Return: True on success, the superclass return value on failure. """ handler = config.val.fileselect.handler if handler == "default": suggested_file = "" if info.suggestedFileNames: suggested_file = info.suggestedFileNames[0] files.fileNames, _ = QFileDialog.getOpenFileNames( None, None, suggested_file) # type: ignore[arg-type] return True assert handler == "external", handler files.fileNames = shared.choose_file(shared.FileSelectionMode.multiple_files) return True
def chooseFile(self, parent_frame: QWebFrame, suggested_file: str) -> str: """Override chooseFile to (optionally) invoke custom file uploader.""" handler = config.val.fileselect.handler if handler == "default": return super().chooseFile(parent_frame, suggested_file) assert handler == "external", handler selected = shared.choose_file(qb_mode=shared.FileSelectionMode.single_file) if not selected: return '' else: return selected[0]
def chooseFiles( self, mode: QWebEnginePage.FileSelectionMode, old_files: Iterable[str], accepted_mimetypes: Iterable[str], ) -> List[str]: """Override chooseFiles to (optionally) invoke custom file uploader.""" handler = config.val.fileselect.handler if handler == "default": return super().chooseFiles(mode, old_files, accepted_mimetypes) assert handler == "external", handler return shared.choose_file( multiple=(mode == QWebEnginePage.FileSelectOpenMultiple))
def chooseFiles( self, mode: QWebEnginePage.FileSelectionMode, old_files: Iterable[str], accepted_mimetypes: Iterable[str], ) -> List[str]: """Override chooseFiles to (optionally) invoke custom file uploader.""" handler = config.val.fileselect.handler if handler == "default": return super().chooseFiles(mode, old_files, accepted_mimetypes) assert handler == "external", handler try: qb_mode = _QB_FILESELECTION_MODES[mode] except KeyError: log.webview.warning( f"Got file selection mode {mode}, but we don't support that!") return super().chooseFiles(mode, old_files, accepted_mimetypes) return shared.choose_file(qb_mode=qb_mode)
def prompt_fileselect_external(self): """Choose a location using a configured external picker. This spawns the external fileselector configured via `fileselect.folder.command`. """ assert self._prompt is not None if not isinstance(self._prompt, FilenamePrompt): raise cmdutils.CommandError( "Can only launch external fileselect for FilenamePrompt, " f"not {self._prompt.__class__.__name__}") # XXX to avoid current cyclic import from qutebrowser.browser import shared folders = shared.choose_file(shared.FileSelectionMode.folder) if not folders: message.info("No folder chosen.") return # choose_file already checks that this is max one folder assert len(folders) == 1 self.prompt_accept(folders[0])