| 
									
										
										
										
											2010-12-21 14:02:05 +01:00
										 |  |  | /**************************************************************************** | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2015-01-14 18:07:15 +01:00
										 |  |  | ** Copyright (C) 2015 The Qt Company Ltd. | 
					
						
							|  |  |  | ** Contact: http://www.qt.io/licensing | 
					
						
							| 
									
										
										
										
											2010-12-21 14:02:05 +01:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2012-10-02 09:12:39 +02:00
										 |  |  | ** This file is part of Qt Creator | 
					
						
							| 
									
										
										
										
											2010-12-21 14:02:05 +01:00
										 |  |  | ** | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** GNU Free Documentation License | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Alternatively, this file may be used under the terms of the GNU Free | 
					
						
							|  |  |  | ** Documentation License version 1.3 as published by the Free Software | 
					
						
							|  |  |  | ** Foundation and appearing in the file included in the packaging of this | 
					
						
							|  |  |  | ** file. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | /*! | 
					
						
							| 
									
										
										
										
											2011-04-27 17:35:17 +02:00
										 |  |  |     \page qtcreator-api.html | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-27 17:35:17 +02:00
										 |  |  |     \title Qt Creator API Reference | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |     The core of \QC is basically only a \l{ExtensionSystem}{plugin loader}. All | 
					
						
							|  |  |  |     functionality is implemented in plugins. The basis of \QC is implemented in | 
					
						
							|  |  |  |     the \l{Core}{Core} Plugin. The plugin manager provides simple means for | 
					
						
							|  |  |  |     plugin cooperation that allow plugins to provide hooks for other plugin's | 
					
						
							|  |  |  |     extensions. | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-04 15:08:31 +01:00
										 |  |  |     \section1 Libraries | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Core Libraries | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     There are a few core libraries used by many parts of Qt Creator. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \header | 
					
						
							|  |  |  |             \li Library Name | 
					
						
							|  |  |  |             \li Description | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \li \l{Aggregation} | 
					
						
							|  |  |  |             \li Adds functionality for "glueing" QObjects of different types | 
					
						
							|  |  |  |                 together, so you can "cast" between them. | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \li \l{ExtensionSystem} | 
					
						
							|  |  |  |             \li Implements the plugin loader framework. Provides a base class | 
					
						
							|  |  |  |                 for plugins and basic mechanisms for plugin interaction like an | 
					
						
							|  |  |  |                 object pool. | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \li \l{Utils} | 
					
						
							|  |  |  |             \li General utility library. | 
					
						
							| 
									
										
										
										
											2011-03-02 17:13:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \li \l{QmlJS} | 
					
						
							|  |  |  |             \li QML and JavaScript language support library. | 
					
						
							| 
									
										
										
										
											2011-11-01 14:01:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  |     \endtable | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-04 15:08:31 +01:00
										 |  |  |     \section2 Additional libraries | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \header | 
					
						
							|  |  |  |             \li Library Name | 
					
						
							|  |  |  |             \li Description | 
					
						
							| 
									
										
										
										
											2011-05-26 18:09:17 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \li \l{qtcreatorcdbext} | 
					
						
							|  |  |  |             \li Windows CDB debugger extension | 
					
						
							| 
									
										
										
										
											2011-02-04 15:08:31 +01:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  |     \section1 Plugins | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |     As already mentioned, \QC is basically only a plugin loader framework | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  |     which gets its IDE functionality through plugins. The most important plugin | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |     is the \c Core plugin which provides all the basic functionality needed | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  |     later to integrate e.g. editors or mode windows. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \header | 
					
						
							|  |  |  |             \li Plugin Name | 
					
						
							|  |  |  |             \li Description | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li \l{Core} | 
					
						
							|  |  |  |             \li The core plugin. Provides the main window and managers for | 
					
						
							|  |  |  |                 editors, actions, mode windows and files, just to mention the | 
					
						
							|  |  |  |                 most important ones. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li \l{ProjectExplorer} | 
					
						
							|  |  |  |             \li The project explorer plugin. Provides base classes for project | 
					
						
							|  |  |  |                 handling. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li \l{Find} | 
					
						
							|  |  |  |             \li Support for searching text in arbitrary widgets, and arbitrary | 
					
						
							|  |  |  |                 other things. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li \l{Locator} | 
					
						
							|  |  |  |             \li Hooks for providing content for Locator. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li \l{Debugger} | 
					
						
							|  |  |  |             \li Debugging functionality. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li \l{VcsBase} | 
					
						
							|  |  |  |             \li Base classes for version control support. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li \l{TextEditor} | 
					
						
							|  |  |  |             \li This is where everything starts if you want to create a text | 
					
						
							|  |  |  |                 editor. Besides the base editor itself, this plugin contains | 
					
						
							|  |  |  |                 APIs for supporting functionality like \l{Snippets}{snippets}, | 
					
						
							|  |  |  |                 highlighting, \l{CodeAssist}{code assist}, indentation and | 
					
						
							|  |  |  |                 style, and others. | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*! | 
					
						
							|  |  |  |     \page classes.html | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  |     \title Qt Creator Classes | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \generatelist classes | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  | */ | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \page namespaces.html | 
					
						
							|  |  |  |     \title Qt Creator Namespaces | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  |     \generatelist namespaces | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*! | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  |     \page mainclasses.html | 
					
						
							|  |  |  |     \title Qt Creator Main Classes | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  |     \generatelist mainclasses | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*! | 
					
						
							|  |  |  |     \page functions.html | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  |     \title Qt Creator Functions | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  |     \generatelist functionindex | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \page common_extension_tasks.html | 
					
						
							|  |  |  |     \title Common Extension Tasks | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-06 16:39:08 +02:00
										 |  |  |     This section summarizes the API functions that you can use to add UI | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |     components to \QC. | 
					
						
							| 
									
										
										
										
											2011-05-06 16:39:08 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  |     \table | 
					
						
							| 
									
										
										
										
											2015-06-23 16:25:56 +02:00
										 |  |  |         \header | 
					
						
							|  |  |  |             \li Task | 
					
						
							|  |  |  |             \li Details | 
					
						
							|  |  |  |             \li API | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a menu or menu item. | 
					
						
							|  |  |  |             \li You can extend existing menus or create new ones. | 
					
						
							|  |  |  |             \li \l{Core::ActionManager}, \l{Core::Command} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a configurable keyboard shortcut. | 
					
						
							|  |  |  |             \li Registering shortcuts makes it possible for users to configure | 
					
						
							|  |  |  |                 them in the common shortcut settings dialog. | 
					
						
							|  |  |  |             \li \l{Core::ActionManager}, \l{Core::Command} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a mode. | 
					
						
							|  |  |  |             \li Modes correspond to complete screens of controls, specialized | 
					
						
							|  |  |  |                 for a task. | 
					
						
							|  |  |  |             \li \l{Core::IMode} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a new editor type. | 
					
						
							|  |  |  |             \li Such as an editor for XML files. | 
					
						
							|  |  |  |             \li \l{Core::IEditorFactory}, \l{Core::IEditor}, \l{Core::IDocument} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a new wizard. | 
					
						
							|  |  |  |             \li You can extend the wizards in File > New File or Project with | 
					
						
							|  |  |  |                 your own file and project templates. | 
					
						
							|  |  |  |             \li \l{Core::IWizard}, \l{Core::StandardFileWizard}, | 
					
						
							|  |  |  |                 \l{Core::BaseFileWizard}, \l{Core::BaseFileWizardParameters} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add support for a new version control system. | 
					
						
							|  |  |  |             \li Version control systems integrated in \QC are Bazaar, CVS, Git, | 
					
						
							|  |  |  |                 Mecurial, Perforce, and Subversion. | 
					
						
							|  |  |  |             \li \l{Core::IVersionControl} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a view to the navigation sidebar. | 
					
						
							|  |  |  |             \li The one which shows the project tree, filesystem, open documents | 
					
						
							|  |  |  |                 or bookmarks. | 
					
						
							|  |  |  |             \li \l{Core::INavigationWidgetFactory} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add an options page to the \uicontrol Options dialog. | 
					
						
							|  |  |  |             \li Add a new page to existing or new category in | 
					
						
							|  |  |  |                 \uicontrol Tools > \uicontrol Options. | 
					
						
							|  |  |  |             \li \l{Core::IOptionsPage} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a find filter to the \uicontrol Find dialog. | 
					
						
							|  |  |  |             \li Implement any kind of search term based search. | 
					
						
							|  |  |  |             \li \l{Find::IFindFilter}, \l{Core::SearchResultWindow} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add support for the find tool bar to a widget. | 
					
						
							|  |  |  |             \li The widget that has focus is asked whether it supports text | 
					
						
							|  |  |  |                 search. You can add support for widgets under your control. | 
					
						
							|  |  |  |             \li \l{Core::IFindSupport}, \l{Find::BaseTextFind} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a completely new project type. | 
					
						
							|  |  |  |             \li | 
					
						
							|  |  |  |             \li | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a new type of build step. | 
					
						
							|  |  |  |             \li | 
					
						
							|  |  |  |             \li | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Add a new filter to the locator. | 
					
						
							|  |  |  |             \li For a text typed in by the user you provide a list of things to | 
					
						
							|  |  |  |                 show in the popup. When the user selects an entry you are | 
					
						
							|  |  |  |                 requested to do whatever you want. | 
					
						
							|  |  |  |             \li \l{Core::ILocatorFilter}, \l{Core::LocatorFilterEntry}, | 
					
						
							|  |  |  |                 \l{Locator::BaseFileFilter} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li Show a progress indicator for a concurrently running task. | 
					
						
							|  |  |  |             \li You can show a progress indicator for your tasks in the left | 
					
						
							|  |  |  |                 hand tool bar, and also in the application icon (on platforms | 
					
						
							|  |  |  |                 that support it). | 
					
						
							|  |  |  |             \li \l{Core::ProgressManager}, \l{Core::FutureProgress} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \li | 
					
						
							|  |  |  |             \li | 
					
						
							|  |  |  |             \li | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | */ |