forked from qt-creator/qt-creator
Add documentation for Core::IMode
Change-Id: I77893f203f521a12e5bd924bb292e76d03f878b2 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This commit is contained in:
@@ -27,12 +27,107 @@
|
|||||||
|
|
||||||
#include "modemanager.h"
|
#include "modemanager.h"
|
||||||
|
|
||||||
using namespace Core;
|
namespace Core {
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class Core::IMode
|
||||||
|
\ingroup mainclasses
|
||||||
|
\inmodule QtCreator
|
||||||
|
\inheaderfile coreplugin/imode.h
|
||||||
|
|
||||||
|
\brief The IMode class represents a mode in \QC.
|
||||||
|
|
||||||
|
This class defines a mode and its representation as a tool button in the
|
||||||
|
mode selector on the left side of \QC's main window.
|
||||||
|
|
||||||
|
Modes are used to show a different UI for different development tasks.
|
||||||
|
Therefore modes control the layout of most of Qt Creator's main window,
|
||||||
|
except for the tool bar on the left side and the status bar. For example
|
||||||
|
Edit mode, the most commonly used mode for coding, shows the code editor
|
||||||
|
and various navigation and output panes. Debug mode enhances that view with
|
||||||
|
a configurable layout of debugging related information. Design mode
|
||||||
|
reserves all the main window's space for the graphical editor.
|
||||||
|
|
||||||
|
A mode is an IContext. Set the context's \l{IContext::widget()}{widget}
|
||||||
|
to define the mode's layout.
|
||||||
|
|
||||||
|
Adding a mode should be done sparingly, only as a last reserve. Consider if
|
||||||
|
your feature can instead be implemented as a INavigationWidgetFactory,
|
||||||
|
IOutputPane, \c{Debugger::Utils::Perspective}, separate dialog, or
|
||||||
|
specialized IEditor first.
|
||||||
|
|
||||||
|
If you add a mode, consider adding a NavigationWidgetPlaceHolder
|
||||||
|
on the left side and a OutputPanePlaceHolder on the bottom of your
|
||||||
|
mode's layout.
|
||||||
|
|
||||||
|
Modes automatically register themselves with \QC when they are created and
|
||||||
|
unregister themselves when they are destructed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\property IMode::enabled
|
||||||
|
|
||||||
|
This property holds whether the mode is enabled.
|
||||||
|
|
||||||
|
By default, this property is \c true.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\property IMode::displayName
|
||||||
|
|
||||||
|
This property holds the display name of the mode.
|
||||||
|
|
||||||
|
The display name is shown under the mode icon in the mode selector.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\property IMode::icon
|
||||||
|
|
||||||
|
This property holds the icon of the mode.
|
||||||
|
|
||||||
|
The icon is shown for the mode in the mode selector. Mode icons should
|
||||||
|
support the sizes 34x34 pixels and 68x68 pixels for HiDPI.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\property IMode::priority
|
||||||
|
|
||||||
|
This property holds the priority of the mode.
|
||||||
|
|
||||||
|
The priority defines the order in which the modes are shown in the mode
|
||||||
|
selector. Higher priority moves to mode towards the top. Welcome mode,
|
||||||
|
which should stay at the top, has the priority 100. The default priority is
|
||||||
|
-1.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\property IMode::id
|
||||||
|
|
||||||
|
This property holds the ID of the mode.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\property IMode::menu
|
||||||
|
|
||||||
|
This property holds the mode's menu.
|
||||||
|
|
||||||
|
By default, a mode does not have a menu. When you set a menu, it is not
|
||||||
|
owned by the mode unless you set the parent explicitly.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Creates an IMode with an optional \a parent.
|
||||||
|
|
||||||
|
Registers the mode in \QC.
|
||||||
|
*/
|
||||||
IMode::IMode(QObject *parent) : IContext(parent)
|
IMode::IMode(QObject *parent) : IContext(parent)
|
||||||
{
|
{
|
||||||
ModeManager::instance()->addMode(this);
|
ModeManager::instance()->addMode(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Unregisters the mode from \QC and destroys it.
|
||||||
|
*/
|
||||||
IMode::~IMode()
|
IMode::~IMode()
|
||||||
{
|
{
|
||||||
ModeManager::instance()->removeMode(this);
|
ModeManager::instance()->removeMode(this);
|
||||||
@@ -51,3 +146,5 @@ bool IMode::isEnabled() const
|
|||||||
{
|
{
|
||||||
return m_isEnabled;
|
return m_isEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Core
|
||||||
|
@@ -36,7 +36,12 @@ namespace Core {
|
|||||||
class CORE_EXPORT IMode : public IContext
|
class CORE_EXPORT IMode : public IContext
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
|
Q_PROPERTY(bool displayName READ displayName WRITE setDisplayName)
|
||||||
|
Q_PROPERTY(QIcon icon READ icon WRITE setIcon)
|
||||||
|
Q_PROPERTY(int priority READ priority WRITE setPriority)
|
||||||
|
Q_PROPERTY(Id id READ id WRITE setId)
|
||||||
|
Q_PROPERTY(QMenu *menu READ menu WRITE setMenu)
|
||||||
|
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledStateChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IMode(QObject *parent = nullptr);
|
IMode(QObject *parent = nullptr);
|
||||||
|
Reference in New Issue
Block a user