API: add abstract open_file method, implement open_file

This commit is contained in:
Johannes Kirschbauer
2024-06-08 17:04:51 +02:00
parent 6e99beb335
commit 6adcd1fdf2
7 changed files with 1123 additions and 7 deletions

View File

@@ -8,6 +8,33 @@ from clan_cli.errors import ClanError
from . import API
@dataclass
class FileFilter:
title: str | None
mime_types: list[str] | None
patterns: list[str] | None
suffixes: list[str] | None
@dataclass
class FileRequest:
# Mode of the os dialog window
mode: Literal["open_file", "select_folder"]
# Title of the os dialog window
title: str | None = None
# Pre-applied filters for the file dialog
filters: FileFilter | None = None
@API.register
def open_file(file_request: FileRequest) -> str | None:
"""
Abstract api method to open a file dialog window.
It must return the name of the selected file or None if no file was selected.
"""
raise NotImplementedError("Each specific platform should implement this function.")
@dataclass
class File:
path: str