| 
									
										
										
										
											2009-11-24 17:27:59 +01:00
										 |  |  | // ********************************************************************** | 
					
						
							|  |  |  | // 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. | 
					
						
							|  |  |  | // ********************************************************************** | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-15 09:38:16 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage{index.html}{Qt Creator} | 
					
						
							|  |  |  |     \page index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \nextpage creator-overview.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \title Qt Creator Manual | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-02 16:27:03 +02:00
										 |  |  |     \section1 Version 1.3.80 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Qt Creator provides a cross-platform, complete integrated development | 
					
						
							|  |  |  |     environment (IDE) for developing Qt projects. It is available for Linux, | 
					
						
							|  |  |  |     Mac OS X and Windows operating systems. You can use Qt Creator to develop | 
					
						
							|  |  |  |     applications for desktop and Symbian platforms. For more information, see | 
					
						
							|  |  |  |     \l{Operating systems and supported platforms}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-28 19:10:57 +02:00
										 |  |  |     \note Please report bugs and suggestions to the | 
					
						
							| 
									
										
										
										
											2009-10-28 14:36:28 +01:00
										 |  |  |     \l{http://bugreports.qt.nokia.com}{Qt Bug Tracker}. | 
					
						
							| 
									
										
										
										
											2009-08-28 19:10:57 +02:00
										 |  |  |     You can also join the Qt Creator mailing list. To subscribe, | 
					
						
							|  |  |  |     send a message with the word \e subscribe to | 
					
						
							|  |  |  |     \l{mailto:qt-creator-request@trolltech.com} | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     {qt-creator-request@trolltech.com}. For more information about Qt mailing | 
					
						
							| 
									
										
										
										
											2009-08-28 19:10:57 +02:00
										 |  |  |     lists, visit \l{http://lists.trolltech.com}{http://lists.trolltech.com}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-31 16:16:37 +02:00
										 |  |  |     \raw HTML | 
					
						
							|  |  |  |     <img border="0" style="float:right;" src="images/qtcreator-screenshots.png" /> | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  |     \endraw | 
					
						
							| 
									
										
										
										
											2009-08-31 16:16:37 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \list | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |        \o \l{Operating Systems and Supported Platforms} | 
					
						
							|  |  |  |        \o \l{Quick Tour} | 
					
						
							|  |  |  |        \o \l{Writing a Simple Program} | 
					
						
							|  |  |  |        \o \l{Using the Editor} | 
					
						
							|  |  |  |             \list | 
					
						
							|  |  |  |                 \o \l{Finding and Replacing} | 
					
						
							|  |  |  |                 \o \l{Refactoring} | 
					
						
							|  |  |  |                 \o \l{Searching With the Locator} | 
					
						
							|  |  |  |             \endlist | 
					
						
							|  |  |  |        \o \l{Managing Projects} | 
					
						
							|  |  |  |             \list | 
					
						
							|  |  |  |                 \o \l{Creating a Project} | 
					
						
							|  |  |  |                 \o \l{Setting Up a qmake Project} | 
					
						
							|  |  |  |                 \o \l{Setting Up a CMake Project} | 
					
						
							|  |  |  |                 \o \l{Setting Up a Generic Project} | 
					
						
							|  |  |  |                 \o \l{Managing Sessions} | 
					
						
							|  |  |  |             \endlist | 
					
						
							|  |  |  |        \o \l{Developing Applications} | 
					
						
							|  |  |  |             \list | 
					
						
							|  |  |  |                 \o \l{Developing Maemo Applications} | 
					
						
							|  |  |  |                 \o \l{Developing Symbian Applications} | 
					
						
							|  |  |  |             \endlist | 
					
						
							|  |  |  |        \o \l{Debugging} | 
					
						
							|  |  |  |        \o \l{Using Version Control Systems} | 
					
						
							|  |  |  |        \o \l{Tips and Tricks} | 
					
						
							|  |  |  |        \o \l{Keyboard Shortcuts} | 
					
						
							|  |  |  |        \o \l{Known Issues} | 
					
						
							|  |  |  |        \o \l{Glossary} | 
					
						
							|  |  |  |        \o \l{Acknowledgements} | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \endlist | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \previouspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \page creator-os-supported-platforms.html | 
					
						
							|  |  |  |     \nextpage creator-quick-tour.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \title Operating Systems and Supported Platforms | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Operating Systems | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator is available in binary packages for the following operating | 
					
						
							|  |  |  |     systems: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Windows XP Service Pack 2 | 
					
						
							|  |  |  |         \o Windows Vista | 
					
						
							|  |  |  |         \o (K)Ubuntu Linux 7.04 32-bit and 64-bit with the following: | 
					
						
							|  |  |  |            \list | 
					
						
							|  |  |  |                \o g++ | 
					
						
							|  |  |  |                \o make | 
					
						
							|  |  |  |                \o libglib2.0-dev | 
					
						
							|  |  |  |                \o libSM-dev | 
					
						
							|  |  |  |                \o libxrender-dev | 
					
						
							|  |  |  |                \o libfontconfig1-dev | 
					
						
							|  |  |  |                \o libxext-dev | 
					
						
							|  |  |  |                \o libfreetype6-dev | 
					
						
							|  |  |  |                \o libx11-dev | 
					
						
							|  |  |  |                \o libxcursor-dev | 
					
						
							|  |  |  |                \o libxfixes-dev | 
					
						
							|  |  |  |                \o libxft-dev | 
					
						
							|  |  |  |                \o libxi-dev | 
					
						
							|  |  |  |                \o libxrandr-dev | 
					
						
							|  |  |  |                \o If you are using QtOpenGL, libglui-dev | 
					
						
							|  |  |  |            \endlist | 
					
						
							|  |  |  |         \o Mac OS 10.4 or later with the following: | 
					
						
							|  |  |  |            \list | 
					
						
							|  |  |  |                \o Xcode tools for your Mac OS X version available from your Mac | 
					
						
							|  |  |  |                   OS X installation DVDs or at \l http://developer.apple.com. | 
					
						
							|  |  |  |            \endlist | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Building Qt Creator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To build Qt Creator itself from the source, you need: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Qt 4.6.0 or later | 
					
						
							|  |  |  |         \o On Windows, MinGW 4.4 or Microsoft Visual Studio 2008 | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Supported Platforms | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o {1,2} Operating system | 
					
						
							|  |  |  |             \o {2,1} Platform | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o Desktop | 
					
						
							|  |  |  |             \o Symbian | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Windows | 
					
						
							|  |  |  |             \o Yes | 
					
						
							|  |  |  |             \o Yes | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Linux | 
					
						
							|  |  |  |             \o Yes | 
					
						
							|  |  |  |             \o No | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Mac OS X | 
					
						
							|  |  |  |             \o Yes | 
					
						
							|  |  |  |             \o No | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							|  |  |  |     \previouspage creator-os-supported-platforms.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \page creator-quick-tour.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \nextpage creator-writing-program.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Quick Tour | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The figure below shows some of the components of Qt Creator in | 
					
						
							|  |  |  |     \gui{Edit mode}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-breakdown.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Qt Creator Modes | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The mode selector allows you to quickly switch between tasks such as | 
					
						
							|  |  |  |     editing project and source files, configuring how projects are built and | 
					
						
							|  |  |  |     executed, and debugging your applications. To change modes, click the | 
					
						
							|  |  |  |     icons, or use the \l{keyboard-shortcuts}{corresponding keyboard shortcut}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |         \o Use the \gui Welcome mode to open recent sessions and projects. | 
					
						
							|  |  |  |         \o Use the \gui Edit mode to edit project and source files. | 
					
						
							|  |  |  |            \l{The sidebar} in the Edit mode provides different views for | 
					
						
							|  |  |  |            browsing files. | 
					
						
							|  |  |  |         \o Use the \gui Debug mode to inspect the state of your program while | 
					
						
							|  |  |  |            debugging. For more information, see \l Debugging. | 
					
						
							|  |  |  |         \o Use the \gui Projects mode to configure project builing and | 
					
						
							|  |  |  |            execution. For more information, see \l{Managing Projects}. | 
					
						
							|  |  |  |         \o Use the \gui Help mode to view Qt documentation. For more | 
					
						
							|  |  |  |            information, see \l{Qt Help Integration}. | 
					
						
							|  |  |  |         \o Use the \gui Output mode to examine, for example, build issues | 
					
						
							|  |  |  |            and compile and application output. This information is also | 
					
						
							|  |  |  |            available in \l{The output panes}{the output panes}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Certain actions in Qt Creator trigger a mode change. For example, | 
					
						
							|  |  |  |     \gui Debug > \gui{Start debugging} > \gui{Start debugging} | 
					
						
							|  |  |  |     automatically switches to \gui Debug mode. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 The Sidebar | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Use the sidebar to browse files, projects and bookmarks. | 
					
						
							|  |  |  |     \image qtcreator-sidebar.png | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can select the content of the sidebar in the sidebar menu: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o \gui Projects shows a list of projects open in the current | 
					
						
							|  |  |  |            session. | 
					
						
							|  |  |  |         \o \gui{File System} shows the content of the currently selected | 
					
						
							|  |  |  |            directory. | 
					
						
							|  |  |  |         \o \gui Bookmarks shows all bookmarks for the current session. | 
					
						
							|  |  |  |         \o \gui{Open Documents} shows currently open files. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can change the view of the sidebar in the following ways: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To toggle the sidebar, click \inlineimage qtcreator-togglebutton.png | 
					
						
							|  |  |  |            or press \key Alt+0 (\key Cmd+0 on Mac OS X). | 
					
						
							|  |  |  |         \o To split the sidebar, click \inlineimage qtcreator-splitbar.png | 
					
						
							|  |  |  |            . When you split the sidebar, the new view shows the same | 
					
						
							|  |  |  |            contents as the view you are splitting. | 
					
						
							|  |  |  |         \o To close a sidebar view, click | 
					
						
							|  |  |  |            \inlineimage qtcreator-closesidebar.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section2 Project Tree | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     When the sidebar shows projects, they are displayed in a project tree. The | 
					
						
							|  |  |  |     project tree contains a list of all projects open in the current session. | 
					
						
							|  |  |  |     The files for each project are grouped according to their file type. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can use the project tree in the following ways: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Right-clicking an item in the project tree brings up a | 
					
						
							|  |  |  |            context menu containing the actions most commonly needed. | 
					
						
							|  |  |  |            For example, through the menu of the project root directory you can, | 
					
						
							|  |  |  |            among other actions, build, re-build, clean and run the project. | 
					
						
							|  |  |  |         \o To list all files in a project, click | 
					
						
							|  |  |  |            \inlineimage qtcreator-filter.png | 
					
						
							|  |  |  |            and select \gui{Simplify tree}. | 
					
						
							|  |  |  |         \o During a build, the build system automatically generates source | 
					
						
							|  |  |  |            files. To hide these files, click \inlineimage qtcreator-filter.png | 
					
						
							|  |  |  |            and select \gui{Hide generated files}. | 
					
						
							|  |  |  |         \o To toggle the synchronization of your project tree with the file | 
					
						
							|  |  |  |            opened in the editor, click | 
					
						
							|  |  |  |            \inlineimage qtcreator-synchronizefocus.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |         \o To see the absolute path of a file, move the mouse pointer over the | 
					
						
							|  |  |  |            file name. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 The Output Panes | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The task pane in Qt Creator can display one of the following panes: | 
					
						
							| 
									
										
										
										
											2008-12-11 11:20:25 +01:00
										 |  |  |     \gui{Build Issues}, \gui{Search Results}, \gui{Application Output}, and | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \gui{Compile Output}. Output panes are available in all | 
					
						
							|  |  |  |     \l{Qt Creator modes}{modes}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-11 11:20:25 +01:00
										 |  |  |     \section2 Build Issues | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The \gui{Build Issues} pane provides a list of errors and warnings | 
					
						
							|  |  |  |     encoutered during a build. The pane filters out irrelevant output from | 
					
						
							|  |  |  |     the build tools and presents the issues in an organized way. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-11 11:20:25 +01:00
										 |  |  |     \image qtcreator-build-issues.png | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \section2 Search Results | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The \gui{Search Results} pane displays the results for global searches | 
					
						
							|  |  |  |     such as searching within a current document, files on disk, or all | 
					
						
							|  |  |  |     projects. The figure below shows an example output of search result for all | 
					
						
							|  |  |  |     occurrences of \c textfinder within the \c "/TextFinder" directory. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-search-pane.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \section2 Application Output | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     The \gui{Application Output} pane displays the status of a program when | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     it is executed, and the debug output. The figure below shows an example | 
					
						
							|  |  |  |     output from qDebug(). | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-application-output.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section2 Compile Output | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     The \gui{Compile Output} pane provides all output from the compiler. In | 
					
						
							|  |  |  |     other words, it is a more detailed version of information displayed in the | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \gui{Build Issues} pane. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-compile-pane.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-12 16:29:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \section1 Qt Help Integration | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator comes fully integrated with all of Qt's documentation and | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     examples using the Qt Help plugin. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To view documentation, switch to \gui Help mode. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To obtain context sensitive help, move the text cursor to a Qt class or | 
					
						
							|  |  |  |     function and press \key F1. The documentation is displayed in a pane | 
					
						
							|  |  |  |     next to the code editor, or, if there is not enough vertical space, in the | 
					
						
							|  |  |  |     fullscreen \gui Help mode. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \image qtcreator-context-sensitive-help.png | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To select and configure how the documentation is displayed in the | 
					
						
							|  |  |  |     \gui Help mode, select \gui Tools > \gui Options... > \gui Help. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section2 Adding External Documentation | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can display external documentation in Qt Creator's \gui Help mode. | 
					
						
							|  |  |  |     To augument or replace the documentation that ships with Qt Creator and Qt: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Create a .qch file from your documentation. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            For information on how to prepare your documentation and create a | 
					
						
							|  |  |  |            .qch file, see | 
					
						
							|  |  |  |            \l http://doc.qt.nokia.com/4.6/qthelp-framework.html | 
					
						
							|  |  |  |            {The Qt help framework}. | 
					
						
							|  |  |  |         \o Add the .qch file to Qt Creator by selecting \gui Tools > | 
					
						
							|  |  |  |            \gui Options... > \gui Help > \gui Documentation > \gui Add. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Keyboard Navigation | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-12 20:11:04 +01:00
										 |  |  |     Qt Creator caters not only to developers who are used to using the mouse, | 
					
						
							|  |  |  |     but also to developers who are more comfortable with the keyboard. A wide | 
					
						
							|  |  |  |     range of \l{keyboard-shortcuts}{keyboard} and | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \l{Searching With the Locator}{navigation} shortcuts are available to help | 
					
						
							|  |  |  |     speed up the process of developing your application. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Qt Designer Integration | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To help you design the user interface of your application, a complete | 
					
						
							|  |  |  |     version of Qt Designer is integrated right into Qt Creator. Qt Creator | 
					
						
							|  |  |  |     automatically opens all .ui files in Qt Designer. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The Qt Designer integration includes project management and code | 
					
						
							|  |  |  |     completion. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-formedit.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To change the layout of Qt Designer user interface elements: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui Tools > \gui{Form editor} > \gui Views > | 
					
						
							|  |  |  |            \gui Locked. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            When this option is unchecked, you can change the layout. | 
					
						
							|  |  |  |         \o Click the header of an element and drag the element to a new | 
					
						
							|  |  |  |            position. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To change Qt Designer properties, select \gui Tools > \gui Options > | 
					
						
							|  |  |  |     \gui Designer. | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Set the class properties and code generation preferences in \gui | 
					
						
							|  |  |  |            {Class Generation}. | 
					
						
							|  |  |  |         \o Set an additional folder for saving templates in \gui{Template | 
					
						
							|  |  |  |            Paths}. | 
					
						
							|  |  |  |         \o Set the grid settings and preview preferences in \gui Forms. To | 
					
						
							|  |  |  |            preview your form with skins, enable \gui{Print/Preview | 
					
						
							|  |  |  |            Configuration} and select your skin. Otherwise default preview | 
					
						
							|  |  |  |            settings are used. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            To preview the settings, select \gui Tools > \gui{Form Editor} > | 
					
						
							|  |  |  |            \gui Preview, or press \key Ctrl+Alt+R. | 
					
						
							|  |  |  |         \o To specify embedded device profiles, such as style, font, and screen | 
					
						
							|  |  |  |            resolution, select \gui{Embedded Design}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     For more information on Qt Designer, see | 
					
						
							|  |  |  |     \l{http://doc.trolltech.com/designer-manual.html}{Qt Designer Manual}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \previouspage creator-writing-program.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \page creator-editor-using.html | 
					
						
							|  |  |  |     \nextpage creator-editor-finding.html | 
					
						
							| 
									
										
										
										
											2009-01-14 16:02:50 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Using the Editor | 
					
						
							| 
									
										
										
										
											2009-01-14 16:02:50 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Qt Creator's code editor is designed to aid you in creating, editing and | 
					
						
							|  |  |  |     navigating code. It is fully equipped with syntax checking, code | 
					
						
							|  |  |  |     completion, context sensitive help and in-line error indicators while you | 
					
						
							|  |  |  |     are typing. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Configuring the Editor | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator allows you to configure the text editor to suit your specific | 
					
						
							|  |  |  |     needs. To configure the editor, select  \gui Tools > \gui Options > | 
					
						
							|  |  |  |     \gui{Text Editor}: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Set the font preferences and apply syntax highlighting in | 
					
						
							|  |  |  |            \gui{Font & Colors}. | 
					
						
							|  |  |  |         \o Set tabs, indentation and the handling of whitespace in | 
					
						
							|  |  |  |            \gui Behavior. | 
					
						
							|  |  |  |         \o Set various display properties, such as | 
					
						
							|  |  |  |            \l{Highlighting and folding blocks}{highlighting and folding blocks}, | 
					
						
							|  |  |  |            text wrapping or \l{Moving to symbol definition or declaration} | 
					
						
							|  |  |  |            {moving to symbol definition or declaration} | 
					
						
							|  |  |  |            in \gui Display. | 
					
						
							|  |  |  |         \o Enable \l{Code completion}{code completion} in \gui Completion. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Using the Editor Toolbar | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The editor toolbar is located at the top of the editor view. It is context | 
					
						
							|  |  |  |     sensitive and shows items relevant to the file currently open in the | 
					
						
							|  |  |  |     editor. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-editortoolbar-symbols.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Use the toolbar to navigate between open files and symbols in use: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To browse the history of edits for the currently open session, click | 
					
						
							|  |  |  |            \inlineimage qtcreator-back.png | 
					
						
							|  |  |  |            and \inlineimage qtcreator-forward.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |         \o To go to any open file, select it from the \gui{Open files} | 
					
						
							|  |  |  |            drop-down menu. | 
					
						
							|  |  |  |         \o To jump to any symbol used in the current file, select it from the | 
					
						
							|  |  |  |            \gui Symbols drop-down menu. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     When you create or edit forms in an .ui file, the toolbar contains | 
					
						
							|  |  |  |     Qt Designer specific tools. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     If you are using a version control system, the toolbar enables you to | 
					
						
							|  |  |  |     compare the current file with the version in the repository. For more | 
					
						
							|  |  |  |     information on using Qt Creator with version control systems, see | 
					
						
							|  |  |  |     \l{Using version control systems}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Splitting the Editor View | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Split the editor view when you want to work on and view multiple files on | 
					
						
							|  |  |  |     the same screen. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-spliteditorview.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     You can split the editor view in two ways: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To split the editor view into a top and bottom view, select | 
					
						
							|  |  |  |            \gui Window > \gui Split or press \key{Ctrl+E, 2}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            Split command creates views below the currently active editor view. | 
					
						
							|  |  |  |         \o To split the editor view into adjacent views, select | 
					
						
							|  |  |  |            \gui Window > \gui{Split Side by Side} or press | 
					
						
							|  |  |  |            \key{Ctrl+E, 3}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            Side by side split command creates views to the right of the | 
					
						
							|  |  |  |            currently active editor view. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To move between split views, select \gui Window > | 
					
						
							|  |  |  |     \gui{Go to Other Split} or press \key{Ctrl+E, 0}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To remove a split view, place the cursor within the view you want to | 
					
						
							|  |  |  |     remove and select \gui Window > \gui{Remove Current Split} or press | 
					
						
							|  |  |  |     \key{Ctrl+E, 0}. To remove all but the currently selected split view, | 
					
						
							|  |  |  |     select \gui Window > \gui{Remove All Splits} or press \key{Ctrl+E, 1}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Highlighting and Folding Blocks | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Use block highlighting to visually separate parts of the code that belong | 
					
						
							|  |  |  |     together. For example, when you place the cursor within the braces, | 
					
						
							|  |  |  |     the code enclosed in braces is highlighted. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-blockhighlighting.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To enable block highlighting, select \gui Tools > \gui Options > | 
					
						
							|  |  |  |     \gui{Text Editor} > \gui Display > \gui{Highlight blocks}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Use the folding markers to collapse and expand blocks of code within | 
					
						
							|  |  |  |     braces. Click the folding marker to collapse or expand a block. In the | 
					
						
							|  |  |  |     figure above, the folding markers are located between the line number and | 
					
						
							|  |  |  |     the text pane. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To show the folding markers, select \gui Tools > \gui Options > | 
					
						
							|  |  |  |     \gui{Text Editor} > \gui Display > \gui{Display folding markers}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Syntax Checking | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     As you write code Qt Creator checks code syntax. When it spots syntax error | 
					
						
							|  |  |  |     in your code it underlines it and shows error details when you move the | 
					
						
							|  |  |  |     mouse pointer over the error: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Syntax errors are underlined in red. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            In the following figure, semicolon is missing at the end of line. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-syntaxerror.png | 
					
						
							|  |  |  |         \o Semantic errors and warnings are underlined in olive. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            In the following figure, the type is unknown. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-semanticerror.png | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-01-14 16:02:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-27 15:06:36 +02:00
										 |  |  |     \section1 Code Completion | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     As you write code Qt Creator provides a list of context-sensitive | 
					
						
							|  |  |  |     suggestions to the statement where your cursor is. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-codecompletion.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Set code completion preferences in \gui Tools > \gui Options > | 
					
						
							|  |  |  |     \gui{Text Editor} > \gui Completion. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator can complete common prefixes before showing a list of | 
					
						
							|  |  |  |     suggestions. This is especially useful for the classes with several | 
					
						
							|  |  |  |     similarly named members. To use this functionality, in the code | 
					
						
							|  |  |  |     completion preferences enable \gui{Autocomplete common prefix}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The following table lists available types for code completion and icon | 
					
						
							|  |  |  |     used for each. | 
					
						
							| 
									
										
										
										
											2009-04-27 15:06:36 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |         \header | 
					
						
							|  |  |  |             \o Icon | 
					
						
							|  |  |  |             \o Description | 
					
						
							| 
									
										
										
										
											2009-04-27 15:06:36 +02:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/class.png | 
					
						
							|  |  |  |             \i  A class | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/enum.png | 
					
						
							|  |  |  |             \i  An enum | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/enumerator.png | 
					
						
							|  |  |  |             \i  An enumerator (value of an enum) | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/func.png | 
					
						
							|  |  |  |             \i  A function | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/func_priv.png | 
					
						
							|  |  |  |             \i  A private function | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/func_prot.png | 
					
						
							|  |  |  |             \i  A protected function | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/var.png | 
					
						
							|  |  |  |             \i  A variable | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/var_priv.png | 
					
						
							|  |  |  |             \i  A private variable | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/var_prot.png | 
					
						
							|  |  |  |             \i  A protected variable | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/signal.png | 
					
						
							|  |  |  |             \i  A signal | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/slot.png | 
					
						
							|  |  |  |             \i  A slot | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/slot_priv.png | 
					
						
							|  |  |  |             \i  A private slot | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/slot_prot.png | 
					
						
							|  |  |  |             \i  A protected slot | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/keyword.png | 
					
						
							|  |  |  |             \i  A keyword | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/macro.png | 
					
						
							|  |  |  |             \i  A macro | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \inlineimage completion/namespace.png | 
					
						
							|  |  |  |             \i  A namespace | 
					
						
							|  |  |  |     \endtable | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Moving to Symbol Definition or Declaration | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     In Qt Creator you can move directly to the definition or the declaration of | 
					
						
							|  |  |  |     a symbol by holding the \key Ctrl and clicking the symbol. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To enable this function, in \gui Tools > \gui Options > | 
					
						
							|  |  |  |     \gui{Text Editor} > \gui Display select \gui{Enable mouse navigation}. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Using an External Editor | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To open the file you are currently viewing in an external editor, select | 
					
						
							|  |  |  |     \gui Edit > \gui Advanced > \gui{Open in External Editor}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To use the external editor of your choice: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o On Windows add the editor path to the \bold Path system variable. | 
					
						
							|  |  |  |            On Linux and Mac OS X add the editor path to the \bold PATH | 
					
						
							|  |  |  |            environment variable. | 
					
						
							|  |  |  |         \o In Qt Creator select \gui Tools > \gui Options... > | 
					
						
							|  |  |  |            \gui Environment > \gui General. | 
					
						
							|  |  |  |         \o In \gui{External editor} enter the name of the application followed | 
					
						
							|  |  |  |            by \key Space and \tt{\bold %f}. For example, to open the file in | 
					
						
							|  |  |  |            Smultron, enter \tt{\bold{smultron %f}} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            To further define how to open the file in the external editor, you | 
					
						
							|  |  |  |            can use the following variables separated by space: | 
					
						
							|  |  |  |            \list | 
					
						
							|  |  |  |             \o Current line number \tt{\bold %l} | 
					
						
							|  |  |  |             \o Current column number \tt{\bold %c} | 
					
						
							|  |  |  |             \o Editor's x position on the screen \tt{\bold %x} | 
					
						
							|  |  |  |             \o Editor's y position on the screen \tt{\bold %y} | 
					
						
							|  |  |  |             \o Editor's width in pixels \tt{\bold %w} | 
					
						
							|  |  |  |             \o Editor's height in pixels \tt{\bold %h} | 
					
						
							|  |  |  |             \o Editor's width in characters \tt{\bold %W} | 
					
						
							|  |  |  |             \o Editor's height in characters \tt{\bold %H} | 
					
						
							|  |  |  |             \o To pass % symbol to the editor \tt{\bold %%} | 
					
						
							|  |  |  |            \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \note Not all variables work with all editors. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-01-14 16:02:50 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-editor-using.html | 
					
						
							|  |  |  |     \page creator-editor-finding.html | 
					
						
							|  |  |  |     \nextpage creator-editor-refactoring.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Finding and Replacing | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To search through the currently open file: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Press \key Ctrl+F or select \gui Edit > \gui Find/Replace > | 
					
						
							|  |  |  |            \gui{Current Document}. | 
					
						
							|  |  |  |         \o Enter the text you are looking for. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            If the text is found, all occurrences are highlighted as you type. | 
					
						
							|  |  |  |         \o To go to the next occurrence, click \inlineimage qtcreator-next.png | 
					
						
							|  |  |  |            , or press \key F3. To go to the previous occurrence click | 
					
						
							|  |  |  |            \inlineimage qtcreator-previous.png | 
					
						
							|  |  |  |            , or press \key Shift+F3. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To narrow your search results, click | 
					
						
							|  |  |  |     \inlineimage qtcreator-locator-magnify.png | 
					
						
							|  |  |  |     in the \gui Find/Replace pane and select any of the following | 
					
						
							|  |  |  |     preferences: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To make your search case sensitive, select | 
					
						
							|  |  |  |            \inlineimage qtcreator-editor-casesensitive.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |         \o To search only whole words, select | 
					
						
							|  |  |  |            \inlineimage qtcreator-editor-wholewords.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |         \o To search using regular expressions, select | 
					
						
							|  |  |  |            \inlineimage qtcreator-editor-regularexpressions.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |            Regular expressions used in Qt Creator are modeled on Perl's regular | 
					
						
							|  |  |  |            expressions. For more information on using regular expressions, see | 
					
						
							|  |  |  |            \l http://doc.qt.nokia.com/4.6/qregexp.html#details | 
					
						
							|  |  |  |            {Detailed description of QRegExp class reference}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To replace occurrences of the existing text, enter the new text in the | 
					
						
							|  |  |  |     \gui{Replace with} text box. | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To replace the selected occurrence and move to the next one, | 
					
						
							|  |  |  |            click \inlineimage qtcreator-next.png | 
					
						
							|  |  |  |            or press \key Ctrl+=. | 
					
						
							|  |  |  |         \o To replace the selected occurrence and move to the previous one, | 
					
						
							|  |  |  |            click \inlineimage qtcreator-previous.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |         \o To replace all occurrences in the file, click \gui{Replace All}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Advanced Search | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To search through projects, files on a file system or the currently open | 
					
						
							|  |  |  |     file: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Press \key Ctrl+Shift+F or select \gui Edit > | 
					
						
							|  |  |  |            \gui Find/Replace > \gui Find.... | 
					
						
							|  |  |  |         \o Select the scope of your search: | 
					
						
							|  |  |  |            \list | 
					
						
							|  |  |  |             \o \gui{All Projects} searches files matching the defined file | 
					
						
							|  |  |  |                pattern in all currently open projects. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                For example, to search for \tt previewer only in \tt .cpp | 
					
						
							|  |  |  |                and \tt .h files, enter in \gui{File pattern} | 
					
						
							|  |  |  |                \tt *.cpp,*.h. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                \image qtcreator-search-allprojects.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \o \gui{Current Project} searches files matching the defined file | 
					
						
							|  |  |  |                pattern only in the project you are currently editing. | 
					
						
							|  |  |  |             \o \gui{Files on File System} recursively searches files matching | 
					
						
							|  |  |  |                the defined file pattern in the selected directory. | 
					
						
							|  |  |  |             \o \gui{Current File} searches only the current file. | 
					
						
							|  |  |  |            \endlist | 
					
						
							|  |  |  |         \o Enter the text you are looking for and click \gui Search. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-searchresults.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            A list of files containing the searched text is displayed in the | 
					
						
							|  |  |  |            \gui{Search Results} pane. | 
					
						
							|  |  |  |            \list | 
					
						
							|  |  |  |             \o To see all occurrences in a file, double-click the file name in | 
					
						
							|  |  |  |                the list. | 
					
						
							|  |  |  |             \o To go to an occurrence, double-click it. | 
					
						
							|  |  |  |            \endlist | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							|  |  |  |     \previouspage creator-editor-finding.html | 
					
						
							|  |  |  |     \page creator-editor-refactoring.html | 
					
						
							|  |  |  |     \nextpage creator-editor-locator.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Refactoring | 
					
						
							| 
									
										
										
										
											2009-11-02 14:16:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Code refactoring is the process of changing the code without modifying the | 
					
						
							|  |  |  |     existing functionality of your application. By refactoring your code you | 
					
						
							|  |  |  |     can: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Improve internal quality of your application | 
					
						
							|  |  |  |         \o Improve performance and extensibility | 
					
						
							|  |  |  |         \o Improve code readability and maintainability | 
					
						
							|  |  |  |         \o Simplify code structure | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Finding Symbols | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To find the use of a specific symbol in your project: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o In the editor place the cursor on the symbol and select \gui Tools | 
					
						
							|  |  |  |            > \gui C++ > \gui{Rename Symbol under Cursor} or press | 
					
						
							|  |  |  |            \key Ctrl+Shift+U. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            Qt Creator looks for the symbol in the following locations: | 
					
						
							|  |  |  |            \list | 
					
						
							|  |  |  |             \o Files listed as a part of the project | 
					
						
							|  |  |  |             \o Files directly used by the project files (for example, generated | 
					
						
							|  |  |  |                files) | 
					
						
							|  |  |  |             \o Header files of used frameworks and libraries | 
					
						
							|  |  |  |            \endlist | 
					
						
							|  |  |  |         \o The \gui{Search Results} pane opens and shows the location and | 
					
						
							|  |  |  |            number of instances of the symbol in the current project. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-refactoring-find.png | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can browse the search results in the following ways: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To go directly to an instance, double-click the instance in the | 
					
						
							|  |  |  |            \gui{Search Results} pane. | 
					
						
							|  |  |  |         \o To move between instances, click | 
					
						
							|  |  |  |            \inlineimage qtcreator-forward.png | 
					
						
							|  |  |  |            and | 
					
						
							|  |  |  |            \inlineimage qtcreator-back.png | 
					
						
							|  |  |  |            in the \gui{Search Results} pane. | 
					
						
							|  |  |  |         \o To expand and collapse the list of all instances, click | 
					
						
							|  |  |  |            \inlineimage qtcreator-expand.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |         \o To clear the search results, click \inlineimage qtcreator-clear.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-01-16 17:36:17 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Renaming Symbols | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To rename a specific symbol in your project: | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \list 1 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |         \o In the editor, place the cursor on the symbol you would like to | 
					
						
							|  |  |  |            change and select \gui Tools > \gui C++ > | 
					
						
							|  |  |  |            \gui{Rename Symbol under Cursor} or press \key Ctrl+Shift+R. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            The \gui{Search Results} pane opens and shows the location and | 
					
						
							|  |  |  |            number of instances of the symbol in the current project. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-refactoring-replace.png | 
					
						
							|  |  |  |         \o To replace all selected instances, enter the name of the new symbol | 
					
						
							|  |  |  |            in the \gui{Replace with} text box and click \gui Replace. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            To omit an instance, uncheck the check-box next to the instance. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \note This action replaces all selected instances of the symbol in | 
					
						
							|  |  |  |            all files listed in the \gui{Search Results} pane. You cannot | 
					
						
							|  |  |  |            undo this action. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-01-14 16:02:50 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-14 16:02:50 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-editor-locator.html | 
					
						
							|  |  |  |     \page creator-project-managing.html | 
					
						
							|  |  |  |     \nextpage creator-project-creating.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \title Managing Projects | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Qt Creator allows you to deploy various types of projects and provides a | 
					
						
							|  |  |  |     platform to work on different types of projects: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |        \o To work with \bold{qmake projects}, open a \c .pro file. For more | 
					
						
							|  |  |  |           information, see \l{Setting Up a qmake Project}. | 
					
						
							|  |  |  |        \o To work with \bold{CMake projects} you need to have CMake version | 
					
						
							|  |  |  |           2.8.0 or later installed. For more information, see | 
					
						
							|  |  |  |           \l{Setting Up a CMake Project}. | 
					
						
							|  |  |  |        \o Qt Creator supports generic projects. For more information, see | 
					
						
							|  |  |  |           \l{Setting Up a Generic Project}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 External Libraries | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Through external libraries Qt Creator can support code completion and | 
					
						
							|  |  |  |     syntax highlighting for external libraries as if they were a part of the | 
					
						
							|  |  |  |     current project or the Qt library. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The procedure of adding a library to a project depends on the type of | 
					
						
							|  |  |  |     project, which influences the build system used. | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \list | 
					
						
							|  |  |  |        \o For information on adding external libraries to qmake projects, see | 
					
						
							|  |  |  |           \l{Adding External Libraries to a qmake Project}. | 
					
						
							|  |  |  |        \o For information on adding external libraries to CMake projects, see | 
					
						
							|  |  |  |           \l{Adding External Libraries to a CMake Project}. | 
					
						
							|  |  |  |        \o For information on adding external libraries to generic projects, see | 
					
						
							|  |  |  |           \l{Adding External Libraries to a Generic Project}. | 
					
						
							|  |  |  |    \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Session Management | 
					
						
							|  |  |  |     In Qt Creator a session is a collection of bookmarks, breakpoints and | 
					
						
							|  |  |  |     watchers and can include multiple open projects. To learn about using and | 
					
						
							|  |  |  |     managing sessions, see \l{Managing Sessions}. | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							|  |  |  |     \previouspage creator-project-managing.html | 
					
						
							|  |  |  |     \page creator-project-creating.html | 
					
						
							|  |  |  |     \nextpage creator-project-qmake.html | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Creating a Project | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To create a new project: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui File > \gui{New Project} and select the type of your | 
					
						
							|  |  |  |            project. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |            This example uses \bold{Qt4 Gui Application}. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |            \image qtcreator-new-project.png | 
					
						
							|  |  |  |         \o Name the project and set its path. To select the path from a | 
					
						
							|  |  |  |            directory tree, click \gui Choose.... | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |            Avoid using spaces and special characters in the project name and | 
					
						
							|  |  |  |            path. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-intro-and-location.png | 
					
						
							|  |  |  |         \o Select the Qt modules you want to include in your project. | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |            Since this example shows creation of a Qt4 Gui Application project | 
					
						
							|  |  |  |            type, QtCore and QtGui modules are selected by default. However, you | 
					
						
							|  |  |  |            can select any other you need. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-select-modules.png | 
					
						
							|  |  |  |         \o Specify the name of the class you want to create and using the | 
					
						
							|  |  |  |            drop-down menu select its base class type. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            Note that the \gui{Header file}, \gui{Source file} and | 
					
						
							|  |  |  |            \gui{Form file} fields are automatically updated as you name your | 
					
						
							|  |  |  |            class. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-class-info.png | 
					
						
							|  |  |  |         \o Review the project settings. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            To create the project, click \gui Done. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-new-project-summary.png | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-15 14:29:59 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-project-creating.html | 
					
						
							|  |  |  |     \page creator-project-qmake.html | 
					
						
							|  |  |  |     \nextpage creator-project-cmake.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Setting Up a qmake Project | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Selecting the Qt Version | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator allows you to have multiple versions of Qt installed on | 
					
						
							|  |  |  |     your computer and use different versions for your projects. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     If Qt Creator finds \bold qmake in the PATH environment variable, it uses | 
					
						
							|  |  |  |     that version. This \l{glossary-system-qt}{version of Qt} is referred to as | 
					
						
							|  |  |  |     \bold{Qt in PATH}. If you intend to use only one version of Qt and it is | 
					
						
							|  |  |  |     already in the PATH and correctly set up for command line use, you do not | 
					
						
							|  |  |  |     need to manually configure your Qt version. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \note By default, Qt Creator compiles projects with the | 
					
						
							|  |  |  |     \l{glossary-default-qt}{default Qt version}. For information on how to | 
					
						
							|  |  |  |     override this setting, see \l{Build Settings}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Windows | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To add a Qt version for \bold MinGW: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui Tools > \gui Options... > \gui Qt4 > | 
					
						
							|  |  |  |            \gui{Qt Versions}. | 
					
						
							|  |  |  |         \o Click \inlineimage qtcreator-windows-add.png | 
					
						
							|  |  |  |            and enter the name of the version in \gui{Version Name} field. | 
					
						
							|  |  |  |         \o Enter the qmake binary path in the \gui{qmake Location}. | 
					
						
							|  |  |  |         \o Enter the MinGW installation path in the \gui{MinGW Directory}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-qt4-qtversions-win-mingw.png | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To add a Qt version for a \bold{Microsoft Visual C++} compiler: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui Tools > \gui Options... > \gui Qt4 > | 
					
						
							|  |  |  |            \gui{Qt Versions}. | 
					
						
							|  |  |  |         \o Qt Creator automatically sets the correct environment variables for | 
					
						
							|  |  |  |            compilation. Select the internal version number of the installed | 
					
						
							|  |  |  |            Microsoft Visual C++ tool chains using the \gui MSVC drop-down | 
					
						
							|  |  |  |            box: | 
					
						
							|  |  |  |            \list | 
					
						
							|  |  |  |                \o \bold 7.1 for Visual Studio 2003 | 
					
						
							|  |  |  |                \o \bold 8.0 for Visual Studio 2005 | 
					
						
							|  |  |  |                \o \bold 9.0 for Visual Studio 2008 | 
					
						
							|  |  |  |            \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \note If you are using the | 
					
						
							|  |  |  |            \bold{Windows SDK for Windows Server 2008}, Qt Creator identifies | 
					
						
							|  |  |  |            it as version 9.0. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-qt4-qtversions-win-msvc.png | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     If you are using \bold{Qt for Symbian} and your S60 SDK is registered | 
					
						
							|  |  |  |     with devices.exe, Qt Creator automatically detects the Qt version. To add a | 
					
						
							|  |  |  |     Qt for Symbian version: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui Tools > \gui Options... > \gui Qt4 > | 
					
						
							|  |  |  |            \gui{Qt Versions}. | 
					
						
							|  |  |  |         \o Select the \gui{S60 SDK} you want the Qt Creator to use. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-qt4-qtversions-win-symbian.png | 
					
						
							|  |  |  |         \o To build an application for your device using GCCE, enter the path | 
					
						
							|  |  |  |            to the \bold{CSL ARM Toolchain} directory in | 
					
						
							|  |  |  |            \gui{CSL\\GCCE Directory}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            You do not need to specify this path if the compiler is included in | 
					
						
							|  |  |  |            the PATH environment variable. | 
					
						
							|  |  |  |         \o To build an application for the emulator (WINSCW toolchain), enter | 
					
						
							|  |  |  |            the path to your Carbide C++ installation directory in | 
					
						
							|  |  |  |            \gui{Carbide Directory}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            You need to have Carbide C++ version 2.0 or later installed. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Linux | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To compile a project in Qt Creator, Linux uses GNU Compiler Collection | 
					
						
							|  |  |  |     (GCC). Intel Compiler Collection (ICC) is supported as a drop-in | 
					
						
							|  |  |  |     replacement for GCC. | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To add a Qt version: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui Tools > \gui Options... > \gui Qt4 > | 
					
						
							|  |  |  |            \gui{Qt Versions}. | 
					
						
							|  |  |  |         \o Click \inlineimage qtcreator-linux-add.png | 
					
						
							|  |  |  |            and enter the name of the version in \gui{Version Name}. | 
					
						
							|  |  |  |         \o Enter the path to the qmake binary in \gui{Path to qmake}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Mac OS X | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To compile a project in Qt Creator, Mac OS X uses GNU Compiler Collection | 
					
						
							|  |  |  |     (GCC), which is part of Xcode. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To add a Qt version: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui{Qt Creator} > \gui Preferences... > \gui{Qt Versions}. | 
					
						
							|  |  |  |         \o Click \inlineimage qtcreator-macosx-add.png | 
					
						
							|  |  |  |            and enter the name of the version in \gui{Version Name}. | 
					
						
							|  |  |  |         \o Enter the path to the qmake binary in \gui{Path to qmake}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-qt4-qtversions.png | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Setting Up a Project | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To view and modify the settings for currently open projects, switch to the | 
					
						
							|  |  |  |     \gui Projects mode by pressing \key Ctrl+4. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-projectpane.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The project pane consists of three tabs | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |        \o Targets | 
					
						
							|  |  |  |        \o Editor Settings | 
					
						
							|  |  |  |        \o Dependencies | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Use the \gui Build and \gui Run buttons on *Desktop* to switch between | 
					
						
							|  |  |  |     the build and run settings for the active project. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     If you have multiple projects open in Qt Creator, use | 
					
						
							|  |  |  |     \gui{Select a Project} option at the top to navigate between different | 
					
						
							|  |  |  |     project edits. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Build Settings | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Different build configurations allow you to quickly switch between | 
					
						
							|  |  |  |     different build settings. By default, Qt Creator creates \bold debug | 
					
						
							|  |  |  |     and \bold release build configurations. Both of these configurations use | 
					
						
							|  |  |  |     the \l{glossary-default-qt}{default Qt version}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-ppbuildsettings.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Adding and Removing Build Configurations | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To add a new build configuration, click \gui Add and select the type of | 
					
						
							|  |  |  |     configuration you would like add. You can add as many build configurations | 
					
						
							|  |  |  |     as you need. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To delete the build configuration currently selected, click \gui Remove. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Editing Build Configurations | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To edit a build configuration: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select the build configuration you want to edit in | 
					
						
							|  |  |  |            \gui{Edit Build Configuration}. | 
					
						
							|  |  |  |         \o In section \gui General, you can specify: | 
					
						
							| 
									
										
										
										
											2008-12-16 08:53:01 +01:00
										 |  |  |         \list | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o The \l{glossary-project-qt}{Qt version} you want to use to | 
					
						
							|  |  |  |                build your project. For more information, see | 
					
						
							|  |  |  |                \l{Selecting the Qt version}. | 
					
						
							|  |  |  |             \o The toolchain required to build the project. | 
					
						
							|  |  |  |             \o If you want to \l{glossary-shadow-build}{shadow build} your | 
					
						
							|  |  |  |                project, check the \gui{Shadow Build} checkbox and select the | 
					
						
							|  |  |  |                build directory. | 
					
						
							| 
									
										
										
										
											2008-12-16 08:53:01 +01:00
										 |  |  |         \endlist | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section2 Build Steps | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The build system of Qt Creator is built on qmake and make. In | 
					
						
							|  |  |  |     \gui{Build Steps} you can change the settings for qmake and make. Qt | 
					
						
							|  |  |  |     Creator runs the make command using the Qt version defined for the current | 
					
						
							|  |  |  |     build configuration. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section2 Clean Steps | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The cleaning process is used to remove intermediate files. This process | 
					
						
							|  |  |  |     might help you to fix obscure issues during the process of building a | 
					
						
							|  |  |  |     project. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can define the cleaning steps for your builds in the \gui{Clean Steps}: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To add a clean step using make or a custom process, click | 
					
						
							|  |  |  |            \gui{Add clean step} and select the type of step you want to add. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            By default, custom steps are disabled. Activate customs steps by | 
					
						
							|  |  |  |            checking the \gui{Enable Custom Process Step} check-box. | 
					
						
							|  |  |  |         \o To remove a clean step, click \gui{Remove clean step} and select the | 
					
						
							|  |  |  |            step you want to remove. | 
					
						
							|  |  |  |         \o To change the order of steps, click | 
					
						
							|  |  |  |            \inlineimage qtcreator-movestep.png | 
					
						
							|  |  |  |            . | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section2 Build Environment | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can specify the environment you want to use for building in the | 
					
						
							|  |  |  |     \bold{Build Environment} section. By default, the environment in which Qt | 
					
						
							|  |  |  |     Creator was started is used and modified to include the Qt version. | 
					
						
							|  |  |  |     Depending on the selected Qt version, Qt Creator automatically sets the | 
					
						
							|  |  |  |     necessary environment variables. You can edit existing environment | 
					
						
							|  |  |  |     variables or add, reset and unset new variables based on your project | 
					
						
							|  |  |  |     requirements. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Run Settings | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Qt Creator automatically creates run configurations for your project. | 
					
						
							|  |  |  |     These run configurations derive their executable from the parsed .pro | 
					
						
							|  |  |  |     files. You can also create custom executable run configurations where you | 
					
						
							|  |  |  |     can set the executable to be run. | 
					
						
							| 
									
										
										
										
											2008-12-16 12:24:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \image qtcreator-pprunsettings.png | 
					
						
							| 
									
										
										
										
											2008-12-16 12:24:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 File Encoding | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To define the default file encoding, select the desired encoding in the | 
					
						
							|  |  |  |     \gui{Editor Settings}. By default, the Qt Creator uses the file encoding | 
					
						
							|  |  |  |     used by your system. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Dependencies | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     If you have multiple projects loaded in your session, you can define the | 
					
						
							|  |  |  |     dependencies between them. This affects the build order of your | 
					
						
							|  |  |  |     projects. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \note These dependencies are unrelated to the dependencies inside a qmake | 
					
						
							|  |  |  |     project. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To define the dependencies: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select the project for which you want to configure dependencies. | 
					
						
							|  |  |  |         \o In the \gui Dependencies section check the checkboxes to select | 
					
						
							|  |  |  |            other projects as dependencies. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Adding External Libraries to a qmake Project | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Through external libraries Qt Creator can support code completion and | 
					
						
							|  |  |  |     syntax highlighting as if they were part of the current project or the Qt | 
					
						
							|  |  |  |     library. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To add an external library: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Open your project file (.pro) using the \gui Projects pane. | 
					
						
							|  |  |  |         \o Follow the instructions at \l http://doc.trolltech.com/latest/qmake-project-files.html#declaring-other-libraries | 
					
						
							|  |  |  |            {Declaring other Libraries}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Syntax completion and highlighting work once your project successfully | 
					
						
							|  |  |  |     builds and links against the external library. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-15 14:29:59 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-quick-tour.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \page creator-writing-program.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \nextpage creator-editor-using.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Writing a Simple Program | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \note This tutorial assumes that you have experience in writing basic Qt | 
					
						
							|  |  |  |     applications, using Qt Designer to design user interfaces and using the Qt | 
					
						
							|  |  |  |     Resource System. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     In this example, we describe the steps involved in using Qt Creator | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     to create a small Qt program, Text Finder. Inspired by the QtUiTools' | 
					
						
							|  |  |  |     \l{http://doc.trolltech.com/uitools-textfinder.html}{Text Finder} | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     example, we write a similar but simplified version of it, as shown | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     below. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-textfinder-screenshot.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Setting Up Your Environment | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Once you have installed Qt Creator, it detects automatically if Qt's | 
					
						
							|  |  |  |     location is in your \c PATH variable. If not, please follow the | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     instructions in \l{Selecting the Qt version}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Setting Up the Project | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     We begin with a Qt4 Gui Application project generated by Qt Creator. The | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \l{Creating a project} document describes this process in | 
					
						
							| 
									
										
										
										
											2009-01-12 12:38:54 +01:00
										 |  |  |     detail. Remember to select QWidget as the Text Finder's base class. If | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     your project is not yet loaded, load it by selecting \gui{File} > \gui{Open}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     In your project, you have the following files: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o \c{textfinder.h} | 
					
						
							|  |  |  |         \o \c{textfinder.cpp} | 
					
						
							|  |  |  |         \o \c{main.cpp} | 
					
						
							|  |  |  |         \o \c{textfinder.ui} | 
					
						
							|  |  |  |         \o \c{textfinder.pro} | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     The \c{.h} and \c{.cpp} files come with the necessary boiler plate code. | 
					
						
							|  |  |  |     The \c{.pro} file is also complete. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Filling in the Missing Pieces | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     We begin by designing the user interface and then move on to filling | 
					
						
							|  |  |  |     in the missing code. Finally, we add the find functionality. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section2 The User Interface | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     To begin designing the user interface, double-click on the | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \c{textfinder.ui} file in the \gui{Project Explorer}. This launches the | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     integrated Qt Designer. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Design the form below with: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o \l{http://doc.trolltech.com/qlabel.html}{QLabel} | 
					
						
							|  |  |  |         \o \l{http://doc.trolltech.com/qlinedit.html}{QLineEdit} (named lineEdit) | 
					
						
							|  |  |  |         \o \l{http://doc.trolltech.com/qpushbutton.html}{QPushButton} (named findButton) | 
					
						
							|  |  |  |         \o \l{http://doc.trolltech.com/qtextedit.html}{QTextEdit} (named textEdit) | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \image qtcreator-textfinder-ui.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     We recommend that you use a \l{http://doc.trolltech.com/qgridlayout.html}{QGridLayout} | 
					
						
							|  |  |  |     to lay out the label, the line edit and the push button. | 
					
						
							|  |  |  |     The grid layout and the text edit can then be added to a | 
					
						
							|  |  |  |     \l{http://doc.trolltech.com/qvboxlayout.html}{QVBoxLayout}. | 
					
						
							|  |  |  |     If you are new to designing forms with \QD, see the | 
					
						
							|  |  |  |     \l{http://doc.trolltech.com/designer-manual.html}{Qt Designer Manual}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \section2 The Header File | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     The \c{textfinder.h} file already has the necessary #includes, a | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     constructor, a destructor, and the \c{Ui} object. We need to add a private | 
					
						
							|  |  |  |     slot, \c{on_findButton_clicked()}, to carry out our find operation. We | 
					
						
							|  |  |  |     also need a private function, \c{loadTextFile()}, to read and display the | 
					
						
							| 
									
										
										
										
											2008-12-16 14:08:58 +01:00
										 |  |  |     contents of our input text file in the | 
					
						
							|  |  |  |     \l{http://doc.trolltech.com/qtextedit.html}{QTextEdit}. This is done with | 
					
						
							|  |  |  |     the following code: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-02 13:33:40 +02:00
										 |  |  |     \snippet examples/textfinder/textfinder.h 0 | 
					
						
							| 
									
										
										
										
											2009-04-02 14:45:39 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-24 17:57:43 +01:00
										 |  |  |     \note The \c{Ui::TextFinder} object is already provided. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \section2 The Source File | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Now that our header file is complete we move on to our source file, | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \c{textfinder.cpp}. We begin by filling in the functionality to load a | 
					
						
							|  |  |  |     text file. This is described in the code snippet below: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-02 13:33:40 +02:00
										 |  |  |     \snippet examples/textfinder/textfinder.cpp 0 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-16 14:08:58 +01:00
										 |  |  |     Basically, we load a text file using | 
					
						
							|  |  |  |     \l{http://doc.trolltech.com/qfile.html}{QFile}, read it with | 
					
						
							|  |  |  |     \l{http://doc.trolltech.com/qtextstream.html}{QTextStream}, and | 
					
						
							|  |  |  |     then display it on \c{textEdit} with | 
					
						
							| 
									
										
										
										
											2009-03-24 17:19:24 +01:00
										 |  |  |     \l{http://doc.trolltech.com/qtextedit.html#plainText-prop}{setPlainText()} | 
					
						
							|  |  |  |     which requires adding the following additional #includes to textfinder.cpp: | 
					
						
							| 
									
										
										
										
											2009-04-02 13:33:40 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \snippet examples/textfinder/textfinder.cpp 1 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     For the \c{on_findButton_clicked()} slot, we extract the search string and | 
					
						
							| 
									
										
										
										
											2008-12-16 14:08:58 +01:00
										 |  |  |     use the \l{http://doc.trolltech.com/qtextedit.html#find}{find()} function | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     to look for the search string within the text file. This is described in | 
					
						
							|  |  |  |     the code snippet below: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-02 13:33:40 +02:00
										 |  |  |     \snippet examples/textfinder/textfinder.cpp 2 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Once we have both of these functions complete, we call \c{loadTextFile()} in | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     our constructor. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-02 13:33:40 +02:00
										 |  |  |     \snippet examples/textfinder/textfinder.cpp 3 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     The \c{on_findButton_clicked()} slot is called automatically in | 
					
						
							|  |  |  |     the uic generated \c{ui_textfinder.h} file by this line of code: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \code | 
					
						
							| 
									
										
										
										
											2009-03-24 17:57:43 +01:00
										 |  |  |     QMetaObject::connectSlotsByName(TextFinder); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 The Resource File | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     We require a resource file (\c{.qrc}) within which we embed the input | 
					
						
							|  |  |  |     text file. This can be any \c{.txt} file with a paragraph of text. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To add a resource file: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Right-click on \gui{Resource Files} in the \gui{Project Explorer}. | 
					
						
							|  |  |  |         \o Select \gui{Add New File...}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  |     The wizard dialog below is displayed. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-add-resource-wizard.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \list 3 | 
					
						
							|  |  |  |         \o Enter "textfinder" in the \gui{Name} field. Use the given \gui{Path}. | 
					
						
							|  |  |  |         \o Click on \gui{Continue}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  |     This page is displayed: | 
					
						
							| 
									
										
										
										
											2008-12-16 14:48:15 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-add-resource-wizard2.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \list 5 | 
					
						
							|  |  |  |         \o Choose to which project you want to add the new file. Select "TextFinder" | 
					
						
							|  |  |  |         as the \gui{Project}. | 
					
						
							|  |  |  |         \o Make sure that \gui{Add to Project} is checked. | 
					
						
							|  |  |  |         \o Click on \gui{Done}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Your resource file is now displayed in the resource editor. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \list 8 | 
					
						
							|  |  |  |         \o Select \gui{Add} > \gui{Add Prefix} from the drop-down list. The prefix we | 
					
						
							|  |  |  |         require is a slash (\c{/}). | 
					
						
							|  |  |  |         \o Select \gui{Add} > \gui{Add File} from the drop-down list. | 
					
						
							|  |  |  |         \o Locate the text file you are going to use. We use \c{input.txt}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Once the resource file has been successfully added, the following is displayed: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \image qtcreator-add-resource.png | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Compiling and Running Your Program | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Now that you have all the necessary files, click the \inlineimage qtcreator-run.png | 
					
						
							|  |  |  |     button to compile your program. | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \previouspage creator-debugging.html | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  |     \page creator-version-control.html | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \nextpage creator-tips.html | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Using Version Control Systems | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \caption    Version control systems supported by Qt Creator | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \bold{git} | 
					
						
							|  |  |  |             \i  \l{http://git-scm.com/} | 
					
						
							| 
									
										
										
										
											2009-06-08 12:51:29 +02:00
										 |  |  |             \i | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \i  \bold{Subversion} | 
					
						
							|  |  |  |             \i  \l{http://subversion.tigris.org/} | 
					
						
							| 
									
										
										
										
											2009-06-08 12:51:29 +02:00
										 |  |  |             \i | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \i  \bold{Perforce} | 
					
						
							|  |  |  |             \i  \l{http://www.perforce.com} | 
					
						
							| 
									
										
										
										
											2009-06-08 12:51:29 +02:00
										 |  |  |             \i  Server version 2006.1 and later | 
					
						
							| 
									
										
										
										
											2009-10-07 18:25:45 +02:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \i  \bold{CVS} | 
					
						
							|  |  |  |             \i  \l{http://www.cvshome.org} | 
					
						
							|  |  |  |             \i | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Setting Up Version Control Systems | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator uses the version control system's command line clients to | 
					
						
							|  |  |  |     access your repositories. To set it up, you must ensure that these command | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     line clients can be located via the \c{PATH} environment variable. | 
					
						
							|  |  |  |     To specify the path to the command line client's executable, go to the settings | 
					
						
							|  |  |  |     pages in \gui{Tools} > \gui{Options...}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Setting Up Common Options | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The \gui{Version Control > Common} settings page features common settings for | 
					
						
							|  |  |  |     version control systems, such as commit message line wrapping and checking | 
					
						
							|  |  |  |     options. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \gui{Submit message checking script} is a script or program that can be | 
					
						
							|  |  |  |     used to perform checks on the submit message before submitting. The submit | 
					
						
							|  |  |  |     message is passed in as the script's first parameter. If there is an error, | 
					
						
							|  |  |  |     the script should output a message on standard error and return a non-zero | 
					
						
							|  |  |  |     exit code. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \gui{User/alias configuration file} takes a file in mailmap format that | 
					
						
							|  |  |  |     lists user names and aliases. For example: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \code | 
					
						
							|  |  |  |     Jon Doe <Jon.Doe@company.com> | 
					
						
							|  |  |  |     Hans Mustermann <Hans.Mustermann@company.com> hm <info@company.com> | 
					
						
							|  |  |  |     \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Notice that the second line specifies the alias \e{hm} and the | 
					
						
							|  |  |  |     corresponding email address for \e{Hans Mustermann}. If the user/alias | 
					
						
							|  |  |  |     configuration file is present, the submit editor displays a context | 
					
						
							|  |  |  |     menu with \gui{Insert name...} that pops up a dialog letting the user | 
					
						
							|  |  |  |     select a name. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \gui{User fields configuration file} is a simple text file consisting of | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     lines specifying submit message fields that take user names, for example: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \code | 
					
						
							|  |  |  |     Reviewed-by: | 
					
						
							|  |  |  |     Signed-off-by: | 
					
						
							|  |  |  |     \endcode | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     These fields appear below the submit message. They provide completion | 
					
						
							|  |  |  |     for the aliases/public user names specified in the | 
					
						
							|  |  |  |     \e{User/alias configuration file} as well as a button that opens the | 
					
						
							|  |  |  |     aforementioned user name dialog. | 
					
						
							| 
									
										
										
										
											2009-01-15 13:07:25 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Using Version Control Systems | 
					
						
							| 
									
										
										
										
											2009-01-15 13:50:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The version control sub-menus are in \gui Tools > \gui Options... | 
					
						
							|  |  |  |     > \gui{Version Control}. The version control system | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     managing the current project is displayed here. | 
					
						
							| 
									
										
										
										
											2009-01-15 13:50:22 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Each version control system adds a pane to the \gui{Application Output} | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     panes within which it logs the commands it executes, prepended by a | 
					
						
							| 
									
										
										
										
											2009-01-15 13:50:22 +01:00
										 |  |  |     timestamp and the relevant output. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-vcs-pane.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Addings Files | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     When you create a new file or a new project, the wizard displays a page | 
					
						
							|  |  |  |     asking whether the files should be added to a version control system. | 
					
						
							|  |  |  |     This happens when the parent directory or the project is already | 
					
						
							| 
									
										
										
										
											2009-01-15 13:50:22 +01:00
										 |  |  |     under version control and the system supports the concept of adding files, | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     e.g., \bold{Perforce} and \bold{Subversion}. Alternatively, you can | 
					
						
							|  |  |  |     add files later by using the version control tool menus. | 
					
						
							| 
									
										
										
										
											2009-01-15 13:50:22 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     With \bold{git}, there is no concept of adding files. Instead, all modified | 
					
						
							|  |  |  |     files must be \e{staged} for a commit. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Viewing Diff Output | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     All version control systems provide menu options to \e{diff} the current | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     file or project: to compare it with the latest version stored in the | 
					
						
							|  |  |  |     repository and to display the differences. In Qt Creator, a diff is | 
					
						
							|  |  |  |     displayed in a read-only editor. If the file is accessible, you can | 
					
						
							|  |  |  |     double-click on a selected diff chunk and Qt Creator opens an editor | 
					
						
							| 
									
										
										
										
											2009-01-15 13:50:22 +01:00
										 |  |  |     displaying the file, scrolled to the line in question. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-vcs-diff.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:18 +01:00
										 |  |  |     \section2 Annotating Files | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Annotation views are obtained by selecting \gui{Annotate} or \gui{Blame}. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     This displays the lines of the file prepended by the change identifier | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:18 +01:00
										 |  |  |     they originate from. Clicking on the change identifier shows a detailed | 
					
						
							|  |  |  |     description of the file. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To show the annotation of a previous version in the \gui Annotate or | 
					
						
							|  |  |  |     \gui Blame view, right-click on the version in the code. This option | 
					
						
							|  |  |  |     allows you to navigate through the history of the file and obtain the | 
					
						
							|  |  |  |     previous version of the code. This option also works for \gui git/hg | 
					
						
							|  |  |  |     using SHA. | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:18 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The file log view for a single file has \gui Annotate in | 
					
						
							|  |  |  |     the context menu of the version mentioned in the log, the user can | 
					
						
							|  |  |  |     right-click a line to open a context menu which contains | 
					
						
							|  |  |  |     \gui{Annotate Previous}. | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:18 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To set up a VCS repository for new projects, select \gui File > | 
					
						
							|  |  |  |     \gui{New File or Project...}. It enables you to initialize a | 
					
						
							|  |  |  |     repository for VCS that supports \gui git/hg | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Committing Changes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Once you have finished making changes, you can submit them to the version | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     control system by choosing \gui{Commit} or \gui{Submit}. Qt Creator | 
					
						
							|  |  |  |     displays a commit page containing a text editor, where you can enter your | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:18 +01:00
										 |  |  |     commit message, and a checkable list of modified files to be included. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     When you are done, click on \gui{Commit} to start committing. In addition, | 
					
						
							|  |  |  |     there is a \gui{Diff Selected Files} button that brings up a diff view of the | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:18 +01:00
										 |  |  |     files selected in the file list. Since the commit page is just another | 
					
						
							|  |  |  |     editor, you can go back to it by closing the diff view. Alternatively, you | 
					
						
							|  |  |  |     can view it from the editor combo box showing the \gui{Opened files}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-vcs-commit.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section2 Viewing Versioning History and Change Details | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The versioning history of a file is displayed by selecting | 
					
						
							|  |  |  |     \gui{Log} (for \bold{git}) or \gui{Filelog} (for \bold{Perforce} and | 
					
						
							|  |  |  |     \bold{Subversion}). Typically, the log output contains the | 
					
						
							|  |  |  |     date, the commit message, and a change or revision identifier. | 
					
						
							|  |  |  |     Click on the identifier to display a description of the change including the diff. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-vcs-log.png | 
					
						
							|  |  |  |     \image qtcreator-vcs-describe.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Using git-specific Menu Entries | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:18 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     The git sub-menu contains additional entries: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \i  \gui{Stash} | 
					
						
							|  |  |  |             \i  Stash local changes prior to executing a \bold{pull}. | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-01-15 15:57:07 +01:00
										 |  |  |             \i  \gui{Pull} | 
					
						
							|  |  |  |             \i  Pull changes from the remote repository. If there are locally | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |                 modified files, you are prompted to stash those changes. | 
					
						
							| 
									
										
										
										
											2009-01-15 15:57:07 +01:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \i  \gui{Branches...} | 
					
						
							|  |  |  |             \i  Displays the branch dialog showing the local branches at the | 
					
						
							|  |  |  |                 top and remote branches at the bottom. To switch to the local | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |                 branch, double-click on it. Double-clicking on a remote | 
					
						
							|  |  |  |                 branch first creates a local branch with the same name that | 
					
						
							|  |  |  |                 tracks the remote branch, and then switches to it. | 
					
						
							| 
									
										
										
										
											2009-01-15 15:57:07 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 \image qtcreator-vcs-gitbranch.png | 
					
						
							| 
									
										
										
										
											2009-01-15 14:30:18 +01:00
										 |  |  |     \endtable | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-editor-refactoring.html | 
					
						
							|  |  |  |     \page creator-editor-locator.html | 
					
						
							|  |  |  |     \nextpage creator-project-managing.html | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Searching With the Locator | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The locator provides one of the easiest ways in Qt Creator to browse | 
					
						
							|  |  |  |     through projects, files, classes, methods, documentation and file systems. | 
					
						
							|  |  |  |     You can find the locator in the bottom left of the Qt Creator window. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To activate the locator, press \key Ctrl+K (\key Cmd+K on Mac OS | 
					
						
							|  |  |  |     X) or select \gui Tools > \gui Locate.... | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-locator.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To edit the currently open project's main.cpp file using the locator: | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \list 1 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |         \o Activate the locator by pressing \key Ctrl+K. | 
					
						
							|  |  |  |         \o Enter \tt \bold{main.cpp}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-locator-open.png | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o Press \key Return. | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |            The main.cpp file opens in the editor. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can enter only a part of a string you are searching for. As you type, | 
					
						
							|  |  |  |     the locator shows the occurrences of that string regardless of where in the | 
					
						
							|  |  |  |     name of an item it appears. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To narrow down the search results, you can use the following wildcard | 
					
						
							|  |  |  |     characters: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To match any number of any or no characters, enter \tt \bold{*}. | 
					
						
							|  |  |  |         \o To match a single instance of any character, enter \tt \bold{?}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Using the Locator Filters | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The \gui Locator allows you to browse not only files, but any items | 
					
						
							|  |  |  |     defined by \bold{locator filters}. By default, the locator contains | 
					
						
							|  |  |  |     filters which locate: | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |     \list | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o  Any open document | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |         \o  Files anywhere on your file systems | 
					
						
							|  |  |  |         \o  Files belonging to your project, such as source, header resource, | 
					
						
							|  |  |  |             and .ui files | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o  Class and method definitions in your project or anywhere referenced | 
					
						
							|  |  |  |             from your project | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |         \o  Help topics, including Qt documentation | 
					
						
							|  |  |  |         \o  Specific line in the document displayed in your editor | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To use a specific locator filter, type the assigned prefix followed by | 
					
						
							|  |  |  |     \key Space. The prefix is usually a single character. | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     For example, to locate symbols matching | 
					
						
							|  |  |  |     \l http://doc.trolltech.com/qdatastream.html}{QDataStream: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Activate the locator. | 
					
						
							|  |  |  |         \o Enter \tt{\bold{: QDataStream}} (: (colon) followed by a | 
					
						
							|  |  |  |            \key Space and the symbol name (QDataStream)). | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |            The locator lists the results. | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |            \image qtcreator-navigate-popup.png | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     By default the following filters are enabled and you do not need to use | 
					
						
							|  |  |  |     their prefixes explicitly: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Going to a line in the current file (l). | 
					
						
							|  |  |  |         \o Going to an open file (o). | 
					
						
							|  |  |  |         \o Going to a file in any open project (a). | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section2 Using the Default Locator Filters | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The following locator filters are available by default: | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o  Function | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  Enter in locator | 
					
						
							|  |  |  |             \o  Example | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  Go to a line in the current file. | 
					
						
							|  |  |  |             \o  \tt{\bold{l \e{Line number}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-line.png | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o  Go to a symbol definition. | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  \tt{\bold{: \e{Symbol name}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-symbols.png | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o  Go to a help topic. | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  \tt{\bold{? \e{Help topic}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-help.png | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  Go to an open file. | 
					
						
							|  |  |  |             \o  \tt{\bold{o \e{File name}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-opendocs.png | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o  Go to a file in the file system (browse the file system). | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  \tt{\bold{f \e{File name}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-filesystem.png | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  Go to a file in any project currently open. | 
					
						
							|  |  |  |             \o  \tt{\bold{a \e{File name}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-files.png | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o  Go to a file in the current project. | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  \tt{\bold{p \e{File name}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-current-project.png | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o  Go to a class definition. | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  \tt{\bold{c \e{Class name}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-classes.png | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o  Go to a method definition. | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o  \tt{\bold{m \e{Method name}}} | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |             \o  \image qtcreator-locator-methods.png | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section2 Creating Locator Filters | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To quickly access files not directly mentioned in your project, you can | 
					
						
							|  |  |  |     create your own locator filters. That way you can locate files in a | 
					
						
							|  |  |  |     directory structure you have defined. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To create a locator filter: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o In the locator, click \inlineimage qtcreator-locator-magnify.png | 
					
						
							|  |  |  |            and select \gui Configure.... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            \image qtcreator-locator-customize.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \o In the \gui Options window click \gui Add. | 
					
						
							|  |  |  |         \o In the \gui{Filter Configuration} dialog: | 
					
						
							|  |  |  |         \list | 
					
						
							|  |  |  |             \o Name your filter. | 
					
						
							|  |  |  |             \o Select at least one directory. The locator searches directories | 
					
						
							|  |  |  |                recursively. | 
					
						
							|  |  |  |             \o Define the file pattern as a comma separated list. For example, | 
					
						
							|  |  |  |                to search all .h and .cpp files, enter \tt \bold{*.h,*.cpp} | 
					
						
							|  |  |  |             \o Specify the prefix string. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                To show only results matching this filter, select | 
					
						
							|  |  |  |                \gui{Limit to prefix}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                \image qtcreator-navigate-customfilter.png | 
					
						
							|  |  |  |         \endlist | 
					
						
							|  |  |  |         \o Click OK. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section3 Configuring the Locator Cache | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The locator searches the files matching your file pattern in the | 
					
						
							|  |  |  |     directories you have selected and caches that information. The cache for | 
					
						
							|  |  |  |     all default filters is updated as you write your code. The filters you have | 
					
						
							|  |  |  |     created Qt Creator by default updates once an hour. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To update the cached information manually, click | 
					
						
							|  |  |  |     \inlineimage qtcreator-locator-magnify.png | 
					
						
							|  |  |  |     and select \gui Refresh. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To set a new cache update time: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui Tools > \gui Options... > \gui Locator. | 
					
						
							|  |  |  |         \o In \gui{Refresh interval} define new time in minutes. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-27 15:06:43 +02:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-project-generic.html | 
					
						
							|  |  |  |     \page creator-project-managing-sessions.html | 
					
						
							|  |  |  |     \nextpage creator-developing-applications.html | 
					
						
							| 
									
										
										
										
											2009-07-27 15:06:43 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Managing Sessions | 
					
						
							| 
									
										
										
										
											2009-07-27 15:06:43 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     In Qt Creator, a session is a collection of: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o Open projects with their dependencies | 
					
						
							|  |  |  |         \o Open editors | 
					
						
							|  |  |  |         \o Breakpoints and watches | 
					
						
							|  |  |  |         \o Bookmarks | 
					
						
							| 
									
										
										
										
											2009-07-27 15:06:43 +02:00
										 |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     When you launch Qt Creator, a list of existing sessions is displayed on the | 
					
						
							|  |  |  |     \gui{Welcome screen}. | 
					
						
							| 
									
										
										
										
											2009-07-27 15:06:43 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \image qtcreator-welcome-session.png | 
					
						
							| 
									
										
										
										
											2009-08-04 12:56:09 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To switch between sessions, select the session from sessions listed in | 
					
						
							|  |  |  |     \gui File > \gui Session. If you do not create or select a session, | 
					
						
							|  |  |  |     Qt Creator always uses the default session. | 
					
						
							| 
									
										
										
										
											2009-08-04 12:56:09 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To create a new session or remove exisitng sessions, select \gui File > | 
					
						
							|  |  |  |     \gui Sessions > \gui{Session Manager...}. | 
					
						
							| 
									
										
										
										
											2009-08-04 12:56:09 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \image qtcreator-session-manager.png | 
					
						
							| 
									
										
										
										
											2009-07-27 15:06:43 +02:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-developing-symbian.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \page creator-debugging.html | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \nextpage creator-version-control.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Debugging | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 About Debugging with Qt Creator | 
					
						
							| 
									
										
										
										
											2009-04-08 16:34:42 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator does not have its own debugger. Instead, it provides a graphical | 
					
						
							|  |  |  |     frontend to various debugger engines: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							| 
									
										
										
										
											2009-04-08 16:34:42 +02:00
										 |  |  |         \header | 
					
						
							|  |  |  |             \o Platform | 
					
						
							|  |  |  |             \o Compiler | 
					
						
							|  |  |  |             \o Debugger Engine | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |             \o Linux, Unixes, Mac OS | 
					
						
							|  |  |  |             \o gcc | 
					
						
							|  |  |  |             \o GNU Symbolic Debugger (gdb) | 
					
						
							| 
									
										
										
										
											2009-04-08 16:34:42 +02:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |             \o Windows/MinGW | 
					
						
							|  |  |  |             \o gcc | 
					
						
							|  |  |  |             \o GNU Symbolic Debugger (gdb) | 
					
						
							| 
									
										
										
										
											2009-04-08 16:34:42 +02:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |             \o Windows | 
					
						
							|  |  |  |             \o Microsoft Visual C++ Compiler | 
					
						
							|  |  |  |             \o Debugging Tools for Windows/Microsoft Console Debugger (CDB) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     The frontend allows you to: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Go through a program line-by-line or instruction-by-instruction. | 
					
						
							|  |  |  |         \o Interrupt running programs. | 
					
						
							|  |  |  |         \o Set breakpoints. | 
					
						
							|  |  |  |         \o Examine the contents of the call stack, local and global variables, etc. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Qt Creator displays the raw information provided by the engine | 
					
						
							|  |  |  |     in a clear and concise manner. This simplifies the debugging process. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Qt Creator comes with generic IDE functionality: stack view, views for locals and | 
					
						
							|  |  |  |     watchers, registers, etc. In addition, Qt Creator includes features to make | 
					
						
							|  |  |  |     debugging Qt-based applications easy. The debugger frontend understands the | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     internal layout of several Qt classes such as QString, the QTL containers, | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  |     and most importantly QObject (and classes derived from it), as well as | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     most containers of the C++ Standard Library. Therefore, the debugger can | 
					
						
							| 
									
										
										
										
											2009-11-06 10:46:24 +01:00
										 |  |  |     present their contents in a useful way. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |     \section1 Debugger Engine Installation Notes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o Debugger engine | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |             \o Notes | 
					
						
							| 
									
										
										
										
											2009-05-28 15:31:12 +02:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \o Gdb | 
					
						
							| 
									
										
										
										
											2009-12-11 16:30:26 +01:00
										 |  |  |             \o Requires gdb version 6.8 on Linux. On Mac OS X, please install the latest available Xcode | 
					
						
							|  |  |  |                available for your OS version. | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o Debugging tools for Windows | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |             \o Using this engine requires you to install the | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |                \e{Debugging tools for Windows} | 
					
						
							| 
									
										
										
										
											2009-05-28 15:31:12 +02:00
										 |  |  |                \l{http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx}{32-bit} | 
					
						
							|  |  |  |                or | 
					
						
							|  |  |  |                \l{http://www.microsoft.com/whdc/devtools/debugging/install64bit.Mspx}{64-bit} | 
					
						
							| 
									
										
										
										
											2009-10-06 15:50:48 +02:00
										 |  |  |                package (Version 6.11.1.404 for the 32-bit or the 64-bit version of Qt Creator, respectively), | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |                which is freely available for download from the | 
					
						
							|  |  |  |                \l{http://msdn.microsoft.com/en-us/default.aspx} | 
					
						
							| 
									
										
										
										
											2009-05-28 15:31:12 +02:00
										 |  |  |                {Microsoft Developer Network}. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |                The pre-built \e{Qt SDK for Windows} makes use | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |                of the library if it is present on the system. When building Qt | 
					
						
							|  |  |  |                Creator using the Microsoft Visual C++ Compiler, the | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |                \c{"%ProgramFiles%\Debugging Tools for Windows"} path is | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |                checked to ensure that all required header files are there. | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |        \row | 
					
						
							|  |  |  |            \o Debugging tools for Mac OS X | 
					
						
							|  |  |  |            \o The Qt binary distribution contains both debug and release | 
					
						
							|  |  |  |               variants of the libraries. But you have to explicitly tell the | 
					
						
							|  |  |  |               runtime linker that you want to use the debug libraries even if | 
					
						
							|  |  |  |               your application is compiled as debug as release is the default | 
					
						
							|  |  |  |               library. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |               If you use a qmake based project in Qt Creator,  you can set a | 
					
						
							|  |  |  |               flag in your run configuration, in Projects mode. In the run | 
					
						
							|  |  |  |               configuration, select \gui{Use debug version of frameworks}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |               For more detailed information about debugging on the Mac, refer: | 
					
						
							|  |  |  |               \l http://developer.apple.com/mac/library/technotes/tn2004/tn2124.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \note The Mac OS X Snow Leopard (10.6) has a bug, that can be worked | 
					
						
							|  |  |  |               around as described in the link provided below: | 
					
						
							|  |  |  |               \l http://bugreports.qt.nokia.com/browse/QTBUG-4962. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 16:34:23 +02:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Interaction with the Debugger | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     In \gui Debug mode, several dock widgets are used to interact with the | 
					
						
							|  |  |  |     program you are debugging. The frequently used dock widgets are visible by | 
					
						
							|  |  |  |     default; the rarely used ones are hidden. To change the default settings, | 
					
						
							|  |  |  |     select \gui Debug and then select \gui View. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-16 18:39:10 +01:00
										 |  |  |     \image qtcreator-debug-view.png | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Here, you can lock or unlock the location of your dock widgets as well as | 
					
						
							|  |  |  |     display or hide them. The position of your dock widgets is saved for future | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     sessions. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section2 Usage of the Debugger | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To start a program under the debugger's control, select the \gui{Debug} | 
					
						
							|  |  |  |     menu and \gui{Start Debugging}, or press \key{F5}. Qt Creator | 
					
						
							|  |  |  |     checks whether the compiled program is up-to-date, rebuilding it if | 
					
						
							|  |  |  |     necessary. The debugger then takes over and starts the program. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \note Starting a program in the debugger can take a considerable amount of | 
					
						
							|  |  |  |     time, typically in the range of several seconds to minutes if complex | 
					
						
							|  |  |  |     features (like QtWebKit) are used. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Once the program starts running, it behaves and performs as usual. | 
					
						
							|  |  |  |     The user can interrupt a running program by selecting | 
					
						
							|  |  |  |     \gui {Interrupt} from the \gui{Debug} menu. The program is automatically | 
					
						
							|  |  |  |     interrupted as soon as a breakpoint is hit. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Once the program stops, Qt Creator: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o Retrieves data representing the call stack at the program's current | 
					
						
							|  |  |  |            position. | 
					
						
							|  |  |  |         \o Retrieves the contents of local variables. | 
					
						
							|  |  |  |         \o Examines \gui Watchers. | 
					
						
							|  |  |  |         \o Updates the \gui Registers, \gui Modules, and \gui Disassembler | 
					
						
							|  |  |  |            views. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     You can use the debugger views to examine the data in more detail. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To finish debugging, press \key{Shift+F5}. A line of code can be executed | 
					
						
							|  |  |  |     as a whole with \key F10; to step into a function or a sub-function, use | 
					
						
							|  |  |  |     \key F11. Alternatively, you can continue running the program with \key F5. | 
					
						
							|  |  |  |     It is also possible to continue executing the program until the current | 
					
						
							|  |  |  |     function completes or jump to an arbitrary position in the current | 
					
						
							|  |  |  |     function. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \section2 Breakpoints | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Breakpoints are shown in the \gui{Breakpoints} view which is enabled | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     by default. This view is also accessible when the debugger and the program | 
					
						
							|  |  |  |     being debugged is not running. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     A breakpoint represents a position or sets of positions in the code that, | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     when executed, interrupts the program being debugged and passes the | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |     control to the user. The user is then free to examine the state of the | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     interrupted program, or continue execution either line-by-line or continuously. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Typically, breakpoints are associated with a source code file and line, or | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     the start of a function -- both are allowed in Qt Creator. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Also, the interruption of a program by a breakpoint can be restricted with | 
					
						
							|  |  |  |     certain conditions. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     You can set a breakpoint: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |        \o At a particular line you want the program to stop -- click on the | 
					
						
							| 
									
										
										
										
											2008-12-08 15:14:36 +01:00
										 |  |  |           left margin or press \key F9 (\key F8 for Mac OS X). | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |        \o At a function that you want the program to interrupt -- enter the | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |           function's name in \gui{Set Breakpoint at Function...} located in the | 
					
						
							|  |  |  |           context menu of the breakpoints view. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \note | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     You can remove a breakpoint: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o By clicking on the breakpoint marker in the text editor. | 
					
						
							|  |  |  |         \o By selecting the breakpoint in the breakpoint view and pressing | 
					
						
							|  |  |  |            \key{Delete}. | 
					
						
							|  |  |  |         \o By selecting \gui{Delete Breakpoint} from the breakpoint's context | 
					
						
							|  |  |  |            menu in the \gui Breakpoints view. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Breakpoints can be set and deleted before the program has actually started | 
					
						
							|  |  |  |     running or while it is running under the debugger's control. Also, | 
					
						
							|  |  |  |     breakpoints are saved together with a session. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Stack | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |     When the program being debugged is interrupted, Qt Creator displays the | 
					
						
							|  |  |  |     nested function calls leading to the current position as a \e call stack | 
					
						
							|  |  |  |     trace. This stack trace is built up from \e{call stack frames}, each | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     representing a particular function. For each function, Qt Creator tries | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |     to retrieve the file name and line number of the corresponding source | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     file. This data is shown in the \gui Stack view. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-16 18:39:10 +01:00
										 |  |  |     \image qtcreator-debug-stack.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     Since the call stack leading to the current position may originate or go | 
					
						
							|  |  |  |     through code for which no debug information is available, not all stack | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     frames have corresponding source locations. These frames are | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |     grayed out in the \gui Stack view. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     If you click on a frame with a known source location, the text editor | 
					
						
							|  |  |  |     jumps to the corresponding location and updates the \gui{Locals and Watchers} | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |     view, making it seem like the program was interrupted before entering the | 
					
						
							|  |  |  |     function. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Threads | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |     If a multi-threaded program is interrupted, the \gui Thread view  or the | 
					
						
							| 
									
										
										
										
											2008-12-08 15:14:36 +01:00
										 |  |  |     combobox named \gui Thread in the debugger's status bar can be used to | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     switch from one thread to another. The \gui Stack view adjusts itself | 
					
						
							| 
									
										
										
										
											2008-12-08 15:14:36 +01:00
										 |  |  |     accordingly. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section2 Modules View and Source Files View | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     These views display the debugger's idea of the components of the | 
					
						
							|  |  |  |     application. By default, both views are hidden. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Disassembler View and Registers View | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     By default, both \gui Disassembler and \gui Registers view are hidden. | 
					
						
							|  |  |  |     The \gui Disassembler view displays disassembled code for the current | 
					
						
							|  |  |  |     function; the \gui Registers view displays the current state of the CPU's | 
					
						
							|  |  |  |     registers. Both views are useful for low-level commands such as | 
					
						
							|  |  |  |     \gui{Step Single Instruction} and \gui{Step Over Single Instruction}. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \section2 Locals and Watchers | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Whenever a program stops under the control of the debugger, it retrieves | 
					
						
							|  |  |  |     information about the topmost stack frame and displays it in the | 
					
						
							|  |  |  |     \gui{Locals and Watchers} view. This typically includes information about | 
					
						
							|  |  |  |     parameters of the function in that frame as well as the local variables. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Compound variables of struct or class type are displayed as | 
					
						
							| 
									
										
										
										
											2009-11-06 10:46:24 +01:00
										 |  |  |     "expandable" in the view. Click on the "+" to expand the entry and show | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     all members. Together with the display of value and type, the user can | 
					
						
							|  |  |  |     examine and traverse the low-level layout of an object's data. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  |             \i  \bold{Note:} | 
					
						
							| 
									
										
										
										
											2008-12-02 13:06:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 17:28:04 +02:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2008-12-02 13:06:53 +01:00
										 |  |  |             \i  Gdb, and therefore Qt Creator's debugger works for optimized | 
					
						
							|  |  |  |                 builds on Linux and Mac OS X. However, optimization may lead | 
					
						
							|  |  |  |                 to re-ordering of instructions or sometimes even complete | 
					
						
							|  |  |  |                 removal of some local variables. In this case, the | 
					
						
							|  |  |  |                 \gui{Locals and Watchers} view may show unexpected data. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 17:28:04 +02:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2008-12-02 13:06:53 +01:00
										 |  |  |             \i  The debug information provided by gcc does not include enough | 
					
						
							|  |  |  |                 information about the time when a variable is initialized. | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  |                 Therefore, Qt Creator can not tell whether the contents of a | 
					
						
							| 
									
										
										
										
											2008-12-02 13:06:53 +01:00
										 |  |  |                 local variable contains "real data", or "initial noise". If a | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |                 QObject appears uninitialized, its value is reported as | 
					
						
							| 
									
										
										
										
											2008-12-02 13:06:53 +01:00
										 |  |  |                 "out of scope". However, not all uninitialized objects can be | 
					
						
							|  |  |  |                 recognized as such. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 13:06:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     The \gui{Locals and Watchers} view also provides access to the most | 
					
						
							|  |  |  |     powerful feature of the debugger: comprehensive display of data belonging | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     to Qt's basic objects. To enable this feature, check \gui{Use | 
					
						
							|  |  |  |     debugging helper} checkbox from \gui Tools > \gui Options... > | 
					
						
							|  |  |  |     \gui Debugger > \gui{Debugging Helper}. The \gui{Locals and Watchers} view | 
					
						
							|  |  |  |     is re-organized to provide a high-level view of the objects. For example, | 
					
						
							|  |  |  |     in case of QObject, instead of displaying a pointer to some private data | 
					
						
							|  |  |  |     structure, you see a list of children, signals and slots. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-04 17:27:29 +01:00
										 |  |  |     Similarly, instead of displaying many pointers and integers, Qt Creator's | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     debugger displays the contents of a QHash or QMap in an orderly manner. | 
					
						
							|  |  |  |     Also, the debugger displays access data for QFileInfo and provides | 
					
						
							| 
									
										
										
										
											2008-12-04 17:27:29 +01:00
										 |  |  |     access to the "real" contents of QVariant. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The \gui{Locals and Watchers} view can be used to change the contents of | 
					
						
							|  |  |  |     variables of simple data types such as \c int or \c float when the program | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |     is interrupted. To do so, click on the \gui Value column, modify the value | 
					
						
							| 
									
										
										
										
											2008-12-04 17:27:29 +01:00
										 |  |  |     with the inplace editor, and hit \key Enter (or \key Return). | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \note The set of watched items is saved in your session. | 
					
						
							| 
									
										
										
										
											2008-12-04 17:27:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-15 09:38:16 +01:00
										 |  |  |     \section1 Debugging Helper Library with C++ | 
					
						
							| 
									
										
										
										
											2009-04-16 16:24:38 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     While debugging, Qt Creator dynamically loads a helper library into your | 
					
						
							| 
									
										
										
										
											2009-04-17 15:35:47 +02:00
										 |  |  |     program. This helper library enables Qt Creator to pretty print Qt and STL | 
					
						
							|  |  |  |     types. The Qt SDK package already contains a prebuilt debugging helper | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     library. To create an own debugging helper library, select \gui{Options} | 
					
						
							|  |  |  |     from the \gui{Tools} menu, and go to the \gui{Qt4 > Qt Versions} pane. As | 
					
						
							|  |  |  |     the internal data structures of Qt can change between versions, the debugging | 
					
						
							|  |  |  |     helper library is built for each Qt version. | 
					
						
							| 
									
										
										
										
											2009-04-16 16:24:38 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-15 09:38:16 +01:00
										 |  |  |     \section1 Debugging Helper Library with Python | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Using a gdb version that has Python scripting available it is possible to | 
					
						
							|  |  |  |     use Debugging Helpers also for user defined types. All that is needed is | 
					
						
							|  |  |  |     to define one Python function per user defined type in .gdbinit. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The function's name has to be qdump__NS__Foo where  NS::Foo is the class | 
					
						
							|  |  |  |     or class template to be examined. Nested namespaces are possible. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator's debugger integration will call this function whenever it | 
					
						
							|  |  |  |     wants to display an object of this type. The function gets passed two | 
					
						
							|  |  |  |     parameters, 'd' of type 'Dumper', and 'item' of type 'Item'. The function | 
					
						
							|  |  |  |     itself has to feed the Dumper object with certain information that | 
					
						
							|  |  |  |     are used to build up the object and it's children's display in the | 
					
						
							|  |  |  |     Locals-and-Watchers view. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Example: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \code | 
					
						
							|  |  |  |     def qdump__QVector(d, item): | 
					
						
							|  |  |  |         d_ptr = item.value["d"] | 
					
						
							|  |  |  |         p_ptr = item.value["p"] | 
					
						
							|  |  |  |         alloc = d_ptr["alloc"] | 
					
						
							|  |  |  |         size = d_ptr["size"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         check(0 <= size and size <= alloc and alloc <= 1000 * 1000 * 1000) | 
					
						
							|  |  |  |         check(d_ptr["ref"]["_q_value"] > 0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         innerType = item.value.type.template_argument(0) | 
					
						
							|  |  |  |         d.putItemCount(size) | 
					
						
							|  |  |  |         d.putNumChild(size) | 
					
						
							|  |  |  |         if d.isExpanded(item): | 
					
						
							|  |  |  |             p = gdb.Value(p_ptr["array"]).cast(innerType.pointer()) | 
					
						
							|  |  |  |             d.beginChildren([size, 2000], innerType) | 
					
						
							|  |  |  |             for i in d.childRange(): | 
					
						
							|  |  |  |                 d.safePutItem(Item(p.dereference(), item.iname, i)) | 
					
						
							|  |  |  |                 p += 1 | 
					
						
							|  |  |  |             d.endChildren() | 
					
						
							|  |  |  |     \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The 'Item' Python class is a thin wrapper around values corresponding to one | 
					
						
							|  |  |  |     line in the Locals-and-Watchers view. Its members are the following: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{__init__(self, value, parentiname, iname, name = None)} - A | 
					
						
							|  |  |  |        constructor. The object's internal name is created by concatenating | 
					
						
							|  |  |  |        \a parentiname and \a iname. If \c None is passed as \a name, a | 
					
						
							|  |  |  |        serial number is used. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{value} - An object of type gdb.Value representing the value to | 
					
						
							|  |  |  |         be displayed. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{iname} - The internal name of the object, i.e. a dot-separated | 
					
						
							|  |  |  |     list of identifiers, corresponding to the position of the object's | 
					
						
							|  |  |  |     representation in the view. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{name} - An optional name. If given, it will be used in the | 
					
						
							|  |  |  |     \gui{name} column of the view. If not, a simple number in brackets | 
					
						
							|  |  |  |     will be used instead. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     For each line in the Locals and Watcher view, a string like the following | 
					
						
							|  |  |  |     needs to be created and channeled to Creator's debugger plugin. | 
					
						
							|  |  |  |     \code | 
					
						
							|  |  |  |     "{iname='some internal name', | 
					
						
							|  |  |  |       addr='object address in memory', | 
					
						
							|  |  |  |       name='contents of the name column', | 
					
						
							|  |  |  |       value='contents of the value column', | 
					
						
							|  |  |  |       type='contents of the type column', | 
					
						
							|  |  |  |       numchild='number of children',        // zero/nonzero is sufficient | 
					
						
							|  |  |  |       childtype='default type of children', // optional | 
					
						
							|  |  |  |       childnumchild='default number of grandchildren', // optional | 
					
						
							|  |  |  |       children=[              // only needed if item is expanded in view | 
					
						
							|  |  |  |          {iname='internal name of first child', | 
					
						
							|  |  |  |           ... }, | 
					
						
							|  |  |  |          {iname='internal name of second child', | 
					
						
							|  |  |  |           ... }, | 
					
						
							|  |  |  |          ... | 
					
						
							|  |  |  |       ]}" | 
					
						
							|  |  |  |     \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     While in theory, this string can be build up entirely manually, it is | 
					
						
							|  |  |  |     easier to employ the 'Dumper' Python class for that purpose. It contains | 
					
						
							|  |  |  |     a complete framework to take care of the 'iname' and 'addr' fields, | 
					
						
							|  |  |  |     to handle children of simple types, references, | 
					
						
							|  |  |  |     pointers, enums, known and unknown structs as well as some | 
					
						
							|  |  |  |     convenience method to handle common situations. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The 'Dumper' members are the following: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{__init__(self)} - Initializes the output to an empty string and | 
					
						
							|  |  |  |         empties the child stack. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{put(self, value)} - Low level method to directly append to the | 
					
						
							|  |  |  |         output string. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putCommaIfNeeded(self)} - Appends a comma if the current output | 
					
						
							|  |  |  |         ends in '}', '"' or ']' . | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putField(self, name, value)} - Appends a comma if needed, and a | 
					
						
							|  |  |  |          name='value' field. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{beginHash(self)} - Appends a comma if needed and a '{', marking | 
					
						
							|  |  |  |         the begin of a set of fields. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{endHash(self)} - Appends a '}', marking the end of a set of | 
					
						
							|  |  |  |         fields. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{beginItem(self, name)} - Starts writing a field by writing \c {name='}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{endItem(self)} - Ends writing a field by writing \c {'}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{beginChildren(self, numChild_ = 1, childType_ = None, childNumChild_ = None)} | 
					
						
							|  |  |  |         - Starts writing a list of \a numChild children, with type | 
					
						
							|  |  |  |         \a childType_ and \a childNumChild grandchildren each. If \a numChild_ | 
					
						
							|  |  |  |         is a list of two integers, the first one specifies the actual number | 
					
						
							|  |  |  |         of children and the second the maximum number of children to print. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{endChildren(self)} - Ends writing a list of children. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{childRange(self)} - Return the range of children specified in | 
					
						
							|  |  |  |         \c beginChildren. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putItemCount(self, count)} - Appends a field  \c {value='<%d items'} | 
					
						
							|  |  |  |         to the output. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putEllipsis(self)} - Appends fields | 
					
						
							|  |  |  |         \c {'{name="<incomplete>",value="",type="",numchild="0"}'}. This is | 
					
						
							|  |  |  |         automatically done by \c endChildren if the number of children to | 
					
						
							|  |  |  |         print is smaller than the number of actual children. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putName(self, name)} - Appends a \c {name='...'} field. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putType(self, type)} - Appends a field \c {type='...'} unless the | 
					
						
							|  |  |  |         \a type coincides with the parent's default child type. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putNumChild(self, numchild)} - Appends a field \c {numchild='...'} | 
					
						
							|  |  |  |         unless the \a numchild coincides with the parent's default child numchild | 
					
						
							|  |  |  |         value. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putValue(self, value, encoding = None)} - Append a file \c {value='...'}, | 
					
						
							|  |  |  |         optionally followed by a field \c {valueencoding='...'}. The \a value | 
					
						
							|  |  |  |         needs to be convertiable to a string entirely consisting of | 
					
						
							|  |  |  |         alphanumerical values. The \a encoding parameter can be used to | 
					
						
							|  |  |  |         specify the encoding in case the real value had to be encoded in some | 
					
						
							|  |  |  |         way to meet the alphanumerical-only requirement. | 
					
						
							|  |  |  |         Currently the following encodings are supported: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \list | 
					
						
							|  |  |  |             \o 0: unencoded 8 bit data, interpreted as Latin1. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \o 1: base64 encoded 8 bit data, used for QByteArray, | 
					
						
							|  |  |  |                 double quotes will be added. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \o 2: base64 encoded 16 bit data, used for QString, | 
					
						
							|  |  |  |                 double quotes will be added. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \o 3: base64 encoded 32 bit data, | 
					
						
							|  |  |  |                 double quotes will be added. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \o 4: base64 encoded 16 bit data, without quotes (see 2) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \o 5: base64 encoded 8 bit data, without quotes (see 1) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \o 6: %02x encoded 8 bit data (as with \c QByteArray::toHex), | 
					
						
							|  |  |  |                 double quotes will be added. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \o 7: %04x encoded 16 bit data (as with \c QByteArray::toHex), | 
					
						
							|  |  |  |                 double quotes will be added. | 
					
						
							|  |  |  |         \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putStringValue(self, value)} - Encodes a QString and calls | 
					
						
							|  |  |  |         \c putValue with the correct \a encoding setting. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putByteArrayValue(self, value)} - Encodes a QByteArray and calls | 
					
						
							|  |  |  |         \c putValue with the corrent \a encoding setting. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{isExpanded(self, item)} - Checks whether the item with the | 
					
						
							|  |  |  |         internal name \c item.iname is expanded in the view. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{isExpandedIName(self, iname)} - Checks whether the item with the | 
					
						
							|  |  |  |         internal name \c iname is expanded in the view. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putIntItem(self, name, value)} - Equivalent to | 
					
						
							|  |  |  |         \code | 
					
						
							|  |  |  |         self.beginHash() | 
					
						
							|  |  |  |         self.putName(name) | 
					
						
							|  |  |  |         self.putValue(value) | 
					
						
							|  |  |  |         self.putType("int") | 
					
						
							|  |  |  |         self.putNumChild(0) | 
					
						
							|  |  |  |         self.endHash() | 
					
						
							|  |  |  |         \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putBoolItem(self, name, value)} - Equivalent to | 
					
						
							|  |  |  |         \code | 
					
						
							|  |  |  |         self.beginHash() | 
					
						
							|  |  |  |         self.putName(name) | 
					
						
							|  |  |  |         self.putValue(value) | 
					
						
							|  |  |  |         self.putType("bool") | 
					
						
							|  |  |  |         self.putNumChild(0) | 
					
						
							|  |  |  |         self.endHash() | 
					
						
							|  |  |  |         \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{pushOutput(self)} - Moves output string to a safe location | 
					
						
							|  |  |  |         from with it will be send to the frontend even if further operations | 
					
						
							|  |  |  |         raise exception. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putCallItem(self, name, item, func)} - | 
					
						
							|  |  |  |         Uses gdb to call the function \a func on the value specified by | 
					
						
							|  |  |  |         \a {item.value} and output the resulting item. This function is | 
					
						
							|  |  |  |         not available when debugging core dumps and it is not available | 
					
						
							|  |  |  |         on the Symbian platform due to restrictions imposed by AppTRK. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putItemHelper(self, item)} - The "master function", handling | 
					
						
							|  |  |  |         basic types, references, pointers and enums directly, iterates | 
					
						
							|  |  |  |         over base classes and class members of compound types and calls | 
					
						
							|  |  |  |         \c qdump__* functions whenever appropriate. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{putItem(self, item)} - Equivalent to | 
					
						
							|  |  |  |         self.beginHash() | 
					
						
							|  |  |  |         self.putItemHelper(item) | 
					
						
							|  |  |  |         self.endHash() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{safePutItemHelper(self, item)} - Calls \c putItemHelper(self, item). | 
					
						
							|  |  |  |         If an exception is raised, catch it, and replace all output produced by | 
					
						
							|  |  |  |         \c putItemHelper by \code | 
					
						
							|  |  |  |             self.putName(item.name) | 
					
						
							|  |  |  |             self.putValue("<invalid>") | 
					
						
							|  |  |  |             self.putType(str(item.value.type)) | 
					
						
							|  |  |  |             self.putNumChild(0) | 
					
						
							|  |  |  |             self.beginChildren() | 
					
						
							|  |  |  |             self.endChildren() \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o \gui{safePutItem(self, item)} - Equivalent to | 
					
						
							|  |  |  |         self.beginHash() | 
					
						
							|  |  |  |         self.safePutItemHelper(item) | 
					
						
							|  |  |  |         self.endHash() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Walkthrough for the Debugger Frontend | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     In our \l{Writing a simple program}{TextFinder} example, we | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     read a text file into QString and then display it with QTextEdit. | 
					
						
							|  |  |  |     Suppose you want to look at this QString, \c{line}, and see what | 
					
						
							| 
									
										
										
										
											2008-12-04 17:27:29 +01:00
										 |  |  |     data it actually stores. Follow the steps described below to place a | 
					
						
							|  |  |  |     breakpoint and view the QString object's data. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \row | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  |             \i \inlineimage qtcreator-setting-breakpoint1.png | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |             \i \bold{Setting a Breakpoint} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Click in between the line number and the window border on the line | 
					
						
							|  |  |  |         where we invoke \l{http://doc.trolltech.com/qtextedit.html#plainText-prop}{setPlainText()} | 
					
						
							|  |  |  |         to set a breakpoint. | 
					
						
							|  |  |  |         \o Select \gui{Start Debugging} from the \gui{Debug} menu or press \key{F5}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \i \inlineimage qtcreator-setting-breakpoint2.png | 
					
						
							|  |  |  |             \i \bold{Viewing and removing breakpoints} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Breakpoints are visible in the \gui{Breakpoints} view in | 
					
						
							|  |  |  |     \gui{Debug} mode. To remove a breakpoint, right-click on | 
					
						
							| 
									
										
										
										
											2008-12-04 17:27:29 +01:00
										 |  |  |     it and select \gui{Delete breakpoint} from the context menu. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							|  |  |  |             \i \inlineimage qtcreator-watcher.png | 
					
						
							|  |  |  |             \i \bold{Viewing Locals and Watchers} | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     To view the contents of \c{line}, go to the \gui{Locals and | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     Watchers} view. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \endtable | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-04 17:27:29 +01:00
										 |  |  |     Suppose we modify our \c{on_findButton_clicked()} function to move back to | 
					
						
							|  |  |  |     the start of the document and continue searching once the cursor hits the | 
					
						
							|  |  |  |     end of the document. Adding this functionality can be done with the code | 
					
						
							|  |  |  |     snippet below: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \code | 
					
						
							|  |  |  |     void TextFinder::on_findButton_clicked() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-03-24 17:57:43 +01:00
										 |  |  |         QString searchString = ui->lineEdit->text(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-24 17:57:43 +01:00
										 |  |  |         QTextDocument *document = ui->textEdit->document(); | 
					
						
							|  |  |  |         QTextCursor cursor = ui->textEdit->textCursor(); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         cursor = document->find(searchString, cursor, | 
					
						
							|  |  |  |             QTextDocument::FindWholeWords); | 
					
						
							| 
									
										
										
										
											2009-03-24 17:57:43 +01:00
										 |  |  |         ui->textEdit->setTextCursor(cursor); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         bool found = cursor.isNull(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-24 10:01:00 +01:00
										 |  |  |         if (!found && previouslyFound) { | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |             int ret = QMessageBox::question(this, tr("End of Document"), | 
					
						
							|  |  |  |             tr("I have reached the end of the document. Would you like " | 
					
						
							|  |  |  |             "me to start searching from the beginning of the document?"), | 
					
						
							|  |  |  |             QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (ret == QMessageBox::Yes) { | 
					
						
							|  |  |  |                 cursor = document->find(searchString, | 
					
						
							|  |  |  |                     QTextDocument::FindWholeWords); | 
					
						
							| 
									
										
										
										
											2009-03-24 17:57:43 +01:00
										 |  |  |                 ui->textEdit->setTextCursor(cursor); | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |             } else | 
					
						
							|  |  |  |                 return; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         previouslyFound = found; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     However, if you compile and run this code, the application does not work | 
					
						
							|  |  |  |     correctly due to a logic error. To locate this logic error, step | 
					
						
							| 
									
										
										
										
											2008-12-04 17:27:29 +01:00
										 |  |  |     through the code using the following buttons: | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-debugging-buttons.png | 
					
						
							| 
									
										
										
										
											2009-04-08 16:34:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-project-qmake.html | 
					
						
							|  |  |  |     \page creator-project-cmake.html | 
					
						
							|  |  |  |     \nextpage creator-project-generic.html | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Setting Up a CMake Project | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Since Qt Creator 1.1, support for \c CMake project files is available. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Qt Creator 1.3 supports the Microsoft Toolchain if the CMake version | 
					
						
							| 
									
										
										
										
											2009-11-02 16:17:13 +01:00
										 |  |  |     is at least 2.8. | 
					
						
							| 
									
										
										
										
											2009-05-04 14:18:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  |     \section1 Opening CMake Projects | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     To open a \c CMake project, select \gui Open from the \gui File menu and | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  |     select the \c{CMakeLists.txt} file from your \c CMake project. A wizard | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     guides you with the rest of the process. If the \c CMake project does | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  |     not have an in-place build, Qt Creator lets you specify the directory in | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     which the project is built (\l{glossary-shadow-build}{shadow build}). | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-17 16:09:54 +02:00
										 |  |  |     \image qtcreator-cmake-import-wizard1.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  |     The screenshot below shows how you can specify command line arguments to | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  |     \c CMake for your project. | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-17 16:09:54 +02:00
										 |  |  |     \image qtcreator-cmake-import-wizard2.png | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  |     Normally, there is no need to pass any command line arguments for projects | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  |     that are already built, as \c CMake caches that information. | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Building CMake Projects | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Qt Creator builds \c CMake projects by running \c make, \c mingw32-make, or | 
					
						
							| 
									
										
										
										
											2009-11-02 16:17:13 +01:00
										 |  |  |     \c nmake depending on your platform. The build errors and warnings are | 
					
						
							|  |  |  |     parsed and displayed in the \gui{Build Issues} output pane. | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     By default, Qt Creator builds the \e{all} target. You can specify which | 
					
						
							| 
									
										
										
										
											2009-05-04 14:18:57 +02:00
										 |  |  |     targets to build in \gui{Project} mode, under \gui{Build Settings}. | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-17 16:09:54 +02:00
										 |  |  |     \image qtcreator-cmake-build-settings.png | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 14:18:57 +02:00
										 |  |  |     Qt Creator supports multiple build configurations. Also, the build | 
					
						
							|  |  |  |     directory can be modified after the initial import. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  |     \section1 Running CMake Projects | 
					
						
							| 
									
										
										
										
											2009-05-04 14:18:57 +02:00
										 |  |  |     Qt Creator automatically adds \gui{Run Configurations} for all targets | 
					
						
							|  |  |  |     specified in the \c CMake project file. | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 17:28:04 +02:00
										 |  |  |     Known issues for the current version can be found | 
					
						
							| 
									
										
										
										
											2009-11-27 20:06:01 +01:00
										 |  |  |     \l{Known Issues of version 1.3.80}{here}. | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Adding External Libraries to a CMake Project | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Through external libraries Qt Creator can support code completion and | 
					
						
							|  |  |  |     syntax highlighting as if they were part of the current project or the Qt | 
					
						
							|  |  |  |     library. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     External libraries are detected using the \c FIND_PACKAGE() macro. Some | 
					
						
							|  |  |  |     libraries come with the CMake installation. You can find those in the | 
					
						
							|  |  |  |     \b Modules directory of your CMake installation. If you provide your own | 
					
						
							|  |  |  |     libraries, you also need to provide your own \c FindFoo.cmake file. | 
					
						
							|  |  |  |     For more information, see | 
					
						
							|  |  |  |     \l{http://vtk.org/Wiki/CMake_FAQ#Writing_FindXXX.cmake_files}{CMake FAQ}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Syntax completion and highlighting work once your project successfully | 
					
						
							|  |  |  |     builds and links against the external library. | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-project-cmake.html | 
					
						
							|  |  |  |     \page creator-project-generic.html | 
					
						
							|  |  |  |     \nextpage creator-project-managing-sessions.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \title Setting Up a Generic Project | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator supports generic projects, so you can import existing projects | 
					
						
							|  |  |  |     that do not use qmake or CMake and Qt Creator ignores your build system | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     This allows you to use Qt Creator as a code editor. You can change the | 
					
						
							|  |  |  |     way your project is built by modifying the \c make command in the | 
					
						
							|  |  |  |     \gui Projects mode under \gui{Build Settings}. | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     When you import a project, Qt Creator creates the following files that | 
					
						
							|  |  |  |     allow you to specify which files belong to your project and which include | 
					
						
							|  |  |  |     directories or defines you want to pass to your compile: | 
					
						
							|  |  |  |     .files, .includes, and .config. | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Importing a Generic Project | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To import an existing generic project: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui File > \gui{New File or Project...} > \gui Projects > | 
					
						
							|  |  |  |            \gui{Import of Makefile-based Project}. | 
					
						
							|  |  |  |         \o In \gui{Generic Project}, enter the project name | 
					
						
							|  |  |  |            and select the project file you want to import. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |            Qt Creator automatically generates the following files in the | 
					
						
							|  |  |  |            project directory: | 
					
						
							|  |  |  |            \list | 
					
						
							|  |  |  |                \o \l{Specifying Files}{.files} | 
					
						
							|  |  |  |                \o \l{Specifying Include Paths}{.includes} | 
					
						
							|  |  |  |                \o \l{Specifying Defines}{.config} | 
					
						
							|  |  |  |                \o .creator | 
					
						
							|  |  |  |            \endlist | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     When the project is successfully imported, Qt Creator creates its project | 
					
						
							|  |  |  |     tree in the sidebar. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     After importing a generic project into Qt Creator, open it by selecting the | 
					
						
							|  |  |  |     .creator file. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Working with Generic Project Files | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-03 14:54:55 +02:00
										 |  |  |     For a generic project, you have to manually specify which files belong to | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     your project and which include directories or defines you want to pass to | 
					
						
							|  |  |  |     your compiler. | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Specifying Files | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The list of files for a generic project is specified in the \c .files | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     file. When you first create a generic project, Qt Creator adds any | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     files it recognizes to your project. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To add or remove files, edit the \c .files file in Qt Creator. | 
					
						
							|  |  |  |     Qt Creator recreates your project tree when you save the \c{.files file}. | 
					
						
							|  |  |  |     Alternatively, you can add and remove files using the context menu in the | 
					
						
							|  |  |  |     project tree. | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     If you frequently need to update the \c .files file, you can do it | 
					
						
							|  |  |  |     efficiently by using a script that updates the file for you. If the file | 
					
						
							|  |  |  |     is modified externally, you have to restart Qt Creator for the changes to | 
					
						
							|  |  |  |     take effect. | 
					
						
							| 
									
										
										
										
											2009-08-03 14:54:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To update the \c .files on the \gui git repository use the following | 
					
						
							|  |  |  |     script: | 
					
						
							|  |  |  |     \code | 
					
						
							|  |  |  |     git ls-files *.cpp > MyProject.files | 
					
						
							|  |  |  |     \endcode | 
					
						
							| 
									
										
										
										
											2009-08-03 14:54:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Specifying Include Paths | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-01 14:48:39 +02:00
										 |  |  |     The include paths are specified in the \c{.includes} file, one include | 
					
						
							|  |  |  |     path per line. The paths can be either absolute or relative to the | 
					
						
							|  |  |  |     \c{.includes} file. | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Specifying Defines | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     The defines are specified in the \c .config file. This is a regular C++ | 
					
						
							|  |  |  |     file, prepended to all your source files when they are parsed. However, | 
					
						
							|  |  |  |     use it only to add lines like the following: | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-03 14:54:55 +02:00
										 |  |  |     \code | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  |     #define NAME value | 
					
						
							| 
									
										
										
										
											2009-08-03 14:54:55 +02:00
										 |  |  |     \endcode | 
					
						
							| 
									
										
										
										
											2009-07-24 16:37:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-01 14:48:39 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Creating a Run Configuration | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Qt Creator cannot automatically determine which executable to run. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To define the executable file to run, in the \gui Projects mode under | 
					
						
							|  |  |  |     \gui{Run Settings}: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Click \gui Add and select \gui{Custom Executable}. | 
					
						
							|  |  |  |         \o Define the configuration name, the location of the executable, any | 
					
						
							|  |  |  |            additional arguments you want to and the working directory. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Adding External Libraries to a Generic Project | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Through external libraries Qt Creator can support code completion and | 
					
						
							|  |  |  |     syntax highlighting as if they were part of the current project or the Qt | 
					
						
							|  |  |  |     library. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     If you import a project using the \gui{Import of Makefile-based Project} | 
					
						
							|  |  |  |     function, Qt Creator creates a file called <projectname>.includes in your | 
					
						
							|  |  |  |     project directory. This file contains all project subdirectories for which | 
					
						
							|  |  |  |     Qt Creator found relevant headers. Add your include paths here. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Note that in \gui Projects mode of a generic project, Qt Creator does not | 
					
						
							|  |  |  |     modify any project settings prior to the build. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Syntax completion and highlighting work once your project successfully | 
					
						
							|  |  |  |     builds and links against the external library. | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-06 16:22:20 +02:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-project-managing-sessions.html | 
					
						
							|  |  |  |     \page creator-developing-applications.html | 
					
						
							|  |  |  |     \nextpage creator-developing-maemo.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \title Developing Applications | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*! | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							|  |  |  |     \previouspage creator-developing-applications.html | 
					
						
							|  |  |  |     \page creator-developing-maemo.html | 
					
						
							|  |  |  |     \nextpage creator-developing-symbian.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \title Developing Maemo Applications | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Maemo is a software platform developed by Nokia for smartphones and | 
					
						
							|  |  |  |     Internet Tablets. The platform is based on the Linux operating system | 
					
						
							|  |  |  |     which itself is dervied from the Unix operating system. The platform | 
					
						
							|  |  |  |     comprises of the Maemo operating system and Maemo SDK. The Maemo SDK | 
					
						
							|  |  |  |     provides an open development environment for different applications on | 
					
						
							|  |  |  |     top of the maemo platform. Maemo 5 is based on the Linux 2.6 operating | 
					
						
							|  |  |  |     system. For more information refer, \l http://maemo.org/intro/platform/ | 
					
						
							|  |  |  |     {Maemo platform}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Getting Started with Maemo Based Applications | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To begin development for maemo applications, you require the following: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |        \o  An N900 device with updates installed. | 
					
						
							|  |  |  |        \o \bold MADDE is the acronym for Maemo Application Development and | 
					
						
							|  |  |  |            Debugging Environment. It is a cross-platform maemo development | 
					
						
							|  |  |  |            tool. For more information about \bold MADDE pertaining to its | 
					
						
							|  |  |  |            installation, configuration, and deployment on the device refer to | 
					
						
							|  |  |  |           \l{http://wiki.maemo.org/MADDE}{MADDE Preview} | 
					
						
							|  |  |  |        \o  In order to setup the device IP address, you need to install | 
					
						
							|  |  |  |            PC Connectivity or implement using CLI. For information on PC | 
					
						
							|  |  |  |            Connectivity refer to the link, | 
					
						
							|  |  |  |           \l http://pc-connectivity.garage.maemo.org/2nd_edition/node3.html#SECTION00032300000000000000 | 
					
						
							|  |  |  |            {PC Connectivity}. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     For deploying and running applications on the device, you need the | 
					
						
							|  |  |  |     following: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |        \o The Nokia USB drivers that come e.g. with PC Suite | 
					
						
							|  |  |  |        \o Qt Creator should be installed on the device. A simple technique to | 
					
						
							|  |  |  |           do this to run the maemo device \gui{Application Manager} and | 
					
						
							|  |  |  |           download any application using Qt Creator. This installs all | 
					
						
							|  |  |  |           dependencies required for Qt Creator at the same time. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Supported Platform | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      The Qt Creator/MADDE integration is supported on the following platforms: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |        \o  Linux (32 bit and 64 bit) | 
					
						
							|  |  |  |        \o  Windows (32 bit and 64 bit) | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Setting Up the N900 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \note The following assumes that you use the device's USB network | 
					
						
							|  |  |  |      functionality. If you plan to connect your development PC to the N900 | 
					
						
							|  |  |  |      via a common WLAN network, you can ignore the USB-specific parts in the | 
					
						
							|  |  |  |      following sections. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      \section2 Installing the Mad Developer Package | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      To install the Mad Developer package on your device, follow the steps | 
					
						
							|  |  |  |      listed below: | 
					
						
							|  |  |  |      \list 1 | 
					
						
							|  |  |  |          \o Open the application manager and select, | 
					
						
							|  |  |  |             \gui{Application catalogues} > \gui New. | 
					
						
							|  |  |  |             Enter the data as displayed in the screenshot below | 
					
						
							|  |  |  |             \note The complete web address is | 
					
						
							|  |  |  |             \l http://repository.maemo.org/extras-devel | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             \image qtcreator-app-manager-extras-devel-screenshot.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |          \o Click \gui Save and close the application manager. | 
					
						
							|  |  |  |          \o Start xterm and create root: sudo gainroot. | 
					
						
							|  |  |  |          \o Install \gui{apt-get install mad-developer}. | 
					
						
							|  |  |  |          \o Start the Mad Developer apllication. | 
					
						
							|  |  |  |      \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    \note In case you are using Microsoft Windows as development host, you will | 
					
						
							|  |  |  |          need to change the driver loaded for instantiating the connection. | 
					
						
							|  |  |  |          For this click, \gui{Manage USB} and select \gui{Load g_ether}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Click \gui Edit in the usb0 row and confirm with \gui Configure. No | 
					
						
							|  |  |  |     changes need to be made by default. The usb0 row should now display the | 
					
						
							|  |  |  |     IP address 192.168.2.15. Now select \gui{Developer Password} to generate | 
					
						
							|  |  |  |     a password for a freshly created user called "developer". | 
					
						
							|  |  |  |     The password will stay valid for as long this dialog is open. | 
					
						
							|  |  |  |     Refer to the screenshot below as an example. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-mad-developer-screenshot.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Installing the gdbserver | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     If you plan to debug your application on the N900 via Qt Creator, you will | 
					
						
							|  |  |  |     need the gdbserver application, which is part of the gdb packages. | 
					
						
							|  |  |  |     This package is not available in the standard repository yet, | 
					
						
							|  |  |  |     as it is under development currently. This requires setting up another | 
					
						
							|  |  |  |     repository in the application manager. Follow the steps as mentioned in | 
					
						
							|  |  |  |     Installing the Mad Developer package and | 
					
						
							|  |  |  |     enter the data as displayed in the screenshot below. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-app-manager-sdk-screenshot.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Click \gui Save and exit the application manager. Now you can | 
					
						
							|  |  |  |     install gdb. Again, use the xterm and gain root access. | 
					
						
							|  |  |  |     You can install gdb via xterm: \gui{apt-get install gdb}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Establishing the USB Connection | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Connect your device to the development PC via the USB cable. A dialog will | 
					
						
							|  |  |  |     pop up asking for the mode to use. Choose \gui{PC suite mode}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \note There have been reports about connection problems due to unreliable | 
					
						
							|  |  |  |     USB ports. Switching to a different port might help in such a case. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Setting Up the Host PC | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Establishing the USB Connection | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section3 Linux | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Run the following command in a shell as root user: | 
					
						
							|  |  |  |                   \c{ifconfig usb0 192.168.2.14 up} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section3 Windows | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     For Microsoft Windows, you will have perform the same steps via the Network | 
					
						
							|  |  |  |     configuration tools available with the operating system. | 
					
						
							|  |  |  |     Please open the network interface properties as shown in following | 
					
						
							|  |  |  |     screenshots: | 
					
						
							|  |  |  |     \image qtcreator-win-usb-network1.png | 
					
						
							|  |  |  |     \image qtcreator-win-usb-network2.png | 
					
						
							|  |  |  |     \image qtcreator-win-usb-network3.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Change the IP to be set statically and enter the following values: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |        \o  IP Address: 192.168.2.14 | 
					
						
							|  |  |  |        \o  SubnetMask: 255.255.255.0 | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Accept these settings and close the Network Configuration. Depending on | 
					
						
							|  |  |  |     your version of Microsoft Windows you might have to unplug and re-plug the | 
					
						
							|  |  |  |     N900 to reload the driver with its according configuration. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Setting Up MADDE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     After having downloaded the MADDE installer file for your platform from | 
					
						
							|  |  |  |     \l{http://wiki.maemo.org/MADDE}{here}, execute it and follow the | 
					
						
							|  |  |  |     instructions. The package will be installed. Then run: | 
					
						
							|  |  |  |     \c{mad-admin list targets} to see which targets are available. | 
					
						
							|  |  |  |     One of them should start with "fremantle". Install that one: | 
					
						
							|  |  |  |     \c{mad-admin create fremantle-qt-xxx}. | 
					
						
							|  |  |  |     After that, you will have a toolchain and a sysroot environment for | 
					
						
							|  |  |  |     cross-compiling available. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Setting Up Qt Creator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Registering the MADDE Toolchain | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Select \gui Tools > \gui Options > \gui Qt4 > \gui{Qt Versions}. | 
					
						
							|  |  |  |     Click \inlineimage qtcreator-windows-add.png, | 
					
						
							|  |  |  |     to add a new Qt version. The \gui{QMake Location} is the qmake executable | 
					
						
							|  |  |  |     in \c{<MADDE dir>/targets/<fremantle target>/bin}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-screenshot-toolchain.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Creating a Device Configuration | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     In order to deploy applications and run them remotely, Qt Creator needs to | 
					
						
							|  |  |  |     know some parameters for device access. These are set in device | 
					
						
							|  |  |  |     configurations. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Select \gui Tools > \gui Options > \gui Qt4 > | 
					
						
							|  |  |  |     \gui{Maemo Device Configurations} and add a new configuration. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-screenshot-devconf.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    \note The password is the one mad developer displays on the device. | 
					
						
							|  |  |  |    Click \gui Test to check whether the device can be accessed properly. It is | 
					
						
							|  |  |  |    recommended that you use the password-based login only to deploy your public | 
					
						
							|  |  |  |    SSH key to the device (using the \gui{Deploy Key} button) and then switch to | 
					
						
							|  |  |  |    key-based authentication. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Close the dialog by clicking, the \gui OK button after completion. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    \section2 Setting Build and Run Configuration | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Open a project for an application you want to develop for your N900. | 
					
						
							|  |  |  |    Click \gui Projects to open the projects mode. In the \gui{Build Settings} | 
					
						
							|  |  |  |    section, choose the MADDE Qt version which you registered earlier: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    \image qtcreator-screenshot-build-settings.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    In the \gui{Run Settings} section, click \gui Add to add a new | 
					
						
							|  |  |  |    run configuration on the maemo device. Set a name and select the device | 
					
						
							|  |  |  |    configuration you created above in the popup menu. The result is | 
					
						
							|  |  |  |    shown below: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    \image qtcreator-screenshot-run-settings.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    \section2 Compiling, Running and Debugging Your Application | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    You can now continue your work as you were developing for any other platform | 
					
						
							|  |  |  |    supported by Qt Creator: For compiling, Qt Creator will use the MADDE | 
					
						
							|  |  |  |    toolchain's cross compiler. When you run your application, it will be | 
					
						
							|  |  |  |    automatically copied onto the device and executed there. Your application's | 
					
						
							|  |  |  |    windows will be displayed on the N900, command-line output can be seen in Qt | 
					
						
							|  |  |  |    Creator's "Application output" window. Debugging works transparently as well. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    \section1 Deploying the Application On Your Device | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Once you succesfully build and run you application on Qt Creator, you | 
					
						
							|  |  |  |     can deploy it onto your mobile device. The executable is copied onto the | 
					
						
							|  |  |  |     device and runs in the same manner on the device as on your PC. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							|  |  |  |     \previouspage creator-developing-maemo.html | 
					
						
							|  |  |  |     \page creator-developing-symbian.html | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \nextpage creator-debugging.html | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Developing Symbian Applications | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator 1.3 comes with preliminary support for development of | 
					
						
							|  |  |  |     applications using Qt for the Symbian Platform. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \e{Note that this is highly experimental, and not intended for production use. | 
					
						
							|  |  |  |     The primary aim is to allow Symbian developers to familiarize themselves with Qt Creator | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     and provide feedback that helps us improve Symbian support in future versions of | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  |     Qt Creator.} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Please provide us with feedback, using the mailing list or IRC, as described on the | 
					
						
							|  |  |  |     \l{http://qt.gitorious.org/qt-creator/pages/Home}{Qt Creator Development Wiki}. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Getting Started with Symbian Based Applications | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     You need the following software installed on your PC. | 
					
						
							|  |  |  |     Only Windows development is supported. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o \l{http://www.forum.nokia.com/main/resources/tools_and_sdks/S60SDK/} | 
					
						
							|  |  |  |             {S60 Platform SDK 3rd Edition FP1 or higher} | 
					
						
							|  |  |  |         \o \l{http://www.forum.nokia.com/main/resources/technologies/openc_cpp/} | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             {Open C/C++ v1.6.0 or higher} (Install this to all S60 SDKs you plan to use Qt with. | 
					
						
							|  |  |  |             This is included in the Qt for Symbian binary installers.) | 
					
						
							|  |  |  |         \o Either the GCCE ARM Toolchain that is included in the S60 Platform SDKs, or | 
					
						
							|  |  |  |             RVCT 2.2 [build 686] or later (which is not available free of charge) | 
					
						
							|  |  |  |             (Your environment needs to find the compiler in the PATH.) | 
					
						
							|  |  |  |         \o Qt for Symbian 4.6.0, installed into the S60 SDKs you want to use | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     For deploying and running applications on the device, you need the following: | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  |     \list | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o The Nokia USB drivers that come e.g. with PC Suite | 
					
						
							|  |  |  |         \o The \l{http://tools.ext.nokia.com/trk/}{App TRK} application for your device | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Running Qt based applications on real devices requires the following packages to be installed on | 
					
						
							|  |  |  |     your device. The packages can be found in the S60 SDK where you installed Open C/C++: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o nokia_plugin\\openc\\s60opencsis\\pips_s60_\<version\>.sis | 
					
						
							|  |  |  |         \o nokia_plugin\\openc\\s60opencsis\\openc_ssl_s60_\<version\>.sis | 
					
						
							|  |  |  |         \o nokia_plugin\\opencpp\\s60opencppsis\\stdcpp_s60_\<version\>.sis | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     If you want to run your applications in the Symbian emulator, you also need to install | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  |     Carbide.c++ v2.0.0 or higher. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Setting Up Qt Creator | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     When you run Qt Creator after installing the S60 Platform SDK and Qt for Symbian, | 
					
						
							|  |  |  |     the installed SDKs and their corresponding Qt versions are automatically detected. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     For each detected S60 SDK with Qt, a special entry is made in the Qt version management | 
					
						
							|  |  |  |     settings \gui{Tools > Options... > Qt4 > Qt Versions}. | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-12 18:42:08 +01:00
										 |  |  |     \e{Note that if you manually add a Qt version for Symbian, you must | 
					
						
							|  |  |  |     also manually specify the S60 SDK to use for this version.} | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-qt4-qtversions-win-symbian.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     If you want to run your applications in the Symbian emulator, you need to point Qt Creator | 
					
						
							| 
									
										
										
										
											2009-11-12 18:42:08 +01:00
										 |  |  |     to the Metrowerks Compiler that you want to use, by setting the \gui{Carbide Directory} | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  |     of the Qt version to the corresponding Carbide.c++ installation directory. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     You can check what S60 SDKs and corresponding Qt versions are found in the | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \gui{Tools > Options... > Qt4 > S60 SDKs} preference page. | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-qt4-s60sdks.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Building Your Project | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     After installing all the prerequisites and checking the setup in Qt Creator as described | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     above, you need to set up your project. | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  |     \e{Note that the only supported build system for Qt for Symbian applications in Qt Creator | 
					
						
							|  |  |  |     is qmake.} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Before you can build your project for the Symbian platform, you need to create build | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  |     configurations for it. | 
					
						
							|  |  |  |     Open \gui{Projects mode} and make sure that your project is selected for editing in | 
					
						
							|  |  |  |     \gui{Edit Project Settings for Project ...}. Add debug and release build configurations | 
					
						
							|  |  |  |     for the Symbian target by selecting the corresponding Qt version from the build configuration | 
					
						
							|  |  |  |     \gui{Add} menu. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-symbian-add-buildconfiguration.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The created build configurations default to using the GCCE tool chain. If you want to build | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     for the device using RVCT, or for the Symbian emulator using WINSCW, select \gui{Show Details} | 
					
						
							|  |  |  |     and change the tool chain in the \gui{General} section of the build configuration settings. | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Now you can switch to building your project for the device by selecting one of the | 
					
						
							|  |  |  |     new build configurations as the active configuration at the top of \gui{Projects mode}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-symbian-change-buildconfiguration.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section1 Running Your Project | 
					
						
							| 
									
										
										
										
											2009-11-13 10:57:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section2 Running Your Project in the Emulator | 
					
						
							| 
									
										
										
										
											2009-11-13 10:57:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     Similar to the build configuration setup for your project, you need to create a run | 
					
						
							|  |  |  |     configuration for running your project in the Symbian emulator: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Switch to \gui{Projects mode}. | 
					
						
							|  |  |  |         \o Select \gui{Run Settings} > \gui{Add > YourApplication in Symbian Emulator} | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-11-13 10:57:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-symbian-add-run-in-emulator.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     To start your project in the emulator, select this run configuration as the active configuration | 
					
						
							|  |  |  |     at the top of \gui{Projects mode} window and press the run button. | 
					
						
							| 
									
										
										
										
											2009-11-13 10:57:53 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-symbian-change-run-in-emulator.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \section2 Running Your Project on the Device | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 10:57:53 +01:00
										 |  |  |     To run your project on a real Symbian device, just add another run configuration in | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \gui{Projects mode} via \gui{Run Settings} > \gui{Add > YourApplication on Symbian Device}. | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-symbian-add-runconfiguration.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-symbian-details-runconfiguration.png | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     In the details of the run configuration you can specify a certificate to use, and | 
					
						
							|  |  |  |     select one of the devices that you have currently attached to your computer. | 
					
						
							|  |  |  |     The only connection mode supported at the moment is USB in \e{PC Suite} mode. | 
					
						
							|  |  |  |     For actually running your application on the device, you need to set the device run configuration | 
					
						
							|  |  |  |     as the active configuration at the top of \gui{Projects mode}. | 
					
						
							|  |  |  |     Start the \gui{App TRK} application on your device and press the run button to create | 
					
						
							|  |  |  |     a package for your application, deploy, install and run it automatically on your device. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \image qtcreator-symbian-change-runconfiguration.png | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-13 10:57:53 +01:00
										 |  |  |     \section2 Troubleshooting | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     If you cannot build the application, check if: | 
					
						
							|  |  |  |      \list | 
					
						
							|  |  |  |         \o You selected a Qt version for Symbian for building the application. | 
					
						
							|  |  |  |         \o The settings for the Qt version you use to build your project are | 
					
						
							|  |  |  |            correct. The path to the S60 SDK must point to the S60 SDK | 
					
						
							|  |  |  |            installation directory.  Select \gui Tools > \gui Options... | 
					
						
							|  |  |  |            > \gui Debugger > \gui{Symbian TRK} and check if it points to the | 
					
						
							|  |  |  |            debugger toolchain. | 
					
						
							|  |  |  |      \endlist | 
					
						
							|  |  |  |     If you cannot run the application in the emulator, check if: | 
					
						
							|  |  |  |      \list | 
					
						
							|  |  |  |         \o The emulator or device run configuration selected is in the active | 
					
						
							|  |  |  |            run configuration. | 
					
						
							|  |  |  |         \o You built the application for the emulator by using  WINSCW  or for | 
					
						
							|  |  |  |            the device by using GCCE or RVCT. | 
					
						
							|  |  |  |         \o The emulator process cannot be started, try closing Qt Creator and | 
					
						
							|  |  |  |            starting the application directly from your file manager. Having | 
					
						
							|  |  |  |            done this, Qt Creator should be able to run your projects in the | 
					
						
							|  |  |  |            emulator. | 
					
						
							|  |  |  |      \endlist | 
					
						
							|  |  |  |     If you cannot run the application on a device, check if: | 
					
						
							|  |  |  |      \list | 
					
						
							|  |  |  |         \o The device is connected via USB in \e{PC Suite} mode. | 
					
						
							|  |  |  |         \o App TRK is running on the device, using the USB connection, with the | 
					
						
							|  |  |  |            status \e connected. | 
					
						
							|  |  |  |         \o The device is detected and selected in the run configuration | 
					
						
							|  |  |  |            details. | 
					
						
							|  |  |  |      \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     If this does not help to solve your problem, search the qt-creator@trolltech.com | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     mailing list archives or provide feedback to us via the methods described on the | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  |     \l{http://qt.gitorious.org/qt-creator/pages/Home}{Qt Creator Development Wiki}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-09 18:47:06 +02:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-version-control.html | 
					
						
							|  |  |  |     \page creator-tips.html | 
					
						
							|  |  |  |     \nextpage creator-keyboard-shortcuts.html | 
					
						
							| 
									
										
										
										
											2009-05-06 16:22:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \title Tips and Tricks | 
					
						
							| 
									
										
										
										
											2009-05-06 16:22:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-13 18:00:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Switching between modes | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Qt Creator uses different modes for different purposes. You can quickly | 
					
						
							|  |  |  |     switch between these modes with the following keyboard shortcuts: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o \gui Welcome mode \key Ctrl+1 | 
					
						
							|  |  |  |         \o \gui Edit mode \key Ctrl+2 | 
					
						
							|  |  |  |         \o \gui Debug mode \key Ctrl+3 | 
					
						
							|  |  |  |         \o \gui Projects mode \key Ctrl+4 | 
					
						
							|  |  |  |         \o \gui Help mode \key Ctrl+5 | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-05-13 18:00:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     For more information about Qt Creator modes, see \l{Qt Creator modes}. | 
					
						
							| 
									
										
										
										
											2009-05-06 16:22:20 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Moving Between Open Files | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To quickly move between currently open files, press | 
					
						
							|  |  |  |     \key Ctrl+Tab. | 
					
						
							| 
									
										
										
										
											2009-05-13 18:00:54 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-06 16:22:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Moving To the Edit Mode | 
					
						
							| 
									
										
										
										
											2009-08-03 15:58:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To move to the \gui Edit mode and currently active file, press | 
					
						
							|  |  |  |     \key Esc. | 
					
						
							| 
									
										
										
										
											2009-08-03 15:58:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     If you already are in the \gui Edit mode: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o The first press moves focus to the editor | 
					
						
							|  |  |  |         \o The second press closes secondary windows | 
					
						
							|  |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-06 16:22:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Using Keyboard Shortcuts | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Qt Creator provides \l{Keyboard shortcuts}{many useful keyboard shortcuts}. | 
					
						
							| 
									
										
										
										
											2009-05-06 16:22:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To customize, import or export keyboard shortcuts, select \gui Tools > | 
					
						
							|  |  |  |     \gui Options... > \gui Environment > \gui Keyboard. | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Running Qt Creator From Command Line | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     You can launch Qt Creator from command line using the name of an | 
					
						
							|  |  |  |     existing session or \c .pro file by giving the name as the command | 
					
						
							|  |  |  |     argument. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     For example, running \tt{qtcreator somesession}, launches Qt Creator and | 
					
						
							|  |  |  |     loads session somesession. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \note Make sure Qt Creator is included in the PATH environment variable. | 
					
						
							|  |  |  |     This can be done by typing the following in the command line: | 
					
						
							|  |  |  |     \code | 
					
						
							|  |  |  |     set PATH=c:\qtsdk\mingw\bin;c:\qtsdk\qt\bin;%PATH% | 
					
						
							|  |  |  |     \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Showing and Hiding the Sidebar | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To toggle the sidebar in the \gui Edit and \gui Debug modes, click | 
					
						
							|  |  |  |     \inlineimage qtcreator-togglebutton.png | 
					
						
							|  |  |  |     or press \key Alt+0 (\key Cmd+0 on Mac OS X). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     For more information on using the sidebar, see \l{The sidebar}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Moving To Symbols | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     To move straight to a symbol used in a project, select the symbol in the | 
					
						
							|  |  |  |     \gui Editor toolbar drop-down menu. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     For more information on the editor toolbar, | 
					
						
							|  |  |  |     see \l{Using the editor toolbar}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \section1 Displaying Signals and Slots | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     If an instance of a class is derived from QObject, and you would like to | 
					
						
							|  |  |  |     find all other objects connected to one of your object's slots using | 
					
						
							|  |  |  |     Qt's signals and slots mechanism, select \gui Tools > \gui Options... | 
					
						
							|  |  |  |     > \gui{Debugging Helper} > \gui{Use Debugging Helper}. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-05 15:24:45 +01:00
										 |  |  |     In the \gui{Locals and Watchers} view, expand the object's entry and open | 
					
						
							|  |  |  |     the slot in the \e slots subitem. The objects connected to this slot are | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     shown as children of the slot. This method works with signals too. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \section1 Displaying Low Level Data | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-30 14:25:06 +02:00
										 |  |  |     If special debugging of Qt objects fails due to data corruption within the | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     debugged objects, you can switch off the debugging helpers. When debugging | 
					
						
							|  |  |  |     helpers are switched off low-level structures become visible. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To switch off the debugging helpers: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui Tools > \gui Options... > \gui Debugger > | 
					
						
							|  |  |  |            \gui{Debugging Helper}. | 
					
						
							|  |  |  |         \o Uncheck the \gui{Use debugging helper} checkbox. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-15 15:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							|  |  |  |     \previouspage creator-tips.html | 
					
						
							|  |  |  |     \page creator-keyboard-shortcuts.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \nextpage creator-known-issues.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \title Keyboard Shortcuts | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     Qt Creator provides various keyboard shortcuts to speed up your development | 
					
						
							|  |  |  |     process. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Configuring Keyboard Shortcuts | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     To customize a keyboard shortcut: | 
					
						
							|  |  |  |     \list 1 | 
					
						
							|  |  |  |         \o Select \gui Tools > \gui Options > \gui Environment > | 
					
						
							|  |  |  |            \gui Keyboard. | 
					
						
							|  |  |  |         \o Select an action from the list. | 
					
						
							|  |  |  |         \o In \gui{Key Sequence} enter the shortcut key you want to associate | 
					
						
							|  |  |  |            with the selected action. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator allows you to use different keyboard shortcut mapping schemes: | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |         \o To import a keyboard shortcut mapping scheme, click \gui Import | 
					
						
							|  |  |  |            and select the kms file containing keyboard shortcut mapping scheme | 
					
						
							|  |  |  |            you want to import. | 
					
						
							|  |  |  |         \o To export the current keyboard shortcut mapping scheme, click | 
					
						
							|  |  |  |            \gui Export and select the location where you want to save the | 
					
						
							|  |  |  |            exported kms file. | 
					
						
							|  |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Default Keyboard Shortcuts | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     The following tables list the default keyboard shortcuts. They are | 
					
						
							|  |  |  |     categorized by actions. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 General Keyboard Shortcuts | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Action | 
					
						
							|  |  |  |             \o Keyboard shortcut | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Open file or project | 
					
						
							|  |  |  |             \o Ctrl+O | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o New file or project | 
					
						
							|  |  |  |             \o Ctrl+N | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Open in external editor | 
					
						
							|  |  |  |             \o Alt+V, Alt+I | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Cut | 
					
						
							|  |  |  |             \o Ctrl+X | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Copy | 
					
						
							|  |  |  |             \o Ctrl+C | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Paste | 
					
						
							|  |  |  |             \o Ctrl+V | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Redo | 
					
						
							|  |  |  |             \o Ctrl+Y | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Save | 
					
						
							|  |  |  |             \o Ctrl+S | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Save all | 
					
						
							|  |  |  |             \o Ctrl+A | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Close window | 
					
						
							|  |  |  |             \o Ctrl+W | 
					
						
							| 
									
										
										
										
											2009-05-06 17:09:27 +02:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Close all | 
					
						
							|  |  |  |             \o Ctrl+Shift+W | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Go back | 
					
						
							|  |  |  |             \o Alt+Left | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Go forward | 
					
						
							|  |  |  |             \o Alt+Right | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Go to line | 
					
						
							|  |  |  |             \o Ctrl+L | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Next open document in history | 
					
						
							|  |  |  |             \o Ctrl+Shift+Tab | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Goto other split | 
					
						
							|  |  |  |             \o Ctrl+E, O | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Previous open document in history | 
					
						
							|  |  |  |             \o Ctrl+Tab | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Activate \gui Locator | 
					
						
							|  |  |  |             \o Ctrl+K | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Switch to \gui Welcome mode | 
					
						
							|  |  |  |             \o Ctrl+1 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Switch to \gui Edit mode | 
					
						
							|  |  |  |             \o Ctrl+2 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Switch to \gui Debug mode | 
					
						
							|  |  |  |             \o Ctrl+3 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Switch to \gui Projects mode | 
					
						
							|  |  |  |             \o Ctrl+4 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Switch to \gui Help mode | 
					
						
							|  |  |  |             \o Ctrl+5 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Switch to \gui Output mode | 
					
						
							|  |  |  |             \o Ctrl+6 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2008-12-12 21:50:29 +01:00
										 |  |  |             \o Toggle \gui{Build Issues} pane | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Alt+1 (Cmd+1 on Mac OS X) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2008-12-12 21:50:29 +01:00
										 |  |  |             \o Toggle \gui{Search Results} pane | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Alt+2 (Cmd+2 on Mac OS X) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2008-12-12 22:05:38 +01:00
										 |  |  |             \o Toggle \gui{Application Output} pane | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Alt+3 (Cmd+3 on Mac OS X) | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2008-12-12 21:50:29 +01:00
										 |  |  |             \o Toggle \gui{Compile Output} pane | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Alt+4 (Cmd+4 on Mac OS X) | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Activate \gui Bookmarks pane | 
					
						
							|  |  |  |             \o Alt+M | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Activate \gui{File System} pane | 
					
						
							|  |  |  |             \o Alt+Y | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Activate \gui{Open Documents} pane | 
					
						
							|  |  |  |             \o Alt+O | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Activate \gui Projects pane | 
					
						
							|  |  |  |             \o Alt+X | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Full screen | 
					
						
							|  |  |  |             \o Ctrl+Shift+F11 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Toggle the sidebar | 
					
						
							|  |  |  |             \o Alt+0 (Cmd+0 on Mac OS X) | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Undo | 
					
						
							|  |  |  |             \o Ctrl+Z | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Move to \gui Edit mode | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                In \gui Edit mode: | 
					
						
							|  |  |  |                \list | 
					
						
							|  |  |  |                 \o The first press moves focus to the editor | 
					
						
							|  |  |  |                 \o The second press closes secondary windows | 
					
						
							|  |  |  |                \endlist | 
					
						
							|  |  |  |             \o Esc | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \endtable | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \section2 Editing Keyboard Shortcuts | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |         \header | 
					
						
							|  |  |  |             \o Action | 
					
						
							|  |  |  |             \o Keyboard shortcut | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Auto-indent selection | 
					
						
							|  |  |  |             \o Ctrl+I | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Collapse | 
					
						
							|  |  |  |             \o Ctrl+< | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Expand | 
					
						
							|  |  |  |             \o Ctrl+> | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Trigger a completion in this scope | 
					
						
							|  |  |  |             \o Ctrl+Space | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Copy line down | 
					
						
							|  |  |  |             \o Ctrl+Alt+Down | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Copy line up | 
					
						
							|  |  |  |             \o Ctrl+Alt+Up | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Cut line | 
					
						
							|  |  |  |             \o Shift+Del | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Decrease font size | 
					
						
							|  |  |  |             \o Ctrl+- (Ctrl+Roll mouse wheel down) | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Increase font size | 
					
						
							|  |  |  |             \o Ctrl++ (Ctrl+Roll mouse wheel up) | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Toggle vim-style editing | 
					
						
							|  |  |  |             \o Alt+V, Alt+V | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Split | 
					
						
							|  |  |  |             \o Ctrl+E, 2 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Split side by side | 
					
						
							|  |  |  |             \o Ctrl+E, 3 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Remove all splits | 
					
						
							|  |  |  |             \o Ctrl+E, 1 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Remove current split | 
					
						
							|  |  |  |             \o Ctrl+E, 0 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Select all | 
					
						
							|  |  |  |             \o Ctrl+A | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Go to block end | 
					
						
							|  |  |  |             \o Ctrl+] | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Go to block start | 
					
						
							|  |  |  |             \o Ctrl+[ | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Go to block end with selection | 
					
						
							|  |  |  |             \o Ctrl+} | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Go to block start with selection | 
					
						
							|  |  |  |             \o Ctrl+{ | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Move current line down | 
					
						
							|  |  |  |             \o Ctrl+Shift+Down | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Move current line up | 
					
						
							|  |  |  |             \o Ctrl+Shift+Up | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Trigger a quick fix in this scope | 
					
						
							|  |  |  |             \o Alt+Return | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Rewrap paragraph | 
					
						
							|  |  |  |             \o Ctrl+E, R | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Select the current block | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |                The second press extends the selection to the parent block | 
					
						
							|  |  |  |             \o Ctrl+U | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Enable text wrapping | 
					
						
							|  |  |  |             \o Ctrl+E, Ctrl+W | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Toggle comment for selection | 
					
						
							|  |  |  |             \o Ctrl+/ | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Visualize whitespace | 
					
						
							|  |  |  |             \o Ctrl+E, Ctrl+V | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Delete | 
					
						
							|  |  |  |             \o Del | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Adjust size | 
					
						
							|  |  |  |             \o Ctrl+J | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Lay out in a grid | 
					
						
							|  |  |  |             \o Ctrl+G | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Lay out horizontally | 
					
						
							|  |  |  |             \o Ctrl+H | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Lay out vertically | 
					
						
							|  |  |  |             \o Ctrl+L | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Preview | 
					
						
							|  |  |  |             \o Ctrl+Alt+R | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Edit signals and slots | 
					
						
							|  |  |  |             \o F4 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Edit widgets | 
					
						
							|  |  |  |             \o F3 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Toggle bookmark | 
					
						
							|  |  |  |             \o Ctrl+M | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Go to next bookmark | 
					
						
							|  |  |  |             \o Ctrl+. | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Go to previous bookmark | 
					
						
							|  |  |  |             \o Ctrl+, | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Fetch snippet | 
					
						
							|  |  |  |             \o Alt+C, Alt+F | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Paste snippet | 
					
						
							|  |  |  |             \o Alt+C, Alt+P | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Find usages | 
					
						
							|  |  |  |             \o Ctrl+Shift+U | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Follow symbol under cursor | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |                Works with namespaces, classes, methods, variables, include | 
					
						
							|  |  |  |                statements and macros | 
					
						
							|  |  |  |             \o F2 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Rename symbol under cursor | 
					
						
							|  |  |  |             \o Ctrl+Shift+R | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Switch between method declaration and definition | 
					
						
							|  |  |  |             \o Shift+F2 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Switch between header and source file | 
					
						
							|  |  |  |             \o F4 | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Debugging Keyboard Shortcuts | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o Action | 
					
						
							|  |  |  |             \o Keyboard shortcut | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Start debugging | 
					
						
							|  |  |  |             \o F5 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Stop or interrupt debugger | 
					
						
							|  |  |  |             \o Shift+F5 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Reset debugger | 
					
						
							|  |  |  |             \o Ctrl+Shift+F5 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Step over | 
					
						
							|  |  |  |             \o F10 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Step into | 
					
						
							|  |  |  |             \o F11 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Step out | 
					
						
							|  |  |  |             \o Shift+F11 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Toggle breakpoint | 
					
						
							|  |  |  |             \o F9 | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section2 Project Keyboard Shortcuts | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o Action | 
					
						
							|  |  |  |             \o Keyboard shortcut | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Build project | 
					
						
							|  |  |  |             \o Ctrl+B | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \row | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |             \o Build all | 
					
						
							|  |  |  |             \o Ctrl+Shift+B | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o New project | 
					
						
							|  |  |  |             \o Ctrl+Shift+N | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Run | 
					
						
							|  |  |  |             \o Ctrl+R | 
					
						
							|  |  |  |     \endtable | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \section2 Help Keyboard Shortcuts | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o Action | 
					
						
							|  |  |  |             \o Keyboard shortcut | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o View context-sensitive help | 
					
						
							|  |  |  |             \o F1 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Activate contents in \gui Help mode | 
					
						
							|  |  |  |             \o Ctrl+T | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Add bookmark in \gui Help mode | 
					
						
							|  |  |  |             \o Ctrl+M | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Activate index in \gui Help mode | 
					
						
							|  |  |  |             \o Ctrl+I | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Reset font size in \gui Help mode | 
					
						
							|  |  |  |             \o Ctrl+0 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Activate search in \gui Help mode | 
					
						
							|  |  |  |             \o Ctrl+S | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \section2 Version Control Keyboard Shortcuts | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o 1,2 Action | 
					
						
							|  |  |  |             \o 4,1 Version control system | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o CVS | 
					
						
							|  |  |  |             \o Git | 
					
						
							|  |  |  |             \o Perforce | 
					
						
							|  |  |  |             \o Subversion | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Add | 
					
						
							|  |  |  |             \o Alt+C, Alt+A | 
					
						
							|  |  |  |             \o Alt+G, Alt+A | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+S, Alt+A | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Commit | 
					
						
							|  |  |  |             \o Alt+C, Alt+C | 
					
						
							|  |  |  |             \o Alt+G, Alt+C | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Diff | 
					
						
							|  |  |  |             \o Alt+C, Alt+D | 
					
						
							|  |  |  |             \o Alt+G, Alt+D | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+S, Alt+D | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Diff project | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+G, Alt+Shift+D | 
					
						
							|  |  |  |             \o Alt+P, Alt+D | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Blame | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+G, Alt+B | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Log | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+G, Alt+L | 
					
						
							|  |  |  |             \o Alt+P, Alt+F | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Log project | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+G, Alt+K | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Status | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+G, Alt+S | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Undo changes | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+G, Alt+U | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Diff project | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+G, Alt+Shift+D | 
					
						
							|  |  |  |             \o Alt+P, Alt+D | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Edit | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+P, Alt+E | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Opened | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+P, Alt+O | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Revert | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+P, Alt+R | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o Submit | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |             \o Alt+P, Alt+S | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |     \endtable | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-15 15:59:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-known-issues.html | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |     \page creator-glossary.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \nextpage creator-acknowledgements.html | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \title Glossary | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \table | 
					
						
							|  |  |  |         \header | 
					
						
							|  |  |  |             \o  Term | 
					
						
							|  |  |  |             \o  Meaning | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |                 \raw HTML | 
					
						
							| 
									
										
										
										
											2009-11-12 18:42:08 +01:00
										 |  |  |                 Qt in PATH | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |                 \endraw | 
					
						
							|  |  |  |                 \target glossary-system-qt | 
					
						
							| 
									
										
										
										
											2009-11-12 18:42:08 +01:00
										 |  |  |             \o  This is the Qt | 
					
						
							|  |  |  |                 version for the \c qmake command found in your \c PATH | 
					
						
							| 
									
										
										
										
											2009-11-23 12:55:07 +01:00
										 |  |  |                 environment variable. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |                 This is likely to be the system's Qt version. | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |                 \raw HTML | 
					
						
							|  |  |  |                 Default Qt | 
					
						
							|  |  |  |                 \endraw | 
					
						
							|  |  |  |                 \target glossary-default-qt | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o  The version of Qt configured in \gui{Tools > Options... > Qt 4 | 
					
						
							|  |  |  |                 > Default Qt Version}. This is the Qt version used by your | 
					
						
							|  |  |  |                 new projects. It defaults to the Qt in PATH. | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |                 \raw HTML | 
					
						
							|  |  |  |                 Project Qt | 
					
						
							|  |  |  |                 \endraw | 
					
						
							|  |  |  |                 \target glossary-project-qt | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |             \o  The version of Qt configured in \gui{Build&Run > Build | 
					
						
							|  |  |  |                 Settings > Build Configurations}. This is the Qt version that | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |                 is actually used by a particular project. It defaults to | 
					
						
							|  |  |  |                 Default Qt. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \row | 
					
						
							|  |  |  |             \o | 
					
						
							|  |  |  |                 \raw HTML | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |                 Shadow build | 
					
						
							| 
									
										
										
										
											2009-02-27 11:59:45 +01:00
										 |  |  |                 \endraw | 
					
						
							|  |  |  |                 \target glossary-shadow-build | 
					
						
							|  |  |  |             \o  Shadow building means building a project in a separate | 
					
						
							|  |  |  |                 directory, the \e{build directory}. The build directory is | 
					
						
							|  |  |  |                 different from the source directory. One of the benefits of | 
					
						
							|  |  |  |                 shadow building is that it keeps your source directory clean. | 
					
						
							|  |  |  |                 Shadow building is the best practice if you need many build | 
					
						
							|  |  |  |                 configurations for a single set of source. | 
					
						
							|  |  |  |     \endtable | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-keyboard-shortcuts.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \page creator-known-issues.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \nextpage creator-glossary.html | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-28 15:48:16 +02:00
										 |  |  |     \title Known Issues | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     There are some known issues with Qt Creator. | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |     The development team is aware of them, there is no need to report them as bugs. | 
					
						
							| 
									
										
										
										
											2009-05-28 15:48:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-02 16:27:03 +02:00
										 |  |  |     \section1 Known Issues of Version 1.3.80 | 
					
						
							| 
									
										
										
										
											2009-05-28 15:31:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-09 17:44:43 +02:00
										 |  |  |     \list | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o Debugging Helper does not work while performing On-Device Debugging. | 
					
						
							| 
									
										
										
										
											2009-10-09 17:44:43 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o QML Preview (Run Project) only works if built against Qt with | 
					
						
							| 
									
										
										
										
											2009-10-09 17:44:43 +02:00
										 |  |  |            Declarative UI. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \o Setting breakpoints in code that is compiled into the binary more | 
					
						
							|  |  |  |            than once does not work. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o On Linux and Windows, installing Qt with one user account and | 
					
						
							| 
									
										
										
										
											2009-11-02 18:27:39 +01:00
										 |  |  |         then using it with another requires other users to manually set | 
					
						
							|  |  |  |         the Qt version. On Windows, setting the MinGW location is | 
					
						
							|  |  |  |         required as well. The same applies to the location of GDB for Symbian. | 
					
						
							|  |  |  |         A workaround is to copy %APPDATA%/Nokia/qtcreator.ini (Windows) or | 
					
						
							|  |  |  |         $HOME/.config/Nokia/QtCreator.ini (Linux) from the directory | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         of the user who installed Qt Creator to the other user. | 
					
						
							|  |  |  |         This issue does not exist on Mac OS X. | 
					
						
							| 
									
										
										
										
											2009-11-02 18:27:39 +01:00
										 |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-10-09 17:44:43 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \section1 Known Issues of Version 1.2.0 and 1.2.1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-28 15:31:12 +02:00
										 |  |  |     \list | 
					
						
							| 
									
										
										
										
											2009-05-28 15:48:16 +02:00
										 |  |  |         \o Gdb on Windows may not work if the 'Embassy \reg Security Center' software | 
					
						
							|  |  |  |            by 'Wave \reg Systems' is installed and active (causing crashes in \c{vxvault.dll)}). | 
					
						
							| 
									
										
										
										
											2009-06-17 15:59:32 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-28 15:48:16 +02:00
										 |  |  |         \o Only simple data types (POD) work in the Watch Window of CDB. | 
					
						
							| 
									
										
										
										
											2009-06-17 15:59:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         \o Qt Creator uses SQLite for storing some of its settings. SQLite is | 
					
						
							|  |  |  |            known to have problems with certain NFS servers (most notably the | 
					
						
							|  |  |  |            nfs-user-server 2.2beta), since they can lock up the application | 
					
						
							|  |  |  |            when it tries to lock the database. If your home directory is on an | 
					
						
							|  |  |  |            NFS share and you encounter this issue, one option would be to | 
					
						
							|  |  |  |            switch to the nfs-kernel-server, or create a symlink so that the | 
					
						
							|  |  |  |            settings are stored locally. | 
					
						
							| 
									
										
										
										
											2009-05-28 15:31:12 +02:00
										 |  |  |     \endlist | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-28 15:48:16 +02:00
										 |  |  |     \section1 Known Issues of Version 1.1.0 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o Paths or file names containing spaces or special characters, e.g., | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |            colons, dollar signs, hash marks etc. may cause problems. This | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |            is because some of the tools Qt Creator uses in the background have | 
					
						
							|  |  |  |            restrictions on the characters allowed in file and directory names. | 
					
						
							| 
									
										
										
										
											2009-02-04 14:15:13 +01:00
										 |  |  |            To be on the safe side, we recommend creating projects and project | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |            items with names consisting of plain characters, numbers, | 
					
						
							|  |  |  |            underscores, and hyphens. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o \c{.pro} files are reformatted if files have been added or removed. | 
					
						
							|  |  |  |            Whitespace is not preserved. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o There is no IDE support for adding files to include (\c .pri) files. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o There is no IDE support for adding/removing sub-projects. Project | 
					
						
							|  |  |  |            hierarchies (SUBDIRS template) have to be created manually. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o The file system sidebar does not update automatically. As a | 
					
						
							|  |  |  |            workaround, switch to another directory and then back. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o Loading KDE4 designer plugins breaks the style in KDE < 4.2.1 | 
					
						
							|  |  |  |            due to a bug in KDE. | 
					
						
							| 
									
										
										
										
											2008-12-17 16:33:42 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-16 17:01:25 +02:00
										 |  |  |         \o The DEFINES and INCLUDES set in \c{.pro} files are not dealt with | 
					
						
							|  |  |  |            on a file-specific level. Because of this, handling of DEFINES has | 
					
						
							|  |  |  |            been disabled completely. Also the \c{.qmake.cache} is not being | 
					
						
							|  |  |  |            parsed. In general, the \c{.pro} file parser is incomplete and | 
					
						
							|  |  |  |            problems are still to be expected. | 
					
						
							| 
									
										
										
										
											2008-12-17 16:33:42 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o Code completion for generated UI header files is updated only | 
					
						
							|  |  |  |            after a build. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \o Code completion does not support typedefs for nested classes. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         \o There is a kernel bug essentially making debugging unreliable on | 
					
						
							|  |  |  |            2.6.24 kernels for i386 (which is, unfortunately, the default on | 
					
						
							|  |  |  |            Ubuntu 8.04). See | 
					
						
							|  |  |  |            \l{https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/230315/} for | 
					
						
							|  |  |  |            details. The only solution to this problem is to boot another | 
					
						
							|  |  |  |            kernel. | 
					
						
							| 
									
										
										
										
											2009-02-27 10:32:10 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o Gdb may take long to load debugging symbols, especially from large | 
					
						
							|  |  |  |            libraries like \c libQtWebKit. Starting the debugging module can | 
					
						
							|  |  |  |            take up to several minutes without visible progress. | 
					
						
							| 
									
										
										
										
											2008-12-17 16:33:42 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-03 15:41:03 +01:00
										 |  |  |         \o Setting breakpoints in files that do not have unique absolute | 
					
						
							|  |  |  |            paths may fail. For example, remounting parts of a file system | 
					
						
							|  |  |  |            using the --bind mount option. | 
					
						
							| 
									
										
										
										
											2008-12-17 16:33:42 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  |         \o There is no syntax highlighting for \c CMake project files. | 
					
						
							| 
									
										
										
										
											2009-04-01 14:43:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         \o Project files included from \c{CMakeLists.txt} are not shown in the | 
					
						
							|  |  |  |            navigation tree. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o Using the Visual Studio Compiler with \c CMake is not supported. | 
					
						
							| 
									
										
										
										
											2009-04-01 14:43:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  |         \o Creating new \c CMake projects with Qt Creator is not supported. | 
					
						
							| 
									
										
										
										
											2009-04-01 14:43:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  |         \o Having more than one build directory for \c CMake is not supported. | 
					
						
							| 
									
										
										
										
											2009-04-01 14:43:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-01 17:48:05 +02:00
										 |  |  |         \o Changing the build directory for \c CMake after the initial import | 
					
						
							|  |  |  |            is disabled. | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  |     \endlist | 
					
						
							| 
									
										
										
										
											2009-11-23 18:03:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-02 12:01:29 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-31 17:48:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-27 10:32:10 +01:00
										 |  |  | /*! | 
					
						
							|  |  |  |     \contentspage index.html | 
					
						
							| 
									
										
										
										
											2010-02-23 16:53:00 +01:00
										 |  |  |     \previouspage creator-glossary.html | 
					
						
							| 
									
										
										
										
											2009-02-27 10:32:10 +01:00
										 |  |  |     \page creator-acknowledgements.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \title Acknowledgements | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \section1 Third-party Components | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Qt Creator contains the following third-party components: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \list | 
					
						
							|  |  |  |     \o  \bold{Open Source front-end for C++ (license MIT)}, enhanced for use in | 
					
						
							| 
									
										
										
										
											2009-02-27 12:00:39 +01:00
										 |  |  |         Qt Creator.\br | 
					
						
							|  |  |  |         Roberto Raggi <roberto.raggi@gmail.com>\br | 
					
						
							| 
									
										
										
										
											2010-01-13 12:30:31 +01:00
										 |  |  |         QtCreator/src/shared/cplusplus\br\br | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     \o  \bold{Botan, a C++ crypto library. Version 1.8.8}\br | 
					
						
							|  |  |  |         \list | 
					
						
							|  |  |  |         \o  Copyright (C) 1999-2004 The Botan Project. All rights reserved. | 
					
						
							|  |  |  |         \o  Copyright (C) 1999-2009 Jack Lloyd | 
					
						
							|  |  |  |         \o  2001 Peter J Jones | 
					
						
							|  |  |  |         \o  2004-2007 Justin Karneges | 
					
						
							|  |  |  |         \o  2005 Matthew Gregan | 
					
						
							|  |  |  |         \o  2005-2006 Matt Johnston | 
					
						
							|  |  |  |         \o  2006 Luca Piccarreta | 
					
						
							|  |  |  |         \o  2007 Yves Jerschow | 
					
						
							|  |  |  |         \o  2007-2008 FlexSecure GmbH | 
					
						
							|  |  |  |         \o  2007-2008 Technische Universitat Darmstadt | 
					
						
							|  |  |  |         \o  2007-2008 Falko Strenzke | 
					
						
							|  |  |  |         \o  2007-2008 Martin Doering | 
					
						
							|  |  |  |         \o  2007 Manuel Hartl | 
					
						
							|  |  |  |         \o  2007 Christoph Ludwig | 
					
						
							|  |  |  |         \o  2007 Patrick Sona | 
					
						
							|  |  |  |         \endlist | 
					
						
							|  |  |  |         All rights reserved.\br\br | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         Redistribution and use in source and binary forms, with or without | 
					
						
							|  |  |  |         modification, are permitted provided that the following conditions are | 
					
						
							|  |  |  |         met:\br\br | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         1. Redistributions of source code must retain the above copyright | 
					
						
							|  |  |  |         notice, this list of conditions, and the following disclaimer.\br\br | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         2. Redistributions in binary form must reproduce the above copyright | 
					
						
							|  |  |  |         notice, this list of conditions, and the following disclaimer in the | 
					
						
							|  |  |  |         documentation and/or other materials provided with the distribution.\br | 
					
						
							|  |  |  |         \br | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) "AS IS" AND ANY EXPRESS OR | 
					
						
							|  |  |  |         IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 
					
						
							|  |  |  |         WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, | 
					
						
							|  |  |  |         ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE | 
					
						
							|  |  |  |         LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 
					
						
							|  |  |  |         CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 
					
						
							|  |  |  |         SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | 
					
						
							|  |  |  |         BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | 
					
						
							|  |  |  |         WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE | 
					
						
							|  |  |  |         OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN | 
					
						
							|  |  |  |         IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\br\br | 
					
						
							| 
									
										
										
										
											2010-01-20 12:14:28 +01:00
										 |  |  |         The source code of Botan C++ crypto library can be found | 
					
						
							|  |  |  |         here: | 
					
						
							|  |  |  |         \list | 
					
						
							|  |  |  |         \o QtCreator/src/libs/3rdparty | 
					
						
							|  |  |  |         \o \l{http://qt.gitorious.org/qt-creator/qt-creator/trees/master/src/libs/3rdparty} | 
					
						
							|  |  |  |         \endlist | 
					
						
							|  |  |  |         \br\br | 
					
						
							| 
									
										
										
										
											2010-01-13 12:30:31 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     \o  \bold{NetSieben SSH Library is a Secure Shell client library for C++. | 
					
						
							|  |  |  |          Version 1.3.2}\br | 
					
						
							|  |  |  |         \list | 
					
						
							|  |  |  |         \o \bold{Commercial License:} For organizations who do not want to | 
					
						
							|  |  |  |             release the source code for their applications as open source/ | 
					
						
							|  |  |  |             free software; in other words they do not want to comply with the | 
					
						
							|  |  |  |             GNU General Public License (GPL) or Q Public License. | 
					
						
							|  |  |  |         \o \bold{Non Commercial / Open Source License:} NetSieben believes in | 
					
						
							|  |  |  |             contributing back to the open source community, thus it has released | 
					
						
							|  |  |  |             the SSH Library under Q Public License as it is defined by Trolltech | 
					
						
							|  |  |  |             AS of Norway. The Open Source License allows the user to use software | 
					
						
							|  |  |  |             under an open source / free software license, and distribute it | 
					
						
							|  |  |  |             freely. The software can be used at no charge with the condition | 
					
						
							|  |  |  |             that if the user uses the SSH Library in an application they wish to | 
					
						
							|  |  |  |             redistribute, then the complete source code for your application must | 
					
						
							|  |  |  |             be available and freely redistributable under reasonable conditions. | 
					
						
							| 
									
										
										
										
											2010-01-29 22:49:55 +01:00
										 |  |  |             For more information on the used QPL License see: | 
					
						
							| 
									
										
										
										
											2010-01-13 12:30:31 +01:00
										 |  |  |             QtCreator/src/libs/3rdparty/net7ssh/LICENSE.QPL | 
					
						
							| 
									
										
										
										
											2010-01-20 12:14:28 +01:00
										 |  |  |         \endlist\br\br | 
					
						
							|  |  |  |         The source code of NetSieben Secure Shell C++ Library can be found | 
					
						
							|  |  |  |         here: | 
					
						
							|  |  |  |         \list | 
					
						
							|  |  |  |         \o QtCreator/src/libs/3rdparty | 
					
						
							|  |  |  |         \o \l{http://qt.gitorious.org/qt-creator/qt-creator/trees/master/src/libs/3rdparty} | 
					
						
							| 
									
										
										
										
											2010-01-13 12:30:31 +01:00
										 |  |  |         \endlist | 
					
						
							|  |  |  |      \endlist | 
					
						
							| 
									
										
										
										
											2009-02-27 10:32:10 +01:00
										 |  |  | */ |