
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************

/*!
    \page creator-project-opening.html
    \previouspage creator-how-tos.html

    \ingroup creator-how-to-projects-configure
    \ingroup creator-how-to-manage-kits

    \title Open projects

    To open a project, open the configuration file for the project:

    \list
        \li \c {CMakeLists.txt} or \c {CMakeCache.txt} (CMake)
        \li \c {.pro} (qmake)
        \li \c {.qbs} (Qbs)
        \li \c {meson.build} (Meson)
        \li \c {pyproject.toml} (Python)
        \li \c {BUILD.gn} (Generate Ninja (GN))
        \li \c {Makefile.am} (Autotools, experimental)
    \endlist

    \section1 Partially supported project types

    Some project types have limited support. To open them, activate the corresponding
    extension. \QC suggests the required extension when you open a project for the
    first time.

    To open a partially supported project, open the configuration file for the project:

    \list
        \li \c {build.xml} (\l{Ant})
        \li \c {cargo.toml} (\l{Rust: cargo-build}{Cargo})
        \li \c {.csproj} (\l{dotnet build}{.NET/C#})
        \li \c {.gradle} or \c {.gradle.kts} (\l{Gradle})
        \li \c {Package.swift} (\l{Swift})
    \endlist

    To build and run these projects, use the custom configuration \QC automatically
    creates, set up your own build and run configurations, or use the terminal
    as you would outside of \QC.

    \section1 Open project files

    You can open a project in the following ways:

    \list
        \li Select \uicontrol File > \uicontrol {Open Project}.
        \li In the \uicontrol Welcome mode, \uicontrol Projects tab, select
            \uicontrol {Open Project} (1).
            \image {qtcreator-welcome-open-projects.webp} {Ways to open projects in the Welcome mode Projects tab}
        \li In the \uicontrol Projects tab, select a project in the list of
            recently opened projects (2).
        \li In the \uicontrol Welcome mode, \uicontrol Overview tab, select a
            recently opened project in \uicontrol {Recent Projects}.
        \li In the \l Projects view, right-click to open a context
            menu and select \uicontrol {Load Project} to open the
            \uicontrol {Open Project} dialog, where you can select
            a project file.
            \image {qtcreator-projects-view.webp} {CMake project in Projects view}
        \li Use the following keyboard shortcuts, depending on the mode you are
            currently in:
            \list
                \li In all modes, select \key Ctrl+O (\key Cmd+O on \macos) to open the
                    \uicontrol {Open File} dialog, where you can select a project file.
                \li On Windows and Linux, in all modes except the \uicontrol Help mode,
                    select \key Ctrl+Shift+O to open the \uicontrol {Open Project} dialog,
                    where you can select a project file.
                \li In the \uicontrol Welcome mode, \uicontrol Projects tab, select
                    \key Ctrl+Shift+number (\key Cmd+Shift+number on \macos), where
                    the number is the number of a project in the list of recently opened
                    projects (3).
            \endlist
    \endlist

    \section1 Open directories as projects

    To open a directory as a project, go to \uicontrol File >
    \uicontrol {Open Workspace}.

    \QC uses the default kit to automatically add a build configuration for the
    workspace. It generates the \c .qtcreator/project.json project file in the
    directory for setting a project name and file exclusion filters. You can add
    build and run settings to the file, as defined by its \l{project.json}
    {JSON schema}.

    You can open either the JSON file or the workspace to open the project the
    next time.

    When you add files to the directory or remove them from there, the contents
    of the \l Projects view are updated automatically.

    To add build configurations to the workspace:

    \list 1
        \li Go to \uicontrol Projects > \uicontrol {Build Settings}.
        \li Select \uicontrol Add > \uicontrol Build.
        \li Specify build settings.
    \endlist

    To specify deploy settings for the workspace, go to \uicontrol Projects >
    \uicontrol {Deploy Settings}.

    To specify run settings for the workspace, go to \uicontrol Projects >
    \uicontrol {Run Settings}.

    \section1 Re-configure projects

    \QC stores information that it needs to build projects in a \c .user file. If
    \QC cannot find the file when you open an existing project, it prompts you
    to enter the information.

    If you used another \QC instance to create the project, \QC asks whether you
    want to use the old settings. The settings are specific to the development
    environment, and you should not copy them from one environment to another.
    Therefore, we recommend that you select \uicontrol No and enter the
    information again in the \uicontrol {Configure Project} tab.

    To re-configure projects:

    \list 1
        \li In \uicontrol {Configure Project}, select
            \l{Managing kits}{kits} for building
            and running your project.
            \image {qtcreator-configure-project.webp} {Configure Project view}
        \li For each kit, select the build configurations to create for the
            project.
        \li Select \uicontrol {Configure Project}.
    \endlist

    \uicontrol {Configure Project} shows a list of kits that you
    install on the computer and configure in \preferences > \uicontrol Kits.

    Even if you do not intend to build the project, the C++ and QML code models
    need a Qt version and compiler to offer code completion. To specify them,
    select the \uicontrol Preferences link, or select \preferences >
    \uicontrol Kits.

    Qt for Python projects rely on the \l{Managing language servers}
    {language server client} for code completion, highlighting, and
    other useful features.

    If \QC cannot find an existing build for a particular kit, it starts out
    from a clean slate and creates new debug and release build configurations
    in the specified directory. \QC suggests a name and location for the
    directory that you can change.

    \section1 Import builds

    If you have built the project before, \QC can use the existing build
    configuration to make the exact same build available to you. To import a
    build, specify a directory in the \uicontrol {Import Build From} section
    of the \uicontrol {Configure Project} tab and select \uicontrol {Import}.

    You can edit the build configuration later. For more information, see
    \l{Edit build configurations}.

    \section1 Show progress information

    \QC parses all the source files in the project and performs a semantic
    analysis to build up the information that it needs for functions such as
    navigation and finding usages. A progress bar is displayed during parsing.

    To show or hide detailed progress information, select
    \uicontrol {Toggle Progress Details} (1).

    \image {qtcreator-toggle-progress-bar.webp} {Toggle Progress Details}

    You can drag the progress bar to another position. The position is saved for
    later. Select \imagepin (\uicontrol Pin) to pin the progress bar back to the
    toggle button.

    \sa {Activate extensions}, {Build and run}{How to: Build and run},
    {Manage kits}{How to: Manage kits}, {Managing kits}
*/
