OSDN Git Service

Merge remote branch 'origin/2.1'
[qt-creator-jp/qt-creator-jp.git] / doc / qtcreator.qdoc
1 /****************************************************************************
2 **
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the documentation of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:FDL$
10 ** Commercial Usage
11 ** Licensees holding valid Qt Commercial licenses may use this file in
12 ** accordance with the Qt Commercial License Agreement provided with the
13 ** Software or, alternatively, in accordance with the terms contained in a
14 ** written agreement between you and Nokia.
15 **
16 ** GNU Free Documentation License
17 ** Alternatively, this file may be used under the terms of the GNU Free
18 ** Documentation License version 1.3 as published by the Free Software
19 ** Foundation and appearing in the file included in the packaging of this
20 ** file.
21 **
22 ** If you have questions regarding the use of this file, please contact
23 ** Nokia at qt-info@nokia.com.
24 ** $QT_END_LICENSE$
25 **
26 ****************************************************************************/
27
28 // **********************************************************************
29 // NOTE: the sections are not ordered by their logical order to avoid
30 // reshuffling the file each time the index order changes (i.e., often).
31 // Run the fixnavi.pl script to adjust the links to the index order.
32 // **********************************************************************
33
34
35 /*!
36     \contentspage{index.html}{Qt Creator}
37     \page index.html
38     \nextpage creator-overview.html
39
40     \title Qt Creator Manual
41
42     \section1 Version 2.1.81
43
44     Qt Creator provides a cross-platform, complete integrated development
45     environment (IDE) for application developers to create applications for
46     multiple desktop and mobile device platforms. It is available for Linux,
47     Mac OS X and Windows operating systems. For more information, see
48     \l{Operating Systems and Supported Platforms}.
49
50     \note Please report bugs and suggestions to the
51     \l{http://bugreports.qt.nokia.com}{Qt Bug Tracker}.
52     You can also join the Qt Creator mailing list. To subscribe,
53     send a message with the word \e subscribe to
54     \l{mailto:qt-creator-request@trolltech.com}
55     {qt-creator-request@trolltech.com}. For more information about Qt mailing
56     lists, visit \l{http://lists.trolltech.com}{http://lists.trolltech.com}.
57
58     \raw HTML
59     <img border="0" style="float:right;" src="images/qtcreator-screenshots.png" />
60     \endraw
61
62     \list
63        \o \l{Introducing Qt Creator}
64        \o \l{Operating Systems and Supported Platforms}
65        \o \l{Qt Creator User Interface}
66        \o \l{Getting Started}
67            \list
68                \o \l{Building and Running an Example Application}
69                \o \l{Creating a Qt C++ Application}
70                \o \l{Creating a Mobile Application with Nokia Qt SDK}
71                \o \l{Creating a Qt Quick Application}
72            \endlist
73        \o \l{Managing Projects}
74             \list
75                 \o \l{Creating a Project}
76                 \o \l{Setting Up a qmake Project}
77                 \o \l{Adding Libraries to qmake Projects}
78                 \o \l{Setting Up a CMake Project}
79                 \o \l{Setting Up a Generic Project}
80                 \o \l{Setting Up Development Environment for Maemo}
81                 \o \l{Setting Up Development Environment for Symbian}
82                 \o \l{Managing Sessions}
83                 \o \l{Adding New Custom Wizards}
84             \endlist
85        \o \l{Using the Editor}
86             \list
87                 \o \l{Finding and Replacing}
88                 \o \l{Refactoring}
89                 \o \l{Using Qt Quick Toolbars}
90                 \o \l{Searching With the Locator}
91                 \o \l{Pasting and Fetching Code Snippets}
92                 \o \l{Configuring the Editor}
93                 \o \l{Using FakeVim Mode}
94                 \o \l{Using an External Editor}
95             \endlist
96        \o \l{Developing Application UI}
97        \list
98            \o \l{Optimizing Applications for Mobile Devices}
99            \o \l{Adding Qt Designer Plugins}
100            \if defined(qtquick)
101            \o \l{Developing Qt Quick Applications}
102                 \list
103                     \o \l {Creating Qt Quick Projects}
104                     \o \l {Creating Components}
105                     \o \l {Creating Screens}
106                     \o \l {Animating Screens}
107                     \o \l {Adding User Interaction Methods}
108                     \o \l {Implementing Application Logic}
109                 \endlist
110            \endif
111        \endlist
112        \o \l{Building and Running Applications}
113             \list
114                 \o \l{Building for and Running on Multiple Targets}
115                 \o \l{Specifying Build Settings}
116                 \o \l{Specifying Run Settings}
117                 \o \l{Specifying Editor Settings}
118                 \o \l{Specifying Dependencies}
119             \endlist
120
121        \o \l{Debugging}
122             \list
123                 \o \l{Debugging the Example Application}
124                 \o \l{Interacting with the Debugger}
125                 \o \l{Setting Up Debugger}
126                 \o \l{Debugger Modes of Operation}
127                 \o \l{Using Debugging Helpers}
128             \endlist
129        \o \l{Using the Maemo Emulator}
130        \o \l{Using Version Control Systems}
131        \o \l{Creating Task List Files}
132        \o \l{Using Command Line Options}
133        \o \l{Getting Help}
134        \o \l{Tips and Tricks}
135        \o \l{Keyboard Shortcuts}
136        \o \l{Known Issues}
137        \o \l{Glossary}
138        \o \l{Acknowledgements}
139     \endlist
140 */
141
142
143 /*!
144     \contentspage index.html
145     \previouspage index.html
146     \page creator-overview.html
147     \nextpage creator-os-supported-platforms.html
148
149   \title Introducing Qt Creator
150
151     Qt Creator is an integrated development environment (IDE) that provides you with
152     tools to design and develop complex applications for multiple desktop and mobile
153     platforms.
154
155     \image qtcreator-overview.png "Qt Creator overview"
156
157     \section1 Cross-platform Development
158
159     One of the major advantages of Qt Creator is that it allows a team of developers
160     to share a project across different development platforms with a common tool
161     for development and debugging.
162
163     The recommended way to build a project is to use a version control system.
164     Store and edit only project source files and the .pro and .pri files (for qmake)
165     or CMakeLists.txt and *.cmake files (for CMake). Do not store
166     files generated by the build system or Qt Creator, such as makefiles,
167     .pro.user, and object files. Other approaches are possible,
168     but we recommend that you do not use network resources, for example.
169
170     Qt Creator allows you to specify separate build settings
171     for each development platform. By default, \l{glossary-shadow-build}{shadow builds} are used to
172     keep the build specific files separate from the source.
173
174     You can create separate versions of project files to keep platform-dependent
175     code separate. You can use qmake
176     \l{http://qt.nokia.com/doc/4.7/qmake-tutorial.html#adding-platform-specific-source-files}{scopes}
177     to select the file to process depending on which platform qmake is run on.
178
179     Items such as open files, breakpoints, and watches are stored in
180     sessions. They are not considered to be part of the
181     information shared across platforms.
182
183     Qt Creator is integrated with cross-platform systems for build automation:
184     qmake and CMake. In addition, you can import generic projects that do not use qmake
185     or CMake, and specify that Qt Creator ignores your build system.
186
187     In addition to Qt libraries, you can link your application to other
188     libraries, such as system libraries or your own libraries. Further, your
189     own libraries might link to other libraries. To be able to compile your
190     project, you must add the libraries to your project. This also enables
191     code completion and syntax highlighting for the libraries.
192     The procedure of adding a library to a project depends on the the build
193     system that you use.
194
195     Qt Creator provides support for building and running Qt applications for
196     desktop environment and mobile devices. When you install the Nokia Qt SDK,
197     the build and run settings for the Maemo and Symbian targets are set up
198     automatically. However, you need to install and configure some additional software
199     on the devices.
200
201     \note The only supported build system for mobile applications in Qt
202     Creator is qmake.
203
204     Once your mobile application is ready, you can test it in the Qt Simulator.
205     You can also connect Maemo and Symbian devices to your development PC and
206     debug applications on the devices. After you have tested the application,
207     you can deploy it on mobile devices.
208
209     Developing applications for mobile devices is different from developing
210     desktop applications. For more information, see
211     \l{Optimizing Applications for Mobile Devices}.
212
213     \section1 Projects
214
215     But why do you need projects? To be able to build and run applications,
216     Qt Creator needs the same information as a compiler would need. This information
217     is specified in the project build and run settings.
218
219     Creating a project allows you to:
220
221         \list
222
223             \o Group files together
224
225             \o Add custom build steps
226
227             \o Include forms and resource files
228
229             \o Specify settings for running applications
230
231         \endlist
232
233     You can either create a project from scratch or import an existing
234     project. Qt Creator generates all the necessary files, depending on the type of
235     project you create. For example, if you choose to create a graphical user
236     interface (GUI) application, Qt Creator generates an empty .ui file
237     that you can modify with the integrated \QD.
238
239     Qt Creator is integrated with cross-platform systems for build automation: qmake and
240     CMake. In addition, you can import generic projects that do not use qmake or CMake,
241     and specify that Qt Creator ignores your build system.
242
243     \section1 Editors
244
245     Qt Creator comes with a code editor and two integrated visual editors for designing
246     and building
247     graphical user interfaces (GUIs) from Qt widgets.
248
249     \section2 Code Editor
250
251     As an IDE, Qt Creator differs from a text editor in that it knows how to build and run
252     applications. It understands the C++ and QML languages as code, not just as plain text. This allows
253     it to:
254
255     \list
256
257         \o Enable you to write well formatted code
258
259         \o Anticipate what you are going to write and complete the code
260
261         \o Display inline error and warning messages
262
263         \o Enable you to semantically navigate to classes, functions, and symbols
264
265         \o Provide you with context-sensitive help on classes, functions, and symbols
266
267         \o Rename symbols in an intelligent way, so that other symbols with the same name
268          that belong to other scopes are not renamed
269
270         \o Show you the locations in code where a function is declared or called
271
272     \endlist
273
274     \section2 UI Designer
275
276     Qt Creator provides two integrated visual editors, \QD and \QMLD.
277
278     \QD is a tool for designing and building graphical user interfaces (GUIs) from
279     Qt widgets. You can compose and customize your widgets or dialogs and test
280     them using different styles and resolutions.
281
282     Widgets and forms created with \QD are integrated seamlessly with programmed code,
283     using the Qt signals and slots mechanism, that lets you easily assign behavior to
284     graphical elements. All properties set in \QD can be changed dynamically within the code.
285     Furthermore, features like widget promotion and custom plugins allow you to use your
286     own widgets with \QD.
287
288     UIs that use widgets are clearly structured and enforce a platform look and feel,
289     which makes them useful for traditional applications. However, they are static, and
290     do not fully make use of the large high-resolution screens, touch input, and significant
291     graphics power that are becoming common in portable consumer devices, such as mobile
292     phones, media players, set-top boxes, and netbooks.
293
294     \QMLD allows you to easily develop animations by using a declarative programming
295     language called \l {http://doc.qt.nokia.com/4.7/qtquick.html}{QML}.
296     In QML, a user interface is specified as a tree of objects with properties.
297
298     You use a visual editor to create items, screens, and applications, as well as define changes
299     in their state, transitions from one state to another, and user actions that change the
300     states. \QMLD generates the necessary code for you.
301
302     You can use Qt or JavaScript to implement the application logic.
303
304       \section1 Languages
305
306     You can use the code editor to write code in Qt C++ or in the
307     \l {http://doc.qt.nokia.com/4.7/qtquick.html}{QML} declarative
308     programming language.
309
310     \section2 QML
311
312     You can use QML to build highly dynamic, custom user interfaces from a rich set
313     of QML elements. Qt Quick helps programmers and designers collaborate to build the
314     fluid user interfaces that are becoming common in portable consumer devices, such as
315     mobile phones, media players, set-top boxes and netbooks.
316
317     QML is an extension to JavaScript, that provides a mechanism to declaratively build
318     an object tree of QML elements. QML improves the integration between JavaScript and
319     Qt's existing QObject based type system, adds support for automatic property bindings
320     and provides network transparency at the language level.
321
322     \section1 Targets
323
324     Qt Creator provides support for building and running Qt applications for
325     desktop environment (Windows, Linux, and Mac OS) and mobile devices (Symbian, Maemo,
326     and MeeGo). Build settings allow you to quickly switch between build targets.
327
328     When you build an application for a mobile device target with a device
329     connected to the development PC, Qt Creator generates an installation package,
330     installs in on the device, and executes it.
331
332     You can publish the installation packages on the \l{https://publish.ovi.com/info/}{Ovi Store}.
333     For Symbian devices, the packages must be signed.
334
335     \section1 Tools
336
337     Qt Creator is integrated with a set of helpful tools, such as version control
338     systems and Qt Simulator.
339
340     \section2 Version Control Systems
341
342     Qt Creator uses the version control system's command line clients to access
343     your repositories. The following version control systems are supported:
344
345     \list
346
347         \o Git
348
349         \o Subversion
350
351         \o Perforce
352
353         \o CVS
354
355         \o Mercurial
356
357     \endlist
358
359     The functions available to you in Qt Creator depend on the version control
360     system. Basic functions are available for all the supported systems. They include
361     comparing files with the latest versions stored in the repository and displaying the
362     differences, viewing versioning history and change details, annotating files,
363     and committing and reverting changes.
364
365     \section2 Qt Simulator
366
367     You can use the Qt Simulator to test Qt applications that are intended
368     for mobile devices in an environment similar to that of the device. You
369     can change the information that the device has about its configuration
370     and environment.
371
372     The Qt Simulator is installed as part of the Nokia Qt SDK. After it is
373     installed, you can select it as a build target in Qt Creator.
374
375     \section1 Debuggers
376
377     Qt Creator does not include a debugger. It provides a debugger plugin that acts
378     as an interface between the Qt Creator core and external native debuggers:
379
380     \list
381
382         \o GNU Symbolic Debugger (gdb)
383
384         \o Microsoft Console Debugger (CDB)
385
386         \o internal Java Script debugger
387
388     \endlist
389
390     You can use the Qt Creator \gui Debug mode to inspect the state of your
391     application while debugging. You can interact with the debugger in several
392     ways, including the following:
393
394     \list
395         \o Go through a program line-by-line or instruction-by-instruction.
396         \o Interrupt running programs.
397         \o Set breakpoints.
398         \o Examine the contents of the call stack.
399         \o Examine and modify registers and memory contents of
400            the debugged program.
401         \o Examine and modify registers and memory contents of
402            local and global variables.
403         \o Examine the list of loaded shared libraries.
404         \o Create snapshots of the current state of the debugged program
405            and re-examine them later.
406     \endlist
407
408     Qt Creator displays the raw information provided by the native debuggers
409     in a clear and concise manner with the goal to simplify the debugging process
410     as much as possible without losing the power of the native debuggers.
411
412     In addition to the generic IDE functionality provided by stack view, views for
413     locals and watchers, registers, and so on, Qt Creator includes
414     features to make debugging Qt-based applications easy. The debugger
415     plugin understands the internal layout of several Qt classes, for
416     example, QString, the Qt containers, and most importantly QObject
417     (and classes derived from it), as well as most containers of the C++
418     Standard Library and some gcc and Symbian extensions. This
419     deeper understanding is used to present objects of such classes in
420     a useful way.
421
422     If you install Qt Creator as part of a Qt SDK, the GNU Symbolic Debugger
423     is installed automatically and you should be ready to start debugging after
424     you create a new project. However, you can change the setup to use debugging
425     tools for Windows, for example.
426
427     You can connect mobile devices to your development PC and debug processes
428     running on the devices.
429
430 */
431
432 /*!
433     \contentspage index.html
434     \previouspage creator-overview.html
435     \page creator-os-supported-platforms.html
436     \nextpage creator-quick-tour.html
437
438     \title Operating Systems and Supported Platforms
439
440     \section1 Operating Systems
441
442     Qt Creator is available in binary packages for the following operating
443     systems:
444     \list
445         \o Windows XP Service Pack 2
446         \o Windows Vista
447         \o (K)Ubuntu Linux 7.04 (32-bit and 64-bit) or later, with the following:
448            \list
449                \o g++
450                \o make
451                \o libglib2.0-dev
452                \o libSM-dev
453                \o libxrender-dev
454                \o libfontconfig1-dev
455                \o libxext-dev
456                \o libfreetype6-dev
457                \o libx11-dev
458                \o libxcursor-dev
459                \o libxfixes-dev
460                \o libxft-dev
461                \o libxi-dev
462                \o libxrandr-dev
463                \o If you are using QtOpenGL, libgl-dev and libglu-dev
464            \endlist
465         \o Mac OS 10.5 or later with the following:
466            \list
467                \o Xcode tools for your Mac OS X version available from your Mac
468                   OS X installation DVDs or at \l http://developer.apple.com.
469            \endlist
470     \endlist
471
472          \omit  ## Are the Xcode tools still needed separately? \endomit
473
474     \section1 Build Environment
475
476     To build Qt Creator itself from the source, you need:
477     \list
478         \o Qt 4.7 or later
479         \o On Windows, MinGW 4.4 or Microsoft Visual Studio 2008
480     \endlist
481
482     \section1 Supported Mobile Device Platforms
483     You can develop applications for the following mobile device
484     platforms:
485
486     \list
487
488     \o Symbian
489
490     \o Maemo and Maemo Application Development and Debugging Environment (MADDE)
491
492     \endlist
493
494     The following table summarizes operating system support for building
495     applications for mobile device platforms.
496
497     \table
498         \header
499             \o {1,3} Operating system
500             \o {3,1} Platform
501         \header
502             \o Desktop
503             \o Symbian
504             \o Maemo
505         \row
506             \o Windows
507             \o Yes
508             \o Yes
509             \o Yes
510         \row
511             \o Linux
512             \o Yes
513             \o No
514             \o Yes
515         \row
516             \o Mac OS X
517             \o Yes
518             \o No
519             \o No
520     \endtable
521 */
522
523
524 /*!
525     \contentspage index.html
526     \previouspage creator-os-supported-platforms.html
527     \page creator-quick-tour.html
528     \nextpage creator-getting-started.html
529
530     \title Qt Creator User Interface
531
532     \image qtcreator-breakdown.png
533
534     When you start Qt Creator, it opens to the \gui Welcome mode, where you can:
535
536     \list
537
538         \o Open tutorials and example projects
539
540         \o View tips and hints on using Qt Creator
541
542         \o Create and open projects
543
544         \o Send feedback to the development team
545
546         \o Open recent sessions and projects
547
548         \o Read news from the Qt labs
549
550         \o Ask for support
551
552     \endlist
553
554     You can use the mode selector to change to another Qt Creator mode.
555
556     Qt Creator has been localized into several languages. If the system language
557     is one of the supported languages, it is automatically selected. To change
558     the language, select \gui {Tools > Options > Environment} and select a language
559     in the \gui Language field. The change takes effect after you restart Qt Creator.
560
561     \section1 Qt Creator Modes
562
563     The mode selector allows you to quickly switch between tasks such as
564     editing project and source files, designing application UIs,
565     configuring how projects are built and
566     executed, and debugging your applications. To change modes, click the
567     icons, or use the \l{keyboard-shortcuts}{corresponding keyboard shortcut}.
568
569     You can use Qt Creator in the following modes:
570
571     \list
572         \o \gui{\l{Using the Editor}{Edit}} mode for editing project and source files.
573         \o \gui{\l{Developing Application UI}{Design}} mode for designing and developing
574            application user interfaces. This mode is available for UI files (.ui or
575            .qml).
576         \o \gui{\l{Debugging}{Debug}} mode for inspecting the state of your program while
577            debugging.
578         \o \gui{\l{Managing Projects}{Projects}} mode for configuring project building and
579            execution. This mode is available when a project is open.
580         \o \gui{\l{Getting Help}{Help}} mode for viewing Qt documentation.
581     \endlist
582
583     Certain actions in Qt Creator trigger a mode change. Clicking on
584     \gui {Debug} > \gui {Start Debugging} > \gui {Start Debugging}
585     automatically switches to \gui {Debug} mode.
586
587
588     \section1 Browsing Project Contents
589
590     The sidebar is available in the \gui Edit and \gui Debug modes.
591     Use the sidebar to browse projects, files, and bookmarks, and to view
592     the class hierarchy.
593     \image qtcreator-sidebar.png
594
595     You can select the content of the sidebar in the sidebar menu:
596     \list
597         \o \gui Projects shows a list of projects open in the current
598            session.
599         \o \gui{Open Documents} shows currently open files.
600         \o \gui Bookmarks shows all bookmarks for the current session.
601         \o \gui{File System} shows all files in the currently selected
602             directory.
603         \o \gui {Class View} shows the class hierarchy of the currently
604             open projects.
605         \o \gui Outline shows the element hierarchy of a QML file.
606         \o \gui {Type Hierarchy} shows the base classes of a class. For
607             more information, see \l{Viewing Type Hierarchy}.
608
609     \endlist
610
611     You can change the view of the sidebar in the following ways:
612     \list
613         \o To toggle the sidebar, click \inlineimage qtcreator-togglebutton.png
614            or press \key Alt+0 (\key Cmd+0 on Mac OS X).
615         \o To split the sidebar, click \inlineimage qtcreator-splitbar.png
616            . Select new content to view in the split view.
617         \o To close a sidebar view, click
618            \inlineimage qtcreator-closesidebar.png
619            .
620     \endlist
621
622     The additional options in each view are described in the following
623     sections.
624
625     \section2 Viewing Project Files
626
627     The sidebar displays projects in a project tree. The project tree contains
628     a list of all projects open in the current session. The files for each
629     project are grouped according to their file type.
630
631     You can use the project tree in the following ways:
632     \list
633         \o To bring up a context menu containing the actions most commonly
634            needed right-click an item in the project tree.
635            For example, through the menu of the project root directory you can,
636            among other actions, build, re-build, clean and run the project.
637         \o To hide the categories and sort project files alphabetically, click
638            \inlineimage qtcreator-filter.png
639            and select \gui{Simplify Tree}.
640         \o To hide source files which are automatically generated by the build
641            system, during a build, click \inlineimage qtcreator-filter.png
642            and select \gui{Hide Generated Files}.
643         \o To keep the position in the project tree synchronized with the file
644            currently opened in the editor, click
645            \inlineimage qtcreator-synchronizefocus.png
646            .
647         \o To see the absolute path of a file, move the mouse pointer over the
648            file name.
649     \endlist
650
651     \section2 Viewing the File System
652
653     If you cannot see a file in the \gui Projects view, switch to the
654     \gui {File System} view, which shows all the files in the file system.
655
656     To keep the position in the tree synchronized with the file
657     opened in the editor, click
658     \inlineimage qtcreator-synchronizefocus.png
659     .
660
661     \section2 Viewing the Class Hierarchy
662
663     The \gui {Class View} shows the class hierarchy of the currently
664     open projects. To organize the view by subprojects, click
665     \inlineimage qtcreator-show-subprojects.png
666     .
667
668     \section2 Viewing QML Elements
669
670     The \gui Outline view shows the element hierarchy in a QML file.
671
672     \list
673
674         \o To see a complete list of all bindings, click
675            \inlineimage qtcreator-filter.png
676            and select \gui{Show All Bindings}.
677
678         \o To keep the position in the view synchronized with the element
679            selected in the editor, click
680            \inlineimage qtcreator-synchronizefocus.png
681            .
682
683     \endlist
684
685     \section1 Viewing Output
686
687     The task pane in Qt Creator can display one of the following panes:
688     \list
689        \o  \gui{Build Issues}
690        \o  \gui{Search Results}
691        \o  \gui{Application Output}
692        \o  \gui{Compile Output}
693        \o  \gui{General Messages}
694        \o  \gui{Version Control}
695     \endlist
696
697     Output panes are available in all \l{Qt Creator modes}{modes}.
698     Click the name of an output pane to open the pane. To maximize
699     an open output pane, click the \gui {Maximize Output Pane} button
700     or press \key {Alt+9}.
701
702     To search within the \gui{Application Output} and \gui{Compile Output}
703     panes, press \key {Ctrl+F} when the pane is active. Enter search
704     criteria in the \gui Find field and click the left and right arrows to
705     search down and up in the pane.
706
707     To open the \gui{General Messages} and \gui{Version Control}
708     panes, select \gui {Window > Output Panes}.
709
710
711     \section2 Build Issues
712
713     The \gui{Build Issues} pane provides a list of errors and warnings
714     encountered during a build. The pane filters out irrelevant output from
715     the build tools and presents the issues in an organized way.
716
717     Right-clicking on a line brings up a context menu with options to copy
718     the contents and to show a version control annotation view of the
719     line that causes the error message.
720
721     \image qtcreator-build-issues.png
722
723     To view task lists in the \gui{Build Issues} pane, click
724     \inlineimage qtcreator-filter.png
725     and select \gui{My Tasks}. Entries from a task list file (.tasks) are
726     imported to the pane. Press \key F6 and \key Shift+F6 to jump from one issue
727     to the next.
728
729     For more information about creating task files, see \l{Creating Task List Files}.
730
731     \section2 Search Results
732
733     The \gui{Search Results} pane displays the results for global searches,
734     for example, searching within a current document, files on disk, or all
735     projects.
736
737     The figure below shows an example search result for all
738     occurrences of \c textfinder within the \c "/TextFinder" directory.
739
740     \image qtcreator-search-pane.png
741
742
743     \section2 Application Output
744
745     The \gui{Application Output} pane displays the status of a program when
746     it is executed, and the debug output.
747
748     The figure below shows an example output from qDebug().
749
750     \image qtcreator-application-output.png
751
752
753     \section2 Compile Output
754
755     The \gui{Compile Output} pane provides all output from the compiler.
756     The \gui{Compile Output} is a more detailed version of information
757     displayed in the \gui{Build Issues} pane.
758
759     \image qtcreator-compile-pane.png
760
761     \section1 Navigating with Keyboard
762
763     Qt Creator caters not only to developers who are used to using the mouse,
764     but also to developers who are more comfortable with the keyboard. A wide
765     range of \l{keyboard-shortcuts}{keyboard} and
766     \l{Searching With the Locator}{navigation} shortcuts are available to help
767     speed up the process of developing your application.
768
769 */
770
771
772 /*!
773     \contentspage index.html
774     \previouspage creator-task-lists.html
775     \page creator-help.html
776     \nextpage creator-tips.html
777
778     \title Getting Help
779
780     Qt Creator comes fully integrated with Qt documentation and
781     examples using the Qt Help plugin.
782     \list
783         \o To view documentation, switch to \gui Help mode.
784         \o To obtain context sensitive help, move the text cursor to a Qt class
785            or function and press \key F1. The documentation is displayed in a
786            pane next to the code editor, or, if there is not enough vertical
787            space, in the fullscreen \gui Help mode.
788
789            \image qtcreator-context-sensitive-help.png
790
791         \o To select and configure how the documentation is displayed in the
792            \gui Help mode, select \gui Tools > \gui Options... > \gui Help.
793     \endlist
794
795     \section1 Finding Information in Qt Documentation
796
797     Qt Creator, Qt SDK, Nokia Qt SDK and other Qt deliverables contain documentation
798     as .qch files. All the documentation is accessible in the \gui Help mode.
799
800     To find information in the documentation, select:
801
802     \list
803
804         \o \gui Bookmarks to view a list of pages on which you have added bookmarks.
805
806         \o \gui Contents to see all the documentation installed on the development
807         PC and to browse the documentation contents.
808
809         \o \gui Index to find information based on a list of keywords in all the
810         installed documents.
811
812         \o \gui {Open Pages} to view a list of currently open documentation pages.
813
814         \o \gui Search to search from all the installed documents.
815
816     \endlist
817
818     \section2 Adding Bookmarks to Help Pages
819
820     You can add bookmarks to useful help pages to easily find them later
821     in the \gui Bookmarks view. You can either use the page title as the
822     bookmark or change it to any text. You can organize the bookmarks in
823     folders in the view.
824
825     \image qtcreator-help-add-bookmark-dlg.png "Add Bookmark dialog"
826
827     To add a bookmark to an open help page:
828
829     \list 1
830
831         \o Click the
832         \inlineimage qtcreator-help-add-bookmark.png
833         (\gui {Add Bookmark}) button on the toolbar.
834
835         \o In the \gui {Add Bookmark} dialog, click \gui OK to save the
836         page title as a bookmark in the \gui Bookmarks folder.
837
838     \endlist
839
840     To import and export bookmarks, select \gui {Tools > Options... > Help >
841     General Settings > Import} or \gui Export.
842
843     \section1 Adding External Documentation
844
845     You can display external documentation in the \gui Help mode.
846     To augment or replace the documentation that ships with Qt Creator and Qt:
847     \list 1
848         \o Create a .qch file from your documentation.
849
850            For information on how to prepare your documentation and create a
851            .qch file, see
852            \l{http://doc.qt.nokia.com/4.7/qthelp-framework.html}{The Qt Help Framework}.
853         \o To add the .qch file to Qt Creator, select \gui Tools >
854            \gui Options... > \gui Help > \gui Documentation > \gui Add.
855     \endlist
856
857     \section1 Detaching the Help Window
858
859     By default, context-sensitive help is opened in a window next to the
860     code editor when you press \key F1. If there is not enough vertical
861     space, the help opens in the full-screen help mode.
862
863     You can specify that the help always opens in full-screen mode or
864     is detached to an external window. Select \gui {Tools > Options... > Help >
865     General Settings} and specify settings for displaying context-sensitive help
866     in the \gui {On context help} field. To detach the help window, select
867     \gui {Always Show Help in External Window}.
868
869     You can select the help page to open upon startup in the \gui {Home Page}
870     field.
871
872     \section1 Using Documentation Filters
873
874     You can filter the documents displayed in the \gui Help mode to find
875     relevant information faster. Select from a list of filters in the
876     \gui {Filtered by} field. The contents of the \gui Index and \gui Contents
877     pane in the sidebar change accordingly.
878
879     \image qtcreator-help-filters.png "Help filters"
880
881     You can modify the filters to include external documentation, for example,
882     or you can define your own filters. To construct filters, you can use the
883     filter attributes that are specified in the documentation. Each document
884     contains at least one filter attribute. If several documents contain the
885     same filter attribute, such as \c tools, you can use that attribute to
886     include all those documents.
887
888     To add filters:
889
890     \list 1
891
892         \o Select \gui {Tools > Options... > Help > Filters > Add}.
893
894         \o Enter a name for the filter and press \gui {OK}.
895
896         \o In \gui Attributes, select the documents that you want to include
897         in the filter.
898
899         \image qtcreator-help-filter-attributes.png "Help filter attributes"
900
901         \o Click \gui OK.
902
903         \o In the \gui Help mode, select the filter in the \gui {Filtered by}
904         field to see the filtered documentation in the sidebar.
905
906     \endlist
907
908     To modify filters, select a filter in \gui Filters, select the attributes,
909     and then click \gui Apply.
910
911     To remove filters, select them in \gui Filters, and click \gui Remove.
912
913 */
914
915
916 /*!
917     \contentspage index.html
918     \previouspage creator-editor-external.html
919     \page creator-design-mode.html
920     \nextpage creator-usability.html
921
922     \title Developing Application UI
923
924     You can use the integrated \QD to design and build graphical user interfaces (GUIs) from
925     Qt widgets. You can compose and customize your widgets or dialogs and test
926     them using different styles and resolutions.
927
928     Widgets and forms created with \QD are integrated seamlessly with programmed code,
929     using the Qt signals and slots mechanism, that lets you easily assign behavior to
930     graphical elements. All properties set in \QD can be changed dynamically within the code.
931     Furthermore, features like widget promotion and custom plugins allow you to use your
932     own widgets with \QD.
933
934     UIs that use widgets are clearly structured and enforce a platform look and feel,
935     which makes them useful for traditional applications. However, they are static, and
936     do not fully make use of the large high-resolution screens, touch input, and significant
937     graphics power that are becoming common in portable consumer devices, such as mobile
938     phones, media players, set-top boxes, and netbooks.
939
940     You can easily develop animations by using a declarative programming
941     language called \l {http://doc.qt.nokia.com/4.7/qtquick.html}{QML}.
942     In QML, a user interface is specified as a tree of objects with properties.
943     You can edit QML code in the code editor. You
944     can use Qt or JavaScript to implement the application logic.
945
946     The integration includes project management and code completion.
947
948     \section1 Using Qt Designer
949
950     Qt Creator automatically opens all .ui files in \QD.
951
952     \image qtcreator-formedit.png
953
954     To change the layout of \QD user interface elements:
955     \list 1
956         \o Select \gui Tools > \gui{Form Editor} > \gui Views >
957            \gui Locked.
958
959            When this option is unchecked, you can change the layout.
960         \o Click the header of an element and drag the element to a new
961            position.
962     \endlist
963
964     To change \QD properties, select \gui Tools > \gui Options... >
965     \gui Designer.
966     \list
967         \o Set the class properties and code generation preferences in \gui
968            {Class Generation}.
969         \o Set an additional folder for saving templates in \gui{Template
970            Paths}.
971         \o Set the grid settings and preview preferences in \gui Forms. To
972            preview your form with skins, enable \gui{Print/Preview
973            Configuration} and select your skin. Otherwise default preview
974            settings are used.
975
976            To preview the settings, select \gui Tools > \gui{Form Editor} >
977            \gui Preview, or press \key Alt+Shift+R.
978         \o To specify embedded device profiles, such as style, font, and screen
979            resolution, select \gui{Embedded Design}.
980     \endlist
981
982     To switch between forms and code, use \key Shift+F4.
983
984     For more information on \QD, see
985     \l{http://doc.qt.nokia.com/4.7/designer-manual.html}{Qt Designer Manual}.
986
987     \section1 Using Qt Quick Designer
988
989     You can edit .qml files in the visual \QMLD editor or in the
990     code editor.
991
992     In \gui Projects, double-click a .qml file to open it in the code
993     editor. Then select the \gui {Design} mode to edit the file in the
994     visual editor.
995
996     \note The visual \QMLD editor is provided as an experimental plugin that you must
997     enable to be able to edit QML files in the \gui Design mode. Enabling the
998     visual editor can negatively affect the overall stability of Qt Creator.
999
1000     To enable or disable the \QMLD visual editor, select
1001     \gui {Help > About Plugins... > Qt Quick > QmlDesigner}. You must restart Qt Creator
1002     to enable or disable the visual editor.
1003
1004     \image qmldesigner-visual-editor.png "Visual editor"
1005
1006     Use the visual editor panes to manage your project:
1007
1008     \list
1009
1010     \o \gui {Navigator} pane displays the items in the scene. You can
1011     show and hide items to focus on specific parts of the application.
1012
1013     \o \gui {Library} pane displays lists of predefined \gui {Items} and
1014     imported \gui {Resources} that you can use to design applications. The
1015     images and other files that you copy to the project folder appear in the
1016     \gui {Resources} pane.
1017
1018     \o \gui {Properties} pane displays the properties of the selected component.
1019      You can also change the properties in the code editor.
1020
1021     \o \gui {State} pane displays the different states of the component. To add
1022     states, click the empty slot. Then modify the new state in the editor.
1023     In the code editor, you can see the changes recorded as changes to
1024     the base state.
1025
1026     \endlist
1027
1028 */
1029
1030
1031 /*!
1032     \contentspage index.html
1033     \previouspage creator-project-wizards.html
1034     \page creator-editor-using.html
1035     \nextpage creator-editor-finding.html
1036
1037     \title Using the Editor
1038
1039     Qt Creator's code editor is designed to aid you in creating, editing and
1040     navigating code.  Qt Creator's code editor is fully equipped with syntax
1041     checking, code completion, context sensitive help and in-line error
1042     indicators while you are typing.
1043
1044     \section1 Using the Editor Toolbar
1045
1046     The editor toolbar is located at the top of the editor view. The editor
1047     toolbar is context sensitive and shows items relevant to the file currently
1048     open in the editor.
1049
1050     \image qtcreator-editortoolbar-symbols.png
1051
1052     Use the toolbar to navigate between open files and symbols in use.
1053     To browse forward or backward through your location history, click
1054            \inlineimage qtcreator-back.png
1055            and \inlineimage qtcreator-forward.png
1056            .
1057
1058     To go to any open file, select it from the \gui{Open files} drop-down menu.
1059     Right-click the menu title and select \gui {Copy Full Path to Clipboard} to
1060     copy the path and name of the current file to the clipboard.
1061
1062     To jump to any symbol used in the current file, select it from the
1063     \gui Symbols drop-down menu. By default, the symbols are displayed in the
1064     order in which they appear in the file. Right-click the menu title and select
1065     \gui {Sort Alphabetically} to arrange the symbols in alphabetic order.
1066
1067     \section1 Splitting the Editor View
1068
1069     Split the editor view when you want to work on and view multiple files on
1070     the same screen.
1071
1072     \image qtcreator-spliteditorview.png
1073
1074     You can split the editor view in the following ways:
1075     \list
1076         \o To split the editor view into a top and bottom view, select
1077            \gui Window > \gui Split or press \key{Ctrl+E, 2}.
1078
1079            Split command creates views below the currently active editor view.
1080         \o To split the editor view into adjacent views, select
1081            \gui Window > \gui{Split Side by Side} or press
1082            \key{Ctrl+E, 3}.
1083
1084            Side by side split command creates views to the right of the
1085            currently active editor view.
1086     \endlist
1087
1088     To move between split views, select \gui Window >
1089     \gui{Go to Next Split} or press \key{Ctrl+E, O}.
1090
1091     To remove a split view, place the cursor within the view you want to
1092     remove and select \gui Window > \gui{Remove Current Split} or press
1093     \key{Ctrl+E, 0}. To remove all but the currently selected split view,
1094     select \gui Window > \gui{Remove All Splits} or press \key{Ctrl+E, 1}.
1095
1096
1097     \section1 Highlighting and Folding Blocks
1098
1099     Use block highlighting to visually separate parts of the code that belong
1100     together. For example, when you place the cursor within the braces,
1101     the code enclosed in braces is highlighted.
1102
1103     \image qtcreator-blockhighlighting.png
1104
1105     To enable block highlighting, select \gui Tools > \gui{Options...} >
1106     \gui{Text Editor} > \gui Display > \gui{Highlight blocks}.
1107
1108     Use the folding markers to collapse and expand blocks of code within
1109     braces. Click the folding marker to collapse or expand a block. In the
1110     figure above, the folding markers are located between the line number and
1111     the text pane.
1112
1113     To show the folding markers, select \gui Tools > \gui{Options...} >
1114     \gui{Text Editor} > \gui Display > \gui{Display folding markers}. This
1115     option is enabled by default.
1116
1117     When the cursor is on a brace, the matching brace is animated
1118     by default. To turn off the animation and just highlight the block and
1119     the braces, select \gui {Tools > Options... > Text Editor > Display} and
1120     deselect \gui {Animate matching parentheses}.
1121
1122
1123     \section1 Checking Code Syntax
1124
1125     As you write code Qt Creator checks code syntax. When Qt Creator spots a
1126     syntax error in your code it underlines it and shows error details when you
1127     move the mouse pointer over the error.
1128     \list
1129         \o Syntax errors are underlined in red.
1130
1131            In the following figure, a semicolon is missing at the end of the
1132            line.
1133
1134            \image qtcreator-syntaxerror.png
1135         \o Semantic errors and warnings are underlined in olive.
1136
1137            In the following figure, the type is unknown.
1138
1139            \image qtcreator-semanticerror.png
1140     \endlist
1141
1142
1143     \section1 Completing Code
1144
1145     Qt Creator understands the code as code, not just as plain text. This
1146     allows it to help you to write well formatted code and to anticipate
1147     what you are going to write and complete the code.
1148     The code completion differs somewhat depending on whether you write Qt code or QML code.
1149
1150     \section2 Completing Qt Code
1151
1152     As you write code, Qt Creator provides a list of context-sensitive
1153     suggestions to the statement currently under your cursor.
1154
1155     \image qtcreator-codecompletion.png
1156
1157     To open the list of suggestions at any time, press \key{Ctrl+Space}.
1158     If only one option is available, Qt Creator inserts it automatically.
1159
1160     When completion is invoked manually, Qt Creator completes the common prefix
1161     of the list of suggestions. This is especially useful for classes with
1162     several similarly named members. To disable this functionality, uncheck
1163     \gui{Autocomplete common prefix} in the code completion preferences.
1164     Select \gui Tools > \gui{Options...} > \gui{Text Editor} > \gui Completion.
1165
1166     By default, code completion considers only the first letter case-sensitive.
1167     To apply full or no case-sensitivity, select the option in the
1168     \gui {Case-sensitivity} field.
1169
1170     The following table lists available types for code completion and icon
1171     used for each.
1172
1173     \table
1174         \header
1175             \o Icon
1176             \o Description
1177         \row
1178             \i  \inlineimage completion/class.png
1179             \i  A class
1180         \row
1181             \i  \inlineimage completion/enum.png
1182             \i  An enum
1183         \row
1184             \i  \inlineimage completion/enumerator.png
1185             \i  An enumerator (value of an enum)
1186         \row
1187             \i  \inlineimage completion/func.png
1188             \i  A function
1189         \row
1190             \i  \inlineimage completion/func_priv.png
1191             \i  A private function
1192         \row
1193             \i  \inlineimage completion/func_prot.png
1194             \i  A protected function
1195         \row
1196             \i  \inlineimage completion/var.png
1197             \i  A variable
1198         \row
1199             \i  \inlineimage completion/var_priv.png
1200             \i  A private variable
1201         \row
1202             \i  \inlineimage completion/var_prot.png
1203             \i  A protected variable
1204         \row
1205             \i  \inlineimage completion/signal.png
1206             \i  A signal
1207         \row
1208             \i  \inlineimage completion/slot.png
1209             \i  A slot
1210         \row
1211             \i  \inlineimage completion/slot_priv.png
1212             \i  A private slot
1213         \row
1214             \i  \inlineimage completion/slot_prot.png
1215             \i  A protected slot
1216         \row
1217             \i  \inlineimage completion/keyword.png
1218             \i  A keyword
1219         \row
1220             \i  \inlineimage completion/macro.png
1221             \i  A macro
1222         \row
1223             \i  \inlineimage completion/namespace.png
1224             \i  A namespace
1225     \endtable
1226
1227     \section2 Completing QML Code
1228
1229     As you write QML code, Qt Creator suggests properties, IDs, and code
1230     snippets to complete the code. The snippets can consist of multiple
1231     fields that you specify values for. Select an item in the list and press
1232     \key Tab or \key Enter to complete the code. Press \key Tab to
1233     move between the fields and specify values for them.
1234
1235     \image qmldesigner-code-completion.png "Completing QML code"
1236
1237     \section1 Using Bookmarks
1238
1239     To insert or delete a bookmark right-click the line number and select
1240     \gui{Toggle Bookmark} or press \key{Ctrl+M}.
1241
1242     \image qtcreator-togglebookmark.png
1243
1244     To go to previous bookmark in the current session, press \key{Ctrl+,}.
1245
1246     To go to next bookmark in the current session, press \key{Ctrl+.}.
1247
1248
1249     \section1 Moving to Symbol Definition or Declaration
1250
1251     In Qt Creator you can move directly to the definition or the declaration of
1252     a symbol by holding the \key Ctrl and clicking the symbol.
1253
1254     To enable this moving function, in \gui Tools > \gui{Options...} >
1255     \gui{Text Editor} > \gui Behavior, select \gui{Enable mouse navigation}.
1256
1257     You can also select the symbol and press \key F2, or right-click the symbol
1258     and select \gui {Follow Symbol Under Cursor} to move to its definition or declaration.
1259     This is supported for namespaces, classes, methods, variables, include statements,
1260     and macros.
1261
1262     To switch between the definition and declaration of a symbol, press \key {Shift+F2}
1263     or right-click the symbol and select \gui {Switch Between Method Declaration/Definition}.
1264
1265     \section1 Viewing Type Hierarchy
1266
1267     To view the base classes of a class, right-click the class and select
1268     \gui {Open Type Hierarchy}  or press \key {Ctrl+Shift+T}.
1269
1270     \section1 Using Update Code Model
1271
1272     To refresh the internal information in Qt Creator pertaining to your code,
1273     select \gui{Tools} > \gui{C++} > \gui{Update Code Model}.
1274
1275     \note In Qt Creator indexing updates the code automatically. Use
1276     \gui{Update Code Model} only as an emergency command.
1277
1278 */
1279
1280
1281 /*!
1282     \contentspage index.html
1283     \previouspage creator-editor-locator.html
1284     \page creator-editor-codepasting.html
1285     \nextpage creator-editor-options.html
1286
1287     \title Pasting and Fetching Code Snippets
1288
1289     In Qt Creator, you can paste snippets of code to a server or fetch
1290     snippets of code from the server. To paste and fetch snippets of code,
1291     Qt Creator uses the following:
1292     \list
1293         \o \gui{CodePaster}
1294         \o \gui{Pastebin.Com}
1295         \o \gui{Pastebin.Ca}
1296     \endlist
1297
1298     To configure the server, select \gui{Tools} > \gui{Options...} >
1299     \gui{Code Pasting}.
1300
1301     To paste a snippet of code onto the server, select \gui{Tools} >
1302     \gui{Code Pasting} > \gui{Paste Snippet...} or press \key{Alt+C,Alt+P}.
1303
1304     To fetch a snippet of code from the server, select \gui{Tools} >
1305     \gui{Code Pasting} > \gui{Fetch Snippet...} or press \key{Alt+C,Alt+F}.
1306
1307     \note To use \gui{Pastebin.Com}, configure the domain
1308     prefix in \gui{Tools} > \gui{Options...} > \gui{Code Pasting} >
1309     \gui{Pastebin.com}.
1310
1311     For example, you might ask colleagues to review a change that you plan to
1312     submit to a version control system. If you use the Git version control system,
1313     you can create a \e{diff} view by selecting \gui{Tools} > \gui{Git} >
1314     \gui{Diff Repository}. You can then upload its contents to the server by choosing
1315     \gui{Tools} > \gui{Code Pasting} > \gui{Paste Snippet...}. The reviewers can retrieve
1316     the code snippet by selecting \gui{Tools} > \gui{Code Pasting} > \gui{Fetch Snippet...}.
1317     If they have the project currently opened in Qt Creator, they can apply and test
1318     the change by choosing \gui{Tools} > \gui{Git} > \gui{Apply Patch}.
1319
1320 */
1321
1322
1323 /*!
1324     \contentspage index.html
1325     \previouspage creator-editor-options.html
1326     \page creator-editor-fakevim.html
1327     \nextpage creator-editor-external.html
1328
1329     \title Using FakeVim Mode
1330
1331     In the \gui{FakeVim} mode, you can run the main editor in a manner similar
1332     to the Vim editor. To run the editor in the \gui{FakeVim} mode, select
1333     \gui{Edit} > \gui{Advanced} > \gui{Use Vim-style Editing} or press
1334     \key{Alt+V,Alt+V}.
1335
1336     In the \gui{FakeVim} mode, most keystrokes in the main editor will be
1337     intercepted and interpreted in a way that resembles Vim. Documentation for
1338     Vim is not included in Qt Creator. For more information on using Vim,
1339     see \l{http://www.vim.org/docs.php}{Documentation} on the Vim web site.
1340
1341     To map commands entered on the \gui{FakeVim} command line to actions of the
1342     Qt Creator core, select \gui{Tools} > \gui{Options...} > \gui{FakeVim} >
1343     \gui{Ex Command Mapping}.
1344
1345     To make changes to the Vim-style settings, select \gui{Tools} >
1346     \gui{Options...} > \gui FakeVim > \gui{General}.
1347
1348     To use a Vim-style color scheme, select \gui {Tools > Options... >
1349     Text Editor > Fonts & Color}. In the \gui {Color Scheme} list, select
1350     \gui {Vim (dark)}.
1351
1352     To quit the FakeVim mode, click \gui {Quit FakeVim} or press
1353     \key{Alt+V,Alt+V}.
1354
1355     */
1356
1357
1358 /*!
1359     \contentspage index.html
1360     \previouspage creator-editor-fakevim.html
1361     \page creator-editor-external.html
1362     \nextpage creator-design-mode.html
1363
1364     \title Using an External Editor
1365
1366     To open the file you are currently viewing in an external editor, select
1367     \gui Edit > \gui Advanced > \gui{Open in External Editor}.
1368
1369     To use the external editor of your choice:
1370     \list 1
1371         \o Add the editor path to the \c{PATH} environment variable of your
1372            operating system.
1373         \o In Qt Creator select \gui Tools > \gui Options... >
1374            \gui Environment > \gui General.
1375         \o In \gui{External editor} enter the name of the application followed
1376            by \key Space and \tt{\bold %f}. For example, to open the file in
1377            Smultron, enter \tt{\bold{smultron %f}}.
1378
1379            To further define how to open the file in the external editor, you
1380            can use the following variables separated by a space:
1381            \list
1382             \o Current line number \tt{\bold %l}
1383             \o Current column number \tt{\bold %c}
1384             \o Editor's x position on the screen \tt{\bold %x}
1385             \o Editor's y position on the screen \tt{\bold %y}
1386             \o Editor's width in pixels \tt{\bold %w}
1387             \o Editor's height in pixels \tt{\bold %h}
1388             \o Editor's width in characters \tt{\bold %W}
1389             \o Editor's height in characters \tt{\bold %H}
1390             \o To pass % symbol to the editor \tt{\bold %%}
1391            \endlist
1392
1393            \note Not all variables work with all editors.
1394     \endlist
1395 */
1396
1397
1398 /*!
1399     \contentspage index.html
1400     \previouspage creator-editor-codepasting.html
1401     \page creator-editor-options.html
1402     \nextpage creator-editor-fakevim.html
1403
1404     \title Configuring the Editor
1405
1406     Qt Creator allows you to configure the text editor to suit your specific
1407     needs. To configure the editor, select  \gui Tools > \gui{Options...} >
1408     \gui{Text Editor}.
1409
1410     \image qtcreator-font-colors.png "Text editor options"
1411
1412     You can perform the following configuration actions:
1413     \list
1414         \o Set the font preferences and apply color schemes for syntax highlighting in
1415            \gui{Font & Colors}.
1416         \o Specify definition files for syntax highlighting for other types of files than
1417              C++ or QML in \gui{Generic Highlighter}.
1418         \o Set tabs, indentation, the handling of whitespace, and mouse operations in
1419            \gui Behavior.
1420         \o Set various display properties, for example,
1421            \l{Highlighting and folding blocks}{highlighting and folding blocks},
1422            text wrapping or \l{Moving to symbol definition or declaration}
1423            {moving to symbol definition or declaration}
1424            in \gui Display.
1425         \o Configure \l{Completing Code}{code completion} in \gui Completion.
1426     \endlist
1427
1428     \section2 Configuring Fonts
1429
1430     You can select the font family and size. You can specify a zoom setting in
1431     percentage for viewing the text. You can also zoom in or out by pressing
1432     \key {Ctrl++} or \key {Ctrl +-}, or by pressing \key Ctrl and rolling
1433     the mouse button up or down. To disable the mouse wheel function, select
1434     \gui {Tools > Options... > Text Editor > Behavior} and deselect the
1435     \gui {Enable scroll wheel zooming} check box.
1436
1437     Antialiasing is used by default to make text look smoother and more
1438     readable on the screen. Deselect the \gui Antialias check box to
1439     turn off antialiasing.
1440
1441     \section2 Defining Color Schemes
1442
1443     You can select one of the predefined color schemes for syntax highlighting
1444     or create customized color schemes. The color schemes apply to highlighting
1445     both C++ and QML files and generic files.
1446
1447     To create a color scheme:
1448
1449     \list 1
1450
1451         \o Select \gui {Tools > Options... > Text Editor > Fonts & Color > Copy}.
1452
1453         \o Enter a name for the color scheme and click \gui OK.
1454
1455         \o In the \gui Foreground field, specify the color of the selected
1456         code element.
1457
1458         \o In the \gui Background field, select the background
1459         color for the code element.
1460
1461         The backgound of the \gui Text element determines the background of the
1462         code editor.
1463
1464     \endlist
1465
1466     When you copy code from Qt Creator, it is copied in both plain text and HTML
1467     format. The latter makes sure that syntax highlighting is preserved when
1468     pasting to a rich-text editor.
1469
1470     \section2 Generic Highlighting
1471
1472     Generic highlighting is based on highlight definition files that are provided by the
1473     \l{http://kate-editor.org/2005/03/24/writing-a-syntax-highlighting-file/}{Kate Editor}.
1474     You can download highlight definition files for use with Qt Creator.
1475
1476     If you have a Unix installation that comes with the Kate Editor, you might already
1477     have the definition files installed. Typically, the files are in a read-only directory,
1478     and therefore, you cannot manage them. Qt Creator can try to locate them and use them
1479     as fallback files, when the primary location does not contain the definition for the
1480     current file type. You can also specify the directory that contains preinstalled
1481     highlight definition files as the primary location.
1482
1483     When you open a file for editing and the editor cannot find the highlight definition
1484     for it, an alert appears. You can turn off the alerts. You can also specify patterns
1485     for ignoring files. The editor will not alert you if highlight definitions for the
1486     ignored files are not found.
1487
1488     To download highlight definition files:
1489
1490     \list 1
1491
1492         \o Select \gui {Tools > Options... > Text Editor > Generic Highlighter}.
1493
1494         \image qtcreator-generic-highlighter.png "Generic Highlighter options"
1495
1496         \o In the \gui Location field, specify the path to the primary location for
1497         highlight definition files.
1498
1499         \o Click \gui {Download Definitions} to open a list of highlight definition files available for
1500         download.
1501
1502         \image qtcreator-manage-definitions.png "Download Definitions dialog"
1503
1504         \o Select highlight definition files in the list and click \gui{Download Selected
1505         Definitions}.
1506
1507         \o Select the \gui {Use fallback location} check box to specify the secondary location
1508         where the editor will look for highlight definition files.
1509
1510         \o Click \gui Autodetect to allow Qt Creator to look for highlight definition
1511         files on your system, or click \gui Browse to locate them in the file system
1512         yourself.
1513
1514         \o In the \gui {Ignored file patterns} field, specify file patterns. You will not
1515         receive alerts if the highlight definitions for the specified files are not found.
1516
1517         \o Click \gui OK to save your changes.
1518
1519     \endlist
1520
1521
1522     \section2 Indenting Code
1523
1524     \image qtcreator-indentation.png "Text Editor Behavior options"
1525
1526     When you type code, it is indented automatically according to the selected
1527     options. Select a block to indent it when you press \key Tab.
1528     Press \key {Shift+Tab} to decrease the indentation.
1529
1530     When you press \gui Backspace the indentation is decreased by one level,
1531     instead of one space, by default.
1532
1533     By default, the tab-length in code editor is 8 spaces, but you can change
1534     it. The code editor can also determine whether tabs or spaces are used
1535     on the previous or next line and copy the style.
1536
1537     You can determine whether the block indent style includes braces,
1538     or you can use the GNU indent style. The GNU style places braces on a separate
1539     line, indented by 2 spaces, except when they open a function definition, where
1540     they are not indented.
1541
1542     You can also specify whether continuation lines are aligned with the previous
1543     code or just indented to the logical depth. You can always use spaces for
1544     alignment or use spaces or tabs depending on the other options you selected.
1545
1546     The following code snippet illustrates excluding braces from the indented block:
1547
1548     \code
1549
1550     void foobar(bool zoo)
1551     {
1552         if (zoo)
1553         {
1554             foo();
1555         }
1556     }
1557
1558     \endcode
1559
1560     The following code snippet illustrates including braces in the indented block:
1561
1562     \code
1563
1564     void foobar(bool zoo)
1565     {
1566         if (zoo)
1567             {
1568             foo();
1569             }
1570     }
1571
1572     \endcode
1573
1574     The following code snippet illustrates the GNU style:
1575
1576     \code
1577
1578     void foobar(bool zoo)
1579     {
1580       if (zoo)
1581         {
1582           foo();
1583         }
1584     }
1585
1586     \endcode
1587
1588 */
1589
1590
1591 /*!
1592     \contentspage index.html
1593     \previouspage creator-editor-using.html
1594     \page creator-editor-finding.html
1595     \nextpage creator-editor-refactoring.html
1596
1597     \title Finding and Replacing
1598
1599     To search through the currently open file:
1600     \list 1
1601         \o Press \key Ctrl+F or select \gui Edit > \gui Find/Replace >
1602            \gui{Find/Replace}.
1603         \o Enter the text you are looking for.
1604
1605            If the text is found, all occurrences are highlighted as you type.
1606         \o To go to the next occurrence, click \inlineimage qtcreator-next.png
1607            , or press \key F3. To go to the previous occurrence click
1608            \inlineimage qtcreator-previous.png
1609            , or press \key Shift+F3.
1610     \endlist
1611
1612     You can restrict the search in the \gui Find field by selecting one
1613     or several search criteria:
1614     \list
1615         \o To make your search case sensitive, select
1616            \inlineimage qtcreator-editor-casesensitive.png
1617            .
1618         \o To search only whole words, select
1619            \inlineimage qtcreator-editor-wholewords.png
1620            .
1621         \o To search using regular expressions, select
1622            \inlineimage qtcreator-editor-regularexpressions.png
1623            .
1624            Regular expressions used in Qt Creator are modeled on Perl regular
1625            expressions. For more information on using regular expressions, see
1626            \l {http://doc.qt.nokia.com/4.7/qregexp.html#details}
1627            {Detailed Description} in the QRegExp Class Reference.
1628     \endlist
1629
1630     \note If you have selected text before selecting \gui Find/Replace, the
1631     search is conducted within the selection.
1632
1633     To replace occurrences of the existing text, enter the new text in the
1634     \gui{Replace with} field.
1635     \list
1636         \o To replace the selected occurrence and move to the next one,
1637            click \inlineimage qtcreator-next.png
1638            or press \key Ctrl+=.
1639         \o To replace the selected occurrence and move to the previous one,
1640            click \inlineimage qtcreator-previous.png
1641            .
1642         \o To replace all occurrences in the file, click \gui{Replace All}.
1643     \endlist
1644
1645     \section1 Advanced Search
1646
1647     To search through projects, files on a file system or the currently open
1648     file:
1649     \list 1
1650         \o Press \key Ctrl+Shift+F or select \gui Edit >
1651            \gui Find/Replace > \gui{Advanced Find} >
1652            \gui{Open Advanced Find...}.
1653         \o Select the scope of your search:
1654            \list
1655             \o \gui{All Projects} searches files matching the defined file
1656                pattern in all currently open projects.
1657
1658                For example, to search for \tt previewer only in \tt .cpp
1659                and \tt .h files, enter in \gui{File pattern}
1660                \tt *.cpp,*.h.
1661
1662                \image qtcreator-search-allprojects.png
1663
1664             \o \gui{Current Project} searches files matching the defined file
1665                pattern only in the project you are currently editing.
1666             \o \gui{Files on File System} recursively searches files matching
1667                the defined file pattern in the selected directory.
1668             \o \gui{Current File} searches only the current file.
1669            \endlist
1670         \o Enter the text you are looking for and click \gui Search.
1671
1672            \image qtcreator-searchresults.png
1673
1674            A list of files containing the searched text is displayed in the
1675            \gui{Search Results} pane.
1676            \list
1677             \o To see all occurrences in a file, double-click the file name in
1678                the list.
1679             \o To go to an occurrence, double-click it.
1680            \endlist
1681     \endlist
1682 */
1683
1684
1685 /*!
1686     \contentspage index.html
1687     \previouspage creator-editor-finding.html
1688     \page creator-editor-refactoring.html
1689     \nextpage qt-quick-toolbars.html
1690
1691     \title Refactoring
1692
1693     Code refactoring is the process of changing the code without modifying the
1694     existing functionality of your application. By refactoring your code you
1695     can:
1696     \list
1697         \o Improve internal quality of your application
1698         \o Improve performance and extensibility
1699         \o Improve code readability and maintainability
1700         \o Simplify code structure
1701     \endlist
1702
1703     \section1 Finding Symbols
1704
1705     To find the use of a specific symbol in your project:
1706     \list 1
1707         \o In the editor place the cursor on the symbol and select \gui Tools
1708            > \gui C++ > \gui{Find Usages} or press
1709            \key Ctrl+Shift+U.
1710
1711            Qt Creator looks for the symbol in the following locations:
1712            \list
1713             \o Files listed as a part of the project
1714             \o Files directly used by the project files (for example, generated
1715                files)
1716             \o Header files of used frameworks and libraries
1717            \endlist
1718         \o The \gui{Search Results} pane opens and shows the location and
1719            number of instances of the symbol in the current project.
1720
1721            \image qtcreator-refactoring-find.png
1722     \endlist
1723
1724     You can browse the search results in the following ways:
1725     \list
1726         \o To go directly to an instance, double-click the instance in the
1727            \gui{Search Results} pane.
1728         \o To move between instances, click
1729            \inlineimage qtcreator-forward.png
1730            and
1731            \inlineimage qtcreator-back.png
1732            in the \gui{Search Results} pane.
1733         \o To expand and collapse the list of all instances, click
1734            \inlineimage qtcreator-expand.png
1735            .
1736         \o To clear the search results, click \inlineimage qtcreator-clear.png
1737            .
1738     \endlist
1739
1740     \section1 Renaming Symbols
1741
1742     The functions available for renaming symbols depend on whether you are
1743     writing C++ or QML code. For QML, you can only rename IDs.
1744
1745     To rename a specific symbol in a Qt project:
1746     \list 1
1747         \o In the editor, place the cursor on the symbol you would like to
1748            change and select \gui Tools > \gui C++ >
1749            \gui{Rename Symbol Under Cursor} or press \key Ctrl+Shift+R.
1750
1751            The \gui{Search Results} pane opens and shows the location and
1752            number of instances of the symbol in the current project.
1753
1754            \image qtcreator-refactoring-replace.png
1755         \o To replace all selected instances, enter the name of the new symbol
1756            in the \gui{Replace with} text box and click \gui Replace.
1757
1758            To omit an instance, uncheck the check-box next to the instance.
1759
1760            \note This action replaces all selected instances of the symbol in
1761            all files listed in the \gui{Search Results} pane. You cannot
1762            undo this action.
1763     \endlist
1764
1765     \note Renaming local symbols does not open the \gui{Search Results} pane.
1766     The instances of the symbol are highlighted in code and you can edit the
1767     symbol. All instances of the local symbol are changed as you type.
1768
1769     To rename an ID in a Qt Quick project:
1770
1771     \list 1
1772
1773         \o Right-click an ID in the QML code and select
1774         \gui {Rename id}.
1775
1776         \o In the \gui {Rename id} field, enter the new ID.
1777
1778    \endlist
1779
1780 */
1781
1782 /*!
1783     \contentspage index.html
1784     \previouspage creator-qml-application.html
1785     \page creator-project-managing.html
1786     \nextpage creator-project-creating.html
1787
1788     \title Managing Projects
1789
1790     One of the major advantages of Qt Creator is that it allows a team of
1791     developers to share a project across different development platforms with a common
1792     tool for development and debugging.
1793
1794     The following sections describe how to manage projects:
1795
1796     \list
1797         \o \l{Creating a Project}
1798         \o \l{Setting Up a qmake Project}
1799         \o \l{Adding Libraries to qmake Projects}
1800         \o \l{Setting Up a CMake Project}
1801         \o \l{Setting Up a Generic Project}
1802         \o \l{Setting Up Development Environment for Maemo}
1803         \o \l{Setting Up Development Environment for Symbian}
1804         \o \l{Managing Sessions}
1805         \o \l{Adding New Custom Wizards}
1806     \endlist
1807
1808 */
1809
1810
1811 /*!
1812     \contentspage index.html
1813     \previouspage creator-project-managing.html
1814     \page creator-project-creating.html
1815     \nextpage creator-project-qmake.html
1816
1817     \title Creating a Project
1818
1819     You use wizards to create and import several types of projects and files, such
1820     as Qt GUI or console applications and Qt Quick applications.
1821     You can use wizards also to add individual files to your projects.
1822
1823     The wizards prompt you to enter the settings needed
1824     for that particular type of project and create the necessary files for you.
1825     To display other types of files in the \gui Projects pane, specify them in
1826     the project file.
1827
1828     \image qtcreator-new-project.png
1829
1830     To change the location of the project directory, and to make changes in
1831     the build and run settings, select \gui{Tools} > \gui{Options...} >
1832     \gui{Projects} > \gui{General}.
1833
1834     \section1 Using Project Wizards
1835
1836     To create a new project:
1837     \list 1
1838         \o Select \gui File > \gui{New File or Project} and select the type of your
1839            project.
1840
1841            The contents of the following dialogs depend on the project type.
1842            Follow the instructions of the wizard.
1843            This example uses \gui {Qt Gui Application}.
1844
1845         \o Name the project and set its path. To select the path from a
1846            directory tree, click \gui Browse.
1847
1848            Avoid using spaces and special characters in the project name and
1849            path.
1850
1851            \image qtcreator-intro-and-location.png
1852
1853         \o Select the Qt versions to use as build targets for your project, and click
1854            \gui{Next}.
1855
1856            \image qtcreator-new-project-qt-versions.png "Target setting dialog"
1857
1858            \note If you have only one Qt version installed, this dialog is skipped.
1859
1860         \o Specify the name of the class you want to create and using the
1861            drop-down menu select its base class type.
1862
1863            Note that the \gui{Header file}, \gui{Source file} and
1864            \gui{Form file} fields are automatically updated as you name your
1865            class.
1866
1867            \image qtcreator-class-info.png
1868         \o Review the project settings.
1869
1870            To create the project, click \gui Finish.
1871
1872            \image qtcreator-new-project-summary.png
1873     \endlist
1874
1875     \section1 Adding Files to Projects
1876
1877     You can create the following types of files:
1878
1879     \list
1880
1881         \o Qt resource files, which allow you to store binary files in the
1882         application executable
1883
1884         \o \QD forms and Qt QML files, which specify parts of application user
1885         interfaces
1886
1887         \o C++ class, source, or header files
1888
1889         \o Text files
1890
1891     \endlist
1892
1893     \section2 Creating C++ Classes
1894
1895     The \gui {C++ Class Wizard} allows you to create a C++ header and source file for
1896     a new class that you can add to a C++ project. Specify the class name, base
1897     class, and header and source files for the class.
1898
1899     The  wizard supports namespaces. To use a namespace, enter a qualified
1900     class name in the \gui {Class name} field. For example:
1901     MyNamespace::MySubNamespace::MyClass.
1902
1903     \image qtcreator-cpp-class-wizard.png "Enter Class Name dialog"
1904
1905     The names of the header and source file are based on the class name. To change the
1906     default suffix of a file, click \gui Configure.
1907
1908     You can create your own project and class wizards. For more information,
1909     see \l{Adding New Custom Wizards}.
1910
1911     \section2 Displaying Additional File Types in Projects Pane
1912
1913     Qt Creator determines whether to display files from the project folder
1914     in the \gui Projects pane depending on the file type (.pro, .pri, .cpp,
1915     .h, .ui, .qrc, and so on). To display other types of files, edit the the
1916     project file. Add filenames as values of the \c {OTHER_FILES} variable.
1917     You can also use wildcards.
1918
1919     For example, the following code specifies that text files are displayed
1920     in the \gui Projects pane:
1921
1922     \code
1923
1924     OTHER_FILES += *.txt
1925
1926     \endcode
1927
1928     This also makes the files available in the \gui Locator.
1929
1930     \section1 Adding Subprojects to Projects
1931
1932     When you create a new project, you can add it to another project as a subproject
1933     in the \gui{Project Management} dialog. However, you first have to edit the
1934     .pro file of the parent project to specify that qmake uses the \c subdirs template
1935     to build the project.
1936
1937     The \c subdirs template creates a Makefile for building subprojects. They can be
1938     located either in subdirectories of the project directory or in any other directory.
1939     The location of the targets is specified using the SUBDIRS variable. If the project file
1940     has the same name as the directory, you can just specify the directory name. If the project
1941     name and directory name are different, you must specify the project file name (.pro).
1942
1943     For more information on the SUBDIRS variable, see the
1944     \l{http://doc.qt.nokia.com/4.7/qmake-variable-reference.html#subdirs}{qmake Variable Reference}.
1945
1946     For example, the following code specifies that plugin_coreplugin/plugin_coreplugin.pro
1947     and mylogin.pro belong to the project:
1948
1949     \code
1950     TEMPLATE  = subdirs
1951
1952     SUBDIRS = plugin_coreplugin \
1953     ../another/plugin/myplugin.pro
1954     \endcode
1955
1956     To specify dependencies, use the \gui{Add Library} wizard. For more information,
1957     see \l{Adding Libraries to qmake Projects}.
1958
1959 */
1960
1961
1962 /*!
1963     \contentspage index.html
1964     \previouspage creator-project-managing-sessions.html
1965     \page creator-project-wizards.html
1966     \nextpage creator-editor-using.html
1967
1968     \title Adding New Custom Wizards
1969
1970     If you have a team working on a large application or several applications,
1971     you might want to standardize the way the team members create projects
1972     and classes.
1973
1974     You can copy the wizard templates in the template folders
1975     to create your own project and class wizards. They are displayed in the
1976     \gui New dialog that opens when you choose \gui {File > New File or Project}.
1977
1978     In a project wizard, you can specify the files needed in a project.
1979     You can add wizard pages to allow developers to specify settings for the
1980     project.
1981
1982     In a class wizard, you can allow developers to specify the class name, base
1983     class, and header and source files for the class.
1984
1985     To see how this works, rename wizard_example.xml as wizard.xml in the helloworld
1986     and listmodels folders. After you restart Qt Creator, the \gui {Custom Classes}
1987     and \gui {Custom Projects} categories appear in the \gui New dialog.
1988
1989     \image qtcreator-custom-project-wizards.png "The New dialog with custom projects and classes"
1990
1991     \section1 Overview of Custom Wizards
1992
1993     A custom wizard defines the user interface of a wizard page. The values the user enters
1994     in the wizard are assigned field names. Field name and value pairs are then passed to
1995     the file creation process. File creation can happen in the following ways:
1996
1997     \list 1
1998
1999         \o Template-based, where source files that contain placeholders for
2000         the field names are provided. During processing, the placeholders are replaced
2001         by the values from the wizard page. Optionally, modifier
2002         characters are applied. For more information, see \l{Processing Template Files}.
2003
2004         \o Generator script, where a script is called to create the files.
2005
2006         \note This option mainly exists to accommodate existing generator scripts or
2007         cases where complicated algorithmic logic is required when generating files. Writing
2008         cross-platform scripts is inherently difficult, and therefore, it is not recommended
2009         for new wizards. For more information, see \l{Using Generator Scripts}.
2010
2011     \endlist
2012
2013     Custom wizards are located in subdirectories of the following directories:
2014
2015     \list
2016
2017         \o \c{share/qtcreator/templates/wizards}
2018
2019         \o the local user's configuration folder,
2020         \c{$HOME/.config/Nokia/qtcreator/templates/wizards}
2021
2022         \o \c{%APPDATA%\Nokia\qtcreator\templates\wizards}
2023
2024     \endlist
2025
2026     They contain an XML configuration file called wizard.xml, the
2027     template source files, and optionally, the generator script.
2028
2029     \section1 Creating Project Wizards
2030
2031     To create a project wizard:
2032
2033     \list 1
2034
2035         \o Make a copy of the \c {share/qtcreator/templates/wizards/helloworld} or
2036         \c {share/qtcreator/templates/wizards/listmodel} folder.
2037
2038         \o Modify the wizard_example.xml file.
2039
2040         \o The following code determines the type of the wizard and its place
2041         in the \gui New dialog:
2042
2043         \code
2044
2045         <wizard version="1" kind="project"
2046         class="qt4project" firstpage="10"
2047         id="A.HelloWorld" category="B.CustomProjects">
2048
2049         \endcode
2050
2051         \list
2052
2053             \o \c version is the version of the file contents. Do not modify this value.
2054
2055             \o \c kind specifies the type of the wizard: \c project or \c class.
2056
2057             \o \c class specifies the type of the project. Currently the only available
2058             type is \c qt4project, which specifies a Qt console project.
2059
2060             \o \c firstpage specifies the place of the new page in the standard project
2061             wizard. The value 10 ensures that the custom page appears after the standard
2062             pages, as the last page of the wizard.
2063
2064             \o \c id is the unique identifier for your wizard. The letter specifies the
2065             position of the wizard within the \c category. The HelloWorld wizard appears
2066             as the first wizard in the second category in the \gui New dialog.
2067
2068             \o \c category is the category in which to place the wizard in the list.
2069             The letter specifies the position of the category in the list in the \gui New
2070             dialog.
2071
2072         \endlist
2073
2074         \o The following code specifies the icon and text that appear in the \gui New
2075          dialog:
2076
2077         \code
2078
2079         <icon>console.png</icon>
2080         <description>Creates a hello-world-project with custom message.</description>
2081         <description xml:lang="de">Erzeugt ein Hello-Welt-Projekt mit einer Nachricht.</description>
2082         <displayname>Hello World</displayname>;
2083         <displayname xml:lang="de">Hallo Welt</displayname>;
2084         <displaycategory>Custom Projects</displaycategory>
2085         <displaycategory xml:lang="de">Benutzerdefinierte Projekte</displaycategory>
2086
2087         \endcode
2088
2089         \list
2090
2091
2092             \o \c icon appears next to the \c displayName.
2093
2094             \o \c description appears at the bottom of the \gui New dialog when you
2095             select the display name.
2096
2097             \o \c displayName appears in the \gui New dialog, under the
2098             \c displayCategory.
2099
2100             You can add translations as values for the text elements. Specify the target
2101             language as an attribute for the element. Use locale names (QLocale).
2102             For example, \c {xml:lang="de"}.
2103
2104         \endlist
2105
2106         \o Files to be added to the project:
2107
2108         \list
2109             \o Template-based: The following code specifies the files to add to the project:
2110             \code
2111         <files>
2112             <file source="main.cpp" openeditor="true" />
2113             <file source="project.pro" target="%ProjectName%.pro" openproject="true" />
2114             <file source="icon.png" target="%ProjectName%.png" binary="true" />
2115         \endcode
2116             \list
2117
2118                 \o \c source specifies the file to copy to the project. The files must be
2119                 located in the wizard folder.
2120
2121                 \o \c openeditor indicates that the file is to be opened in an editor after
2122                 the wizard has finished.
2123
2124                 \o \c binary indicates that the file is a binary file (for example, an
2125                 image file). It is to be copied to the target folder as is. Placeholders
2126                 are not replaced with values.
2127
2128                 \o \c target specifies the new filename for the file. The \c {%ProjectName%}
2129                 variable is replaced with the string that users specify in the \gui Name
2130                 field on the first page of the wizard.
2131
2132                 \o \c openproject indicates that the file is a project file which is to be opened
2133                 after the wizard has finished.
2134
2135             \endlist
2136
2137             See also \l{Processing Template Files}.
2138
2139             \o Generator-script: The following code specifies that the script \c generate.pl is to be used
2140                to create the files:
2141             \code
2142             <generatorscript binary="generate.pl">
2143                 <argument value="--class-name=%ClassName%"/>
2144                 <argument value="--project-name=%ProjectName%"/>
2145                 <argument value="--header-suffix=%CppHeaderSuffix%" omit-empty="true"/>
2146                 <argument value="--source-suffix=%CppSourceSuffix%" omit-empty="true"/>
2147                 <argument value="--description=%Description%" omit-empty="true" write-file="true"/>
2148             </generatorscript>
2149             \endcode
2150             In each argument, the field placeholders are replaced by the field
2151             values. There are additional boolean attributes which give fine-grained control:
2152
2153             \list
2154             \o \c omit-empty specifies that complete argument is to be omitted when all
2155                placeholders expand to empty values. In the above example,
2156                the option \c --source-suffix will not be passed to the script if the value is empty.
2157
2158              \o \c write-file indicates that instead of the expanded value,
2159                 the value will be written to a temporary file and its file name will be
2160                 passed to the script instead. This is useful for multi-line text fields.
2161             \endlist
2162
2163              See also \l{Using Generator Scripts}.
2164         \endlist
2165
2166         \o The following code creates a page that specifies settings for the project:
2167
2168         \code
2169
2170         <!-- Create a 2nd wizard page with parameters -->
2171         <fieldpagetitle>Hello World Parameters</fieldpagetitle>
2172         <fieldpagetitle xml:lang="de">Hallo Welt Parameter</fieldpagetitle>
2173         <fields>
2174             <field mandatory="true" name="MESSAGE">
2175                 <fieldcontrol class="QLineEdit" validator='^[^"]+$'  defaulttext="Hello world!" />
2176                 <fielddescription>Hello world message:</fielddescription>
2177                 <fielddescription xml:lang="de">Hallo-Welt-Nachricht:</fielddescription>
2178             </field>
2179         </fields>
2180
2181         \endcode
2182
2183         \list
2184
2185             \o \c fieldpagetitle specifies the title of the page.
2186
2187             \o \c field specifies whether the field is mandatory (\c true or \c false).
2188             You can use the value of the \c name field as a variable in other files (for
2189             example, \c {%MESSAGE%}.
2190
2191             \o \c fieldcontrol specifies the field. \c class specifies the field type.
2192             You can use interface objects from the QWidget class to create fields. This
2193             example uses QLineEdit to create an input field.
2194
2195             \o \c validator specifies a regular expression to check the characters allowed in
2196             the field.
2197
2198             \o \c defaulttext specifies text that appears in the field by default.
2199
2200             \o \c fielddescription specifies the field name that appears on the wizard page.
2201
2202          \endlist
2203
2204     \endlist
2205
2206     \section1 Creating Class Wizards
2207
2208     The widget.xml file for a class wizard is very similar to that for a project
2209     wizard. The differences are discussed below.
2210
2211     To create a class wizard:
2212
2213     \list 1
2214
2215         \o The following code specifies settings for the wizard:
2216
2217         \code
2218
2219         <wizard version="1" kind="class" id="A.ListModel" category="B.CustomClasses">
2220
2221            <description>Creates a QAbstractListModel implementation.</description>
2222            <description xml:lang="de">Erzeugt eine Implementierung von QAbstractListModel.</description>
2223
2224            <displayname>QAbstractListModel implementation</displayname>
2225            <displayname xml:lang="de">Implementierung von QAbstractListModel</displayname>
2226
2227            <displaycategory>Custom Classes</displaycategory>
2228            <displaycategory xml:lang="de">Benutzerdefinierte Klassen</displaycategory>
2229
2230         \endcode
2231
2232         For more information about the elements and their values, see
2233         \l {Creating Project Wizards}.
2234
2235         \o The following code specifies the files to add to the project:
2236
2237         \code
2238
2239         <files>
2240             <file source="listmodel.cpp" target="%ClassName:l%.%CppSourceSuffix%"  openeditor="true" />
2241             <file source="listmodel.h" target="%ClassName:l%.%CppHeaderSuffix%"  openeditor="true" />
2242         </files>
2243
2244         \endcode
2245
2246         Here, \c target contains the following variables that are used to construct
2247         the filename:
2248
2249         \list
2250
2251         \o \c {%ClassName:l%} is replaced with the value of the \c ClassName field.
2252         The modifier \c l converts the string to lower case, to observe Qt
2253         conventions.
2254
2255         \o \c {%CppSourceSuffix%} and \c {%CppHeaderSuffix%} are pre-defined.
2256         For more information, see \l{Pre-defined Standard Variables}.
2257
2258         \endlist
2259
2260         \code
2261
2262         <!-- Create parameter wizard page -->
2263
2264         <fieldpagetitle>ListModel parameters</fieldpagetitle>
2265         <fieldpagetitle xml:lang="de">Parameter des ListModel</fieldpagetitle>
2266         <fields>
2267             <field name="ClassName">
2268
2269                 <fieldcontrol class="QLineEdit" validator="^[a-zA-Z0-9_]+$" defaulttext="MyListModel" />
2270
2271                 <fielddescription>Class name:</fielddescription>
2272                 <fielddescription xml:lang="de">Klassenname:</fielddescription>
2273             </field>
2274             <field name="Datatype">
2275
2276                 <fieldcontrol class="QComboBox" combochoices="QString,int" defaultindex="0" />
2277
2278                 <fielddescription>Data type:</fielddescription>
2279                 <fielddescription xml:lang="de">Datentyp:</fielddescription>
2280             </field>
2281         </fields>
2282
2283         \endcode
2284
2285         In addition to QLineEdit, QComboBox is used in the class wizard to create
2286         a field. \c combochoices specifies the options in the combobox and
2287         \c defaultindex specifies that QString is the default value.
2288
2289     \endlist
2290
2291     \section1 Processing Template Files
2292
2293     When processing a template source file, placeholders specifying the field names
2294     in the format \c{%FIELDNAME%} are replaced by the values entered by the user.
2295     In addition, modifier characters are supported. For example, \c{%FIELDNAME:u%}
2296     specifies that the value is converted to upper case. This enables generating header
2297     guards for C++ header files.
2298
2299     The following modifier characters are supported:
2300
2301     \list
2302     \o \c{l} for lower case.
2303     \o \c{u} for upper case.
2304     \o \c{c} for upper case initial letter ("project" > "Project").
2305     \endlist
2306
2307     You can use conditions to add sections of the file depending on field values.
2308     Use a syntax that is similar to C++ preprocessing, as demonstrated in
2309     the profile of the \c{helloworld} example:
2310
2311     \code
2312
2313     @if "%SCRIPT%" == "true"
2314     QT += script
2315     @endif
2316
2317     \endcode
2318
2319     The value of the Boolean (QCheckBox) field labeled \c{SCRIPT} determines
2320     whether the script module is added. The expressions must expand to valid
2321     Javascript expressions after field replacement.
2322
2323     \section1 Pre-defined Standard Variables
2324
2325     In addition to the field values entered by the user, you can use
2326     the following pre-defined standard values:
2327
2328     \list
2329
2330     \o \c {%ProjectName%} is replaced by the name of the project in the case
2331     of project wizards.
2332
2333     \o \c {%Path%} is replaced by the path to the target directory.
2334     For classes, this is the directory, where the files
2335     are created. For project wizards, an additional subdirectory
2336     named after the project is created.
2337
2338     \o \c {%TargetPath%} is replaced by the path to the directory where the actual files
2339     are created. For non-project wizards, it is identical to \c %Path%.
2340     For project wizards, it is \c %Path%/%ProjectName%.
2341
2342     \o \c {%CppSourceSuffix%} is replaced by the default source suffix, which
2343     is defined in Qt Creator in \gui {Tools > Options... > C++ > File Naming}.
2344     For example, if users enter \bold MyClass, the filename becomes myclass.cpp
2345     when the project is created.
2346
2347     \o \c {%CppHeaderSuffix%} is replaced by the default header suffix, which
2348     is also defined in \gui {File Naming}.
2349
2350     \endlist
2351
2352     \section1 Validating User Input
2353
2354     You can specify validation rules for user input. The rules consist of a Boolean
2355     JavaScript expression and an error message. The placeholders in them are
2356     replaced with values before they are evaluated or displayed.
2357
2358     Consider the following rule used in the \l{Creating Class Wizards} example:
2359
2360     \code
2361     <validationrules>
2362         <validationrule condition='"%ClassName%" != "QAbstractListModel"'>
2363             <message>%ClassName% cannot be used as class name.</message>
2364             <message xml:lang="de">%ClassName% kann nicht als Klassenname verwendet werden.</message>
2365         </validationrule>
2366     </validationrules>
2367     \endcode
2368
2369     It ensures that the class name entered by the user does not match the name of
2370     the base class. If the validation fails, a red label displaying the message appears
2371     at the bottom of the wizard page.
2372
2373     \section1 Using Generator Scripts
2374
2375     The values entered in the wizard page are passed to the script
2376     as command line arguments as defined by the wizard configuration file.
2377
2378     In addition, the script must implement a \c{--dry-run} command line option.
2379
2380     Qt Creator needs to know the file names before the files are created to check
2381     whether files with identical names already exist, for example. Therefore,
2382     script file generation is a two-step process:
2383
2384     \list 1
2385
2386     \o  Determine file names and attributes: The script is called with the command line
2387         \c{--dry-run} option and the field values. It then prints the relative path
2388         names of the files it intends to create, followed by comma-separated attributes
2389         matching those of the \c{<file>} element, for example:
2390
2391         \code
2392         myclass.cpp,openeditor
2393         myclass.h,openeditor
2394         myproject.pro,openproject
2395         \endcode
2396
2397     \o Create files: The script is called with the parameters only in the working directory.
2398        It then actually creates the files. If directories are needed, the script
2399        should create them, too.
2400
2401    \endlist
2402
2403    The \c{scriptgeneratedproject} sample wizard illustrates the usage.
2404    A typical script invocation for this example (obtained by running Qt Creator with
2405    \c{--customwizard-verbose}) looks as follows:
2406
2407    \code
2408    generate.pl --class-name=TestClass --project-name=TestProject --header-suffix=h --source-suffix=cpp --description=/tmp/qtcreatorj26629.txt
2409    \endcode
2410
2411    By default, the scripts are run in the directory corresponding to
2412    \c %TargetPath%. This can be overriden by specifying the
2413    attribute \c workingdirectory on the element \c generatorscript.
2414    For example, if the script creates the project directory by itself,
2415    %Path% can be specified. In that case, \c --dry-run should output
2416    the correct relative paths or absolute paths constructed using the value of
2417    \c %Path%.
2418
2419 */
2420
2421
2422 /*!
2423     \contentspage index.html
2424     \previouspage creator-project-creating.html
2425     \page creator-project-qmake.html
2426     \nextpage creator-project-qmake-libraries.html
2427
2428     \title Setting Up a qmake Project
2429
2430     The qmake tool helps simplify the build process for development projects
2431     across different platforms. qmake automates the generation of makefiles
2432     so that only a few lines of information are needed to create each makefile.
2433     qmake can be used for any software project, whether it is written in Qt or not.
2434
2435     The qmake tool generates a makefile based on the information in a project
2436     file that is generated by Qt Creator. It can generate makefiles for MinGW,
2437     Microsoft Visual studio, and CSL ARM in Windows, and GNU Compiler Collection
2438     (GCC) in Linux and Mac OS X.
2439
2440     For more information about qmake, see the
2441     \l{http://qt.nokia.com/doc/4.7/qmake-manual.html}{qmake Manual}.
2442
2443     \section1 Selecting the Qt Version
2444
2445     Qt Creator allows you to have multiple versions of Qt installed on
2446     your development PC and use different versions for each of your projects.
2447
2448     If Qt Creator finds \bold qmake in the \c{PATH} environment variable, it uses
2449     that version. The \l{glossary-system-qt}{ qmake version of Qt} is referred
2450     to as \bold{Qt in PATH}. If you intend to use only one version of Qt and it
2451     is already in the \c{PATH} and correctly set up for command line use, you do
2452     not need to manually configure your Qt version.
2453
2454     \section2 Compiling Projects with MinGW in Windows
2455
2456     To add a Qt version for \bold MinGW:
2457     \list 1
2458         \o Select \gui Tools > \gui Options... > \gui Qt4 >
2459            \gui{Qt Versions}.
2460         \o Click \inlineimage qtcreator-windows-add.png
2461            and enter the name of the version in the \gui{Version name} field.
2462         \o Enter the qmake binary path in the \gui{qmake location} field.
2463         \o Enter the MinGW installation path in the \gui{MinGW directory} field.
2464
2465            \image qtcreator-qt4-qtversions-win-mingw.png
2466     \endlist
2467
2468     \section3 Troubleshooting MinGW Compilation Errors
2469
2470     If error messages displayed in the \gui {Compile Output} pane contain
2471     paths where slashes are missing (for example, C:NokiaQtSDK),
2472     check your PATH variable. At the command line, enter the following commands:
2473
2474     \code
2475         where sh.exe
2476         where make.exe
2477         where mingw32-make.exe
2478     \endcode
2479
2480     If these commands show paths, they have been added to the global PATH variable
2481     during the installation of a toolkit based on Cygwin or MinGW, even though
2482     this is against Windows conventions.
2483
2484     To keep working with the third-party toolkit, create a new shell link
2485     that adds the required paths (as Visual Studio and Qt do). The shell link
2486     must point to cmd.exe, as illustrated by the following example:
2487
2488     \c {C:\Windows\System32\cmd.exe /K C:\path_to\myenv.bat}
2489
2490     where the /K parameter carries out the command specified in the bat file.
2491
2492     Create the myenv.bat file at \e path_to, which should be in a convenient location.
2493     In the file, specify the paths to the toolkits. For example,
2494
2495     \c  {set PATH=C:\path1;C:\path2;%PATH%}
2496
2497     where \e path1 and \e path2 are paths to the toolkits.
2498
2499     Finally, remove the paths from the global PATH, reboot the computer, and
2500     run the \c where commands again to verify that the global PATH is now clean.
2501
2502     You can use the shell link to run the tools in the third-party toolkits.
2503
2504     \section2 Compiling Projects with Microsoft Visual C++
2505
2506     To add a Qt version for a \bold{Microsoft Visual C++} compiler:
2507     \list 1
2508         \o Select \gui Tools > \gui Options... > \gui Qt4 >
2509            \gui{Qt Versions}.
2510         \o Qt Creator automatically sets the correct environment variables for
2511            compilation. Select the internal version number of the installed
2512            Microsoft Visual C++ tool chain in the \gui Toolchain list.
2513
2514            \image qtcreator-qt4-qtversions-win-msvc.png
2515
2516         \o If the \gui {Debugging helper} is not in use, click \gui Rebuild
2517         to take it to use. For more information, see \l{Using Debugging Helpers}.
2518
2519     \endlist
2520
2521     \section2 Compiling Qt for Symbian Projects
2522
2523     If you are using \bold{Qt for Symbian} and your Symbian SDK is registered
2524     with devices.exe, Qt Creator automatically detects the Qt version. To add a
2525     Qt for Symbian version:
2526     \list 1
2527         \o Select \gui Tools > \gui Options... > \gui Qt4 >
2528            \gui{Qt Versions}.
2529         \o Select the \gui{S60 SDK} you want the Qt Creator to use.
2530
2531            \image qtcreator-qt4-qtversions-win-symbian.png
2532         \o To build an application for your device using GCCE, enter the path
2533            to the CSL ARM toolchain directory in
2534            \gui{CSL\\GCCE Directory}.
2535
2536            You do not need to specify this path if the compiler is included in
2537            the \c{PATH} environment variable.
2538         \o To build an application for the emulator (WINSCW toolchain), enter
2539            the path to your Carbide C++ installation directory in
2540            \gui{Carbide directory}.
2541
2542            \note You need to have Carbide C++ version 2.0 or later installed.
2543     \endlist
2544
2545     \section2 Compiling Projects With Linux
2546
2547     To compile a project in Qt Creator, Linux uses GNU Compiler Collection
2548     (GCC). Intel Compiler Collection (ICC) is supported as a drop-in
2549     replacement for GCC.
2550
2551     To add a Qt version:
2552     \list 1
2553         \o Select \gui Tools > \gui Options... > \gui Qt4 >
2554            \gui{Qt Versions}.
2555         \o Click \inlineimage qtcreator-linux-add.png
2556            and enter the name of the version in \gui{Version Name}.
2557         \o Enter the path to the qmake binary in \gui{Path to qmake}.
2558     \endlist
2559
2560     \section2 Compiling Projects With Mac OS X
2561
2562     To compile a project in Qt Creator, Mac OS X uses GNU Compiler Collection
2563     (GCC), which is part of Xcode.
2564
2565     To add a Qt version:
2566     \list 1
2567         \o Select \gui{Qt Creator} > \gui Preferences... > \gui{Qt Versions}.
2568         \o Click \inlineimage qtcreator-macosx-add.png
2569            and enter the name of the version in \gui{Version Name}.
2570         \o Enter the path to the qmake binary in \gui{Path to Qmake}.
2571
2572            \image qtcreator-qt4-qtversions.png
2573     \endlist
2574
2575 */
2576
2577
2578 /*!
2579     \contentspage index.html
2580     \previouspage creator-project-qmake.html
2581     \page creator-project-qmake-libraries.html
2582     \nextpage creator-project-cmake.html
2583
2584     \title Adding Libraries to qmake Projects
2585
2586     In addition to Qt libraries, you can add other libraries to your projects.
2587     The way the library is added depends on whether it is a system library or
2588     your own library or a 3rd party library located in the build tree of the
2589     current project or in another build tree.
2590
2591     \image qtcreator-add-library-wizard.png "Add Library wizard"
2592
2593     Because system libraries do not typically change and are often found by
2594     default, you do not need to specify the path to the library or to its includes
2595     when you add it.
2596
2597     For your own libraries and 3rd party libraries, you need to specify
2598     the paths. Qt Creator tries to quess the include path for an external library,
2599     but you need to check it and modify it if necessary. Qt Creator automatically
2600     adds the include path for an internal library.
2601
2602     For all libraries, select the target platforms for the application, library,
2603     or plugin.
2604
2605     Specify whether the library is statically or dynamically linked. For a
2606     statically linked internal library, Qt Creator adds dependencies
2607     (PRE_TARGETDEPS) in the project file.
2608
2609     Depending on the development platform, some options might be detected
2610     automatically. For example, on Mac OS, the library type (\gui Library or
2611     \gui Framework) is detected automatically and the option is hidden. However,
2612     if you develop on another platform than Mac OS and want to build your
2613     project for the Mac OS, you must specify the library type.
2614
2615     The default convention on Windows is that the debug and release versions
2616     of a library have the same name,
2617     but are placed in different subdirectories, usually called \e debug and
2618     \e release. If the library path does not contain either of these folders,
2619     you cannot select the option to place the libraries in separate
2620     folders.
2621
2622     Alternatively, the letter \e d can be added to the library name for the debug
2623     version. For example, if the release version is called example.lib, the
2624     debug version is called exampled.lib. You can specify that the letter
2625     is added for the debug version and removed for the release version.
2626     If the library name ends in \e d, deselect the \gui {Remove "d" suffix
2627     for release version} option.
2628
2629     Qt Creator supports code completion and syntax highlighting for the added
2630     libraries once your project successfully builds and links to them.
2631
2632     \section1 To Add Libraries
2633
2634     \list 1
2635
2636         \o In the \gui Projects pane, open the project file (.pro).
2637
2638         \o Right-click in the code editor to open the context menu and select
2639         \gui {Add Library...}.
2640
2641         \o Follow the instructions of the wizard.
2642
2643     \endlist
2644
2645     For more information about the project file settings, see
2646     \l{http://doc.qt.nokia.com/4.7/qmake-project-files.html#declaring-other-libraries}{Declaring other Libraries}.
2647
2648     \section1 Example of Adding Internal Libraries
2649
2650     The following example describes how to add a statically linked internal
2651     library to your project.
2652
2653     \list 1
2654
2655         \o Choose \gui {File > New File or Project... > Other Projects >
2656         C++ Library} to create the library.
2657
2658         The \gui {Introduction and Product Location} dialog opens.
2659
2660         \image qtcreator-add-library-wizard-ex-1.png "Introduction and Product Location dialog"
2661
2662         \o In the \gui Type field, select \gui {Statically Linked Library}.
2663
2664         \o In the \gui Name field, give a name for the library. For example,
2665         \bold mylib.
2666
2667         \o Follow the instructions of the wizard until you get to the
2668         \gui {Project Management} dialog. In the \gui {Add to project}
2669         list, select a project. For example, \bold myapp.
2670
2671         \o In the \gui Projects pane, open the project file (.pro).
2672         For example, \bold myapp.pro.
2673
2674         \o Right-click in the code editor to open the context menu and select
2675         \gui {Add Library... > Internal Library > Next}.
2676
2677         \o In the \gui Library field, select \bold mylib and click \gui Next.
2678
2679         \o Click \gui Finish to add the following library declaration to the
2680         project file:
2681
2682         \code
2683         win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib
2684         else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/debug/ -lmylib
2685         else:symbian: LIBS += -lmylib
2686         else:unix: LIBS += -L$$OUT_PWD/../../../projects/mylib/ -lmylib
2687
2688         INCLUDEPATH += $$PWD/../../../projects/mylib
2689         DEPENDPATH += $$PWD/../../../projects/mylib
2690
2691         win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/release/mylib.lib
2692         else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/debug/mylib.lib
2693         else:unix:!symbian: PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/libmylib.a
2694         \endcode
2695
2696     \endlist
2697
2698 */
2699
2700
2701 /*!
2702     \contentspage index.html
2703     \previouspage quick-application-logic.html
2704     \page creator-building-running.html
2705     \nextpage creator-building-targets.html
2706
2707     \title Building and Running Applications
2708
2709     Qt Creator provides support for building and running Qt applications for
2710     desktop environment and mobile devices. When you install the Nokia Qt SDK,
2711     the build and run settings for the Maemo and Symbian targets are
2712     set up automatically.
2713
2714     You can add a target if the necessary tool chain is installed on the
2715     development PC and the Qt version is configured. Click
2716     \inlineimage qtcreator-qt4-addbutton.png "Add Target button"
2717     and select from a list of available
2718     targets. To remove a target, select it and click
2719     \inlineimage qtcreator-target-remove.png "Remove Target button"
2720     .
2721
2722     You can select the targets and click the \gui Run button to build and
2723     run the applications on the targets. You can click the \gui {Build All}
2724     button to build all open projects, one after another.
2725
2726      \section1 Setting Up a Project
2727
2728     To view and modify the settings for currently open projects, switch to the
2729     \gui Projects mode by pressing \key Ctrl+5.
2730
2731     \image qtcreator-projectpane.png
2732
2733     The project pane consists of the following tabs:
2734     \list
2735        \o \l{Building for and Running on Multiple Targets}{Targets}
2736        \note If you have installed only one tool chain, the \gui Targets
2737        tab is replaced by a \gui {Build and Run} tab.
2738        \o \l{Specifying Editor Settings}{Editor Settings}
2739        \o \l{Specifying Dependencies}{Dependencies}
2740     \endlist
2741
2742     Use the \gui Build and \gui Run buttons to switch between
2743     the build and run settings for the active project.
2744
2745     If you have multiple projects open in Qt Creator, use
2746     \gui{Select a Project} option at the top to navigate between different
2747     project edits.
2748
2749 */
2750
2751
2752 /*!
2753     \contentspage index.html
2754     \previouspage creator-building-running.html
2755     \page creator-building-targets.html
2756     \nextpage creator-build-settings.html
2757
2758     \title Building for and Running on Multiple Targets
2759
2760     You can build your application for multiple targets and run and debug it
2761     on the desktop and mobile devices. When you run the application on the
2762     \gui{Maemo} or \gui {Symbian Devices} target, Qt Creator copies the necessary
2763     files to the device that is connected to the deveopment PC. In addition, Qt
2764     Creator generates an installation package in the build directory. You can
2765     specify settings for deploying the files and creating the installation package.
2766
2767     \section1 Building for and Running on Desktop
2768
2769     \list 1
2770
2771         \o Select \gui Desktop as the target.
2772
2773         \o Click the \gui Run button.
2774
2775     \endlist
2776
2777     \section1 Building for and Running on Qt Simulator
2778
2779     You can use the Qt Simulator to test Qt applications that are intended
2780     for mobile devices in an environment similar to that of the device. You
2781     can change the information that the device has about its configuration
2782     and environment.
2783
2784     \list 1
2785
2786         \o Select \gui {Qt Simulator} as the target.
2787
2788         \o Click the \gui Run button.
2789
2790     \endlist
2791
2792     For more information about using the Qt Simulator, see the
2793     \l{http://doc.qt.nokia.com/qt-simulator-beta/index.html}{Qt Simulator Manual}.
2794
2795     \section1 Building for and Running on Maemo
2796
2797     \list 1
2798
2799         \o Build and run the application for \l{Building for and Running on Qt Simulator}{Qt Simulator}.
2800
2801         \o Build and run the application for \l{Using the Maemo Emulator}{Maemo Emulator}.
2802
2803         \o Alternatively, you can build and run the application for a device:
2804
2805         \list 1
2806
2807         \o Set up the MADDE development environment and specify a connection
2808         to the device. For more information, see
2809         \l{Setting Up Development Environment for Maemo}.
2810
2811         \o Connect the device to the development PC.
2812
2813         \o Click the \gui Run button.
2814
2815         \endlist
2816
2817     \endlist
2818
2819         Qt Creator uses the compiler specified in the MADDE toolchain to
2820         build the application.
2821
2822         Qt Creator generates an installation package, installs in on the device,
2823         and executes it. You can skip the packaging step to save some time.
2824         The application views are displayed on the Nokia N900.
2825         Command-line
2826         output is visible in the Qt Creator \gui {Application Output} view.
2827
2828         Choose \gui {Projects > Maemo Run} to view the settings for deploying the
2829         application on the connected device and creating the installation package.
2830         For more information, see \l{Specifying Run Settings for Maemo Devices}.
2831
2832         Debugging also works transparently.
2833
2834     \section1 Building for and Running on Symbian
2835
2836     \list 1
2837
2838         \o Build and run the application for \l{Building for and Running on Qt Simulator}{Qt Simulator}.
2839
2840         \o If no problems are found, build and run the application for a device.
2841
2842         \o To test functionality that uses Symbian APIs, you can build and
2843         run the application for Symbian Emulator.
2844
2845     \endlist
2846
2847     The build configuration for the \gui{Symbian Device} target
2848     uses the GCCE tool chain by default. If you want to build
2849     for the device using RVCT, select it in the \gui {Tool chain} field
2850     in the \gui{General} section.
2851
2852     \section2 Building and Running for a Device
2853
2854     \list 1
2855
2856         \o Install the required software on the device. For more information, see
2857         \l{Setting Up Development Environment for Symbian}.
2858
2859         \o Connect the device to the development PC through a USB cable.
2860         The target selector displays a green check mark when a
2861         device is connected.
2862
2863         \image qtcreator-qt4-symbian-device-connected.png
2864
2865         The tool tip of the target selector shows more details about the actual
2866         device that will be used when you run your application.
2867
2868         \o Start the \gui{App TRK} application on your device.
2869
2870         \o Click the \gui Run button.
2871
2872     \endlist
2873
2874     You can connect several devices to your development PC simultaneously.
2875     In the details of the run configuration for the \gui{Symbian Device} target,
2876     select the device to run your application on.
2877
2878     When you build the application for the \gui{Symbian Device} target, Qt
2879     Creator automatically generates a Symbian installation system (SIS) file
2880     in the project folder. You can deliver the installation file to users for
2881     installation on Symbian devices.
2882
2883     When your application is ready for delivery to users, specify run settings
2884     for creating the final SIS installation packages. For more information,
2885     see \l{Creating SIS Installation Packages}.
2886
2887     \section2 Building and Running for Symbian Emulator
2888
2889     Select
2890     the \gui{Symbian Emulator} target as the active one, and build and run your
2891     project.
2892
2893     \section2 Troubleshooting
2894
2895     If you cannot build the application, check if:
2896      \list
2897         \o You selected the Symbian Device target for building the application.
2898         \o The settings for the Qt version you use to build your project are
2899            correct. The path to the Symbian SDK must point to the Symbian SDK
2900            installation directory.  Select \gui Tools > \gui Options...
2901            > \gui Debugger > \gui{Symbian TRK} and check if it points to the
2902            debugger toolchain.
2903      \endlist
2904     If you cannot run the application on a device, check if:
2905      \list
2906         \o The device is connected through the USB cable in \e{PC Suite} mode.
2907         \o \gui{App TRK} is running on the device, using the USB connection,
2908            with the status \e connected.
2909         \o The device is detected and selected in the run configuration
2910            details.
2911      \endlist
2912
2913     If you cannot run the application in the emulator, check if:
2914      \list
2915         \o You selected the \gui{Symbian Emulator} target for your application.
2916
2917         \o If you cannot select \gui {Symbian Emulator} as target, check that
2918         Carbide.c++ is installed correctly and that the path to the Carbide.c++
2919         installation directory is specified in the \gui{Carbide directory} field
2920         in the build settings.
2921
2922         \o If the emulator process cannot be started, try closing Qt Creator and
2923            starting the application directly from your file manager. Having
2924            done this, Qt Creator should be able to run your projects in the
2925            emulator.
2926
2927      \endlist
2928
2929      \note Qt Creator does not create release configurations for the
2930      \gui {Symbian Emulator} target, because Symbian Emulator supports only debug
2931      builds.
2932
2933     If this does not help to solve your problem, search the qt-creator@trolltech.com
2934     mailing list archives or provide feedback to us via the methods described on the
2935     \l{http://qt.gitorious.org/qt-creator/pages/Home}{Qt Creator Development Wiki}.
2936
2937
2938     \section1 Building with Remote Compiler
2939
2940     The \gui {Remote Compiler} target is an interface to a compilation service at
2941     Forum Nokia. It provides a simple, standardized environment for building Qt
2942     applications and creating installation packages for Symbian and Maemo devices
2943     when you do not have the necessary tool chains and SDKs installed or they are
2944     not supported on the development PC. You can choose from a set of supported
2945     devices, such as S60 3rd Edition or S60 5th Edition devices.
2946
2947     \note Remote Compiler is an experimental component that you must install
2948     separately from the package that is included in the Nokia Qt SDK.
2949
2950     \list 1
2951
2952         \o In the Nokia Qt SDK installation directory, double-click
2953         SDKMaintenanceTool.exe to install \gui {Experimental APIs}.
2954
2955         \o In Qt Creator, choose \gui {Tools > Options > Projects > Remote Compiler}
2956         to log on to Forum Nokia.
2957
2958         \image remotecompiler-fn-logon.png "Remote Compiler options"
2959
2960         \o Choose \gui {Projects}.
2961
2962         \o Click
2963         \inlineimage qtcreator-qt4-addbutton.png "Add Target button"
2964         and select \gui {Remote Compiler} to add Remote Compiler as a target.
2965
2966         \o Click \gui Add to add mobile device platforms as build configurations.
2967
2968         \o Click the \gui {Target Selector} and select a build configuration.
2969
2970         \o Choose \gui {Build > Build All}.
2971
2972     \endlist
2973
2974     The installation package is generated in the \gui {Build directory} on
2975     the development PC.
2976
2977     For more information about Remote Compiler, choose \gui {Help > Contents >
2978     Remote Compiler}. The document is added during the installation of experimental
2979     APIs.
2980
2981 */
2982
2983
2984 /*!
2985     \contentspage index.html
2986     \previouspage creator-building-targets.html
2987     \page creator-build-settings.html
2988     \nextpage creator-run-settings.html
2989
2990     \title Specifying Build Settings
2991
2992     Different build configurations allow you to quickly switch between
2993     different build settings. By default, Qt Creator creates \bold debug
2994     and \bold release build configurations.
2995
2996     You specify build settings in the \gui Projects mode.
2997
2998     \image qtcreator-projectpane.png
2999
3000     To add a new build configuration, click \gui Add and select the type of
3001     configuration you would like to add. You can add as many build
3002     configurations as you need.
3003
3004     To delete the build configuration currently selected, click \gui Remove.
3005
3006     \section1 Editing Build Configurations
3007
3008     To edit a build configuration:
3009     \list 1
3010         \o Select the build configuration you want to edit in
3011            \gui{Edit Build Configuration}.
3012         \o In section \gui General, you can specify:
3013         \list
3014             \o The \l{glossary-project-qt}{Qt version} you want to use to
3015                build your project. For more information, see
3016                \l{Selecting the Qt version}.
3017             \o The tool chain required to build the project.
3018             \o By default, projects are built in a separate directory
3019                from the source directory, as \l{glossary-shadow-build}{shadow builds}.
3020                This keeps the files generated for each target platform separate.
3021
3022                \note Shadow building is not supported by the Symbian build system.
3023                Also, shadow building on Windows is not supported for Maemo.
3024                If you only build for one target platform, you can deselect
3025                the \gui{Shadow build} checkbox.
3026         \endlist
3027     \endlist
3028
3029     \section1 Build Steps
3030
3031     The build system of Qt Creator is built on qmake and make. In
3032     \gui{Build Steps} you can change the settings for qmake and make. Qt
3033     Creator runs the make command using the Qt version defined for the current
3034     build configuration.
3035
3036     \image qtcreator-build-steps.png "Build steps"
3037
3038     \section2 Adding Custom Build Steps
3039
3040     To add custom steps to the build settings, select \gui {Add Build Step >
3041     Custom Process Step}.
3042
3043     By default, custom steps are disabled. To activate a custom step, select
3044     the \gui{Enable custom process step} check-box.
3045
3046     \image qtcreator-build-steps-custom.png "Custom Process Step"
3047
3048     You can use any environment variables as values in the fields. For a list
3049     of variable names, click \gui {Build Environment > Details}. You can specify
3050     variables as ${VARNAME} or %VARNAME%. For example, ${BUILDDIR} or %BUILDDIR%.
3051
3052     \note Qt Creator sets SOURCEDIR and BUILDDIR as part of the build environment.
3053     For more information, see \l{Build Environment}.
3054
3055     \section1 Clean Steps
3056
3057     You can use the cleaning process to remove intermediate files. This process
3058     might help you to fix obscure issues during the process of building a
3059     project.
3060
3061     \image qtcreator-clean-steps.png "Clean steps"
3062
3063     You can define the cleaning steps for your builds in the \gui{Clean Steps}:
3064     \list
3065         \o To add a clean step using make or a custom process, click
3066            \gui{Add Clean Step} and select the type of step you want to add.
3067
3068            By default, custom steps are disabled. To activate a custom step,
3069            select the \gui{Enable custom process step} check-box.
3070         \o To remove a clean step, click \gui{Remove Item}.
3071         \o To change the order of steps, click
3072            \inlineimage qtcreator-movestep.png
3073            .
3074     \endlist
3075
3076     \section1 Build Environment
3077
3078     You can specify the environment you want to use for building in the
3079     \bold{Build Environment} section. By default, the environment in which Qt
3080     Creator was started is used and modified to include the Qt version.
3081     Depending on the selected Qt version, Qt Creator automatically sets the
3082     necessary environment variables. You can edit existing environment
3083     variables or add, reset and unset new variables based on your project
3084     requirements.
3085
3086     \image qtcreator-build-environment.png "Build Environment"
3087
3088 */
3089
3090
3091 /*!
3092     \contentspage index.html
3093     \previouspage creator-build-settings.html
3094     \page creator-run-settings.html
3095     \nextpage creator-editor-settings.html
3096
3097     \title Specifying Run Settings
3098
3099     Qt Creator automatically creates run configurations for your project.
3100     To view and modify the settings, select \gui {Projects > Run}.
3101
3102     The settings to specify depend on the type of the project: qmake project
3103     or Qt Quick project.
3104
3105     Click \gui Add to add run settings for a project and \gui Remove to remove
3106     the current settings.
3107
3108     \section1 Specifying Run Settings for qmake Projects
3109
3110     The run configurations for qmake projects derive their executable from the parsed .pro
3111     files.
3112
3113     \section2 Specifying Run Settings for Desktop Targets
3114
3115     You can specify command line arguments to be passed to the executable
3116     and the working directory to use. The working directory defaults to
3117     the directory of the build result.
3118
3119     For console applications, check the \gui{Run in Terminal} check box.
3120     If you need to run with special environment variables set up, you
3121     also do it in the run configuration settings.
3122
3123     \image qtcreator-pprunsettings.png
3124
3125     You can also create custom executable run configurations where you
3126     can set the executable to be run. For more information, see
3127     \l{Specifying a Custom Executable to Run}.
3128
3129     \section2 Specifying Run Settings for Symbian Devices
3130
3131     Qt Creator automatically detects Symbian devices that are connected to
3132     the development PC with an USB cable.
3133     If only one device is detected, the application is deployed
3134     and run on it. If multiple devices are connected to the PC,
3135     make sure that the correct device is selected in the
3136     \gui {Symbian Device} run settings for your project.
3137
3138     You can also pass command line arguments to your application on the device.
3139     Press the \gui{Device info button} to get more information about the selected
3140     device, such as the CPU type and the running TRK version.
3141
3142     \image qtcreator-symbian-run-settings.png "Run settings for Symbian devices"
3143
3144     \section3 Creating SIS Installation Packages
3145
3146     When you build the application for the \gui{Symbian Device} target, Qt
3147     Creator automatically generates a Symbian installation system (SIS) file
3148     in the project folder. You can deliver the installation file to users for
3149     installation on Symbian devices.
3150
3151     The name of the installation file is displayed in the \gui {Installation file}
3152     field. In the \gui {Installation drive} field, select the drive on the device
3153     to install the application to. To suppress notifications on the device during the
3154     installation, select the \gui {Silent installation} check box. If the silent
3155     installation fails, Qt Creator attempts installation again, this time displaying
3156     notifications and error messages.
3157
3158     Only installation files signed with a certificate and private key are
3159     allowed to be installed onto Symbian devices. By default, Qt Creator
3160     self-signs the installation file. This self-signing allows you to install
3161     the application on a mobile  device but places limits on what you can do
3162     with the installation file, including:
3163     \list
3164        \o  Self-signed applications cannot access the more sensitive
3165            \l{Capabilities and Signing}{capabilities} of the mobile device.
3166        \o  Security warnings will be displayed when you install the self-signed
3167            application on a mobile device.
3168        \o  Self-signed applications cannot be distributed commercially on Ovi
3169            Store.
3170     \endlist
3171
3172     To get around these limitations, you need to go through the Symbian Signed
3173     process. The Symbian Signed organisation manages a public key
3174     infrastructure to provide public authentication of the information in the
3175     application signing certificates. Their security partner can validate your
3176     certificate and give you a Publisher ID. Then, when you sign an
3177     application, other people can be confident that the information in your
3178     certificate is correct and that the application does actually come from you.
3179
3180     There are also options that do not require you to get a Publisher ID. For
3181     more detail about how the Symbian Signed process works, see
3182     \l{http://developer.symbian.org/wiki/index.php/Complete_Guide_To_Symbian_Signed}
3183     {Complete Guide to Symbian Signed}.
3184
3185     When you have your own certificate and private key, you can specify them in
3186     the \gui{Create SIS Package} step in the run settings.
3187
3188     \image qtcreator-qt4-symbian-signing.png
3189
3190
3191     If your private key is protected by a passphrase, Qt Creator asks you for the
3192     passphrase when the package is signed and offers to store it. However, storing
3193     passphrases in Qt Creator presents a security risk. To make Qt Creator forget
3194     all saved passphrases, click \gui {Reset Passphrases}.
3195
3196     \section3 Capabilities and Signing
3197
3198     Capabilities allow the Symbian platform to control access by applications to
3199     the functionality provided by the platform APIs. Access to capabilities is
3200     determined by the device configuration and how the application has been signed.
3201
3202     Symbian Signed offers the following signing options depending on the
3203     capabilities that the application accesses:
3204
3205     \list
3206
3207         \o \bold{Express signed} for applications that access only user and system
3208         capabilities.
3209
3210         \o \bold{Certified signed} for applications that access also restricted or
3211         device manufacturer capabilities.
3212
3213         \note You need to request the rights to access device manufacturer
3214         capabilities from the manufacturer.
3215
3216     \endlist
3217
3218     For more information about how to choose the appropriate signing option, see
3219     \l{http://developer.symbian.org/wiki/index.php/Symbian_Signed_For_Distributing_Your_Application}{Symbian Signed For Distributing Your Application}.
3220
3221     If you select a signing option that does not allow the application to access
3222     the defined capabilities, installing the application on mobile devices
3223     fails. To avoid problems, only define capabilities and link libraries to a project
3224     if you really need them.
3225
3226     For more information about capabilities and how you can check which ones you
3227     need, see
3228     \l{http://developer.symbian.org/wiki/index.php/Capabilities_(Symbian_Signed)}{Capabilities (Symbian Signed)}
3229     and
3230     \l{http://doc.qt.nokia.com/4.7/platform-notes-symbian.html#required-capabilities}{Required Capabilities for Qt Applications}.
3231
3232     For more information on how to define capabilities for a project, see
3233     \l{http://doc.qt.nokia.com/4.7/qmake-platform-notes.html#capabilities}{Capabilities}.
3234
3235     \section3 Creating Smart Installer for Symbian Packages
3236
3237     To deploy Qt applications on Symbian devices, you must install the software that Qt applications
3238     require, typically Qt, QtWebkit, and Open C. Nokia Smart Installer for Symbian makes it easier
3239     for users to install Qt applications to Symbian phones by checking whether the device contains
3240     the necessary software and by installing the missing pieces.
3241
3242     For this to work, the Nokia Smart Installer must be packaged with the Qt application. The
3243     application SIS file must first be Symbian Signed. The capabilities used in the applications
3244     determine, which signing option must be selected. The wrapper package must be signed using
3245     either the same option or a more extensive option than the application SIS.
3246
3247     To package Nokia Smart Installer with the application, select the \gui {Create Smart Installer
3248     package} check box. This ensures that up-to-date and appropriate versions of Qt and its
3249     dependencies are installed on devices. Further, it reduces the file size of the application you
3250     publish, because you do not have to deliver the required applications.
3251
3252     For more information about the Nokia Smart Installer, see the \e {Nokia Smart Installer for
3253     Symbian Manual}.
3254
3255     Note: Nokia Smart Installer for Symbian is only available on Windows.
3256
3257     \section3 Application UID
3258
3259     A UID is a globally unique identifier that is used to
3260     uniquely identify, for example, an object or file type. In Symbian development,
3261     objects are identified by compound identifiers that are constructed from three
3262     UIDs, namely UID1, UID2, and UID3. UID1 and UID2 specify the category of an
3263     object, whereas UID3 identifies a particular object, such as an application.
3264
3265     When you create a \gui {Mobile Qt Application}, Qt Creator adds a UID3 suitable for
3266     development and debugging automatically to the application .pro file. However, to
3267     distribute your application and get it Symbian signed, you must apply for a UID
3268     from Symbian Signed, which manages the allocation of UIDs. You can request UIDs either one
3269     at a time or as preallocated blocks on the \l{https://www.symbiansigned.com/app/page}{Symbian Signed}
3270     web site.
3271
3272     Replace the testing UID with the distribution UID in the .pro file before you
3273     build the final installation package. For more information, see
3274     \l{http://doc.qt.nokia.com/4.7/qmake-platform-notes.html#unique-identifiers}{Unique Identifiers}.
3275
3276     \section2 Specifying Run Settings for Maemo Devices
3277
3278     To run an application on a Maemo device, create and select
3279     a device configuration in the Maemo run settings for your project.
3280     You can also pass command line arguments to your application.
3281
3282     \image qtcreator-screenshot-run-settings.png "Run settings for Maemo devices"
3283
3284     \section3 Deploying Applications to Maemo Devices
3285
3286     You can specify settings for deploying applications to Maemo devices in the
3287     project .pro file. You can view the settings in the \gui {Run Settings}.
3288
3289     When you test your application on a device or the Maemo emulator, you can
3290     save some time by installing the built files directly on the connected device
3291     without packaging. Select the \gui {Skip packaging step} check box in the
3292     \gui {Create Package} step. However, this is not recommended and is only supported
3293     for simple application projects.
3294
3295     The files to be installed are listed in the
3296     \gui {Deploy to Device} step, the \gui {Files to install} field. The
3297     \gui {Local File Path} field displays the location of the file on the development
3298     PC. The \gui {Remote Directory} field displays the folder where the file is installed on
3299     the device.
3300
3301     \image qtcreator-maemo-deployment.png "Deploy to device"
3302
3303     If you develop your own libraries, Qt Creator needs to be able to access them
3304     during compilation. When you install MADDE, an instance of the device file
3305     system, called sysroot, is installed to the development PC. Libraries are copied to
3306     sysroot if the \gui {Also deploy to sysroot} check box is selected.
3307
3308     \section3 Creating Debian Installation Packages
3309
3310     When you run the application on the \gui{Maemo} target, Qt Creator generates
3311     a debian installation package in the build directory by default. You can deliver
3312     the installation package to users for installation on Maemo devices that are of
3313     the same type and run the same firmware as the connected device.
3314
3315     \image qtcreator-maemo-deb-package.png "Create installation package"
3316
3317     The name of the installation package is displayed in the \gui {Create Package}
3318     field in the \gui {Run Settings}. You can change the version number in the \gui {Version number} field.
3319
3320     Qt Creator provides templates for a set of files that must be included
3321     in debian packages. To edit the files, select a file in \gui {Adapt debian
3322     file} and click \gui Edit. The file opens in the text editor.
3323
3324     The debian control file contains an application icon in encoded form. To add the
3325     application icon to the file, select it in the \gui {Package manager icon} field.
3326     For more information about icon files and adding them manually, see
3327     \l{ http://wiki.maemo.org/Packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package}{Displaying an icon in the Application Manager next to your package}.
3328
3329     \note Qt Creator automates this process for you.
3330
3331     \section1 Specifying a Custom Executable to Run
3332
3333     If you use cmake or the generic project type in Qt Creator, or want
3334     to run a custom desktop executable, create a \gui {Custom Executable}
3335     run configuration for your project.
3336
3337     Specify the executable to run, command line arguments, working directory,
3338     and environment variables to use.
3339
3340     \image qmldesigner-run-custom-exe.png "Run settings for custom executables"
3341
3342     \section1 Specifying Run Settings for Qt Quick Projects
3343
3344     Select run settings in the \gui {Run configuration} field. The settings
3345     are specified automatically and, you mostly need to change them if you
3346     develop applications that use both C++ and QML:
3347
3348     \list
3349
3350         \o \gui {Custom QML Viewer} is the path to the \QQV executable.
3351         Qt Creator ships with a specific version of \QQV and imported
3352         modules, which is used by default. If you develop Qt Quick applications
3353         that contain C++ plugins, you must select the \QQV version
3354         shipped with your Qt version here.
3355
3356         \o \gui {QML Viewer arguments} sets arguments for running \QQV.
3357         The \c{-I <directory>} argument searches for C++ or QML plugins from
3358         the project folder. For a list of available arguments, enter \c {qml --help}
3359         on the command line.
3360
3361         \o \gui {Main QML file} is the Qt Quick project file.
3362
3363         \o \gui Debugger allows you to select the languages to debug:
3364         \gui{C++} and \gui QML. \gui {Debug port} is the port to access \QQV.
3365         You can use any free port in the registered port range.
3366
3367     \endlist
3368
3369     \image qmldesigner-run-settings.png "Run settings for Qt Quick projects"
3370
3371 */
3372
3373
3374 /*!
3375     \contentspage index.html
3376     \previouspage creator-run-settings.html
3377     \page creator-editor-settings.html
3378     \nextpage creator-build-dependencies.html
3379
3380     \title Specifying Editor Settings
3381
3382     To define the default file encoding, select the desired encoding in \gui Projects >
3383     \gui{Editor Settings}. By default, the Qt Creator uses the file encoding
3384     used by your system.
3385
3386     \image qtcreator-editor-settings.png "Editor Settings view"
3387
3388 */
3389
3390
3391 /*!
3392     \contentspage index.html
3393     \previouspage creator-editor-settings.html
3394     \page creator-build-dependencies.html
3395     \nextpage creator-debugging.html
3396
3397     \title Specifying Dependencies
3398
3399     If you have multiple projects loaded in your session, you can define the
3400     dependencies between them. Inter-project dependencies affect the build
3401     order of your projects.
3402
3403     \note Inter-project dependencies are unrelated inside a qmake
3404     project.
3405
3406     \image qtcreator-build-dependencies.png "Dependencies view"
3407
3408     To define the dependencies between projects:
3409     \list 1
3410         \o In \gui Projects, select a project.
3411         \o Click \gui Dependencies.
3412         \o Select projects as dependencies.
3413     \endlist
3414
3415 */
3416
3417
3418 /*!
3419     \contentspage index.html
3420     \previouspage creator-quick-tour.html
3421     \page creator-getting-started.html
3422     \nextpage creator-build-example-application.html
3423
3424     \title Getting Started
3425
3426     This section contains examples that illustrate how to use Qt Creator
3427     to create, build, and run simple
3428     applications:
3429
3430     \list
3431         \o \l{Building and Running an Example Application}
3432         \o \l{Creating a Qt C++ Application}
3433         \o \l{Creating a Mobile Application with Nokia Qt SDK}
3434         \o \l{Creating a Qt Quick Application}
3435     \endlist
3436
3437 */
3438
3439
3440 /*!
3441     \contentspage index.html
3442     \previouspage creator-writing-program.html
3443     \page creator-mobile-example.html
3444     \nextpage creator-qml-application.html
3445
3446     \title Creating a Mobile Application with Nokia Qt SDK
3447
3448     \note To complete this tutorial, you must install Nokia Qt SDK.
3449     The installation program installs and configures the necessary tool chains
3450     for mobile application development.
3451
3452     This tutorial describes how to use Qt Creator to create a small Qt
3453     application, Battery Indicator, that uses the System Information
3454     Mobility API to fetch battery information from the device.
3455
3456     \image qtcreator-batteryindicator-screenshot.png
3457
3458     \section1 Creating the Battery Indicator Project
3459
3460     \note Create the project with the \gui{Help} mode active so that you can follow
3461     these instructions while you work.
3462
3463     \list 1
3464
3465         \o Select \gui{File > New File or Project > Qt C++ Project > Mobile Qt
3466         Application > Choose}.
3467
3468         \image qtcreator-new-mobile-project.png "New File or Project dialog"
3469
3470         The \gui{Introduction and Project Location} dialog opens.
3471
3472         \image qtcreator-mobile-intro-and-location.png "Introduction and Project Location dialog"
3473
3474         \o In the \gui{Name} field, type \bold {BatteryIndicator}.
3475
3476         \o In the \gui {Create in} field, enter the path for the project files. For example,
3477         \c {C:\Qt\examples}, and then click \gui{Next}.
3478
3479         The \gui{Select Required Qt Versions} dialog opens.
3480
3481         \image qtcreator-mobile-project-qt-versions.png "Select Required Qt Versions dialog"
3482
3483         \o Select \gui Maemo, \gui {Qt Simulator}, and \gui {Symbian Device} targets,
3484         and click \gui{Next}.
3485
3486         \note Targets are listed if you installed the appropriate development
3487         environment, for example, as part of the Nokia Qt SDK.
3488
3489         The \gui{Class Information} dialog opens.
3490
3491         \image qtcreator-mobile-class-info.png "Class Information dialog"
3492
3493         \o In the \gui{Class Name} field, type \bold {BatteryIndicator} as the class name.
3494
3495         \o In the \gui{Base Class} list, select \bold {QDialog} as the base class type.
3496
3497         \note The \gui{Header File}, \gui{Source File} and \gui{Form File} fields are
3498         automatically updated to match the name of the class.
3499
3500         \o Click \gui{Next}.
3501
3502         The \gui{Project Management} dialog opens.
3503
3504         \image qtcreator-mobile-project-summary.png "Project Management dialog"
3505
3506         \o Review the project settings, and click \gui{Finish} to create the project.
3507
3508     \endlist
3509
3510     The BatteryIndicator project now contains the following files:
3511
3512     \list
3513
3514         \o batteryindicator.h
3515         \o batteryindicator.cpp
3516         \o main.cpp
3517         \o batteryindicator.ui
3518         \o BatteryIndicator.pro
3519
3520     \endlist
3521
3522     \image qtcreator-mobile-project-contents.png "Project contents"
3523
3524     The files come with the necessary boiler plate code that you must
3525     modify, as described in the following sections. You do not need
3526     to change the main.cpp file.
3527
3528     \section1 Declaring the Qt Mobility API
3529
3530     The \gui New wizard automatically adds information to the .pro file
3531     that you need when you use the Qt Mobility APIs or develop applications
3532     for Symbian devices. You must modify the information to declare the
3533     Qt Mobility APIs that you use.
3534
3535     This example uses the System Info API, so you must declare it, as
3536     illustrated by the following code snippet:
3537
3538     \code
3539
3540     CONFIG += mobility
3541     MOBILITY = systeminfo
3542
3543     \endcode
3544
3545     Each Mobility API has its corresponding value that you have to add
3546     as a value of MOBILITY to use the API. For a list of the APIs and the
3547     corresponding values that you can assign to MOBILITY, see the
3548     \l {http://doc.qt.nokia.com/qtmobility-1.0/quickstart.html}{Quickstart Example}.
3549
3550     The following code snippet shows information that is needed for
3551     applications developed for Symbian device. Qt Creator generated
3552     the UID for testing the application on a device. You only need
3553     to change the UID and capabilities if you deliver the application
3554     for public use and need to have it Symbian Signed.
3555
3556     \code
3557
3558     symbian {
3559         TARGET.UID3 = 0xecbd72d7
3560         # TARGET.CAPABILITY +=
3561         TARGET.EPOCSTACKSIZE = 0x14000
3562         TARGET.EPOCHEAPSIZE = 0x020000 0x800000
3563     }
3564
3565     \endcode
3566
3567     \section1 Designing the User Interface
3568
3569     \list 1
3570
3571         \o In the \gui{Editor} mode, double-click the batteryindicator.ui
3572         file in the \gui{Projects} view to launch the integrated \QD.
3573
3574         \o Drag and drop a \gui{Progress Bar} (\l{http://doc.qt.nokia.com/4.7/qprogressbar.html}{QProgressBar})
3575         widget to the form.
3576
3577         \image qtcreator-mobile-project-widgets.png "Adding widgets to the UI"
3578
3579         \o In the \gui Properties pane, change the \gui objectName to
3580         \bold batteryLevelBar.
3581
3582         \o Right-click the \gui BatteryIndicator object and select
3583         \gui {Lay Out > Lay Out Horizontally} to ensure that the battery
3584         indicator widget size is adjusted correctly on Maemo devices.
3585
3586         To adjust widget size correctly on Qt Simulator, remove the condition
3587         from the main.cpp file (displayed in the following code snippet) and just
3588         leave the \c {w.showMaximized();} line:
3589
3590         \snippet examples/batteryindicator/main.cpp 0
3591
3592
3593     \endlist
3594
3595     \section1 Completing the Header File
3596
3597     The batteryindicator.h file contains some of the necessary #includes, a
3598     constructor, a destructor, and the \c{Ui} object. You must include
3599     the System Info header file, add a shortcut to the mobility name
3600     space, and add a private function to update the battery level value in
3601     the indicator when the battery power level changes.
3602
3603     \list 1
3604
3605         \o In the \gui{Projects} view, double-click the \c{batteryindicator.h} file
3606         to open it for editing.
3607
3608         \o Include the System Info header file, as illustrated by the following
3609         code snippet:
3610
3611         \snippet examples/batteryindicator/batteryindicator.h 1
3612
3613         \o Add a shortcut to the mobility name space, as illustrated by the
3614         following code snippet:
3615
3616         \snippet examples/batteryindicator/batteryindicator.h 2
3617
3618         \o Declare a private function in the \c{private} section, after the
3619         \c{Ui::BatteryIndicator} function, as illustrated by the following code
3620         snippet:
3621
3622         \snippet examples/batteryindicator/batteryindicator.h 3
3623
3624     \endlist
3625
3626     \section1 Completing the Source File
3627
3628     Now that the header file is complete, move on to the source file,
3629     batteryindicator.cpp.
3630
3631     \list 1
3632
3633         \o In the \gui{Projects} view, double-click the batteryindicator.cpp file
3634         to open it for editing.
3635
3636         \o Create a QSystemDeviceInfo object and set its value. Then connect the signal
3637         that indicates that battery level changed to the \c setValue
3638         slot of the progress bar. This is illustrated by the following code snippet:
3639
3640         \snippet examples/batteryindicator/batteryindicator.cpp 1
3641
3642         \o Use the constructor to set initial values and make sure that the
3643          created object is in a defined state, as illustrated by the following
3644          code snippet:
3645
3646          \snippet examples/batteryindicator/batteryindicator.cpp 2
3647
3648     \endlist
3649
3650     \section1 Compiling and Running Your Program
3651
3652     Now that you have all the necessary code, select \gui {Qt Simulator}
3653     as the target and click the
3654     \inlineimage qtcreator-run.png
3655     button to build your program and run it in the Qt Simulator.
3656
3657     In Qt Simulator, run the runOutOfBattery.qs example script
3658     to see the value change in the Battery Indicator application.
3659     Select \gui {Scripting > examples > runOutOfBattery.qs > Run}.
3660
3661     \image qtcreator-mobile-simulated.png "Mobile example in Qt Simulator"
3662
3663     \section1 Testing on a Symbian Device
3664
3665     You also need to test the application on real devices. Before you can
3666     start testing on Symbian devices, you must connect them to the development
3667     PC by using an USB cable and install the necessary software on them.
3668
3669     \list 1
3670
3671         \o Install Qt 4.6.2 libraries, the Qt mobile libraries, and the TRK
3672         debugging application on the device. For more information,
3673         see \l{Setting Up Development Environment for Symbian}.
3674
3675         \o Start TRK on the device.
3676
3677         \o Click the \gui {Target Selector} and select \gui {Symbian Device}.
3678
3679         \o Click \gui Run to build the application for the Symbian device.
3680
3681     \endlist
3682
3683     \section1 Testing on the Maemo Emulator
3684
3685     The Maemo emulator emulates the Nokia N900 device environment. You can test
3686     applications in conditions practically identical to running the application
3687     on a Nokia N900 device with the software update release 1.2 (V10.2010.19-1).
3688
3689     For more information, see \l{Using the Maemo Emulator}.
3690
3691 */
3692
3693 /*!
3694     \contentspage index.html
3695     \previouspage creator-getting-started.html
3696     \page creator-build-example-application.html
3697     \nextpage creator-writing-program.html
3698
3699     \title Building and Running an Example Application
3700
3701     You can test that your installation is successful by opening an existing
3702     example application project.
3703
3704     \list 1
3705
3706         \o On the \gui Welcome page, select \gui {Choose an Example... >
3707         Animation Framework > Animated Tiles}.
3708
3709         \image qtcreator-gs-build-example-open.png "Selecting an example"
3710
3711         \o Select targets for the project. Select at least Qt Simulator
3712         and one of the mobile targets, Maemo or Symbian Device, depending on
3713         the device you develop for.
3714
3715         \image qtcreator-gs-build-example-targets.png "Selecting targets"
3716
3717         \note You can add targets later in the \gui Projects mode.
3718
3719         \o To test the application in Qt Simulator, click the \gui {Target
3720         Selector} and select \gui {Qt Simulator}.
3721
3722         \image {qtcreator-gs-build-example-select-qs.png} "Selecting Qt Simulator as target"
3723
3724         \o Click
3725         \inlineimage{qtcreator-run.png}
3726         to build the application and run it in Qt Simulator.
3727
3728         \o To see the compilation progress, press \key{Alt+4} to open the
3729         \gui Compile Output pane.
3730
3731         The \gui Build progress bar on the toolbar turns green when the project
3732         is successfully built. The application opens in Qt Simulator.
3733
3734         \image {qt-simulator.png} "Qt Simulator"
3735
3736         \o Change the settings in the
3737         \gui View pane, for example, to toggle the orientation by clicking
3738         \gui {Rotate Device}, or choose from the various Symbian and Maemo
3739         configurations by clicking \gui {Device}. You can also simulate various
3740         mobile functions and create your own scripts.
3741
3742         \o To test the application on a Symbian device install Qt 4.6.2
3743         and the TRK debugging application on the device. For more information,
3744         see \l{Setting Up Development Environment for Symbian}.
3745
3746         \o Click the \gui {Target Selector} and select \gui {Symbian Device}.
3747
3748         \o Click \gui Run to build the application for the Symbian device.
3749
3750     \endlist
3751
3752 */
3753
3754
3755 /*!
3756     \contentspage index.html
3757     \previouspage creator-mobile-example.html
3758     \page creator-qml-application.html
3759     \nextpage creator-project-managing.html
3760
3761     \title Creating a Qt Quick Application
3762
3763     \note This tutorial assumes that you are familiar with the \l {http://doc.qt.nokia.com/4.7/qtquick.html}
3764     {QML declarative language}.
3765
3766     This tutorial describes how to use Qt Creator to create a small
3767     Qt Quick application, Hello World.
3768
3769     \image qmldesigner-helloworld-edited.png "Hello World"
3770
3771     \section1 Creating the Hello World Project
3772
3773     \list 1
3774
3775         \o Select \gui{File > New File or Project > Qt Quick Project > Qt QML Application > Choose}.
3776
3777         \image qmldesigner-new-project.png "New File or Project dialog"
3778
3779         The \gui{Introduction and Project Location} dialog opens.
3780
3781         \image qmldesigner-new-project-location.png "Introduction and Project Location dialog"
3782
3783         \o In the \gui{Name} field, type \bold {HelloWorld}.
3784
3785         \o In the \gui {Create in} field, enter the path for the project files. For example,
3786         \c {C:\Qt\examples}, and then click \gui{Next}.
3787
3788         The \gui{Project Management} dialog opens.
3789
3790         \image qmldesigner-new-project-summary.png "Project Management dialog"
3791
3792         \o Review the project settings, and click \gui{Finish} to create the project.
3793
3794     \endlist
3795
3796     The HelloWorld project now contains the following files:
3797
3798     \list
3799         \o HelloWorld.qmlproject
3800         \o HelloWorld.qml
3801     \endlist
3802
3803     The \gui Projects pane in the \gui Sidebar displays the project files:
3804
3805     \image qmldesigner-new-project-contents.png "HelloWorld project contents"
3806
3807     The .qmlproject file defines that all QML, JavaScript, and image files in
3808     the project folder belong to the project.
3809
3810     The .qml file contains the following example code that specifies a rectangle
3811     and a label that contains
3812     the text \bold {Hello World}.
3813
3814     \code
3815
3816     import Qt 4.7
3817
3818     Rectangle {
3819         width: 200
3820         height: 200
3821         Text {
3822             x: 66
3823             y: 93
3824             text: "Hello World"
3825         }
3826     }
3827
3828     \endcode
3829
3830     Your application is now ready.
3831
3832     \section1 Running the Application
3833
3834     Press \key {Ctrl+R} to run the application in the QML Viewer.
3835
3836
3837
3838     \image qmldesigner-helloworld.png "Hello World"
3839
3840     \section1 Changing Hello World Properties
3841
3842     To experiment with QML and to try some of the code editor features, change the
3843     properties of the rectangle and text. Move the cursor on \gui Rectangle and
3844     press \key F1 to get help on the available properties. Try adding a \gui color
3845     property to the \gui Rectangle. When you start to type,
3846     the code completion feature of the code editor suggests properties, IDs, and
3847     code snippets to complete the code. Select an item in the list and press
3848     \key Tab or \key Enter to complete the code.
3849
3850     The code editor checks the code syntax and underlines syntax errors.
3851     Move the cursor over an error to display detailed information about it.
3852
3853     The following code illustrates how to set the backround color
3854     to light steel blue and the text color to white:
3855
3856     \code
3857
3858     import Qt 4.7
3859
3860     Rectangle {
3861         width: 200
3862         height: 200
3863         color: "lightsteelblue"
3864         Text {
3865             x: 66
3866             y: 93
3867             text: "Hello World"
3868             color: "white"
3869         }
3870     }
3871
3872     \endcode
3873
3874     \image qmldesigner-helloworld-edited.png "Hello World in blue and white"
3875
3876 */
3877
3878
3879 /*!
3880     \contentspage index.html
3881     \previouspage creator-build-example-application.html
3882     \page creator-writing-program.html
3883     \nextpage creator-mobile-example.html
3884
3885     \title Creating a Qt C++ Application
3886
3887     This tutorial describes how to use Qt Creator
3888     to create a small Qt application, Text Finder. It is a simplified version of the
3889     QtUiTools \l{http://doc.qt.nokia.com/4.7/uitools-textfinder.html}{Text Finder}
3890     example.
3891
3892     \image qtcreator-textfinder-screenshot.png
3893
3894     \section1 Creating the Text Finder Project
3895
3896     \note Create the project with two instances of Qt Creator open and the \gui{Help} mode
3897     active in one of them so that you can follow
3898     these instructions while you work.
3899
3900     \list 1
3901
3902         \o Select \gui{File > New File or Project > Qt C++ Project > Qt Gui
3903         Application > Choose}.
3904
3905            \image qtcreator-new-project.png "New File or Project dialog"
3906
3907         The \gui{Introduction and Project Location} dialog opens.
3908
3909         \image qtcreator-intro-and-location.png "Introduction and Project Location dialog"
3910
3911         \o In the \gui{Name} field, type \bold {TextFinder}.
3912
3913
3914         \o In the \gui {Create in} field, enter the path for the project files. For example,
3915         \c {C:\Qt\examples}, and then click \gui{Next}.
3916
3917         The target setting dialog opens.
3918
3919         \image qtcreator-new-project-qt-versions.png "Target setting dialog"
3920
3921         \o Select the Qt versions to use as build targets for your project, and click
3922         \gui{Next}.
3923
3924         \note If you have only one Qt version installed, this dialog is skipped.
3925
3926         The \gui{Class Information} dialog opens.
3927
3928         \image qtcreator-class-info.png "Class Information dialog"
3929
3930         \o In the \gui{Class Name} field, type \bold {TextFinder} as the class name.
3931
3932         \o In the \gui{Base Class} list, select \bold {QWidget} as the base class type.
3933
3934            \note The \gui{Header File}, \gui{Source File} and
3935            \gui{Form File} fields are automatically updated to match the name of the
3936            class.
3937
3938         \o Click \gui{Next}.
3939
3940         The \gui{Project Management} dialog opens.
3941
3942         \image qtcreator-new-project-summary.png "Project Management dialog"
3943
3944         \o Review the project settings, and click \gui{Finish} to create the project.
3945
3946
3947     \endlist
3948
3949
3950
3951     The TextFinder project now contains the following files:
3952
3953     \list
3954         \o textfinder.h
3955         \o textfinder.cpp
3956         \o main.cpp
3957         \o textfinder.ui
3958         \o textfinder.pro
3959     \endlist
3960
3961     \image qtcreator-textfinder-contents.png "TextFinder project contents"
3962
3963     The .h and .cpp files come with the necessary boiler plate code.
3964     The .pro file is complete.
3965
3966     \section1 Filling in the Missing Pieces
3967
3968     Begin by designing the user interface and then move on to filling
3969     in the missing code. Finally, add the find functionality.
3970
3971     \section2 Designing the User Interface
3972
3973     \image qtcreator-textfinder-ui.png "Text Finder UI"
3974
3975     \list 1
3976
3977     \o In the \gui{Editor} mode, double-click the textfinder.ui file in the \gui{Projects}
3978     view to launch the integrated \QD.
3979
3980     \o Drag and drop the following widgets to the form:
3981
3982     \list
3983     \o \gui{Label} (QLabel)
3984     \o \gui{Line Edit} (QLineEdit)
3985     \o \gui{Push Button} (QPushButton)
3986
3987     \endlist
3988
3989     \image qtcreator-textfinder-ui-widgets.png "Adding widgets to Text Finder UI"
3990
3991     \note To easily locate the widgets, use the search box at the top of the
3992     \gui Sidebar. For example, to find the \gui Label widget, start typing
3993     the word \bold label.
3994
3995     \image qtcreator-texfinder-filter.png "Filter field"
3996
3997     \o Double-click the \gui{Label} widget and enter the text \bold{Keyword}.
3998
3999     \o Double-click the \gui{Push Button} widget and enter the text \bold{Find}.
4000
4001     \o In the \gui Properties pane, change the \gui objectName to \bold findButton.
4002
4003     \image qtcreator-textfinder-objectname.png "Changing object names"
4004
4005     \o Press \key {Ctrl+A} to select the widgets and click \gui{Lay out Horizontally}
4006     (or press \gui{Ctrl+H}) to apply a horizontal layout
4007     (QHBoxLayout).
4008
4009     \image qtcreator-texfinder-ui-horizontal-layout.png "Applying horizontal layout"
4010
4011     \o Drag and drop a \gui{Text Edit} widget (QTextEdit)
4012     to the form.
4013
4014     \o Select the screen area and click \gui{Lay out Vertically} (or press \gui{Ctrl+L})
4015     to apply a vertical layout (QVBoxLayout).
4016
4017     \image qtcreator-textfinder-ui.png "Text Finder UI"
4018
4019     Applying the horizontal and vertical layouts ensures that the application UI scales to different
4020     screen sizes.
4021
4022     \o To call a find function when users press the \gui Find button, you use the Qt signals
4023     and slots mechanism. A signal is emitted when a particular event occurs and a slot is
4024     a function that is called in response to a particular signal. Qt widgets have predefined
4025     signals and slots that you can use directly from \QD. To add a slot for the find function:
4026
4027         \list
4028
4029             \o Right-click the \gui Find button to open a context-menu.
4030             \o Select \gui {Go to Slot > clicked()}, and then select \gui OK.
4031
4032             A private slot, \c{on_findButton_clicked()}, is added to the header file,
4033             textfinder.h and a private function, \c{TextFinder::on_findButton_clicked()},
4034             is added to the source file, textfinder.cpp.
4035
4036         \endlist
4037
4038     \o Press \gui{Ctrl+S} to save your changes.
4039
4040     \endlist
4041
4042     For more information about designing forms with \QD, see the
4043     \l{http://doc.qt.nokia.com/4.7/designer-manual.html}{Qt Designer Manual}.
4044
4045     \section2 Completing the Header File
4046
4047     The textfinder.h file already has the necessary #includes, a
4048     constructor, a destructor, and the \c{Ui} object. You need to add a private
4049     function, \c{loadTextFile()}, to read and display the
4050     contents of the input text file in the
4051     QTextEdit.
4052
4053     \list 1
4054
4055     \o In the \gui{Projects} pane in the \gui {Edit view}, double-click the \c{textfinder.h} file
4056     to open it for editing.
4057
4058     \o Add a private function
4059     to the \c{private} section, after the \c{Ui::TextFinder} pointer, as
4060     illustrated by the following code snippet:
4061
4062     \snippet examples/textfinder/textfinder.h 0
4063
4064     \endlist
4065
4066     \section2 Completing the Source File
4067
4068     Now that the header file is complete, move on to the source file,
4069    textfinder.cpp.
4070
4071     \list 1
4072
4073     \o In the \gui{Projects} pane in the \gui Edit view, double-click the textfinder.cpp file
4074     to open it for editing.
4075
4076     \o Add code to load a text file using
4077     QFile, read it with QTextStream, and
4078     then display it on \c{textEdit} with
4079     \l{http://doc.qt.nokia.com/4.7/qtextedit.html#plainText-prop}{setPlainText()}.
4080     This is illustrated by the following code snippet:
4081
4082     \snippet examples/textfinder/textfinder.cpp 0
4083
4084     \o To use QFile and QTextStream, add the
4085     following #includes to textfinder.cpp:
4086
4087     \snippet examples/textfinder/textfinder.cpp 1
4088
4089     \o For the \c{on_findButton_clicked()} slot, add code to extract the search string and
4090     use the \l{http://doc.qt.nokia.com/4.7/qtextedit.html#find}{find()} function
4091     to look for the search string within the text file. This is illustrated by
4092     the following code snippet:
4093
4094     \snippet examples/textfinder/textfinder.cpp 2
4095
4096     \o Once both of these functions are complete, add a line to call \c{loadTextFile()} in
4097     the constructor, as illustrated by the following code snippet:
4098
4099     \snippet examples/textfinder/textfinder.cpp 3
4100
4101     \endlist
4102
4103     The \c{on_findButton_clicked()} slot is called automatically in
4104     the uic generated ui_textfinder.h file by this line of code:
4105
4106     \code
4107     QMetaObject::connectSlotsByName(TextFinder);
4108     \endcode
4109
4110     \section2 Creating a Resource File
4111
4112     You need a resource file (.qrc) within which you embed the input
4113     text file. The input file can be any .txt file with a paragraph of text.
4114     Create a text file called input.txt and store it in the textfinder
4115     folder.
4116
4117     To add a resource file:
4118     \list 1
4119         \o Select \gui{File > New File or Project > Qt > Qt Resource File > Choose}.
4120     \image qtcreator-add-resource-wizard.png "New File or Project dialog"
4121
4122     The \gui {Choose the Location} dialog opens.
4123
4124         \image qtcreator-add-resource-wizard2.png "Choose the Location dialog"
4125
4126         \o In the \gui{Name} field, enter \bold{textfinder}.
4127         \o In the \gui{Path} field, enter \c{C:\Qt\examples\TextFinder},
4128         and click \gui{Next}.
4129
4130         The \gui{Project Management} dialog opens.
4131
4132         \image qtcreator-add-resource-wizard3.png "Project Management dialog"
4133
4134
4135         \o In the \gui{Add to project} field, select \bold{TextFinder.pro}
4136         and click \gui{Finish} to open the file in the code editor.
4137
4138         \o Select \gui{Add > Add Prefix}.
4139         \o In the \gui{Prefix} field, replace the default prefix with a slash (/).
4140         \o Select \gui{Add > Add Files}, to locate and add input.txt.
4141
4142         \image qtcreator-add-resource.png "Editing resource files"
4143
4144     \endlist
4145
4146     \section1 Compiling and Running Your Program
4147
4148     Now that you have all the necessary files, click the \inlineimage qtcreator-run.png
4149     button to compile and run your program.
4150
4151 */
4152
4153
4154 /*!
4155     \contentspage index.html
4156     \previouspage creator-maemo-emulator.html
4157     \page creator-version-control.html
4158     \nextpage creator-task-lists.html
4159
4160     \title Using Version Control Systems
4161
4162     Version control systems supported by Qt Creator are:
4163     \table
4164         \header
4165             \i \bold{Version Control System}
4166             \i \bold{Address}
4167             \i \bold{Notes}
4168         \row
4169             \i  \bold{Git}
4170             \i  \l{http://git-scm.com/}
4171             \i
4172         \row
4173             \i  \bold{Subversion}
4174             \i  \l{http://subversion.tigris.org/}
4175             \i
4176         \row
4177             \i  \bold{Perforce}
4178             \i  \l{http://www.perforce.com}
4179             \i  Server version 2006.1 and later
4180         \row
4181             \i  \bold{CVS}
4182             \i  \l{http://www.cvshome.org}
4183             \i
4184         \row
4185             \i  \bold{Mercurial}
4186             \i  \l{http://mercurial.selenic.com/}
4187             \i  Qt Creator 2.0 and later
4188     \endtable
4189
4190
4191     \section1 Setting Up Version Control Systems
4192
4193     Qt Creator uses the version control system's command line clients to access
4194     your repositories. To allow access, make sure that the command line clients
4195     can be located using the \c{PATH} environment variable or specify the path to
4196     the command line client executables in \gui{Tools} > \gui{Options...} >
4197     \gui {Version Control}.
4198
4199     After you set up the version control system, use the command line to check
4200     that everything works (for example, use the status command). If no issues arise,
4201     you should be ready to use the system also from Qt Creator.
4202
4203     \section2 Using msysGit on Windows
4204
4205     If you configure Git for use with \c {git bash}, only, and use SSH
4206     authorization, Git looks for the SSH keys in the directory where the
4207     \c HOME environment points to. The variable is always set by \c {git bash}.
4208
4209     However, the variable is typically not set in a Windows command prompt.
4210     When you run Git from a Windows command prompt, it looks for the SSH keys in its
4211     installation directory, and therefore, the authorization fails.
4212
4213     You can set the \c HOME environment variable from Qt Creator. Select \gui {Tools >
4214     Options... > Version Control > Git}. Select the \gui {Environment Variables}
4215     and the \gui {Set "HOME" environment variable} check boxes. \c HOME is set to
4216     \c %HOMEDRIVE%%HOMEPATH% when the Git executable is run and authorization works
4217     as it would with \c {git bash}.
4218
4219     \section1 Setting Up Common Options
4220
4221     Select \gui{Tools} > \gui{Options...} > \gui{Version Control} > \gui{Common}
4222     to specify settings for submit messages:
4223     \list
4224        \o   \gui{Submit message check script} is a script or program that
4225              can be used to perform checks on the submit message before
4226              submitting. The submit message is passed in as the script's first
4227              parameter. If there is an error, the script should output a
4228              message on standard error and return a non-zero exit code.
4229
4230        \o    \gui{User/alias configuration file} takes a file in mailmap format
4231              that lists user names and aliases. For example:
4232
4233              \code
4234              Jon Doe <Jon.Doe@company.com>
4235              Hans Mustermann <Hans.Mustermann@company.com> hm <info@company.com>
4236              \endcode
4237
4238              \note The second line above specifies the alias \e{hm} and the
4239              corresponding email address for \e{Hans Mustermann}. If the
4240              user/alias configuration file is present, the submit editor
4241              displays a context menu with \gui{Insert name...} that pops up a
4242              dialog letting the user select a name.
4243
4244        \o    \gui{User fields configuration file} is a simple text file
4245              consisting of lines specifying submit message fields that take
4246              user names, for example:
4247
4248              \code
4249              Reviewed-by:
4250              Signed-off-by:
4251              \endcode
4252     \endlist
4253
4254     The fields above appear below the submit message. They provide completion
4255     for the aliases/public user names specified in the
4256     \e{User/alias configuration file} as well as a button that opens the
4257     aforementioned user name dialog.
4258
4259     \section1 Creating VCS Repositories for New Projects
4260
4261     Qt Creator allows for creating VCS repositories for version
4262     control systems that support local repository creation, such as
4263     Git or Mercurial.
4264     When creating a new project by selecting \gui File >
4265     \gui{New File or Project...}, you can choose a version
4266     control system in the final wizard page.
4267
4268     \section1 Using Version Control Systems
4269
4270     The \gui{Tools} menu contains a sub-menu for each supported version
4271     control system.
4272
4273     The \gui{Version Control} output pane displays the commands
4274     that are executed, a timestamp, and the relevant output.
4275     Select \gui {Window > Output Panes > Version Control} to open
4276     the pane.
4277
4278
4279     \image qtcreator-vcs-pane.png
4280
4281
4282     \section2 Adding Files
4283
4284     When you create a new file or a new project, the wizard displays a page
4285     asking whether the files should be added to a version control system.
4286     This happens when the parent directory or the project is already
4287     under version control and the system supports the concept of adding files,
4288     for example, Perforce and Subversion. Alternatively, you can
4289     add files later by using the version control tool menus.
4290
4291     With Git, there is no concept of adding files. Instead, all modified
4292     files must be staged for a commit.
4293
4294
4295     \section2 Viewing Diff Output
4296
4297     All version control systems provide menu options to \e{diff} the current
4298     file or project: to compare it with the latest version stored in the
4299     repository and to display the differences. In Qt Creator, a diff is
4300     displayed in a read-only editor. If the file is accessible, you can
4301     double-click on a selected diff chunk and Qt Creator opens an editor
4302     displaying the file, scrolled to the line in question.
4303
4304     \image qtcreator-vcs-diff.png
4305
4306
4307     \section2 Viewing Versioning History and Change Details
4308
4309     Display the versioning history of a file by selecting \gui{Log}
4310     (for Git and Mercurial) or \gui{Filelog} (for CVS, Perforce, and
4311     Subversion). Typically, the log output contains the date, the commit
4312     message, and a change or revision identifier. Click on the identifier to
4313     display a description of the change including the diff.
4314     Right-clicking on an identifier brings up a context menu that lets you
4315     show annotation views of previous versions (see \l{Annotating Files}).
4316
4317     \image qtcreator-vcs-log.png
4318
4319
4320     \section2 Annotating Files
4321
4322     Annotation views are obtained by selecting \gui{Annotate} or \gui{Blame}.
4323     Selecting \gui{Annotate} or \gui{Blame} displays the lines of the file
4324     prepended by the change identifier they originate from. Clicking on the
4325     change identifier shows a detailed description of the change.
4326
4327     To show the annotation of a previous version, right-click on the
4328     version identifier at the beginning of a line and choose one of the
4329     revisions shown at the bottom of the context menu. This allows you to
4330     navigate through the history of the file and obtain previous versions of
4331     it. It also works for Git and Mercurial using SHA's.
4332
4333     The same context menu is available when right-clicking on a version
4334     identifier in the file log view of a single file.
4335
4336
4337     \section2 Committing Changes
4338
4339     Once you have finished making changes, submit them to the version control
4340     system by choosing \gui{Commit} or \gui{Submit}. Qt Creator displays a
4341     commit page containing a text editor where you can enter your commit
4342     message and a checkable list of modified files to be included.
4343
4344     \image qtcreator-vcs-commit.png
4345
4346     When you have finished filling out the commit page information, click on
4347     \gui{Commit} to start committing.
4348
4349     The \gui{Diff Selected Files} button brings up a diff view of the
4350     files selected in the file list. Since the commit page is just another
4351     editor, you can go back to it by closing the diff view. You can also check
4352     a diff view from the editor combo box showing the \gui{Opened files}.
4353
4354
4355     \section2 Reverting Changes
4356
4357     To discard local changes to a file or project, use the \gui Revert
4358     function or the \gui {Undo Changes/Undo Repository Changes} function
4359     (for Git). The changes discarded depend on the version control system.
4360
4361     For example, in Perforce, select \gui{Revert File/Revert Project}
4362     to discard changes made to open files, reverting them to the
4363     revisions last synchronized from the repository. Select
4364     \gui{Revert Unchanged} to revert files if their contents or file
4365     type have not changed after they were opened for editing.
4366
4367     \section2 Using Additional Git Functions
4368
4369     The \gui Git sub-menu contains the following additional items:
4370
4371     \table
4372
4373         \row
4374             \i  \gui {Apply Patch/Apply Patch...}
4375             \i  Apply changes to a file or project from a diff file. You can
4376                 either apply a patch file that is open in Qt Creator or select
4377                 the patch file to apply from the file system.
4378         \row
4379             \i  \gui{Stash Snapshot...}
4380             \i  Save a snapshot of your current
4381                 work under a name for later reference. For example, if you
4382                 want to try out something and find out later that it does not work,
4383                 you can discard it and return to the state of the snapshot.
4384         \row
4385             \i  \gui{Stash}
4386             \i  Stash local changes prior to executing a \gui{Pull}.
4387         \row
4388             \i  \gui{Stash Pop}
4389             \i  Remove a single stashed state from the stash list and apply it on
4390                 top of the current working tree state.
4391         \row
4392             \i  \gui{Pull}
4393             \i  Pull changes from the remote repository. If there are locally
4394                 modified files, you are prompted to stash those changes.
4395                 The \gui Git options page contains an option to do
4396                 a rebase operation while pulling.
4397
4398         \row
4399             \i  \gui{Clean Repository.../Clean Project...}
4400             \i  Collect all files that are not under version control
4401                 with the exception of patches and project files
4402                 and show them as a checkable list in a dialog
4403                 prompting for deletion. This lets you completely clean a build.
4404
4405         \row
4406             \i  \gui{Branches...}
4407             \i  Displays the branch dialog showing the local branches at the
4408                 top and remote branches at the bottom. To switch to the local
4409                 branch, double-click on it. Double-clicking on a remote
4410                 branch first creates a local branch with the same name that
4411                 tracks the remote branch, and then switches to it.
4412
4413                 \image qtcreator-vcs-gitbranch.png
4414
4415
4416         \row
4417             \i  \gui{Stashes...}
4418             \i  Displays a dialog showing the stashes created by
4419                 \gui{Stash Snapshot...} with options to restore,
4420                 display or delete them.
4421         \row
4422             \i  \gui {Stage File for Commit}
4423             \i  Mark new or modified files for committing to the repository.
4424                 To undo this function, select \gui {Unstage File from Commit}.
4425         \row
4426             \i  \gui{Show Commit...}
4427             \i  Select a commit to view. Enter the SHA of the commit
4428                 in the \gui Change field.
4429     \endtable
4430
4431     \section2 Using Additional Mercurial Functions
4432
4433     The \gui Mercurial sub-menu contains the following additional items:
4434
4435     \table
4436         \row
4437             \i  \gui{Import}
4438             \i  Apply changes from a patch file.
4439         \row
4440             \i  \gui{Incoming}
4441             \i  Monitor the status of a remote repository by listing
4442                 the changes that will be pulled.
4443         \row
4444             \i  \gui{Outgoing}
4445             \i  Monitor the status of a remote repository by listing
4446                 the changes that will be pushed.
4447         \row
4448             \i  \gui{Pull}
4449             \i  Pull changes from the remote repository.
4450         \row
4451             \i  \gui{Update}
4452             \i  Look at an earlier version of the code.
4453     \endtable
4454
4455     \section2 Using Additional Perforce Functions
4456
4457     When you start Qt Creator, it looks for the executable specified
4458     in the \gui{P4 command} field in \gui{Tools > Options... > Version
4459     Control > Perforce}. If you do not use Perforce and want to turn
4460     off the check, clear this field.
4461
4462     The \gui Perforce sub-menu contains the following additional items:
4463
4464     \table
4465         \row
4466             \i  \gui{Describe...}
4467             \i  View information about changelists and the files in them.
4468         \row
4469             \i  \gui{Edit File}
4470             \i  Open a file for editing.
4471         \row
4472             \i  \gui{Opened}
4473             \i  List files that are open for editing.
4474         \row
4475             \i  \gui{Pending Changes...}
4476             \i  Group files for commit.
4477         \row
4478             \i  \gui{Update All/Update Current Project}
4479             \i  Fetch the current version of the current project or all
4480             projects from the repository.
4481
4482     \endtable
4483
4484
4485     \section2 Using Additional Subversion Functions
4486
4487     The \gui Subversion sub-menu contains the following additional items:
4488
4489     \table
4490         \row
4491             \i  \gui{Describe...}
4492             \i  Display commit log messages for a revision.
4493         \row
4494             \i  \gui{Update Project/Update Repository}
4495             \i  Update your working copy.
4496     \endtable
4497
4498
4499
4500 */
4501
4502
4503 /*!
4504     \contentspage index.html
4505     \previouspage qt-quick-toolbars.html
4506     \page creator-editor-locator.html
4507     \nextpage creator-editor-codepasting.html
4508
4509     \title Searching With the Locator
4510
4511     The locator provides one of the easiest ways in Qt Creator to browse
4512     through projects, files, classes, methods, documentation and file systems.
4513     You can find the locator in the bottom left of the Qt Creator window.
4514
4515     To activate the locator, press \key Ctrl+K (\key Cmd+K on Mac OS
4516     X) or select \gui Tools > \gui Locate....
4517
4518     \image qtcreator-locator.png
4519
4520     To edit the currently open project's main.cpp file using the locator:
4521     \list 1
4522         \o Activate the locator by pressing \key Ctrl+K.
4523         \o Enter \tt{main.cpp}.
4524
4525            \image qtcreator-locator-open.png
4526         \o Press \key Return.
4527
4528            The main.cpp file opens in the editor.
4529     \endlist
4530
4531     It is also possible to enter only a part of a search string.
4532     As you type, the locator shows the occurrences of that string regardless
4533     of where in the name of an component it appears.
4534
4535     To narrow down the search results, you can use the following wildcard
4536     characters:
4537     \list
4538         \o To match any number of any or no characters, enter \bold{*}.
4539         \o To match a single instance of any character, enter \bold{?}.
4540     \endlist
4541
4542     \section1 Using the Locator Filters
4543
4544     The locator allows you to browse not only files, but any items
4545     defined by \bold{locator filters}. By default, the locator contains
4546     filters which locate:
4547     \list
4548         \o  Any open document
4549         \o  Files anywhere on your file system
4550         \o  Files belonging to your project, such as source, header resource,
4551             and .ui files
4552         \o  Class and method definitions in your project or anywhere referenced
4553             from your project
4554         \o  Help topics, including Qt documentation
4555         \o  Specific line in the document displayed in your editor
4556     \endlist
4557
4558     To use a specific locator filter, type the assigned prefix followed by
4559     \key Space. The prefix is usually a single character.
4560
4561     For example, to locate symbols matching
4562     QDataStream:
4563     \list 1
4564         \o Activate the locator.
4565         \o Enter \tt{\bold{: QDataStream}} (: (colon) followed by a
4566            \key Space and the symbol name (QDataStream)).
4567
4568            The locator lists the results.
4569
4570            \image qtcreator-navigate-popup.png
4571     \endlist
4572
4573     By default the following filters are enabled and you do not need to use
4574     their prefixes explicitly:
4575     \list
4576         \o Going to a line in the current file (l).
4577         \o Going to an open file (o).
4578         \o Going to a file in any open project (a).
4579     \endlist
4580
4581     \section2 Using the Default Locator Filters
4582
4583     The following locator filters are available by default:
4584
4585     \table
4586         \header
4587             \o  Function
4588             \o  Enter in locator
4589             \o  Example
4590         \row
4591             \o  Go to a line in the current file.
4592             \o  \tt{\bold{l \e{Line number}}}
4593             \o  \image qtcreator-locator-line.png
4594         \row
4595             \o  Go to a symbol definition.
4596             \o  \tt{\bold{: \e{Symbol name}}}
4597             \o  \image qtcreator-locator-symbols.png
4598         \row
4599             \o  Go to a help topic.
4600             \o  \tt{\bold{? \e{Help topic}}}
4601             \o  \image qtcreator-locator-help.png
4602         \row
4603             \o  Go to an open file.
4604             \o  \tt{\bold{o \e{File name}}}
4605             \o  \image qtcreator-locator-opendocs.png
4606         \row
4607             \o  Go to a file in the file system (browse the file system).
4608             \o  \tt{\bold{f \e{File name}}}
4609             \o  \image qtcreator-locator-filesystem.png
4610         \row
4611             \o  Go to a file in any project currently open.
4612             \o  \tt{\bold{a \e{File name}}}
4613             \o  \image qtcreator-locator-files.png
4614         \row
4615             \o  Go to a file in the current project.
4616             \o  \tt{\bold{p \e{File name}}}
4617             \o  \image qtcreator-locator-current-project.png
4618         \row
4619             \o  Go to a class definition.
4620             \o  \tt{\bold{c \e{Class name}}}
4621             \o  \image qtcreator-locator-classes.png
4622         \row
4623             \o  Go to a method definition.
4624             \o  \tt{\bold{m \e{Method name}}}
4625             \o  \image qtcreator-locator-methods.png
4626     \endtable
4627
4628     \section2 Creating Locator Filters
4629
4630     To quickly access files not directly mentioned in your project, you can
4631     create your own locator filters. That way you can locate files in a
4632     directory structure you have defined.
4633
4634     To create a locator filter:
4635     \list 1
4636         \o In the locator, click \inlineimage qtcreator-locator-magnify.png
4637            and select \gui Configure.... to open the \gui Locator options.
4638
4639            \image qtcreator-locator-customize.png
4640
4641         \o Click \gui Add.
4642         \o In the \gui{Filter Configuration} dialog:
4643         \list
4644             \o Name your filter.
4645             \o Select at least one directory. The locator searches directories
4646                recursively.
4647             \o Define the file pattern as a comma separated list. For example,
4648                to search all .h and .cpp files, enter \bold{*.h,*.cpp}
4649             \o Specify the prefix string.
4650
4651                To show only results matching this filter, select
4652                \gui{Limit to prefix}.
4653
4654                \image qtcreator-navigate-customfilter.png
4655         \endlist
4656         \o Click OK.
4657     \endlist
4658
4659     \section3 Configuring the Locator Cache
4660
4661     The locator searches the files matching your file pattern in the
4662     directories you have selected and caches that information. The cache for
4663     all default filters is updated as you write your code. By default,
4664     Qt Creator updates the filters created by you once an hour.
4665
4666     To update the cached information manually, click
4667     \inlineimage qtcreator-locator-magnify.png
4668     and select \gui Refresh.
4669
4670     To set a new cache update time:
4671     \list 1
4672         \o Select \gui Tools > \gui Options... > \gui Locator.
4673         \o In \gui{Refresh interval}, define new time in minutes.
4674     \endlist
4675
4676 */
4677
4678
4679 /*!
4680     \contentspage index.html
4681     \previouspage creator-developing-symbian.html
4682     \page creator-project-managing-sessions.html
4683     \nextpage creator-project-wizards.html
4684
4685     \title Managing Sessions
4686
4687     When you exit Qt Creator, a snapshot of your current workspace is stored
4688     as a \e session. A session is an arbitrary collection of:
4689
4690     \list
4691         \o Open projects with their dependencies (including SUBDIRS projects)
4692         \o Open editors
4693         \o Breakpoints and watches
4694         \o Bookmarks
4695     \endlist
4696
4697     A session is  personal, that is, not meant to be shared. It is not
4698     supposed to reflect the project structure. It contains personal data, such as
4699     bookmarks and breakpoints that are usually not of interest to other developers
4700     working on the same projects.
4701
4702     For example, if you work on a project and need to switch to another project for a
4703     while, you can save your workspace as a session. This makes it easier
4704     to return to working on the first project later.
4705
4706     To create a new session or remove existing sessions, select \gui File >
4707     \gui Sessions > \gui{Session Manager}.
4708
4709     \image qtcreator-session-manager.png
4710
4711     To switch between sessions, choose
4712     \gui File > \gui Session. If you do not create or select a session,
4713     Qt Creator always uses the default session, which was created the
4714     last time you exited Qt Creator.
4715
4716     When you launch Qt Creator, a list of existing sessions is displayed on the
4717     \gui{Welcome screen}.
4718
4719     \image qtcreator-welcome-session.png
4720
4721 */
4722
4723
4724 /*!
4725     \contentspage index.html
4726     \previouspage creator-build-dependencies.html
4727     \page creator-debugging.html
4728     \nextpage creator-debugging-example.html
4729
4730     \title Debugging
4731
4732     Qt Creator does not include a debugger. It provides a debugger plugin that acts
4733     as an interface between the Qt Creator core and external native debuggers
4734     such as the GNU Symbolic Debugger (gdb), the Microsoft Console Debugger (CDB),
4735     and an internal Java Script debugger. You can use the native debuggers to
4736     debug the C++ language.
4737
4738     The following sections describe debugging with Qt Creator:
4739
4740     \list
4741
4742         \o \l{Debugging the Example Application} uses an example application to illustrate
4743         how to debug applications in the \gui Debug mode.
4744
4745         \o \l{Interacting with the Debugger} describes the views and functions available
4746         in the \gui Debug mode.
4747
4748         \o \l{Setting Up Debugger} summarizes the support for debugging C++ code and
4749         requirements for installation. Typically, the interaction between Qt Creator
4750         and the native debugger is set up automatically and you do not need to do anything.
4751
4752         \o \l{Debugger Modes of Operation} describes the operating modes in which the
4753         debugger plugin runs, depending on where and how the process is started and run.
4754
4755         \o \l{Using Debugging Helpers} describes how to get more detailed data
4756         on complex data.
4757
4758     \endlist
4759
4760 */
4761
4762 /*!
4763     \contentspage index.html
4764     \previouspage creator-debugger-engines.html
4765     \page creator-debugger-operating-modes.html
4766     \nextpage creator-debugging-helpers.html
4767
4768     \title Debugger Modes of Operation
4769
4770     The debugger plugin runs in different operating modes depending on where and
4771     how the process is started and run. Some of the modes are only available for
4772     a particular operating system or platform.
4773
4774     You can launch the debugger in the following modes:
4775
4776     \list
4777
4778        \o \bold Plain to debug locally started applications, such as a
4779         Qt based GUI application.
4780
4781        \o \bold Terminal to debug locally started processes that need a
4782        console, typically without a GUI.
4783
4784        \o \bold Attach to debug local processes started outside Qt Creator.
4785
4786        \o \bold Remote to debug a process running on a different machine.
4787
4788        \o \bold Core to debug crashed processes on Unix.
4789
4790        \o \bold Post-mortem to debug crashed processes on Windows.
4791
4792        \o \bold TRK to debug processes running on a Symbian device.
4793
4794     \endlist
4795
4796     When you click the \gui {Start Debugging} button, the debugger is launched
4797     in the appropriate operating mode (plain, terminal, or TRK), based on the
4798     build and run settings for the active project. Select \gui Debug menu options
4799     to launch the debugger in the other modes.
4800
4801     \section2 Plain Mode
4802
4803     To launch the debugger in the plain mode, click the \gui {Start Debugging}
4804     button for the active project, or choose
4805     \gui {Debug > Start Debugging > Start and Debug External Application...}
4806     and specify an executable.
4807
4808     \section2 Terminal Mode
4809
4810     To launch the debugger in the terminal mode, select \gui {Projects > Run Settings}
4811     and select the \gui {Run in terminal} check box. Then click the
4812     \gui {Start Debugging} button for the active project.
4813
4814     \section2 Attach Mode
4815
4816     To launch the debugger in the attach mode, select
4817     \gui {Debug > Start Debugging >  Attach to Running External Application...},
4818     and then select a process by its name or process ID to attach to.
4819
4820     \section2 Remote Mode
4821
4822     The remote mode uses a \e{gdbserver} daemon that runs on the remote machine.
4823
4824     To launch the debugger in the remote mode, select
4825     \gui {Debug > Start Debugging > Start and Attach to Remote Application...}.
4826
4827     \section2 Core Mode
4828
4829     The core mode is available only in Unix. It debugs crashed processes using
4830     the \e {core} files (crash dumps) that are generated if the setting
4831     is enabled in the shell.
4832
4833     To enable the dumping of core files, enter the following command in the
4834     shell from which the application will be launched:
4835
4836     \code
4837     ulimit -c unlimited
4838     \endcode
4839
4840     To launch the debugger in the core mode, select
4841     \gui{Debug > Start Debugging >  Attach to Core...}.
4842
4843     \section2 Post-Mortem Mode
4844
4845     The post-mortem mode is available only on Windows, if you have installed
4846     the debugging tools for Windows.
4847
4848     The Qt Creator installation program asks you whether you want to
4849     register Qt Creator as a post-mortem debugger. To change the setting, select
4850     \gui{Tools > Options...  > Debugger > Common > Use Creator for post-mortem debugging}.
4851
4852     You can launch the debugger in the post-mortem mode if an application crashes
4853     on Windows. Click the \gui {Debug in Qt Creator} button in the error message
4854     that is displayed by the Windows operating system.
4855
4856     \section2 TRK Mode
4857
4858     The TRK mode is a special mode available only for Symbian. It
4859     debugs processes running on a Symbian
4860     device using the App TRK application that runs on the device.
4861
4862     To launch the debugger in the TRK mode, open the project, select Symbian as the
4863     target, and click the \gui {Start Debugging} button.
4864
4865     For more information on setting up Symbian projects, see
4866     \l{Setting Up Development Environment for Symbian}.
4867
4868
4869 */
4870
4871 /*!
4872     \contentspage index.html
4873     \previouspage creator-debug-mode.html
4874     \page creator-debugger-engines.html
4875     \nextpage creator-debugger-operating-modes.html
4876
4877     \title Setting Up Debugger
4878
4879     Typically, the interaction between Qt Creator and the native debugger is set
4880     up automatically and you do not need to do anything. However, you might have an
4881     unsupported gdb version installed, your Linux environment might not have gdb
4882     installed at all, or you might want to use the debugging tools for Windows.
4883
4884     \note To use the debugging tools for Windows, you must install them and add the
4885     Symbol Server provided by Microsoft to the symbol search path of the debugger.
4886     For more information, see \l{Setting the Symbol Server in Windows}.
4887
4888     This section explains the
4889     options you have for debugging C++ code and provides installation notes for the
4890     supported native debuggers.
4891
4892     \section1 Supported Native Debugger Versions
4893
4894     The debugger plugin supports different builds of the gdb debugger, both
4895     with and without the ability to use Python scripting. The Python enabled
4896     versions are preferred, but they are not available on Mac and on older
4897     versions of Linux.
4898     On Windows, Symbian, and Maemo, only the Python version is supported.
4899
4900     The non-Python versions use the compiled version of the debugging helpers,
4901     that you must enable separately. For more information, see
4902     \l{Debugging Helpers Based on C++}.
4903
4904     The Python version uses a script version of the debugging helpers
4905     that does not need any special setup.
4906
4907     The CDB native debugger has similar funtionality to the non-Python gdb debugger
4908     engine. Specifically, it also uses compiled C++ code for the debugging
4909     helper library.
4910
4911     The following table summarizes the support for debugging C++ code:
4912
4913     \table
4914         \header
4915             \o Platform
4916             \o Compiler
4917             \o Native Debugger
4918             \o Python
4919             \o Debugger Modes
4920         \row
4921             \o Linux
4922             \o gcc
4923             \o gdb
4924             \o Yes
4925             \o Plain, Terminal, Attach, Remote, Core
4926         \row
4927             \o Unix
4928             \o gcc
4929             \o gdb
4930             \o Yes
4931             \o Plain, Terminal, Attach, Remote, Core
4932         \row
4933             \o Mac OS
4934             \o gcc
4935             \o gdb
4936             \o No
4937             \o Plain, Terminal, Attach, Core
4938         \row
4939             \o Windows/MinGW
4940             \o gcc
4941             \o gdb
4942             \o Yes
4943             \o Plain, Terminal, Attach, Remote, Core
4944         \row
4945             \o Windows/MSVC
4946             \o Microsoft Visual C++ Compiler
4947             \o Debugging Tools for Windows/CDB
4948             \o Not applicable
4949             \o Plain, Terminal, Attach, Post-Mortem
4950         \row
4951             \o Symbian
4952             \o gcc
4953             \o gdb
4954             \o Yes
4955             \o TRK
4956         \row
4957             \o Maemo
4958             \o gcc
4959             \o gdb
4960             \o Yes
4961             \o Remote
4962     \endtable
4963
4964     For more information on the the debugger modes, see \l{Debugger Modes of Operation}.
4965
4966     \omit
4967
4968     \section2 Gdb Adapter Modes
4969
4970     [Advanced Topic]
4971
4972     The gdb native debugger used internally by the debugger plugin runs in
4973     different adapter modes to cope with the variety
4974     of supported platforms and environments. All gdb adapters inherit from
4975     AbstractGdbAdapter:
4976
4977     \list
4978
4979        \o PlainGdbAdapter debugs locally started GUI processes.
4980        It is physically split into parts that are relevant only when Python is
4981        available, parts relevant only when Python is not available, and mixed code.
4982
4983        \o TermGdbAdapter debugs locally started processes that need a
4984        console.
4985
4986        \o AttachGdbAdapter debugs local processes started outside Qt Creator.
4987
4988        \o CoreGdbAdapter debugs core files generated from crashes.
4989
4990        \o RemoteGdbAdapter interacts with the gdbserver running on Linux.
4991
4992        \o TrkGdbAdapter interacts with Symbian devices. The gdb protocol and
4993        the gdb serial protocol are used between gdb and the adapter. The TRK
4994        protocol is used between the adapter and AppTRK running on the device.
4995
4996      \endlist
4997
4998      \endomit
4999
5000     \section1 Installing Native Debuggers
5001
5002     There are various reasons why the debugger plugin may fail to automatically
5003     pick up a suitable native debugger. The native debugger might be missing
5004     (which is usually the case for the CDB debugger on Windows which always
5005     needs to be installed manually by the user) or the installed version is not
5006     supported.
5007     Check the table below for the supported versions and other important
5008     information about installing native debuggers.
5009
5010     \table
5011         \header
5012             \o Native Debugger
5013             \o Notes
5014         \row
5015             \o Gdb
5016             \o On Linux, install version 6.8, 7.0.1 (version 7.0 is not supported),
5017             7.1, or later. On Mac OS X, install Apple gdb version 6.3.50-20050815
5018             (build 1344) or later.
5019
5020         \row
5021             \o Debugging tools for Windows
5022             \o Using this engine requires you to install the
5023                \e{Debugging tools for Windows}
5024                \l{http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx}{32-bit}
5025                or
5026                \l{http://www.microsoft.com/whdc/devtools/debugging/install64bit.Mspx}{64-bit}
5027                package (Version 6.11.1.404 for the 32-bit or the 64-bit version of Qt Creator, respectively),
5028                which is freely available for download from the
5029                \l{http://msdn.microsoft.com/en-us/default.aspx}
5030                {Microsoft Developer Network}.
5031
5032                \note Visual Studio does not include the Debugging tools needed,
5033                and therefore, you must install them separately.
5034
5035                The pre-built \e{Qt SDK for Windows} makes use
5036                of the library if it is present on the system. When manually building Qt
5037                Creator using the Microsoft Visual C++ Compiler, the build process checks
5038                for the required files in \c{"%ProgramFiles%\Debugging Tools for Windows"}.
5039
5040                It is highly recommended that you add the Symbol Server provided by Microsoft to the symbol
5041                search path of the debugger. The Symbol Server provides you
5042                with debugging informaton for the operating system libraries for debugging
5043                Windows applications. For more information, see
5044                \l{Setting the Symbol Server in Windows}.
5045
5046        \row
5047            \o Debugging tools for Mac OS X
5048            \o The Qt binary distribution contains both debug and release
5049               variants of the libraries. But you have to explicitly tell the
5050               runtime linker that you want to use the debug libraries even if
5051               your application is compiled as debug as release is the default
5052               library.
5053
5054               If you use a qmake based project in Qt Creator,  you can set a
5055               flag in your run configuration, in \gui Projects mode. In the run
5056               configuration, select \gui{Use debug version of frameworks}.
5057
5058               For more detailed information about debugging on the Mac, see:
5059               \l http://developer.apple.com/mac/library/technotes/tn2004/tn2124.html
5060
5061         \note The Mac OS X Snow Leopard (10.6) has a bug, that can be worked
5062               around as described in the link provided below:
5063               \l http://bugreports.qt.nokia.com/browse/QTBUG-4962.
5064
5065     \endtable
5066
5067     \section1 Setting the Symbol Server in Windows
5068
5069     To obtain debugging information for the operating system libraries for
5070     debugging Windows applications, add the Symbol Server provided
5071     by Microsoft to the symbol search path of the debugger:
5072     \list 1
5073         \o  Select \gui Tools > \gui{Options...} > \gui Debugger > \gui Cdb.
5074         \o  In the \gui {Symbol paths} field, open the \gui{Insert...} menu
5075             and select \gui{Symbol Server...}.
5076         \o  Select a directory where you want to store the cached information
5077             and click \gui OK.
5078
5079             Use a subfolder in a temporary directory, such as
5080             \c {C:\temp\symbolcache}.
5081     \endlist
5082
5083     \note Populating the cache might take a long time on a slow network
5084     connection.
5085
5086     \note The first time you start debugging by using the
5087     Debugging tools for Windows, Qt Creator prompts you to add the Symbol
5088     Server.
5089
5090 */
5091
5092 /*!
5093     \contentspage index.html
5094     \previouspage creator-debugging-example.html
5095     \page creator-debug-mode.html
5096     \nextpage creator-debugger-engines.html
5097
5098     \title Interacting with the Debugger
5099
5100     In \gui Debug mode, you can use several views to interact with the
5101     program you are debugging. Frequently used views are shown by
5102     default and rarely used ones are hidden. To change the default settings,
5103     select \gui {Window > Views}, and then select views to display or hide.
5104
5105     \image qtcreator-debugger-views.png "Debug mode views"
5106
5107     By default, the views are locked into place in the workspace. Select
5108     \gui {Window > Views > Locked} to unlock the views. Drag and drop the
5109     views into new positions on the screen. Drag view borders to resize the
5110     views. The size and position of views are saved for future sessions.
5111
5112     \section1 Starting the Debugger
5113
5114     To start a program under the debugger's control, select \gui{Debug} >
5115     \gui{Start Debugging} > \gui{Start Debugging}, or press \key{F5}.
5116     Qt Creator checks whether the compiled program is up-to-date, rebuilding
5117     it if necessary. The debugger then takes over and starts the program.
5118
5119     \note Starting a program in the debugger can take a considerable amount of
5120     time, typically in the range of several seconds to minutes if complex
5121     features (like QtWebKit) are used.
5122
5123     The debugger is launched in the appropriate operating mode (plain, terminal,
5124     or TRK), based on the build and run settings for the active project.
5125     Select \gui Debug menu options to launch the debugger in other modes.
5126     For more information, see \l{Debugger Modes of Operation}.
5127
5128     Once the program starts running, it behaves and performs as usual.
5129     You can interrupt a running program by selecting \gui{Debug} >
5130     \gui {Interrupt}. The program is automatically interrupted as soon as a
5131     breakpoint is hit.
5132
5133     \section2 Starting the Debugger from the Command Line
5134
5135     You can use the Qt Creator debugger interface from the command line. To
5136     attach it to a running process, specify the process ID as a parameter for
5137     the \c {-debug} option. To examine a core file, specify the file name.
5138     Qt Creator executes all the necessary steps, such as searching for
5139     the binary that belongs to a core file.
5140
5141     For example:
5142
5143     \list
5144
5145         \o \c {C:\qtcreator-2.1\bin>qtcreator -debug 2000}
5146
5147         \o \c {C:\qtcreator-2.1\bin>qtcreator -debug core.2000}
5148
5149     \endlist
5150
5151     For more information, see \l{Using Command Line Options}.
5152
5153     \section1 Using the Debugger
5154
5155     Once the program stops, Qt Creator:
5156
5157     \list
5158         \o Retrieves data representing the call stack at the program's current
5159            position.
5160         \o Retrieves the contents of local variables.
5161         \o Examines \gui Watchers.
5162         \o Updates the \gui Registers, \gui Modules, and \gui Disassembler
5163            views.
5164     \endlist
5165
5166
5167     You can use the \gui Debug mode views to examine the data in more detail.
5168
5169     You can use the following keyboard shortcuts:
5170
5171     \list
5172
5173        \o To finish debugging, press \key{Shift+F5}.
5174        \o  To execute a line of code as a whole, press \key{F10}.
5175        \o  To step into a function or a sub-function, press \key{F11}.
5176        \o  To continue running the program, press \key{F5}.
5177
5178     \endlist
5179
5180     It is also possible to continue executing the program until the current
5181     function completes or jump to an arbitrary position in the current function.
5182
5183     \section2 Stepping into Frameworks in Mac OS
5184
5185     In Mac OS X, external libraries are usually built into so-called Frameworks,
5186     which may contain both release and debug versions of the library. When you run
5187     applications on the Mac OS desktop, the release version of Frameworks is used
5188     by default. To step into Frameworks, select the \gui {Use debug versions of
5189     Frameworks} option in the project run settings for \gui Desktop and
5190     \gui {Qt Simulator} targets.
5191
5192     \section1 Setting Breakpoints
5193
5194     A breakpoint represents a position or sets of positions in the code that,
5195     when executed, interrupts the program being debugged and passes the control
5196     to you. You can then examine the state of the interrupted program, or
5197     continue execution either line-by-line or continuously.
5198
5199     Qt Creator shows breakpoints in the \gui{Breakpoints} view which is enabled
5200     by default. The \gui{Breakpoints} view is also accessible when the debugger
5201     and the program being debugged is not running.
5202
5203     \image qtcreator-debug-breakpoints.png "Breakpoints view"
5204
5205     Typically, breakpoints are associated with a source code file and line, or
5206     the start of a function -- both are allowed in Qt Creator.
5207
5208     The interruption of a program by a breakpoint can be restricted with
5209     certain conditions.
5210
5211     To set a breakpoint:
5212
5213     \list
5214        \o At a particular line you want the program to stop, click the
5215           left margin or press \key F9 (\key F8 for Mac OS X).
5216        \o At a function that you want the program to interrupt, enter the
5217           function's name in \gui{Set Breakpoint at Function...} located in the
5218           context menu of the \gui{Breakpoints} view.
5219     \endlist
5220
5221     \note You can remove a breakpoint:
5222     \list
5223         \o By clicking the breakpoint marker in the text editor.
5224         \o By selecting the breakpoint in the breakpoint view and pressing
5225            \key{Delete}.
5226         \o By selecting \gui{Delete Breakpoint} from the context
5227            menu in the \gui Breakpoints view.
5228     \endlist
5229
5230     You can set and delete breakpoints before the program starts running or
5231     while it is running under the debugger's control. Breakpoints are saved
5232     together with a session.
5233
5234
5235     \section1 Viewing Call Stack Trace
5236
5237     When the program being debugged is interrupted, Qt Creator displays the
5238     nested function calls leading to the current position as a call stack
5239     trace. This stack trace is built up from call stack frames, each
5240     representing a particular function. For each function, Qt Creator tries
5241     to retrieve the file name and line number of the corresponding source
5242     file. This data is shown in the \gui Stack view.
5243
5244     \image qtcreator-debug-stack.png
5245
5246     Since the call stack leading to the current position may originate or go
5247     through code for which no debug information is available, not all stack
5248     frames have corresponding source locations. Stack frames without
5249     corresponding source locations are grayed out in the \gui{Stack} view.
5250
5251     If you click a frame with a known source location, the text editor
5252     jumps to the corresponding location and updates the \gui{Locals and Watchers}
5253     view, making it seem like the program was interrupted before entering the
5254     function.
5255
5256
5257     \section1 Viewing Threads
5258
5259     If a multi-threaded program is interrupted, the \gui Thread view or the
5260     combobox named \gui Thread in the debugger's status bar can be used to
5261     switch from one thread to another. The \gui Stack view adjusts itself
5262     accordingly.
5263
5264
5265     \section1 Viewing Modules and Source Files
5266
5267     The \gui{Modules} view and \gui{Source Files} views display information
5268     that the debugger plugin has about modules and source files included in
5269     the project. The \gui{Modules} view lists the modules in the project and
5270     symbols within the modules. In addition, it indicates where the module
5271     was loaded.
5272
5273     The \gui{Source Files} view lists all the source files included in the project.
5274     If you cannot step into an instruction, you can check whether the source file is
5275     actually part of the project, or whether it was compiled
5276     elsewhere. The view shows the path to each file in the file system.
5277
5278     By default, the \gui{Modules} view and \gui{Source Files} view are hidden.
5279
5280
5281     \section1 Viewing Disassembled Code and Register State
5282
5283     The \gui{Disassembler} view displays disassembled code for the current
5284     function. The \gui{Registers} view displays the current state of the CPU's
5285     registers.
5286
5287     The \gui{Disassembler} view and the \gui{Registers} view are both useful
5288     for low-level commands for checking single instructions, such as \gui{Step Into}
5289     and \gui{Step Over}. By default, both \gui{Disassembler} and
5290     \gui{Registers} view are hidden.
5291
5292     \section1 Locals and Watchers
5293
5294     Whenever a program stops under the control of the debugger, it retrieves
5295     information about the topmost stack frame and displays it in the
5296     \gui{Locals and Watchers} view. The \gui{Locals and Watchers} view
5297     typically includes information about parameters of the function in that
5298     frame as well as the local variables.
5299
5300     \image qtcreator-watcher.png "Locals and Watchers view"
5301
5302     Compound variables of struct or class type are displayed as
5303     expandable in the view. Expand entries to show
5304     all members. Together with the display of value and type, you can
5305     examine and traverse the low-level layout of object data.
5306
5307
5308     \table
5309         \row
5310             \i  \bold{Note:}
5311
5312         \row
5313             \i  Gdb, and therefore Qt Creator's debugger works for optimized
5314                 builds on Linux and Mac OS X. Optimization can lead to
5315                 re-ordering of instructions or removal of some local variables,
5316                 causing the \gui{Locals and Watchers} view to show unexpected
5317                 data.
5318         \row
5319             \i  The debug information provided by gcc does not include enough
5320                 information about the time when a variable is initialized.
5321                 Therefore, Qt Creator can not tell whether the contents of a
5322                 local variable contains "real data", or "initial noise". If a
5323                 QObject appears uninitialized, its value is reported as
5324                 \gui {not in scope}. Not all uninitialized objects, however, can be
5325                 recognized as such.
5326     \endtable
5327
5328
5329     The \gui{Locals and Watchers} view also provides access to the most
5330     powerful feature of the debugger: comprehensive display of data belonging
5331     to Qt's basic objects.
5332
5333     To enable Qt's basic objects data display feature:
5334     \list
5335        \o  Select \gui Tools > \gui {Options...} > \gui Debugger >
5336            \gui{Debugging Helper} and check the \gui{Use Debugging Helper}
5337            checkbox.
5338        \o  The \gui{Locals and Watchers} view is reorganized to provide a
5339            high-level view of the objects.
5340     \endlist
5341
5342     For example, in case of QObject, instead of displaying a pointer to some
5343     private data structure, you see a list of children, signals and slots.
5344
5345     Similarly, instead of displaying many pointers and integers, Qt Creator's
5346     debugger displays the contents of a QHash or QMap in an orderly manner.
5347     Also, the debugger displays access data for QFileInfo and provides
5348     access to the "real" contents of QVariant.
5349
5350     You can use the \gui{Locals and Watchers} view to change the contents of
5351     variables of simple data types, for example, \c int or \c float when the
5352     program is interrupted. To do so, click the \gui Value column, modify
5353     the value with the inplace editor, and press \key Enter (or \key Return).
5354
5355     You can enable tooltips in the main editor displaying this information.
5356     For more information, see \l{Showing Tooltips in Debug Mode}.
5357
5358     \note The set of watched items is saved in your session.
5359
5360 */
5361
5362
5363 /*!
5364     \contentspage index.html
5365     \previouspage creator-debugging.html
5366     \page creator-debugging-example.html
5367     \nextpage creator-debug-mode.html
5368
5369     \title Debugging the Example Application
5370
5371     This section uses the \l{Creating a Qt C++ Application}{TextFinder} example to
5372     illustrate how to debug applications in the \gui Debug mode. TextFinder
5373     reads a text file into
5374     QString and then displays it with QTextEdit.
5375     To look at the example QString, \c{line}, and see the
5376     stored data, place a breakpoint and view the QString object
5377     data, as follows:
5378
5379     \list 1
5380         \o Click in between the line number and the window border on the line
5381         where we invoke \l{http://doc.qt.nokia.com/4.7/qtextedit.html#plainText-prop}{setPlainText()}
5382         to set a breakpoint.
5383
5384         \image qtcreator-setting-breakpoint1.png
5385
5386         \o Select \gui{Debug > Start Debugging > Start Debugging} or press \key{F5}.
5387
5388
5389         \o To view the breakpoint, click the \gui{Breakpoints} tab.
5390
5391         \image qtcreator-setting-breakpoint2.png
5392
5393         \o To remove a breakpoint, right-click it and select \gui{Delete Breakpoint}.
5394
5395
5396         \o To view the contents of \c{line}, go to the \gui{Locals and
5397     Watchers} view.
5398
5399         \image qtcreator-watcher.png
5400
5401     \endlist
5402
5403     Modify the \c{on_findButton_clicked()} function to move back to
5404     the start of the document and continue searching once the cursor hits the
5405     end of the document. Add the following code snippet:
5406
5407     \code
5408     void TextFinder::on_findButton_clicked()
5409     {
5410         QString searchString = ui->lineEdit->text();
5411
5412         QTextDocument *document = ui->textEdit->document();
5413         QTextCursor cursor = ui->textEdit->textCursor();
5414         cursor = document->find(searchString, cursor,
5415             QTextDocument::FindWholeWords);
5416         ui->textEdit->setTextCursor(cursor);
5417
5418         bool found = cursor.isNull();
5419
5420         if (!found && previouslyFound) {
5421             int ret = QMessageBox::question(this, tr("End of Document"),
5422             tr("I have reached the end of the document. Would you like "
5423             "me to start searching from the beginning of the document?"),
5424             QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
5425
5426             if (ret == QMessageBox::Yes) {
5427                 cursor = document->find(searchString,
5428                     QTextDocument::FindWholeWords);
5429                 ui->textEdit->setTextCursor(cursor);
5430             } else
5431                 return;
5432         }
5433         previouslyFound = found;
5434     }
5435     \endcode
5436
5437     If you compile and run the above code, however, the application does not
5438     work correctly due to a logic error. To locate this logic error, step
5439     through the code using the following buttons:
5440
5441     \image qtcreator-debugging-buttons.png
5442
5443  */
5444
5445
5446 /*!
5447     \contentspage index.html
5448     \previouspage creator-debugger-operating-modes.html
5449     \page creator-debugging-helpers.html
5450     \nextpage creator-maemo-emulator.html
5451
5452     \title Using Debugging Helpers
5453
5454     Qt Creator is able to show complex data types in a customized,
5455     user-extensible manner. For this purpose, it takes advantage of
5456     two technologies, collectively referred to as \e{Debugging Helpers}.
5457
5458     Using the debugging helpers is not \e essential for debugging
5459     with Qt Creator, but they enhance the user's ability to quickly
5460     examine complex data significantly.
5461
5462     \section1 Debugging Helpers based on C++
5463
5464     This is the first and original approach to display complex data
5465     types. While it has been superseded on most platforms by the more
5466     robust and more flexible second approch using Python scripting,
5467     it is the only feasible one on Windows/MSVC, Mac OS, and
5468     old Linux distributions. Moreover, this approach will automatically
5469     be chosen as fallback in case the Python based approach fails.
5470
5471     During debugging with the C++ based debugging helpers,
5472     Qt Creator dynamically loads a helper library in form of a DLL or a
5473     shared object into the debugged process.
5474     The Qt SDK package already contains a prebuilt debugging helper
5475     library. To create your own debugging helper library, select \gui{Tools} >
5476     \gui{Options...} > \gui{Qt4} > \gui{Qt Versions}. As the internal data
5477     structures of Qt can change between versions, the debugging helper
5478     library is built for each Qt version.
5479
5480
5481     \section1 Debugging Helpers based on Python
5482
5483     On platforms featuring a Python-enabled version of the gdb debugger,
5484     the data extraction is done by a Python script. This is more robust
5485     as the script execution is separated from the debugged process. It
5486     is also easier to extend as the script is less dependent on the
5487     actual Qt version and does not need compilation.
5488
5489     To extend the shipped Python based debugging helpers for custom types,
5490     define one Python function per user defined type in the
5491     gdb startup file. By default, the following startup file is used:
5492     \c{~/.gdbinit}. To use another file, select \gui {Tools > Options... > Gdb}
5493     and specify a filename in the \gui {Gdb startup script} field.
5494
5495     The function name has to be qdump__NS__Foo, where NS::Foo is the class
5496     or class template to be examined. Nested namespaces are possible.
5497
5498     The debugger plugin calls this function whenever you want to
5499     display an object of this type. The function is passed the following
5500     parameters:
5501     \list
5502        \o  \c d of type \c Dumper
5503        \o  \c item of type \c Item
5504     \endlist
5505
5506     The function has to feed the Dumper object with certain information
5507     which is used to build up the object and its children's display in the
5508     \gui{Locals and Watchers} view.
5509
5510
5511     Example:
5512
5513     \code
5514     def qdump__QVector(d, item):
5515         d_ptr = item.value["d"]
5516         p_ptr = item.value["p"]
5517         alloc = d_ptr["alloc"]
5518         size = d_ptr["size"]
5519
5520         check(0 <= size and size <= alloc and alloc <= 1000 * 1000 * 1000)
5521         check(d_ptr["ref"]["_q_value"] > 0)
5522
5523         innerType = item.value.type.template_argument(0)
5524         d.putItemCount(size)
5525         d.putNumChild(size)
5526         if d.isExpanded(item):
5527             p = gdb.Value(p_ptr["array"]).cast(innerType.pointer())
5528             with Children(d, [size, 2000], innerType)
5529                 for i in d.childRange():
5530                     d.putItem(Item(p.dereference(), item.iname, i))
5531                     p += 1
5532     \endcode
5533
5534     \section2 Item Class
5535
5536     The Item Python class is a thin wrapper around values corresponding to one
5537     line in the \gui{Locals and Watchers} view. The Item members are as follows :
5538
5539     \list
5540
5541     \o \gui{__init__(self, value, parentiname, iname, name = None)} - A
5542        constructor. The object's internal name is created by concatenating
5543        \c parentiname and \c iname. If \c None is passed as \c name, a
5544        serial number is used.
5545
5546     \o \gui{value} - An object of type gdb.Value representing the value to
5547         be displayed.
5548
5549     \o \gui{iname} - The internal name of the object, constituting a dot-separated
5550     list of identifiers, corresponding to the position of the object's
5551     representation in the view.
5552
5553     \o \gui{name} - An optional name. If given, is used in the
5554     \gui{name} column of the view. If not, a simple number in brackets
5555     is used instead.
5556
5557     \endlist
5558
5559
5560     \section2 Dumper Class
5561
5562     For each line in the \gui{Locals and Watchers} view, a string like the
5563     following needs to be created and channeled to the debugger plugin.
5564     \code
5565     "{iname='some internal name',
5566       addr='object address in memory',
5567       name='contents of the name column',
5568       value='contents of the value column',
5569       type='contents of the type column',
5570       numchild='number of children',        // zero/nonzero is sufficient
5571       childtype='default type of children', // optional
5572       childnumchild='default number of grandchildren', // optional
5573       children=[              // only needed if item is expanded in view
5574          {iname='internal name of first child',
5575           ... },
5576          {iname='internal name of second child',
5577           ... },
5578          ...
5579       ]}"
5580     \endcode
5581
5582     While in theory, you can build up the entire string above manually, it is
5583     easier to employ the Dumper Python class for that purpose. The Dumper
5584     Python class contains a complete framework to take care of the \c iname and
5585     \c addr fields, to handle children of simple types, references, pointers,
5586     enums, known and unknown structs as well as some convenience methods to
5587     handle common situations.
5588
5589     The Dumper members are the following:
5590
5591     \list
5592
5593     \o \gui{__init__(self)} - Initializes the output to an empty string and
5594         empties the child stack.
5595
5596     \o \gui{put(self, value)} - Low level method to directly append to the
5597         output string.
5598
5599     \o \gui{putCommaIfNeeded(self)} - Appends a comma if the current output
5600         ends in '}', '"' or ']' .
5601
5602     \o \gui{putField(self, name, value)} - Appends a comma if needed, and a
5603          name='value' field.
5604
5605     \o \gui{beginItem(self, name)} - Starts writing a field by writing \c {name='}.
5606
5607     \o \gui{endItem(self)} - Ends writing a field by writing \c {'}.
5608
5609     \o \gui{endChildren(self)} - Ends writing a list of children.
5610
5611     \o \gui{childRange(self)} - Returns the range of children specified in
5612         the current \c Children scope.
5613
5614     \o \gui{putItemCount(self, count)} - Appends a field  \c {value='<%d items'}
5615         to the output.
5616
5617     \o \gui{putEllipsis(self)} - Appends fields
5618         \c {'{name="<incomplete>",value="",type="",numchild="0"}'}. This is
5619         automatically done by \c endChildren if the number of children to
5620         print is smaller than the number of actual children.
5621
5622     \o \gui{putName(self, name)} - Appends a \c {name='...'} field.
5623
5624     \o \gui{putType(self, type)} - Appends a field \c {type='...'} unless the
5625         \a type coincides with the parent's default child type.
5626
5627     \o \gui{putNumChild(self, numchild)} - Appends a field \c {numchild='...'}
5628         unless the \c numchild coincides with the parent's default child numchild
5629         value.
5630
5631     \o \gui{putValue(self, value, encoding = None)} - Append a file \c {value='...'},
5632         optionally followed by a field \c {valueencoding='...'}. The \c value
5633         needs to be convertible to a string entirely consisting of
5634         alphanumerical values. The \c encoding parameter can be used to
5635         specify the encoding in case the real value had to be encoded in some
5636         way to meet the alphanumerical-only requirement.
5637         Currently the following encodings are supported:
5638
5639         \list
5640             \o 0: unencoded 8 bit data, interpreted as Latin1.
5641
5642             \o 1: base64 encoded 8 bit data, used for QByteArray,
5643                 double quotes are added.
5644
5645             \o 2: base64 encoded 16 bit data, used for QString,
5646                 double quotes are added.
5647
5648             \o 3: base64 encoded 32 bit data,
5649                 double quotes are added.
5650
5651             \o 4: base64 encoded 16 bit data, without quotes (see 2)
5652
5653             \o 5: base64 encoded 8 bit data, without quotes (see 1)
5654
5655             \o 6: %02x encoded 8 bit data (as with \c QByteArray::toHex),
5656                 double quotes are added.
5657
5658             \o 7: %04x encoded 16 bit data (as with \c QByteArray::toHex),
5659                 double quotes are added.
5660         \endlist
5661
5662     \o \gui{putStringValue(self, value)} - Encodes a QString and calls
5663         \c putValue with the correct \c encoding setting.
5664
5665     \o \gui{putByteArrayValue(self, value)} - Encodes a QByteArray and calls
5666         \c putValue with the correct \c encoding setting.
5667
5668     \o \gui{isExpanded(self, item)} - Checks whether the item with the
5669         internal name \c item.iname is expanded in the view.
5670
5671     \o \gui{isExpandedIName(self, iname)} - Checks whether the item with the
5672         internal name \c iname is expanded in the view.
5673
5674         \o \gui{putIntItem(self, name, value)} - Equivalent to:
5675         \code
5676         self.beginHash()
5677         self.putName(name)
5678         self.putValue(value)
5679         self.putType("int")
5680         self.putNumChild(0)
5681         self.endHash()
5682         \endcode
5683
5684         \o \gui{putBoolItem(self, name, value)} - Equivalent to:
5685         \code
5686         self.beginHash()
5687         self.putName(name)
5688         self.putValue(value)
5689         self.putType("bool")
5690         self.putNumChild(0)
5691         self.endHash()
5692         \endcode
5693
5694     \o \gui{pushOutput(self)} - Moves the output string to a safe location
5695         from with it is sent to the debugger plugin even if further operations
5696         raise an exception.
5697
5698     \o \gui{putCallItem(self, name, item, func)} -
5699         Uses gdb to call the function \c func on the value specified by
5700         \a {item.value} and output the resulting item. This function is
5701         not available when debugging core dumps and it is not available
5702         on the Symbian platform due to restrictions imposed by AppTRK.
5703
5704     \o \gui{putItemHelper(self, item)} - The "master function", handling
5705         basic types, references, pointers and enums directly, iterates
5706         over base classes and class members of compound types and calls
5707         \c qdump__* functions whenever appropriate.
5708
5709     \o \gui{putItem(self, item)} - Equivalent to:
5710         \code
5711         with SubItem(self):
5712             self.putItemHelper(item)
5713         \endcode
5714         Exceptions raised by nested function calls are caught and all
5715         output produced by \c putItemHelper is replaced by the output of:
5716         \code
5717             ...
5718         except RuntimeError:
5719             d.put('value="<invalid>",type="<unknown>",numchild="0",')
5720         \endcode
5721
5722     \endlist
5723
5724
5725     \section2 Children and SubItem Class
5726
5727     The attempt to create child items might lead to errors if data is
5728     uninitialized or corrupted. To gracefully recover in such situations,
5729     use \c Children and \c SubItem \e{Context Managers} to create the nested items.
5730
5731     The \c Children constructor \gui{__init__(self, dumper, numChild = 1,
5732     childType = None, childNumChild = None)} uses one mandatory argument and three
5733     optional arguments.  The mandatory argument refers to the current \c Dumper
5734     object.  The optional arguments can be used to specify the number \c numChild
5735     of children, with type \c childType_ and \c childNumChild_ grandchildren each.
5736     If \c numChild_ is a list of two integers, the first one specifies the actual
5737     number of children and the second the maximum number of children to print.
5738
5739     Similarly, using the \c SubItem class helps to protect individual items.
5740
5741     Example:
5742     \code
5743     d.putNumChild(2)
5744     if d.isExpanded(item):
5745         with Children(d):
5746             with SubItem(d):
5747                 d.putName("key")
5748                 d.putItemHelper(Item(key, item.iname, "key"))
5749             with SubItem(d):
5750                 d.putName("value")
5751                 d.putItemHelper(Item(value, item.iname, "value"))
5752     \endcode
5753 */
5754
5755
5756 /*!
5757     \contentspage index.html
5758     \previouspage creator-project-qmake.html
5759     \page creator-project-cmake.html
5760     \nextpage creator-project-generic.html
5761
5762     \title Setting Up a CMake Project
5763
5764     CMake is an alternative to qmake for automating the generation of makefiles.
5765     It controls the software compilation process by using simple configuration
5766     files, called CMakeLists.txt files. CMake generates native makefiles and
5767     workspaces that you can use in the compiler environment of your choice.
5768
5769     Since Qt Creator 1.1, CMake configuration files are supported.
5770     Qt Creator 1.3 supports the Microsoft Toolchain if the CMake version
5771     is at least 2.8.
5772
5773     \section1 Setting the Path for CMake
5774
5775     You can set the path for the \c CMake executable in \gui{Tools} >
5776     \gui{Options... > Projects > CMake}.
5777
5778     \image qtcreator-cmakeexecutable.png
5779
5780     \note Before you open a \c CMake project it is necessary to modify the
5781     \c{PATH} environment variable to include the bin folders of \c mingw and
5782     Qt Creator in the SDK.
5783
5784     For instance, if you have the Qt Creator SDK installed in your C drive,
5785     use the following command to set the environment variables in
5786     the command line prompt:
5787     \code
5788     set PATH=C:\qtsdk\mingw\bin;C:\qtsdk\qt\bin;
5789     \endcode
5790     Then start Qt Creator by typing:
5791     \code
5792     C:\qtsdk\bin\qtcreator.exe
5793     \endcode
5794
5795     \section1 Opening CMake Projects
5796
5797     To open a \c CMake project:
5798     \list 1
5799         \o  Select \gui{File} > \gui{Open File or Project...}.
5800         \o  Select the \c{CMakeLists.txt} file from your \c CMake project.
5801     \endlist
5802
5803     A wizard guides you through the rest of the process.
5804
5805     \note If the \c CMake project does not have an in-place build, Qt Creator
5806     lets you specify the directory in which the project is built
5807    (\l{glossary-shadow-build}{shadow build}).
5808
5809     \image qtcreator-cmake-import-wizard1.png
5810
5811     The screenshot below shows how you can specify command line arguments to
5812     \c CMake for your project.
5813
5814     \image qtcreator-cmake-import-wizard2.png
5815
5816     Normally, there is no need to pass any command line arguments for projects
5817     that are already built, as \c CMake caches that information.
5818
5819
5820     \section1 Building CMake Projects
5821
5822     Qt Creator builds \c CMake projects by running \c make, \c mingw32-make, or
5823     \c nmake depending on your platform. The build errors and warnings are
5824     parsed and displayed in the \gui{Build Issues} output pane.
5825
5826     By default, Qt Creator builds the \bold{all} target. You can specify which
5827     targets to build in \gui{Project} mode, under \gui{Build Settings}.
5828
5829     \image qtcreator-cmake-build-settings.png
5830
5831     Qt Creator supports multiple build configurations. The build
5832     directory can also be modified after the initial import.
5833
5834     \section1 Running CMake Projects
5835     Qt Creator automatically adds \gui{Run Configurations} for all targets
5836     specified in the \c CMake project file.
5837
5838     Known issues for the current version can be found
5839     \l{Known Issues}{here}.
5840
5841
5842     \section1 Adding External Libraries to CMake Projects
5843
5844     Through external libraries Qt Creator can support code completion and
5845     syntax highlighting as if they were part of the current project or the Qt
5846     library.
5847
5848     Qt Creator detects the external libraries using the \c FIND_PACKAGE()
5849     macro. Some libraries come with the CMake installation. You can find those
5850     in the \bold{Modules} directory of your CMake installation.
5851
5852     \note If you provide your own libraries, you also need to provide your own
5853     \c FindFoo.cmake file. For more information, see
5854     \l{http://vtk.org/Wiki/CMake_FAQ#Writing_FindXXX.cmake_files}{CMake FAQ}.
5855
5856     Syntax completion and highlighting work once your project successfully
5857     builds and links against the external library.
5858 */
5859
5860
5861 /*!
5862     \contentspage index.html
5863     \previouspage creator-project-cmake.html
5864     \page creator-project-generic.html
5865     \nextpage creator-developing-maemo.html
5866
5867     \title Setting Up a Generic Project
5868
5869     Qt Creator supports generic projects, so you can import existing projects
5870     that do not use qmake or CMake and Qt Creator ignores your build system.
5871
5872     Generic project support allows you to use Qt Creator as a code editor. You
5873     can change the way your project is built by modifying the \c make command
5874     in the \gui{Projects} mode under \gui{Build Settings}.
5875
5876     When you import a project, Qt Creator creates the following files that
5877     allow you to specify which files belong to your project and which include
5878     directories or defines you want to pass to your compile:
5879     \tt{.files}, \tt{.includes}, and \tt{.config}.
5880
5881
5882     \section1 Importing a Generic Project
5883
5884     To import an existing generic project:
5885     \list 1
5886         \o Select \gui File > \gui{New File or Project...} >
5887            \gui{Other Project} > \gui{Import Existing Project}.
5888         \o In \gui{Import Existing Project}, enter the project name
5889            and select the location of the project file you want to import.
5890
5891            Qt Creator automatically generates the following files in the
5892            project directory:
5893            \list
5894                \o \l{Specifying Files}{.files}
5895                \o \l{Specifying Include Paths}{.includes}
5896                \o \l{Specifying Defines}{.config}
5897                \o .creator
5898            \endlist
5899     \endlist
5900
5901     When the project is successfully imported, Qt Creator creates the project
5902     tree in the sidebar.
5903
5904     After importing a generic project into Qt Creator, open it by selecting the
5905     \tt{.creator} file.
5906
5907
5908     \section1 Working with Generic Project Files
5909
5910     For a generic project, you have to manually specify which files belong to
5911     your project and which include directories or defines you want to pass to
5912     your compiler.
5913
5914
5915     \section1 Specifying Files
5916
5917     The list of files for a generic project is specified in the \tt{.files}
5918     file. When you first create a generic project, Qt Creator adds any
5919     files it recognizes to your project.
5920
5921     To add or remove files, edit the \tt{.files} file in Qt Creator.
5922     Qt Creator recreates your project tree when you save the \tt{.files} file.
5923     Alternatively, you can add and remove files using the context menu in the
5924     project tree.
5925
5926     If you frequently need to update the \tt{.files} file, you can do so
5927     efficiently by using a script that updates the file for you. If the file
5928     is modified externally, you have to restart Qt Creator for the changes to
5929     take effect.
5930
5931     To update the \tt{.files} on the \gui Git repository use the following
5932     script:
5933     \code
5934     git ls-files *.cpp *.h > MyProject.files
5935     \endcode
5936
5937     \section1 Specifying Include Paths
5938
5939     The include paths are specified in the \tt{.includes} file, one include
5940     path per line. The paths can be either absolute or relative to the
5941     \tt{.includes} file.
5942
5943     \section1 Specifying Defines
5944
5945     The defines are specified in the \tt{.config} file. The \tt{.config} file is
5946     a regular C++ file, prepended to all your source files when they are parsed.
5947     Only use the \tt{.config} file to add lines as in the example below:
5948
5949     \code
5950     #define NAME value
5951     \endcode
5952
5953
5954     \section1 Creating a Run Configuration
5955
5956     Qt Creator cannot automatically determine which executable to run.
5957
5958     In the \gui{Projects} mode under \gui{Run Settings}, define the executable
5959     file to run:
5960     \list 1
5961         \o Click \gui Add and select \gui{Custom Executable}.
5962         \o Define the configuration name, the location of the executable, any
5963            additional arguments and the working directory.
5964     \endlist
5965
5966 */
5967
5968
5969
5970 /*!
5971
5972     \contentspage index.html
5973     \previouspage adding-plugins.html
5974     \page creator-visual-editor.html
5975     \nextpage quick-projects.html
5976
5977     \title Developing Qt Quick Applications
5978
5979     You can either create Qt Quick projects from scratch or import them to
5980     Qt Creator. For example, you can import and run the
5981     \l {http://doc.qt.nokia.com/4.7/qdeclarativeexamples.html} {QML examples and demos}
5982     to learn how to use various aspects of QML.
5983
5984     You can use the code editor (\l{Using the Editor}{Edit mode}) or the visual editor
5985     (\l{Using Qt Quick Designer}{Design mode}) to develop Qt Quick applications.
5986     The following sections describe typical tasks you can do with Qt Creator.
5987
5988     \list
5989
5990         \o \l {Creating Qt Quick Projects}
5991         \o \l {Creating Components}
5992         \o \l {Creating Screens}
5993         \o \l {Animating Screens}
5994         \o \l {Adding User Interaction Methods}
5995         \o \l {Implementing Application Logic}
5996
5997     \endlist
5998
5999     \note The \QMLD visual editor is provided as an experimental plugin that you must
6000     enable to be able to edit QML files in the \gui Design mode. Enabling the
6001     visual editor can negatively affect the overall stability of Qt Creator.
6002
6003     To enable or disable the \QMLD visual editor, select
6004     \gui {Help > About Plugins... > Qt Quick > QmlDesigner}. You must restart Qt Creator
6005     to enable or disable the visual editor.
6006
6007 */
6008
6009
6010 /*!
6011
6012     \contentspage index.html
6013     \previouspage creator-visual-editor.html
6014     \page quick-projects.html
6015     \nextpage quick-components.html
6016
6017     \title Creating Qt Quick Projects
6018
6019     Select \gui {File > New File or Project > Qt Quick Project > Qt QML Application}.
6020
6021     \image qmldesigner-new-project.png "New File or Project dialog"
6022
6023     Qt Creator creates the following files:
6024
6025     \list
6026
6027     \o .qmlproject project file defines that all QML, JavaScript, and image
6028     files in the project folder belong to the project. Therefore, you do not
6029     need to individually list all the files in the project.
6030
6031     \o .qml file defines an element, such as a component, screen, or the whole
6032     application UI.
6033
6034     \endlist
6035
6036     The \c import statement in the beginning of the .qml file specifies the
6037     \l {http://doc.qt.nokia.com/4.7/qdeclarativemodules.html} {Qt modules}
6038     to import. Each Qt module contains a set of default elements.
6039     Specify a version to get the features you want.
6040
6041     To use JavaScript and image files in the application, copy them to the
6042     project folder.
6043
6044     To import a QML project to Qt Creator, select
6045     \gui {File > New File or Project > Qt Quick Project > Import Existing Qt QML Directory}.
6046
6047 */
6048
6049
6050 /*!
6051
6052     \contentspage index.html
6053     \previouspage quick-projects.html
6054     \page quick-components.html
6055     \nextpage quick-screens.html
6056
6057     \title Creating Components
6058
6059     A QML component provides a way of defining a new type that you can re-use in other QML
6060     files. A component is like a black box; it interacts with the outside world
6061     through properties, signals, and slots, and is generally defined in its own QML file.
6062     You can import components to screens and applications.
6063
6064     You can create the following QML components:
6065
6066     \list
6067
6068         \o \l{http://doc.qt.nokia.com/4.7/qml-borderimage.html}{Border Image}
6069         uses an image as a border or background.
6070         \o \l{http://doc.qt.nokia.com/4.7/qml-image.html}{Image}
6071         adds a bitmap to the scene. You can stretch and tile images.
6072         \o \l{http://doc.qt.nokia.com/4.7/qml-item.html}{Item}
6073         is the most basic of all visual items in QML. Even though it has no visual appearance,
6074         it defines all the properties that are common across visual items, such as the x and
6075         y position, width and height, anchoring, and key handling.
6076         \o \l{http://doc.qt.nokia.com/4.7/qml-rectangle.html}{Rectangle}
6077         adds a rectangle that is painted with a solid fill color and an optional border.
6078         You can also use the radius property to create rounded rectangles.
6079         \o \l{http://doc.qt.nokia.com/4.7/qml-text.html}{Text}
6080         adds formatted read-only text.
6081         \o \l{http://doc.qt.nokia.com/4.7/qml-textedit.html}{Text Edit}
6082         adds a single line of editable formatted text that can be validated.
6083         \o \l{http://doc.qt.nokia.com/4.7/qml-textinput.html}{Text Input}
6084         adds a single line of editable plain text that can be validated.
6085
6086     \endlist
6087
6088 */
6089
6090
6091 /*!
6092
6093     \contentspage index.html
6094     \previouspage quick-components.html
6095     \page quick-screens.html
6096     \nextpage quick-animations.html
6097
6098     \title Creating Screens
6099
6100     You can use predefined QML elements and your own components to create screens.
6101
6102     You can create the following types of views to organize items provided by
6103     \l{http://doc.qt.nokia.com/4.7/qdeclarativemodels.html}{data models}:
6104
6105     \list
6106
6107         \o \l{http://doc.qt.nokia.com/4.7/qml-gridview.html}{Grid View}
6108         \o \l{http://doc.qt.nokia.com/4.7/qml-listview.html}{List View}
6109         \o \l{http://doc.qt.nokia.com/4.7/qml-pathview.html}{Path View}
6110
6111     \endlist
6112
6113     In the code editor, write the code to use the data models.
6114
6115     Use states and transitions
6116     to navigate between screens.
6117
6118     QML states typically describe user interface configurations, such as the UI elements,
6119     their properties and behavior and the available actions. For example, you can use
6120     states to create two screens.
6121
6122 */
6123
6124
6125 /*!
6126
6127     \contentspage index.html
6128     \previouspage quick-screens.html
6129     \page quick-animations.html
6130     \nextpage quick-user-interaction.html
6131
6132     \title Animating Screens
6133
6134     To make movement between states smooth, you can specify transitions.
6135     You can use different types of animated transitions. For example, you can animate changes
6136     to property values and colors. You can use rotation animation to control the direction of
6137     rotation. For more information, see
6138     \l{http://doc.qt.nokia.com/4.7/qdeclarativeanimation.html}{QML Animation}.
6139
6140     You can use the \c ParallelAnimation element to start several animations at the same time.
6141     Or use the \c SequentialAnimation element to run them one after another.
6142
6143     You can use the code editor to specify transitions. For more information, see
6144     \l{http://doc.qt.nokia.com/4.7/qml-transition.html}{QML Transition Element}.
6145
6146 */
6147
6148
6149
6150 /*!
6151
6152     \contentspage index.html
6153     \previouspage quick-animations.html
6154     \page quick-user-interaction.html
6155     \nextpage quick-application-logic.html
6156
6157     \title Adding User Interaction Methods
6158
6159     You can add the following basic interaction methods to scenes:
6160
6161     \list
6162
6163         \o \l{http://doc.qt.nokia.com/4.7/qml-flickable.html}{Flickable}
6164         items can be flicked horizontally or vertically.
6165         \o \l{http://doc.qt.nokia.com/4.7/qml-flipable.html}{Flipable}
6166         items can be flipped between their front and back sides by using rotation,
6167         state, and transition.
6168         \o \l{http://doc.qt.nokia.com/4.7/qml-focusscope.html}{Focus Scope}
6169         assists in keyboard focus handling when building reusable QML components.
6170         \o \l{http://doc.qt.nokia.com/4.7/qml-mousearea.html}{Mouse Area}
6171         enables simple mouse handling.
6172
6173     \endlist
6174
6175 */
6176
6177
6178 /*!
6179
6180     \contentspage index.html
6181     \previouspage quick-user-interaction.html
6182     \page quick-application-logic.html
6183     \nextpage creator-building-running.html
6184
6185     \title Implementing Application Logic
6186
6187     A user interface is only a part of an application, and not really useful by itself.
6188     You can use Qt or JavaScript to implement the application logic. For more information on
6189     using JavaScript, see
6190     \l {http://doc.qt.nokia.com/4.7/qdeclarativejavascript.html} {Integrating JavaScript}.
6191
6192     For an example of how to use JavaScript to develop a game, see the
6193     \l {http://doc.qt.nokia.com/4.7/qml-advtutorial.html} {QML Advanced Tutorial}.
6194
6195  */
6196
6197
6198 /*!
6199     \contentspage index.html
6200     \previouspage creator-editor-refactoring.html
6201     \page qt-quick-toolbars.html
6202     \nextpage creator-editor-locator.html
6203
6204     \title Using Qt Quick Toolbars
6205
6206     When you edit QML code in the code editor, you specify the properties
6207     of QML components. For some properties, such as colors and font names,
6208     this is not a trivial task. For example, few people can visualize the
6209     color #18793f.
6210
6211     To easily edit these properties, you can use the Qt Quick Toolbars.
6212     When you select a component in the code and a toolbar is available,
6213      a light bulb icon appears:
6214     \inlineimage qml-toolbar-indicator.png
6215     . Select the icon to open the toolbar.
6216
6217     To open toolbars immediately when you select a component, select
6218     \gui{Tools > Options... > Qt Quick > Qt Quick Toolbar > Always show Quick
6219     Toolbar}.
6220
6221     Drag the toolbar to pin it to another location. Select
6222     \inlineimage qml-toolbar-pin.png
6223     to unpin the toolbar and move it to its default location. To pin toolbars
6224     by default, select \gui{Tools > Options... > Qt Quick > Qt Quick Toolbar
6225     > Pin Quick Toolbar}.
6226
6227     \section1 Previewing Images
6228
6229     The Qt Quick Toolbar for images allows you to edit the properties of
6230     \l{http://doc.qt.nokia.com/latest/qml-borderimage.html}{Border Image}
6231     and \l{http://doc.qt.nokia.com/latest/qml-image.html}{Image} components.
6232     You can scale and tile the images, replace them with other images,
6233     preview them, and change the image margins.
6234
6235     \image qml-toolbar-image.png "Qt Quick Toolbar for images"
6236
6237     To preview an image, double-click it on the toolbar. In the preview
6238     dialog, you can zoom the image. Drag the image margins to change them.
6239
6240     \image qml-toolbar-image-preview.png "Image preview dialog"
6241
6242     \section1 Formatting Text
6243
6244     The Qt Quick Toolbar for text allows you to edit the properties of
6245     \l{http://doc.qt.nokia.com/latest/qml-text.html}{Text} components.
6246     You can change the font family and size as well as text formatting, style,
6247     alignment, and color.
6248
6249     If a property is assigned an expression instead of a value, you
6250     cannot use the toolbar to edit it. The button for editing the property
6251     is disabled.
6252
6253     \image qml-toolbar-text.png "Qt Quick Toolbar for text"
6254
6255     By default, font size is specified as pixels. To use points, instead,
6256     change \gui px to \gui pt in the size field.
6257
6258     \section1 Previewing Animation
6259
6260     The Qt Quick Toolbar for animation allows you to edit the properties of
6261     \l{http://doc.qt.nokia.com/4.7/qml-propertyanimation.html}{PropertyAnimation}
6262     components and the components that inherit it. You can change the easing curve
6263     type and duration. For some curves, you can also specify amplitude, period,
6264     and overshoot values.
6265
6266     \image qml-toolbar-animation.png "Qt Quick Toolbar for animation"
6267
6268     Select the play button to preview your changes.
6269
6270     \section1 Editing Rectangles
6271
6272     The Qt Quick Toolbar for rectangles allows you to edit the properties of
6273     \l{http://doc.qt.nokia.com/4.7/qml-rectangle.html}{Rectangle}
6274     components. You can change the fill and border colors and add
6275     gradients.
6276
6277     \image qml-toolbar-rectangle.png "Qt Quick Toolbar for rectangles"
6278
6279     To add gradient stop points, click above the gradient bar. To remove
6280     stop points, drag them upwards.
6281
6282 */
6283
6284
6285 /*!
6286     \contentspage index.html
6287     \previouspage creator-debugging-helpers.html
6288     \page creator-maemo-emulator.html
6289     \nextpage creator-version-control.html
6290
6291     \title Using the Maemo Emulator
6292
6293     The Maemo emulator emulates the Nokia N900 device environment. You can test
6294     applications in conditions practically identical to running the application
6295     on a Nokia N900 device with software update release 1.2 (V10.2010.19-1).
6296     You can test user interaction by using the keypad and
6297     touch emulation.
6298
6299     To test the application UI, user interaction with the application, and
6300     functionality that uses the mobility APIs, use the Qt Simulator,
6301     instead. For more information, see the
6302     \l{http://doc.qt.nokia.com/qt-simulator-beta/index.html}{Qt Simulator Manual}.
6303
6304     The Maemo emulator is installed and configured as part of the Nokia Qt SDK
6305     package. You can also install and configure the MADDE environment and
6306     Maemo emulator separately. For more information, see
6307     \l{Setting Up Development Environment for Maemo}.
6308
6309     \section1 Starting the Maemo Emulator
6310
6311     The \gui {Start Maemo Emulator} button is visible if you have a project
6312     open in Qt Creator for which you have added the Maemo build target
6313     and if you have configured a connection between Qt Creator and the Maemo
6314     Emulator.
6315
6316     To start the Maemo emulator:
6317
6318     \list 1
6319
6320     \o Click
6321     \inlineimage qtcreator-maemo-emulator-button.png "Start Maemo Emulator button"
6322     .
6323
6324     \o Select \gui {Mad Developer} on the Maemo emulator, to start the Mad Developer
6325     application
6326
6327     \o If you have not deployed an SSH key to protect the connection between
6328     Qt Creator and the Maemo emulator, select \gui {Developer Password} to generate
6329     a password.
6330
6331     \o In Qt Creator, enter the password in the connection settings:
6332     \gui {Tools > Options... > Projects > Maemo Device Configurations}.
6333
6334     \endlist
6335
6336     Test your application on the Maemo emulator as on a device. For a list of
6337     keyboard shortcuts that you can use to emulate Nokia N900 keys and functions, see
6338     \l {Emulating Nokia N900 Keys}.
6339
6340     \section1 Emulating Nokia N900 Keys
6341
6342     The following table summarizes the keyboard shortcuts that you can use
6343     to emulate Nokia N900 keys and functions.
6344
6345     \table
6346         \header
6347             \o Nokia N900 Key
6348             \o Keyboard Shortcut
6349         \row
6350             \o \list
6351                 \o Alphabet keys
6352                 \o Comma (,)
6353                 \o Period (.)
6354                 \o Space
6355                 \o Arrow keys
6356                 \o Enter
6357                 \o Backspace
6358                \endlist
6359             \o Respective keys on the development PC keyboard.
6360         \row
6361             \o Shift
6362             \o Left Shift key
6363         \row
6364             \o Ctrl
6365             \o Left Ctrl key
6366         \row
6367             \o Mode
6368             \o Left Alt key
6369         \row
6370             \o Power
6371             \o Esc
6372         \row
6373             \o Keypad slider open and close
6374             \o F1
6375         \row
6376             \o Keypad lock
6377             \o F2
6378         \row
6379             \o Camera lens open and close
6380             \o F3
6381         \row
6382             \o Camera focus
6383             \o F4
6384         \row
6385             \o Camera take picture
6386             \o F5
6387             \note The actual camera functionality is not emulated.
6388         \row
6389             \o Stereo headphones connect and disconnect
6390             \o F6
6391         \row
6392             \o Volume down
6393             \o F7
6394         \row
6395             \o Volume up
6396             \o F8
6397         \row
6398             \o Accelerometer x axis, negative
6399             \o 1
6400         \row
6401             \o Accelerometer x axis, positive
6402             \o 2
6403         \row
6404             \o Accelerometer z axis, negative
6405             \o 4
6406         \row
6407             \o Accelerometer z axis, positive
6408             \o 5
6409         \row
6410             \o Accelerometer y axis, negative
6411             \o 7
6412         \row
6413             \o Accelerometer y axis, positive
6414             \o 8
6415
6416     \endtable
6417
6418
6419 */
6420
6421
6422 /*!
6423     \contentspage index.html
6424     \previouspage creator-usability.html
6425     \page adding-plugins.html
6426     \nextpage creator-visual-editor.html
6427
6428     \title Adding Qt Designer Plugins
6429
6430      You can use Qt APIs to create plugins that extend Qt applications.
6431      This allows you to add your own widgets to \QD.
6432      The most flexible way to include a plugin with an application is to compile it
6433      into a dynamic library that is shipped separately, and detected and loaded at runtime.
6434
6435      The applications can detect plugins that are stored in the standard plugin
6436      subdirectories. For more information on how to create and locate plugins and to
6437      change the default plugin path, see \l{How to Create Qt Plugins}.
6438
6439      For more information about how to create plugins for \QD, see
6440      \l{http://doc.qt.nokia.com/4.7/designer-using-custom-widgets.html}{Creating and Using Components for Qt Designer}.
6441
6442     \section1 Locating Qt Designer Plugins
6443
6444      \QD fetches plugins from the standard locations and loads the plugins
6445      that match its build key. \QD is delivered both as a standalone application
6446      and as part of the SDK, where it is integrated into Qt Creator.
6447      The correct folder to place the plugins depends on
6448      which one you use.
6449
6450      The integrated \QD fetches plugins from the \c {%SDK%\bin\designer} folder on Windows
6451      and Linux. For information about how to configure plugins on Mac OS, see
6452      \l{Configuring Qt Designer Plugins on Mac OS}.
6453
6454      To check which plugins
6455      were loaded successfully and which failed, choose \gui{Tools > Form Editor >
6456      About Qt Designer Plugins}.
6457
6458      The standalone \QD is part of the Qt library used for building projects,
6459      located under \c {%SDK%\qt}. Therefore, it fetches plugins from the following folder:
6460      \c {%SDK%\qt\plugins\designer}. To check which plugins were loaded successfully and which
6461      failed, choose \gui{Help > About Plugins}.
6462
6463      \section2 Configuring Qt Designer Plugins on Mac OS
6464
6465      On the Mac, a GUI application must be built and run from a bundle. A bundle is a
6466      directory structure that appears as a single entity when viewed in the Finder.
6467      A bundle for an application typcially contains the executable and all the resources
6468      it needs.
6469
6470      Qt Creator uses its own set of Qt Libraries located in the bundle, and therefore,
6471      you need to configure the \QD plugins that you want to use with Qt Creator.
6472      Fore more information about how to deploy applications on Mac OS, see
6473      \l{http://doc.qt.nokia.com/4.7/deployment-mac.html}{Deploying an Application on Mac OS X}.
6474
6475      The following example illustrates how to configure version 5.2.1 of the
6476      \l{http://qwt.sourceforge.net/}{Qwt - Qt Widgets for Technical Applications} library
6477      for use with Qt Creator:
6478
6479      \list 1
6480
6481     \o To check the paths used in the Qwt library, enter the following \c otool command:
6482
6483     \snippet examples/doc_src_plugins.qdoc 0
6484
6485     The output for Qwt 5.2.1 indicates that the plugin uses Qt core libraries (QtDesigner,
6486     QtScript, QtXml, QtGui and QtCore) and libqwt.5.dylib:
6487
6488     \snippet examples/doc_src_plugins.qdoc 1
6489
6490
6491      \o You must copy the \QD plugin and the Qwt library files to the following locations:
6492
6493                  \list
6494                  \o \c {libqwt_designer_plugin.dylib} to \c {QtCreator.app/Contents/MacOS/designer}
6495                  \o \c {libqwt.*.dylib} to \c {QtCreator.app/Contents/Frameworks}
6496                  \endlist
6497
6498     Enter the following commands:
6499
6500     \snippet examples/doc_src_plugins.qdoc 4
6501
6502     \o Enter the following \c otool command to check the libraries that are used by the
6503     Qwt library:
6504
6505     \snippet examples/doc_src_plugins.qdoc 2
6506
6507     The command returns the following output:
6508
6509     \snippet examples/doc_src_plugins.qdoc 3
6510
6511     \o Enter the following \c install_name_tool command to fix the references of the
6512     libraries:
6513
6514     \snippet examples/doc_src_plugins.qdoc 5
6515
6516     \endlist
6517
6518
6519      \section1 Matching Build Keys
6520
6521      The Qt Creator that is included in pre-built SDK packages on Windows is built with the
6522      Microsoft Visual Studio compiler, whereas the version of Qt shipped for building applications
6523      is configured and built to use the MinGW/g++ compiler. Plugins built by using this version of
6524      Qt cannot be loaded by Qt Creator because the build-keys do not match. The plugins can only be
6525      used in the standalone version of \QD. Choose \gui{Help > About Qt Creator} to check
6526      the Qt version Qt Creator was built with.
6527
6528      To use \QD plugins that were built for the shipped Qt version, make sure that
6529      Qt Creator is built with the same compiler by either recompiling Qt Creator using MinGW or
6530      recompiling Qt with Microsoft Visual Studio, depending on which configuration you want to
6531      use for your applications.
6532
6533 */
6534
6535
6536 /*!
6537     \contentspage index.html
6538     \previouspage creator-design-mode.html
6539     \page creator-usability.html
6540     \nextpage adding-plugins.html
6541
6542     \title Optimizing Applications for Mobile Devices
6543
6544     Before starting application development, analyze and define the requirements, scope, and
6545     functionality of the application to ensure efficient functionality and a smooth user
6546     experience. Design the application for a single purpose and analyze how it can best serve
6547     its users. Mobile devices have been designed for use when mobile. Keep the characteristics
6548     of mobile devices in mind when you create applications for them.
6549
6550     The following guidelines help you design and develop usable applications for mobile devices
6551     with varying characteristics, such as screen size and support for input methods:
6552
6553     \list
6554
6555         \o Know your users
6556
6557         Find out who will use the application, what they will use it for,
6558         and which mobile devices they have. Then design the application to fit a specific context
6559         of use.
6560
6561         \o Design for small screens
6562
6563         The screen size of mobile devices is significantly smaller
6564         than that available on desktop devices. Carefully consider what is the most relevant
6565         content to present on the application UI, as it might not be reasonable to try and fit as
6566         much content into the screen as you might have in a desktop application.
6567
6568        \o Design for multiple screen sizes
6569
6570        Relate the position and size of each control to the
6571        dimensions of the display. This enables the same set of information to be presented on the
6572        screen in all resolutions; higher resolution devices just display finer graphics.
6573
6574        \o Design for changing screen orientation
6575
6576        Some devices support screen rotation. On these
6577        devices, applications can be displayed in portrait or landscape orientation. Account for
6578        orientation and dynamically adjust the display when the screen is rotated.
6579
6580        \o Design intuitive ways of moving within applications
6581
6582        Mobile devices lack a mouse and
6583        full-size keyboard, so users must use the touch screen or five way navigation pad to move within
6584        applications. In addition, many users control the devices with one hand. To create an optimized user
6585        experience, allow users to access information with one click; do not make them scroll and type.
6586
6587        \o Design for limited input methods
6588
6589        Applications collect information from users on the task
6590        at hand. In addition to touch screen input, some devices contain physical keys such
6591        as a five way navigation pad, a keypad, and a keyboard. Users enter information by using screen
6592        controls, such as lists, check boxes, radio buttons, and text fields.
6593
6594        \o Keep response times short
6595
6596        Latency can cause delays in user interaction. If users perceive
6597        an application as being slow, they are likely to get frustrated and stop using it.
6598
6599        \o Save battery time
6600
6601        Mobile devices are not constantly connected to a power source but run on
6602        battery power. Optimize power consumption to keep the total consumption at an acceptable
6603        level and to prevent users from running out of battery time.
6604
6605        For more information and code examples on how to minimize power consumption, see
6606        \l{http://developer.symbian.org/wiki/index.php/Creating_Energy_Efficient_Apps_Using_Qt}{Creating Energy Efficient Apps Using Qt}.
6607
6608        \o Consider network issues
6609
6610        If users do not have a flat-rate data plan or WLAN support, mobile
6611        network connections cost them money. Also, when users move around with the devices, the networks
6612        available for connections constantly change.
6613
6614        \o Remember the processing limits of the device
6615
6616        The memory available on devices is limited
6617        and you should use it carefully. Although all mobile devices have common functionality,
6618        each device is individual in terms of both the resources available and extra features.
6619        Therefore, you must consider the constraints of all the target devices.
6620
6621        \endlist
6622
6623        For more information about user experience techniques for mobile devices, see the
6624        \l{http://library.forum.nokia.com/topic/Design_and_User_Experience_Library/GUID-A8DF3EB8-E97C-4DA0-95F6-F464ECC995BC_cover.html}{Design and User Experience Library}
6625        on Forum Nokia.
6626
6627  */
6628
6629
6630 /*!
6631     \contentspage index.html
6632     \previouspage creator-help.html
6633     \page creator-tips.html
6634     \nextpage creator-keyboard-shortcuts.html
6635
6636     \title Tips and Tricks
6637
6638
6639     \section1 Switching Between Modes
6640
6641     Qt Creator uses different modes for different purposes. You can quickly
6642     switch between these modes with the following keyboard shortcuts:
6643     \list
6644         \o \gui Welcome mode \key Ctrl+1
6645         \o \gui Edit mode \key Ctrl+2
6646         \o \gui Design mode \key Ctrl+3
6647         \o \gui Debug mode \key Ctrl+4
6648         \o \gui Projects mode \key Ctrl+5
6649         \o \gui Help mode \key Ctrl+6
6650     \endlist
6651
6652
6653     For more information about Qt Creator modes, see \l {Qt Creator Modes}.
6654
6655
6656
6657     \section1 Moving Between Open Files
6658
6659     To quickly move between currently open files, press
6660     \key Ctrl+Tab.
6661
6662     To move forward in the location history, press \key {Alt+Right}
6663     (\key {Cmd+Opt+Right} on Mac OS). To move backward, press \key {Alt+Left}
6664     (\key {Cmd+Opt+Left} on Mac OS). For example, if you use the \gui Locator
6665     to jump to a symbol in the same file, you can jump back to your original
6666     location in that file by pressing \key {Alt+Left}.
6667
6668
6669     \section1 Moving To the Edit Mode
6670
6671     To move to the \gui Edit mode and currently active file, press
6672     \key Esc.
6673
6674     If you already are in the \gui Edit mode:
6675     \list
6676         \o The first press moves focus to the editor
6677         \o The second press closes secondary windows
6678     \endlist
6679
6680     \section1 Using the Filter in Options Dialog
6681
6682     To find specific settings you require in \gui{Tools} > \gui{Options...}
6683     use the filter located at the top left of the \gui Options dialog box.
6684
6685     \section1 Opening Output Panes
6686
6687     The output panes provide a list of errors and warnings encountered during
6688     a build, detailed output from the compiler, status of a program when it is
6689     executed and debug output, as well as search results.
6690
6691     To open output panes, use the following shortcuts:
6692
6693     \list
6694
6695         \o \gui{Build Issues} pane Alt+1 (Cmd+1 on Mac OS X)
6696
6697         \o \gui{Search Results} pane Alt+2 (Cmd+2 on Mac OS X)
6698
6699         \o \gui{Application Output} pane Alt+3 (Cmd+3 on Mac OS X)
6700
6701         \o \gui{Compile Output} pane Alt+4 (Cmd+4 on Mac OS X)
6702
6703     \endlist
6704
6705     For more information about output panes, see \l{Viewing Output}.
6706
6707
6708     \section1 Using Keyboard Shortcuts
6709
6710     Qt Creator provides \l{Keyboard Shortcuts}{many useful keyboard shortcuts}.
6711     You can see the keyboard shortcut for a menu command in the menu
6712     or the tooltip for a button.
6713
6714     To customize, import or export keyboard shortcuts, select \gui Tools >
6715     \gui Options... > \gui Environment > \gui Keyboard.
6716
6717
6718     \section1 Running Qt Creator From Command Line
6719
6720     You can launch Qt Creator from command line using the name of an
6721     existing session or \c .pro file by giving the name as the command
6722     argument.
6723
6724     For example, running \tt{qtcreator somesession}, launches Qt Creator and
6725     loads session somesession.
6726
6727     \note Make sure Qt Creator is included in the PATH environment variable.
6728     This can be done by typing the following in the command line:
6729     \code
6730     set PATH=c:\qtsdk\mingw\bin;c:\qtsdk\qt\bin;%PATH%
6731     \endcode
6732
6733
6734     \section1 Showing and Hiding the Sidebar
6735
6736     To toggle the sidebar in the \gui Edit and \gui Debug modes, click
6737     \inlineimage qtcreator-togglebutton.png
6738     or press \key Alt+0 (\key Cmd+0 on Mac OS X).
6739
6740     For more information on using the sidebar, see \l {Browsing Project Contents}.
6741
6742
6743
6744     \section1 Moving To Symbols
6745
6746     To move straight to a symbol used in a project, select the symbol in the
6747     \gui Editor toolbar drop-down menu. For more information on the editor toolbar,
6748     see \l {Using the Editor Toolbar}.
6749
6750     To jump to a symbol in the current file, press \key {Ctrl+K} to open the
6751     \gui Locator, enter a period (.), and start typing the symbol name. Then
6752     select the symbol in the list. For more information on using the locator,
6753     see \l{Searching With the Locator}.
6754
6755     Press \key Ctrl (\key Cmd on Mac OS) and click a symbol to move directly to
6756     the definition or the declaration of the symbol. You can also move the cursor
6757     on the symbol and press \key {F2}. For more information, see
6758     \l{Moving to Symbol Definition or Declaration}.
6759
6760
6761
6762     \section1 Displaying Signals and Slots
6763
6764     If an instance of a class is derived from QObject, and you would like to
6765     find all other objects connected to one of your object's slots using
6766     Qt's signals and slots mechanism, select \gui Tools > \gui Options...
6767     > \gui{Debugger} > \gui{Debugging Helper} > \gui{Use Debugging Helper}.
6768
6769     In the \gui{Locals and Watchers} view, expand the object's entry and open
6770     the slot in the \e slots subitem. The objects connected to this slot are
6771     shown as children of the slot. This method works with signals too.
6772
6773     For more information about the \gui{Locals and Watchers} view, see
6774     \l{Locals and Watchers}.
6775
6776
6777     \section1 Displaying Low Level Data
6778
6779     If special debugging of Qt objects fails due to data corruption within the
6780     debugged objects, you can switch off the debugging helpers. When debugging
6781     helpers are switched off low-level structures become visible.
6782
6783     To switch off the debugging helpers:
6784     \list 1
6785         \o Select \gui Tools > \gui Options... > \gui Debugger >
6786            \gui{Debugging Helper}.
6787         \o Uncheck the \gui{Use Debugging Helper} checkbox.
6788     \endlist
6789
6790     \section1 Showing Tooltips in Debug Mode
6791
6792     To inspect the value of variables from the editor, you can turn
6793     on tooltips. Tooltips are hidden by default for performance reasons.
6794
6795     \list 1
6796         \o Select \gui Tools > \gui Options... > \gui Debugger > \gui General.
6797         \o Select the \gui {Use tooltips in main editor while debugging} check box.
6798     \endlist
6799
6800     \section1 Locating Files
6801
6802     The \gui Locator provides one of the easiest ways in Qt Creator to browse
6803     through projects, files, classes, methods, documentation and file systems.
6804     To quickly access files not directly mentioned in your project, you can
6805     create your own locator filters. That way you can locate files in a
6806     directory structure you have defined.
6807
6808     To create locator filters, select \gui {Tools > Options... > Locator > Add}.
6809
6810     For more information, see \l{Creating Locator Filters}.
6811
6812     \section1 Adding a License Header Template for C++ Code
6813
6814     A file containing a license header for C++ can be specified under
6815     \gui{Tools > Options... > C++ > License Template}. It may contain special
6816     placeholders enclosed in \c{%%} that are replaced when generating a
6817     new file:
6818
6819     \list 1
6820         \o \c %YEAR%: Year
6821         \o \c %DATE%: Date
6822         \o \c %USER%: User name
6823         \o \c %FILENAME%: File name
6824         \o \c %CLASS%: Class name (if applicable)
6825         \o \c %$VARIABLE%: Contents of environment variable \c{VARIABLE}.
6826     \endlist
6827
6828 */
6829
6830
6831 /*!
6832     \contentspage index.html
6833     \previouspage creator-tips.html
6834     \page creator-keyboard-shortcuts.html
6835     \nextpage creator-known-issues.html
6836
6837     \title Keyboard Shortcuts
6838
6839     Qt Creator provides various keyboard shortcuts to speed up your development
6840     process.
6841
6842
6843     \section1 Configuring Keyboard Shortcuts
6844
6845     To customize a keyboard shortcut:
6846     \list 1
6847         \o Select \gui Tools > \gui Options... > \gui Environment >
6848            \gui Keyboard.
6849         \o Select an action from the list.
6850         \o In \gui{Key Sequence} enter the shortcut key you want to associate
6851            with the selected action.
6852     \endlist
6853
6854     Qt Creator allows you to use different keyboard shortcut mapping schemes:
6855     \list
6856         \o To import a keyboard shortcut mapping scheme, click \gui Import
6857            and select the kms file containing keyboard shortcut mapping scheme
6858            you want to import.
6859         \o To export the current keyboard shortcut mapping scheme, click
6860            \gui Export and select the location where you want to save the
6861            exported kms file.
6862     \endlist
6863
6864
6865     \section1 Default Keyboard Shortcuts
6866
6867     The following tables list the default keyboard shortcuts. They are
6868     categorized by actions.
6869
6870
6871     \section2 General Keyboard Shortcuts
6872
6873     \table
6874         \header
6875             \o Action
6876             \o Keyboard shortcut
6877         \row
6878             \o Open file or project
6879             \o Ctrl+O
6880         \row
6881             \o New file or project
6882             \o Ctrl+N
6883         \row
6884             \o Open in external editor
6885             \o Alt+V, Alt+I
6886         \row
6887             \o Cut
6888             \o Ctrl+X
6889         \row
6890             \o Copy
6891             \o Ctrl+C
6892         \row
6893             \o Paste
6894             \o Ctrl+V
6895         \row
6896             \o Redo
6897             \o Ctrl+Y
6898         \row
6899             \o Save
6900             \o Ctrl+S
6901         \row
6902             \o Save all
6903             \o Ctrl+A
6904         \row
6905             \o Close window
6906             \o Ctrl+W
6907         \row
6908             \o Close all
6909             \o Ctrl+Shift+W
6910         \row
6911             \o Go back
6912             \o Alt+Left
6913         \row
6914             \o Go forward
6915             \o Alt+Right
6916         \row
6917             \o Go to line
6918             \o Ctrl+L
6919         \row
6920             \o Next open document in history
6921             \o Ctrl+Shift+Tab
6922         \row
6923             \o Goto other split
6924             \o Ctrl+E, O
6925         \row
6926             \o Previous open document in history
6927             \o Ctrl+Tab
6928         \row
6929             \o Activate \gui Locator
6930             \o Ctrl+K
6931         \row
6932             \o Switch to \gui Welcome mode
6933             \o Ctrl+1
6934         \row
6935             \o Switch to \gui Edit mode
6936             \o Ctrl+2
6937         \row
6938             \o Switch to \gui Design mode
6939             \o Ctrl+3
6940         \row
6941             \o Switch to \gui Debug mode
6942             \o Ctrl+4
6943         \row
6944             \o Switch to \gui Projects mode
6945             \o Ctrl+5
6946         \row
6947             \o Switch to \gui Help mode
6948             \o Ctrl+6
6949         \row
6950             \o Toggle \gui{Build Issues} pane
6951             \o Alt+1 (Cmd+1 on Mac OS X)
6952         \row
6953             \o Toggle \gui{Search Results} pane
6954             \o Alt+2 (Cmd+2 on Mac OS X)
6955         \row
6956             \o Toggle \gui{Application Output} pane
6957             \o Alt+3 (Cmd+3 on Mac OS X)
6958         \row
6959             \o Toggle \gui{Compile Output} pane
6960             \o Alt+4 (Cmd+4 on Mac OS X)
6961         \row
6962             \o Activate \gui Bookmarks pane
6963             \o Alt+M
6964         \row
6965             \o Activate \gui{File System} pane
6966             \o Alt+Y
6967         \row
6968             \o Activate \gui{Open Documents} pane
6969             \o Alt+O
6970         \row
6971             \o Activate \gui Projects pane
6972             \o Alt+X
6973         \row
6974             \o Full screen
6975             \o Ctrl+Shift+F11
6976         \row
6977             \o Toggle the sidebar
6978             \o Alt+0 (Cmd+0 on Mac OS X)
6979         \row
6980             \o Undo
6981             \o Ctrl+Z
6982         \row
6983             \o Move to \gui Edit mode
6984
6985                In \gui Edit mode:
6986                \list
6987                 \o The first press moves focus to the editor
6988                 \o The second press closes secondary windows
6989                \endlist
6990             \o Esc
6991     \endtable
6992
6993
6994     \section2 Editing Keyboard Shortcuts
6995
6996     \table
6997         \header
6998             \o Action
6999             \o Keyboard shortcut
7000         \row
7001             \o Auto-indent selection
7002             \o Ctrl+I
7003         \row
7004             \o Collapse
7005             \o Ctrl+<
7006         \row
7007             \o Expand
7008             \o Ctrl+>
7009         \row
7010             \o Trigger a completion in this scope
7011             \o Ctrl+Space
7012         \row
7013             \o Copy line down
7014             \o Ctrl+Alt+Down
7015         \row
7016             \o Copy line up
7017             \o Ctrl+Alt+Up
7018         \row
7019             \o Cut line
7020             \o Shift+Del
7021         \row
7022             \o Join lines
7023             \o Ctrl+J
7024         \row
7025             \o Decrease font size
7026             \o Ctrl+- (Ctrl+Roll mouse wheel down)
7027         \row
7028             \o Increase font size
7029             \o Ctrl++ (Ctrl+Roll mouse wheel up)
7030         \row
7031             \o Toggle Vim-style editing
7032             \o Alt+V, Alt+V
7033         \row
7034             \o Split
7035             \o Ctrl+E, 2
7036         \row
7037             \o Split side by side
7038             \o Ctrl+E, 3
7039         \row
7040             \o Remove all splits
7041             \o Ctrl+E, 1
7042         \row
7043             \o Remove current split
7044             \o Ctrl+E, 0
7045         \row
7046             \o Select all
7047             \o Ctrl+A
7048         \row
7049             \o Go to block end
7050             \o Ctrl+]
7051         \row
7052             \o Go to block start
7053             \o Ctrl+[
7054         \row
7055             \o Go to block end with selection
7056             \o Ctrl+}
7057         \row
7058             \o Go to block start with selection
7059             \o Ctrl+{
7060         \row
7061             \o Move current line down
7062             \o Ctrl+Shift+Down
7063         \row
7064             \o Move current line up
7065             \o Ctrl+Shift+Up
7066         \row
7067             \o Trigger a quick fix in this scope
7068             \o Alt+Return
7069         \row
7070             \o Rewrap paragraph
7071             \o Ctrl+E, R
7072         \row
7073             \o Select the current block
7074
7075                The second press extends the selection to the parent block
7076             \o Ctrl+U
7077         \row
7078             \o Enable text wrapping
7079             \o Ctrl+E, Ctrl+W
7080         \row
7081             \o Toggle comment for selection
7082             \o Ctrl+/
7083         \row
7084             \o Visualize whitespace
7085             \o Ctrl+E, Ctrl+V
7086         \row
7087             \o Delete
7088             \o Del
7089         \row
7090             \o Adjust size
7091             \o Ctrl+J
7092         \row
7093             \o Lay out in a grid
7094             \o Ctrl+G
7095         \row
7096             \o Lay out horizontally
7097             \o Ctrl+H
7098         \row
7099             \o Lay out vertically
7100             \o Ctrl+L
7101         \row
7102             \o Preview
7103             \o Alt+Shift+R
7104         \row
7105             \o Edit signals and slots
7106             \o F4
7107         \row
7108             \o Edit widgets
7109             \o F3
7110         \row
7111             \o Toggle bookmark
7112             \o Ctrl+M
7113         \row
7114             \o Go to next bookmark
7115             \o Ctrl+.
7116         \row
7117             \o Go to previous bookmark
7118             \o Ctrl+,
7119         \row
7120             \o Fetch snippet
7121             \o Alt+C, Alt+F
7122         \row
7123             \o Paste snippet
7124             \o Alt+C, Alt+P
7125         \row
7126             \o Find usages
7127             \o Ctrl+Shift+U
7128         \row
7129             \o Follow symbol under cursor
7130
7131                Works with namespaces, classes, methods, variables, include
7132                statements and macros
7133             \o F2
7134         \row
7135             \o Rename symbol under cursor
7136             \o Ctrl+Shift+R
7137         \row
7138             \o Switch between method declaration and definition
7139             \o Shift+F2
7140         \row
7141             \o Open type hierarchy
7142             \o Ctrl+Shift+T
7143         \row
7144             \o Switch between header and source file
7145             \o F4
7146     \endtable
7147
7148     \section2 Debugging Keyboard Shortcuts
7149
7150     \table
7151         \header
7152             \o Action
7153             \o Keyboard shortcut
7154         \row
7155             \o Start debugging
7156             \o F5
7157         \row
7158             \o Stop or interrupt debugger
7159             \o Shift+F5
7160         \row
7161             \o Reset debugger
7162             \o Ctrl+Shift+F5
7163         \row
7164             \o Step over
7165             \o F10
7166         \row
7167             \o Step into
7168             \o F11
7169         \row
7170             \o Step out
7171             \o Shift+F11
7172         \row
7173             \o Toggle breakpoint
7174             \o F9
7175     \endtable
7176
7177
7178     \section2 Project Keyboard Shortcuts
7179
7180     \table
7181         \header
7182             \o Action
7183             \o Keyboard shortcut
7184         \row
7185             \o Build project
7186             \o Ctrl+B
7187         \row
7188             \o Build all
7189             \o Ctrl+Shift+B
7190         \row
7191             \o New project
7192             \o Ctrl+Shift+N
7193         \row
7194             \o Run
7195             \o Ctrl+R
7196     \endtable
7197
7198
7199     \section2 Help Keyboard Shortcuts
7200
7201     \table
7202         \header
7203             \o Action
7204             \o Keyboard shortcut
7205         \row
7206             \o View context-sensitive help
7207             \o F1
7208         \row
7209             \o Activate contents in \gui Help mode
7210             \o Ctrl+T
7211         \row
7212             \o Add bookmark in \gui Help mode
7213             \o Ctrl+M
7214         \row
7215             \o Activate index in \gui Help mode
7216             \o Ctrl+I
7217         \row
7218             \o Reset font size in \gui Help mode
7219             \o Ctrl+0
7220         \row
7221             \o Activate search in \gui Help mode
7222             \o Ctrl+S
7223     \endtable
7224
7225
7226     \section2 Version Control Keyboard Shortcuts
7227
7228     \table
7229         \header
7230             \o {1,2} Action
7231             \o {5,1} Version control system
7232         \header
7233             \o CVS
7234             \o Git
7235             \o Perforce
7236             \o Subversion
7237             \o Mercurial
7238         \row
7239             \o Add
7240             \o Alt+C, Alt+A
7241             \o Alt+G, Alt+A
7242             \o
7243             \o Alt+S, Alt+A
7244             \o
7245         \row
7246             \o Commit
7247             \o Alt+C, Alt+C
7248             \o Alt+G, Alt+C
7249             \o
7250             \o
7251             \o Alt+H, Alt+C
7252         \row
7253             \o Diff
7254             \o Alt+C, Alt+D
7255             \o Alt+G, Alt+D
7256             \o
7257             \o Alt+S, Alt+D
7258             \o Alt+H, Alt+D
7259         \row
7260             \o Diff project
7261             \o
7262             \o Alt+G, Alt+Shift+D
7263             \o Alt+P, Alt+D
7264             \o
7265             \o
7266         \row
7267             \o Blame
7268             \o
7269             \o Alt+G, Alt+B
7270             \o
7271             \o
7272             \o
7273         \row
7274             \o Log
7275             \o
7276             \o Alt+G, Alt+L
7277             \o Alt+P, Alt+F
7278             \o
7279             \o Alt+H, Alt+L
7280         \row
7281             \o Log project
7282             \o
7283             \o Alt+G, Alt+K
7284             \o
7285             \o
7286             \o
7287         \row
7288             \o Status
7289             \o
7290             \o Alt+G, Alt+S
7291             \o
7292             \o
7293             \o Alt+H, Alt+S
7294         \row
7295             \o Undo changes
7296             \o
7297             \o Alt+G, Alt+U
7298             \o
7299             \o
7300             \o
7301         \row
7302             \o Diff project
7303             \o
7304             \o Alt+G, Alt+Shift+D
7305             \o Alt+P, Alt+D
7306             \o
7307             \o
7308         \row
7309             \o Edit
7310             \o
7311             \o
7312             \o Alt+P, Alt+E
7313             \o
7314             \o
7315         \row
7316             \o Opened
7317             \o
7318             \o
7319             \o Alt+P, Alt+O
7320             \o
7321             \o
7322         \row
7323             \o Revert
7324             \o
7325             \o
7326             \o Alt+P, Alt+R
7327             \o
7328             \o
7329         \row
7330             \o Submit
7331             \o
7332             \o
7333             \o Alt+P, Alt+S
7334             \o
7335             \o
7336     \endtable
7337 */
7338
7339
7340 /*!
7341     \contentspage index.html
7342     \previouspage creator-known-issues.html
7343     \page creator-glossary.html
7344     \nextpage creator-acknowledgements.html
7345
7346     \title Glossary
7347
7348     \table
7349         \header
7350             \o  Term
7351             \o  Meaning
7352
7353         \row
7354             \o
7355                 \raw HTML
7356                 Qt&nbsp;in&nbsp;PATH
7357                 \endraw
7358                 \target glossary-system-qt
7359             \o  This is the Qt
7360                 version for the \c qmake command found in your \c PATH
7361                 environment variable.
7362                 This is likely to be the system's Qt version.
7363
7364
7365         \row
7366             \o
7367                 \raw HTML
7368                 Project&nbsp;Qt
7369                 \endraw
7370                 \target glossary-project-qt
7371             \o  The version of Qt configured in the \gui{Projects} mode, \gui {Build
7372                 Settings}, \gui {Qt Version} field. This is the Qt version that
7373                 is actually used by a particular project.
7374
7375         \row
7376             \o
7377                 \raw HTML
7378                 Shadow&nbsp;build
7379                 \endraw
7380                 \target glossary-shadow-build
7381             \o  Shadow building means building a project in a separate
7382                 directory, the \e{build directory}. The build directory is
7383                 different from the source directory. One of the benefits of
7384                 shadow building is that it keeps your source directory clean.
7385                 Shadow building is the best practice if you need many build
7386                 configurations for a single set of source.
7387     \endtable
7388
7389 */
7390
7391
7392 /*!
7393     \contentspage index.html
7394     \previouspage creator-keyboard-shortcuts.html
7395     \page creator-known-issues.html
7396     \nextpage creator-glossary.html
7397
7398     \title Known Issues
7399
7400     This section lists known issues in Qt Creator version 2.1.0.
7401     The development team is aware of them, and therefore, you do not need to
7402     report them as bugs.
7403
7404     For a list of fixed issues and added features, see the changelog file in
7405     the \c{qtcreator\dist} folder or the \l{http://bugreports.qt.nokia.com}{Qt Bug Tracker}.
7406
7407     \section1 General Issues
7408
7409     \list
7410
7411         \o Qt Creator uses SQLite for storing some of its settings. SQLite is
7412            known to have problems with certain NFS servers (most notably the
7413            nfs-user-server 2.2beta), since they can lock up the application
7414            when it tries to lock the database. If your home directory is on an
7415            NFS share and you encounter this issue, one option would be to
7416            switch to the nfs-kernel-server, or create a symlink so that the
7417            settings are stored locally.
7418
7419     \endlist
7420
7421     \section1 Editing Issues
7422
7423     \list
7424
7425         \o Code completion does not support typedefs for nested classes.
7426
7427     \endlist
7428
7429     \section1 Projects Issues
7430
7431     \list
7432         \o Paths or file names containing spaces or special characters
7433            (such as colons, dollar signs, and hash marks) may cause problems. This
7434            is because some of the tools Qt Creator uses in the background have
7435            restrictions on the characters allowed in file and directory names.
7436            To be on the safe side, we recommend creating projects and project
7437            items with names consisting of plain characters, numbers,
7438            underscores, and hyphens.
7439
7440         \o There is no IDE support for adding or removing sub-projects. Project
7441            hierarchies (SUBDIRS template) have to be created manually.
7442
7443         \o Creating new CMake projects with Qt Creator is not supported.
7444
7445         \o Building and packaging sub-projects is not supported for Maemo devices.
7446
7447         \o You must create projects for Maemo targets on the same partition where
7448         you installed Nokia Qt SDK, Qt Creator, and MADDE.
7449
7450         \o If error messages displayed in the \gui {Compile Output} pane contain
7451         paths where slashes are missing (for example, C:NokiaQtSDK),
7452         check your PATH variable. For more information, see
7453         \l{Troubleshooting MinGW Compilation Errors}.
7454
7455     \endlist
7456
7457     \section1 Debugging Issues
7458
7459     \list
7460
7461         \o Debugging large applications on Symbian devices using the Symbian S^3
7462            operating system might not work, because the TRK debug agent might not be able to
7463            access memory when the operating system starts paging. This causes breakpoint
7464            handling and symbol resolution to fail. For more information, see
7465            \l{http://bugreports.qt.nokia.com/browse/QTCREATORBUG-2158}{QTCREATORBUG-2158}.
7466
7467            As a workaround, add the following section to the application .pro file to
7468            disable paging:
7469
7470            \code
7471            debug {
7472                MMP_RULES -= PAGED
7473                MMP_RULES *= UNPAGED
7474            }
7475            \endcode
7476
7477            \note You must completely clean and rebuild the project for the setting to
7478            take effect.
7479
7480         \o When debugging executables created by the GNU Compiler version 4.5.0
7481            (all platforms), some data types will not be displayed in the
7482            \gui{Locals and Watchers} view due to missing debug information.
7483
7484         \o Gdb on Windows may not work if the 'Embassy \reg Security Center' software
7485            by 'Wave \reg Systems' is installed and active (causing crashes in \c{vxvault.dll)}).
7486
7487         \o Gdb may take long to load debugging symbols, especially from large
7488            libraries like \c libQtWebKit. Starting the debugging module can
7489            take up to several minutes without visible progress.
7490
7491         \o Setting breakpoints in code that is compiled into the binary more
7492            than once does not work.
7493
7494         \o Setting breakpoints in files that do not have unique absolute
7495            paths may fail. For example, remounting parts of a file system
7496            using the --bind mount option.
7497
7498     \endlist
7499
7500 */
7501
7502
7503 /*!
7504     \contentspage index.html
7505     \previouspage creator-glossary.html
7506     \page creator-acknowledgements.html
7507
7508     \title Acknowledgements
7509
7510     \section1 Third-party Components
7511
7512     Qt Creator contains the following third-party components:
7513
7514     \list
7515     \o  \bold{Open Source front-end for C++ (license MIT)}, enhanced for use in
7516         Qt Creator.\br
7517         Roberto Raggi <roberto.raggi@gmail.com>\br
7518         QtCreator/src/shared/cplusplus\br\br
7519
7520     \o  \bold{Botan, a C++ crypto library. Version 1.8.8}\br
7521         \list
7522         \o  Copyright (C) 1999-2004 The Botan Project. All rights reserved.
7523         \o  Copyright (C) 1999-2009 Jack Lloyd
7524         \o  2001 Peter J Jones
7525         \o  2004-2007 Justin Karneges
7526         \o  2005 Matthew Gregan
7527         \o  2005-2006 Matt Johnston
7528         \o  2006 Luca Piccarreta
7529         \o  2007 Yves Jerschow
7530         \o  2007-2008 FlexSecure GmbH
7531         \o  2007-2008 Technische Universitat Darmstadt
7532         \o  2007-2008 Falko Strenzke
7533         \o  2007-2008 Martin Doering
7534         \o  2007 Manuel Hartl
7535         \o  2007 Christoph Ludwig
7536         \o  2007 Patrick Sona
7537         \endlist
7538         All rights reserved.\br\br
7539
7540         Redistribution and use in source and binary forms, with or without
7541         modification, are permitted provided that the following conditions are
7542         met:\br\br
7543
7544         1. Redistributions of source code must retain the above copyright
7545         notice, this list of conditions, and the following disclaimer.\br\br
7546
7547         2. Redistributions in binary form must reproduce the above copyright
7548         notice, this list of conditions, and the following disclaimer in the
7549         documentation and/or other materials provided with the distribution.\br
7550         \br
7551
7552         THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) "AS IS" AND ANY EXPRESS OR
7553         IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
7554         WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
7555         ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE
7556         LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
7557         CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
7558         SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
7559         BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
7560         WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
7561         OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
7562         IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\br\br
7563         The source code of Botan C++ crypto library can be found
7564         here:
7565         \list
7566         \o QtCreator/src/libs/3rdparty
7567         \o \l{http://qt.gitorious.org/qt-creator/qt-creator/trees/master/src/libs/3rdparty}
7568         \endlist
7569         \br\br
7570
7571     \o  \bold{NetSieben SSH Library is a Secure Shell client library for C++.
7572          Version 1.3.2}\br
7573         \list
7574         \o \bold{Commercial License:} For organizations who do not want to
7575             release the source code for their applications as open source/
7576             free software; in other words they do not want to comply with the
7577             GNU General Public License (GPL) or Q Public License.
7578         \o \bold{Non Commercial / Open Source License:} NetSieben believes in
7579             contributing back to the open source community, thus it has released
7580             the SSH Library under Q Public License as it is defined by Trolltech
7581             AS of Norway. The Open Source License allows the user to use software
7582             under an open source / free software license, and distribute it
7583             freely. The software can be used at no charge with the condition
7584             that if the user uses the SSH Library in an application they wish to
7585             redistribute, then the complete source code for your application must
7586             be available and freely redistributable under reasonable conditions.
7587             For more information on the used QPL License see:
7588             QtCreator/src/libs/3rdparty/net7ssh/LICENSE.QPL
7589         \endlist\br\br
7590         The source code of NetSieben Secure Shell C++ Library can be found
7591         here:
7592         \list
7593         \o QtCreator/src/libs/3rdparty
7594         \o \l{http://qt.gitorious.org/qt-creator/qt-creator/trees/master/src/libs/3rdparty}
7595         \endlist
7596      \endlist
7597 */
7598
7599
7600 /*!
7601     \contentspage index.html
7602     \previouspage creator-version-control.html
7603     \page creator-task-lists.html
7604     \nextpage creator-cli.html
7605
7606     \title Creating Task List Files
7607
7608     You can load tasks from task lists to the \gui{Build Issues} pane. You can
7609     either create the task lists manually or create scripts to generate them from
7610     output of static code analysis tools, for example.
7611
7612     For an example of a script that checks new lines of code and matches them
7613     against regular expressions to generate a task list, see \c{scripts\mytasks.pl}
7614     in the Qt Creator repository.
7615
7616     \section1 Task List File Format
7617
7618     The filename extension must be .tasks for Qt Creator to recognize a file as a
7619     task list file.
7620
7621     Each line in a task list file is treated as a tab-separated list of strings with
7622     \c{\t}, \c{\n}, and \c{\\} used as escape characters. The strings are used to create
7623     one task per line. The lines can have one of the following formats:
7624
7625     \list
7626
7627     \o \c description
7628
7629     \o \c{type\tdescription}
7630
7631     \o \c{file\ttype\tdescription}
7632
7633     \o \c{file\tline\ttype\tdescription}
7634
7635     \endlist
7636
7637     The task type can have one of the following values:
7638
7639     \list
7640
7641     \o A string starting with \c err, which displays the error icon in the beginning of the line
7642     \o A string starting with \c warn, which displays the warning icon
7643     \o Any other value, which sets the task type to Unknown and does not
7644     display an icon
7645
7646     \endlist
7647
7648     The values are not case sensitive.
7649
7650     Lines starting with the hash mark character (#) in the first column are ignored.
7651
7652 */
7653
7654
7655 /*!
7656     \contentspage index.html
7657     \previouspage creator-task-lists.html
7658     \page creator-cli.html
7659     \nextpage creator-help.html
7660
7661     \title Using Command Line Options
7662
7663     You can start Qt Creator and specify some options from the command line.
7664
7665     To specify command line options, enter the following command in the Qt Creator
7666     installation or build directory:
7667
7668     \c {qtcreator [option] [filename]}
7669
7670     For example:
7671
7672     \c {C:\qtcreator-2.1\bin>qtcreator -help}
7673
7674     The following table summarizes the available options:
7675
7676     \table
7677         \header
7678             \o Option
7679             \o Description
7680
7681         \row
7682             \o -help
7683             \o Display help on command line options.
7684
7685         \row
7686             \o -version
7687             \o Display Qt Creator version.
7688
7689         \row
7690             \o -client
7691             \o Attempt to connect to an already running instance of Qt Creator.
7692
7693         \row
7694             \o -noload <plugin>
7695             \o Do not load the specified plugin.
7696
7697         \row
7698             \o -profile
7699             \o Load profile plugin.
7700
7701         \row
7702             \o -color <color>
7703             \o Core plugin: override the selected UI color.
7704
7705         \row
7706             \o -disable-cdb
7707             \o Debugger plugin: disable the Microsoft Console Debugger (CDB)
7708             engine. For more information, see \l{Debugging}.
7709
7710         \row
7711             \o -disable-gdb
7712             \o Debugger plugin: disable the GNU Symbolic Debugger (gdb) engine.
7713
7714         \row
7715             \o -disable-sdb
7716             \o Debugger plugin: disable the Qt Script debugger engine.
7717
7718         \row
7719             \o -debug <PID-or-corefile>
7720             \o Debugger plugin: attach to process ID or core file.
7721
7722         \row
7723             \o -wincrashevent <event-handle>
7724             \o Debugger plugin: Attach to crashed processes by using the specified
7725             event handle.
7726
7727         \row
7728             \o -customwizard-verbose
7729             \o ProjectExplorer plugin: display additional information when loading
7730             custom wizards. For more information about custom wizards, see
7731             \l{Adding New Custom Wizards}
7732
7733         \row
7734             \o -lastsession
7735             \o ProjectExplorer plugin: load the last session when Qt Creator starts.
7736             Open the projects and files that were open when you last exited Qt Creator.
7737             For more information about managing sessions, see \l{Managing Sessions}.
7738
7739     \endtable
7740
7741
7742     */