/*
  gammaray-client.qdoc

  This file is part of GammaRay, the Qt application inspection and manipulation tool.

  SPDX-FileCopyrightText: 2016 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
  Author: Volker Krause <volker.krause@kdab.com>

  SPDX-License-Identifier: GPL-2.0-or-later

  Contact KDAB at <info@kdab.com> for commercial licensing options.
*/

/*!
    \nextpage {Qt Creator Integration}
    \previouspage {Graphical Launcher}
    \page gammaray-client.html

    \title GammaRay Client

    \section1 Overview

    After launcher a target application with GammaRay, or attaching or connecting to a running one, you are presented with the GammaRay client.
    This is the primary user interface for exploring what is going on inside the target application.

    The GammaRay client is available in two forms:
    \list
        \li as a standalone application as depicted in the following screenshot
        \li as \l{Qt Creator} plugin (for \l{Qt Automotive Suite} only)
    \endlist

    \image gammaray-object-inspector.png

    \section2 Tools

    GammaRay contains a number of different tools, each providing a different view on the activities and data of the target application.
    A tool typically focuses on a specific Qt framework such at \l{Qt Quick} or state machines, or model/view.

    Switching between tools is done via the tool list on the left side of the GammaRay client window. Only tools applicable to the current
    target applications are active. Inactive tools can be hidden via the context menu.

    An overview of all available tools can be found in the \l{Tools} section of this manual.

    \section2 Object Inspection

    Many tools in GammaRay deal with a set of objects of the target application, most commonly QObject sub-classes. To explore the properties of
    a selected object, those tools typically show the \l{Object Inspection} view on the right hand side (as seen in the above screenshot).
    The object inspection view contains a number of different tabs, depending on the type of the object.

    An overview of all available object inspection tabs can be found in the \l{Object Inspection} section of this manual.

    \section2 Object and Source Code Navigation

    Different tools might show different aspects of the same object, so it's useful to be able to navigate to the current object in other tools.
    This is offered in most places via the context menu.

    Equally, it is useful to navigate to the code that declared or instantiated an object, this is offered also via the context menu.
    This information is available under the following conditions:
    \list
        \li For objects created via QML you can navigate to the QML source line triggering the creation.
        \li For type declared in QML you can navigate to the QML source file containing the type.
        \li For objects created via C++ you can navigate to the C++ source code line creating the object given you have a debug build of the target
            code.
    \endlist

    If you are using GammaRay stand-alone (ie. not inside Qt Creator), you can configure the text editor to use for source code navigation
    via \uicontrol{Settings} > \uicontrol{Code Navigation}. Depending on your platform, a number of common pre-configured editors and IDEs can be
    selected. A custom editor command line can also be specified, using the following placeholders:

    \table
    \header
        \li Placeholder
        \li Content
    \row
        \li \c %f
        \li The full path to the source file.
    \row
        \li \c %l
        \li The line number.
    \row
        \li \c %c
        \li The column number.
    \endtable


    \section2 Finding Objects

    Finding the right objects in the many thousands existing in a target application typically can be challenging.
    GammaRay supports this by the following means:
    \list
        \li Search fields for most object tree or list views, to quickly filter by type, object name or other displayed properties.
        \li In-application object picking for visual elements, using Ctrl+Shift+left click on the target application.
    \endlist
*/
