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