"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

PyPI(PyQt5): https://pypi.org/project/IceSpringPySideStubs-PyQt5

PyPI(PyQt6): https://pypi.org/project/IceSpringPySideStubs-PyQt6

Generated by BaiJiFeiLong@gmail.com

License: MIT
"""
import enum
import typing
import PyQt6.sip
from PyQt6.QtCore import *
import enum


class QStandardPaths(PyQt6.sip.simplewrapper):
    """
    https://doc.qt.io/qt-6/qstandardpaths.html

    **Detailed Description**

    This class contains functions to query standard locations on the local
    filesystem, for common tasks such as user-specific directories or system-
    wide configuration directories.
    """

    class LocateOption(enum.Flag):
        LocateFile: QStandardPaths = ...
        LocateDirectory: QStandardPaths = ...

    class StandardLocation(enum.Enum):
        DesktopLocation: QStandardPaths = ...
        DocumentsLocation: QStandardPaths = ...
        FontsLocation: QStandardPaths = ...
        ApplicationsLocation: QStandardPaths = ...
        MusicLocation: QStandardPaths = ...
        MoviesLocation: QStandardPaths = ...
        PicturesLocation: QStandardPaths = ...
        TempLocation: QStandardPaths = ...
        HomeLocation: QStandardPaths = ...
        CacheLocation: QStandardPaths = ...
        GenericDataLocation: QStandardPaths = ...
        RuntimeLocation: QStandardPaths = ...
        ConfigLocation: QStandardPaths = ...
        DownloadLocation: QStandardPaths = ...
        GenericCacheLocation: QStandardPaths = ...
        GenericConfigLocation: QStandardPaths = ...
        AppDataLocation: QStandardPaths = ...
        AppLocalDataLocation: QStandardPaths = ...
        AppConfigLocation: QStandardPaths = ...

    def __init__(self, a0: "QStandardPaths") -> None:
        ...

    @staticmethod
    def setTestModeEnabled(testMode: bool) -> None:
        """
        https://doc.qt.io/qt-6/qstandardpaths.html#setTestModeEnabled

        **[static] void QStandardPaths::setTestModeEnabled(bool testMode )**

        If **testMode** is `true`, this enables a special "test mode" in
        **QStandardPaths** , which changes writable locations to point to test
        directories. This prevents auto tests from reading or writing to the
        current user's configuration.

        It affects the locations into which test programs might write files:
        `GenericDataLocation`, `AppDataLocation`, `ConfigLocation`,
        `GenericConfigLocation`, `AppConfigLocation`, `GenericCacheLocation`,
        and `CacheLocation`. Other locations are not affected.

        On Unix, `XDG_DATA_HOME` is set to `~/.qttest/share`, `XDG_CONFIG_HOME`
        is set to `~/.qttest/config`, and `XDG_CACHE_HOME` is set to
        `~/.qttest/cache`.

        On macOS, data goes to `~/.qttest/Application Support`, cache goes to
        `~/.qttest/Cache`, and config goes to `~/.qttest/Preferences`.

        On Windows, everything goes to a "qttest" directory under `%APPDATA%`.
        """
        ...

    @staticmethod
    def findExecutable(executableName: str, paths: typing.Iterable[str] = ...) -> str:
        """
        https://doc.qt.io/qt-6/qstandardpaths.html#findExecutable

        **[static] QString QStandardPaths::findExecutable(const QString &
        executableName , const QStringList & paths = QStringList())**

        Finds the executable named **executableName** in the specified **paths**
        , or the system paths if paths is empty.

        On most operating systems the system path is determined by the `PATH`
        environment variable. The directories where to search for the executable
        can be set in the paths argument. To search in both your own paths and
        the system paths, call findExecutable twice, once with paths set and
        once with paths empty. Symlinks are not resolved in order to preserve
        behavior for the case of executables whose behavior depends on the name
        they are invoked with .

        **Note:** On Windows, the usual executable extensions (from the PATHEXT
        environment variable) are automatically appended. For example, the
        findExecutable("foo") call finds `foo.exe` or `foo.bat` if present.

        Returns the absolute file path to the executable, or an empty string if
        not found.
        """
        ...

    @staticmethod
    def displayName(type: "QStandardPaths.StandardLocation") -> str:
        """
        https://doc.qt.io/qt-6/qstandardpaths.html#displayName

        **[static] QString
        QStandardPaths::displayName(QStandardPaths::StandardLocation type )**

        Returns a localized display name for the given location **type** or an
        empty **QString**  if no relevant location can be found.
        """
        ...

    @staticmethod
    def locateAll(
        type: "QStandardPaths.StandardLocation",
        fileName: str,
        options: "QStandardPaths.LocateOption" = ...,
    ) -> typing.List[str]:
        """
        https://doc.qt.io/qt-6/qstandardpaths.html#locateAll

        **[static] QStringList
        QStandardPaths::locateAll(QStandardPaths::StandardLocation type , const
        QString & fileName , QStandardPaths::LocateOptions options =
        LocateFile)**

        Finds all files or directories by the name, **fileName** , in the
        standard locations for **type**.

        The **options** flag lets you specify whether to look for files or
        directories. By default, this flag is set to `LocateFile`.

        Returns the list of all the files that were found.
        """
        ...

    @staticmethod
    def locate(
        type: "QStandardPaths.StandardLocation",
        fileName: str,
        options: "QStandardPaths.LocateOption" = ...,
    ) -> str:
        """
        https://doc.qt.io/qt-6/qstandardpaths.html#locate

        **[static] QString
        QStandardPaths::locate(QStandardPaths::StandardLocation type , const
        QString & fileName , QStandardPaths::LocateOptions options =
        LocateFile)**

        Finds a file or directory called **fileName** in the standard locations
        for **type**.

        The **options** flag lets you specify whether to look for files or
        directories. By default, this flag is set to `LocateFile`.

        Returns the absolute path to the first file or directory found,
        otherwise returns an empty string.
        """
        ...

    @staticmethod
    def standardLocations(type: "QStandardPaths.StandardLocation") -> typing.List[str]:
        """
        https://doc.qt.io/qt-6/qstandardpaths.html#standardLocations

        **[static] QStringList
        QStandardPaths::standardLocations(QStandardPaths::StandardLocation type
        )**

        Returns all the directories where files of **type** belong.

        The list of directories is sorted from high to low priority, starting
        with **writableLocation** () if it can be determined. This list is empty
        if no locations for type are defined.

        **See also** **writableLocation** ().
        """
        ...

    @staticmethod
    def writableLocation(type: "QStandardPaths.StandardLocation") -> str:
        """
        https://doc.qt.io/qt-6/qstandardpaths.html#writableLocation

        **[static] QString
        QStandardPaths::writableLocation(QStandardPaths::StandardLocation type
        )**

        Returns the directory where files of **type** should be written to, or
        an empty string if the location cannot be determined.

        **Note:** The storage location returned may not exist; that is, it may
        need to be created by the system or the user.
        """
        ...
