getSaveLocation method

  1. @override
Future<FileSaveLocation?> getSaveLocation({
  1. List<XTypeGroup>? acceptedTypeGroups,
  2. SaveDialogOptions options = const SaveDialogOptions(),
})

Opens a file dialog for saving files and returns a file location at which to save.

Returns null if the user cancels the operation.

Implementation

@override
Future<FileSaveLocation?> getSaveLocation({
  List<XTypeGroup>? acceptedTypeGroups,
  SaveDialogOptions options = const SaveDialogOptions(),
}) async {
  final FileDialogResult result = await _hostApi.showSaveDialog(
      SelectionOptions(
        allowMultiple: false,
        selectFolders: false,
        allowedTypes: _typeGroupsFromXTypeGroups(acceptedTypeGroups),
      ),
      options.initialDirectory,
      options.suggestedName,
      options.confirmButtonText);
  final int? groupIndex = result.typeGroupIndex;
  return result.paths.isEmpty
      ? null
      : FileSaveLocation(result.paths.first!,
          activeFilter:
              groupIndex == null ? null : acceptedTypeGroups?[groupIndex]);
}