| 
									
										
										
										
											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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The core of Qt Creator is | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  |     basically only a \l{ExtensionSystem}{plugin loader}. | 
					
						
							| 
									
										
										
										
											2011-04-27 17:35:17 +02:00
										 |  |  |     All functionality is implemented in plugins. The basis of Qt Creator is | 
					
						
							| 
									
										
										
										
											2009-01-12 14:41:24 +01:00
										 |  |  |     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 | 
					
						
							|  |  |  |     \header | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Library Name | 
					
						
							|  |  |  |     \li Description | 
					
						
							| 
									
										
										
										
											2009-01-06 15:56:47 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-02 17:13:33 +01:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{Utils} | 
					
						
							|  |  |  |     \li General utility library. | 
					
						
							| 
									
										
										
										
											2011-03-02 17:13:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-01 14:01:07 +01:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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 | 
					
						
							|  |  |  |     \header | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Library Name | 
					
						
							|  |  |  |     \li Description | 
					
						
							| 
									
										
										
										
											2011-02-04 15:08:31 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{qtcreatorcdbext} | 
					
						
							|  |  |  |     \li Windows CDB debugger extension | 
					
						
							| 
									
										
										
										
											2011-02-04 15:08:31 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-26 18:09:17 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-04 15:08:31 +01:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  |     \section1 Plugins | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     As already mentioned, Qt Creator is basically only a plugin loader framework | 
					
						
							|  |  |  |     which gets its IDE functionality through plugins. The most important plugin | 
					
						
							|  |  |  |     is the Core plugin which provides all the basic functionality needed | 
					
						
							|  |  |  |     later to integrate e.g. editors or mode windows. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Plugin Name | 
					
						
							|  |  |  |     \li Description | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{Core} | 
					
						
							|  |  |  |     \li The core plugin. Provides the main window and managers for editors, | 
					
						
							| 
									
										
										
										
											2009-01-05 18:04:24 +01:00
										 |  |  |     actions, mode windows and files, just to mention the most important ones. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-14 12:58:14 +02:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{ProjectExplorer} | 
					
						
							|  |  |  |     \li The project explorer plugin. Provides base classes for project handling. | 
					
						
							| 
									
										
										
										
											2011-04-14 12:58:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{Find} | 
					
						
							|  |  |  |     \li Support for searching text in arbitrary widgets, and arbitrary other things. | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{Locator} | 
					
						
							|  |  |  |     \li Hooks for providing content for Locator. | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-26 17:22:25 +01:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{Debugger} | 
					
						
							|  |  |  |     \li Debugging functionality. | 
					
						
							| 
									
										
										
										
											2011-01-26 17:22:25 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-28 14:19:17 +02:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{VcsBase} | 
					
						
							|  |  |  |     \li Base classes for version control support. | 
					
						
							| 
									
										
										
										
											2011-03-28 14:19:17 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-26 18:09:17 +02:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li \l{TextEditor} | 
					
						
							|  |  |  |     \li This is where everything starts if you want to create a text editor. Besides | 
					
						
							| 
									
										
										
										
											2011-05-26 18:09:17 +02:00
										 |  |  |     the base editor itself, this plugin contains APIs for supporting functionality | 
					
						
							| 
									
										
										
										
											2011-05-27 14:30:17 +02:00
										 |  |  |     like \l{Snippets}{snippets}, highlighting, \l{CodeAssist}{code assist}, indentation | 
					
						
							|  |  |  |     and style, and others. | 
					
						
							| 
									
										
										
										
											2011-05-26 18:09:17 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							|  |  |  |     components to Qt Creator. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  |     \table | 
					
						
							|  |  |  |     \header | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Task | 
					
						
							|  |  |  |     \li Details | 
					
						
							|  |  |  |     \li API | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Add a menu or menu item. | 
					
						
							|  |  |  |     \li You can extend existing menus or create new ones. | 
					
						
							|  |  |  |     \li \l{Core::ActionManager}, \l{Core::Command} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Add a mode. | 
					
						
							|  |  |  |     \li Modes correspond to complete screens of controls, specialized for a task. | 
					
						
							|  |  |  |     \li \l{Core::IMode} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Add a new editor type. | 
					
						
							|  |  |  |     \li Such as an editor for XML files. | 
					
						
							|  |  |  |     \li \l{Core::IEditorFactory}, \l{Core::IEditor}, \l{Core::IDocument} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Add support for a new version control system. | 
					
						
							|  |  |  |     \li Version control systems integrated in QtCreator are Bazaar, CVS, Git, | 
					
						
							|  |  |  |         Mecurial, Perforce, and Subversion. | 
					
						
							|  |  |  |     \li \l{Core::IVersionControl} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2014-12-17 17:15:42 +01:00
										 |  |  |     \li Add an options page to the \uicontrol Options dialog. | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Add a new page to existing or new category in Tools > Options. | 
					
						
							|  |  |  |     \li \l{Core::IOptionsPage} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2014-12-17 17:15:42 +01:00
										 |  |  |     \li Add a find filter to the \uicontrol Find dialog. | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Implement any kind of search term based search. | 
					
						
							| 
									
										
										
										
											2014-01-13 16:17:34 +01:00
										 |  |  |     \li \l{Find::IFindFilter}, \l{Core::SearchResultWindow} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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. | 
					
						
							| 
									
										
										
										
											2014-01-13 16:17:34 +01:00
										 |  |  |     \li \l{Core::IFindSupport}, \l{Find::BaseTextFind} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Add a completely new project type. | 
					
						
							|  |  |  |     \li | 
					
						
							|  |  |  |     \li | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li Add a new type of build step. | 
					
						
							|  |  |  |     \li | 
					
						
							|  |  |  |     \li | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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. | 
					
						
							| 
									
										
										
										
											2014-01-13 16:17:34 +01:00
										 |  |  |     \li \l{Core::ILocatorFilter}, \l{Core::LocatorFilterEntry}, \l{Locator::BaseFileFilter} | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-02 15:05:49 +01:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \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} | 
					
						
							| 
									
										
										
										
											2009-12-02 15:05:49 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  |     \row | 
					
						
							| 
									
										
										
										
											2013-09-25 18:19:45 +02:00
										 |  |  |     \li | 
					
						
							|  |  |  |     \li | 
					
						
							|  |  |  |     \li | 
					
						
							| 
									
										
										
										
											2009-04-24 16:00:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | */ |