diff --git a/dist/changes-2.0.0 b/dist/changes-2.0.0 index cf2c829d764..81e4b826674 100644 --- a/dist/changes-2.0.0 +++ b/dist/changes-2.0.0 @@ -34,6 +34,8 @@ Editing * Fixed auto indent for C style coments * Copying text from the editor now supports HTML mime type, preserving the syntax highlighting. + * Block selection defines a find & replace scope + * Added customizable default file encoding (in addition to the project setting) CodePaster * Implemented new protocol of pastebin.com including list functionality diff --git a/doc/images/qmldesigner-code-completion.png b/doc/images/qmldesigner-code-completion.png new file mode 100644 index 00000000000..0e6261bbbc2 Binary files /dev/null and b/doc/images/qmldesigner-code-completion.png differ diff --git a/doc/images/qmldesigner-run-custom-exe.png b/doc/images/qmldesigner-run-custom-exe.png new file mode 100644 index 00000000000..47d053220c9 Binary files /dev/null and b/doc/images/qmldesigner-run-custom-exe.png differ diff --git a/doc/images/qmldesigner-run-settings.png b/doc/images/qmldesigner-run-settings.png new file mode 100644 index 00000000000..41d53a99422 Binary files /dev/null and b/doc/images/qmldesigner-run-settings.png differ diff --git a/doc/images/qtcreator-build-dependencies.png b/doc/images/qtcreator-build-dependencies.png new file mode 100644 index 00000000000..d51a11be8af Binary files /dev/null and b/doc/images/qtcreator-build-dependencies.png differ diff --git a/doc/images/qtcreator-build-issues.png b/doc/images/qtcreator-build-issues.png index 2b3ca0c4dd3..3a596746952 100644 Binary files a/doc/images/qtcreator-build-issues.png and b/doc/images/qtcreator-build-issues.png differ diff --git a/doc/images/qtcreator-build-steps.png b/doc/images/qtcreator-build-steps.png new file mode 100644 index 00000000000..b617406f90f Binary files /dev/null and b/doc/images/qtcreator-build-steps.png differ diff --git a/doc/images/qtcreator-clean-steps.png b/doc/images/qtcreator-clean-steps.png new file mode 100644 index 00000000000..778f0689166 Binary files /dev/null and b/doc/images/qtcreator-clean-steps.png differ diff --git a/doc/images/qtcreator-editor-settings.png b/doc/images/qtcreator-editor-settings.png new file mode 100644 index 00000000000..3074d58a680 Binary files /dev/null and b/doc/images/qtcreator-editor-settings.png differ diff --git a/doc/images/qtcreator-maemo-emulator-button.png b/doc/images/qtcreator-maemo-emulator-button.png new file mode 100644 index 00000000000..990b7d05d36 Binary files /dev/null and b/doc/images/qtcreator-maemo-emulator-button.png differ diff --git a/doc/images/qtcreator-maemo-emulator-connection-key.png b/doc/images/qtcreator-maemo-emulator-connection-key.png new file mode 100644 index 00000000000..93f40c51e4e Binary files /dev/null and b/doc/images/qtcreator-maemo-emulator-connection-key.png differ diff --git a/doc/images/qtcreator-maemo-emulator-connection.png b/doc/images/qtcreator-maemo-emulator-connection.png new file mode 100644 index 00000000000..efb998e10f5 Binary files /dev/null and b/doc/images/qtcreator-maemo-emulator-connection.png differ diff --git a/doc/images/qtcreator-pprunsettings.png b/doc/images/qtcreator-pprunsettings.png index f278cdf36f2..5988f60d07c 100644 Binary files a/doc/images/qtcreator-pprunsettings.png and b/doc/images/qtcreator-pprunsettings.png differ diff --git a/doc/images/qtcreator-screenshot-build-settings.png b/doc/images/qtcreator-screenshot-build-settings.png index 5a60981bd0e..fbabf6c0b09 100644 Binary files a/doc/images/qtcreator-screenshot-build-settings.png and b/doc/images/qtcreator-screenshot-build-settings.png differ diff --git a/doc/images/qtcreator-screenshot-devconf.png b/doc/images/qtcreator-screenshot-devconf.png index 951cd47860a..768438b5352 100644 Binary files a/doc/images/qtcreator-screenshot-devconf.png and b/doc/images/qtcreator-screenshot-devconf.png differ diff --git a/doc/images/qtcreator-screenshot-run-settings.png b/doc/images/qtcreator-screenshot-run-settings.png index 7a25cdbf7fb..eb42afed05f 100644 Binary files a/doc/images/qtcreator-screenshot-run-settings.png and b/doc/images/qtcreator-screenshot-run-settings.png differ diff --git a/doc/images/qtcreator-screenshot-toolchain.png b/doc/images/qtcreator-screenshot-toolchain.png index 8ec4b952310..29ccac0e356 100644 Binary files a/doc/images/qtcreator-screenshot-toolchain.png and b/doc/images/qtcreator-screenshot-toolchain.png differ diff --git a/doc/images/qtcreator-search-pane.png b/doc/images/qtcreator-search-pane.png index 6d996ab7a4f..2dfa438c674 100644 Binary files a/doc/images/qtcreator-search-pane.png and b/doc/images/qtcreator-search-pane.png differ diff --git a/doc/images/qtcreator-ssh-key-configuration.png b/doc/images/qtcreator-ssh-key-configuration.png new file mode 100644 index 00000000000..138fa94b4e4 Binary files /dev/null and b/doc/images/qtcreator-ssh-key-configuration.png differ diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc index 80fc2785c1e..cd1e9f127a0 100644 --- a/doc/qtcreator.qdoc +++ b/doc/qtcreator.qdoc @@ -63,11 +63,19 @@ \o \l{Setting Up a Generic Project} \o \l{Setting Up Development Environment for Maemo} \o \l{Setting Up Development Environment for Symbian} - \o \l{Building and Running Applications} \o \l{Managing Sessions} \endlist + \o \l{Building and Running Applications} + \list + \o \l{Building for Multiple Targets} + \o \l{Specifying Build Settings} + \o \l{Specifying Run Settings} + \o \l{Specifying Editor Settings} + \o \l{Specifying Dependencies} + \endlist \o \l{Developing Qt Quick Applications} \o \l{Optimizing Applications for Mobile Devices} + \o \l{Using the Maemo Emulator} \o \l{Debugging} \list \o \l {Debugging Qt Applications} @@ -285,6 +293,11 @@ \image qtcreator-breakdown.png + Qt Creator has been localized into several languages. If the system language + is one of the supported languages, it is automatically selected. To change + the language, select \gui {Tools > Options > Environment} and select a language + in the \gui Language field. The change takes effect after you restart Qt Creator. + \section1 Qt Creator Modes The mode selector allows you to quickly switch between tasks such as @@ -529,7 +542,7 @@ position. \endlist - To change \QD properties, select \gui Tools > \gui Options > + To change \QD properties, select \gui Tools > \gui Options... > \gui Designer. \list \o Set the class properties and code generation preferences in \gui @@ -618,14 +631,14 @@ \list \o Set the font preferences and apply syntax highlighting in \gui{Font & Colors}. - \o Set tabs, indentation and the handling of whitespace in + \o Set tabs, indentation, the handling of whitespace, and mouse operations in \gui Behavior. \o Set various display properties, for example, \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 Configure \l{Code Completion}{code completion} in \gui Completion. + \o Configure \l{Completing Code}{code completion} in \gui Completion. \endlist @@ -704,7 +717,7 @@ option is enabled by default. - \section1 Syntax Checking + \section1 Checking Code Syntax As you write code Qt Creator checks code syntax. When Qt Creator spots a syntax error in your code it underlines it and shows error details when you @@ -724,21 +737,28 @@ \endlist - \section1 Code Completion + \section1 Completing Code + + Qt Creator understands the code as code, not just as plain text. This + allows it to help you to write well formatted code and to anticipate + what you are going to write and complete the code. The code completion + differs somewhat depending on whether you write Qt code or QML code. + + \section2 Completing Qt Code As you write code, Qt Creator provides a list of context-sensitive suggestions to the statement currently under your cursor. \image qtcreator-codecompletion.png - Set code completion preferences in \gui Tools > \gui{Options...} > - \gui{Text Editor} > \gui Completion. To trigger code completion - manually press \key{Ctrl+Space}. + To open the list of suggestions at any time, press \key{Ctrl+Space}. + If only one option is available, Qt Creator inserts it automatically. When completion is invoked manually, Qt Creator completes the common prefix of the list of suggestions. This is especially useful for classes with several similarly named members. To disable this functionality, uncheck \gui{Autocomplete common prefix} in the code completion preferences. + Select \gui Tools > \gui{Options...} > \gui{Text Editor} > \gui Completion. The following table lists available types for code completion and icon used for each. @@ -797,6 +817,15 @@ \i A namespace \endtable + \section2 Completing QML Code + + As you write QML code, Qt Creator suggests properties, IDs, and code + snippets to complete the code. The snippets can consist of multiple + fields that you specify values for. Select an item in the list and press + \key Tab or \key Enter to complete the code. Press \key Tab to + move between the fields and specify values for them. + + \image qmldesigner-code-completion.png "Completing QML code" \section1 Using Bookmarks @@ -865,19 +894,24 @@ In the \gui{FakeVim} mode, you can run the main editor in a manner similar to the Vim editor. To run the editor in the \gui{FakeVim} mode, select - \gui{Edit} > \gui{Advanced} > \gui{Toggle vim-style editing} or press + \gui{Edit} > \gui{Advanced} > \gui{Use vim-style editing} or press \key{Alt+V,Alt+V}. In the \gui{FakeVim} mode, most keystrokes in the main editor will be - intercepted and interpreted in a way that resembles Vim. + intercepted and interpreted in a way that resembles Vim. Documentation for + Vim is not included in Qt Creator. For more information on using Vim, + see \l{http://www.vim.org/docs.php}{Documentation} on the Vim web site. To map commands entered on the \gui{FakeVim} command line to actions of the Qt Creator core, select \gui{Tools} > \gui{Options...} > \gui{FakeVim} > \gui{Ex Command Mapping}. - To make changes to the \gui{Vim style settings}, select \gui{Tools} > + To make changes to the Vim style settings, select \gui{Tools} > \gui{Options...} > \gui{General}. + To quit the FakeVim mode, click \gui {Quit FakeVim} or press + \key{Alt+V,Alt+V}. + \section1 Using an External Editor @@ -934,10 +968,8 @@ , 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: + You can restrict the search in the \gui Find field by selecting one + or several search criteria: \list \o To make your search case sensitive, select \inlineimage qtcreator-editor-casesensitive.png @@ -958,7 +990,7 @@ search is conducted within the selection. To replace occurrences of the existing text, enter the new text in the - \gui{Replace with} text box. + \gui{Replace with} field. \list \o To replace the selected occurrence and move to the next one, click \inlineimage qtcreator-next.png @@ -1066,7 +1098,10 @@ \section1 Renaming Symbols - To rename a specific symbol in your project: + The functions used to rename symbols depends on whether you are + writing C++ or QML code. For QML, you can only rename IDs. + + To rename a specific symbol in a Qt project: \list 1 \o In the editor, place the cursor on the symbol you would like to change and select \gui Tools > \gui C++ > @@ -1089,6 +1124,17 @@ \note Renaming local symbols does not open the \gui{Search Results} pane. The instances of the symbol are highlighted in code and you can edit the symbol. All instances of the local symbol are changed as you type. + + To rename an ID in a Qt Quick project: + + \list 1 + + \o Right-click an ID in the QML code and select + \gui {Rename id}. + + \o In the \gui {Rename id} field, enter the new ID. + + \endlist */ /*! @@ -1468,7 +1514,7 @@ conventions. \o \c {%CppSourceSuffix%} is replaced by the default source suffix, which - is defined in Qt Creator in \gui {Tools > Options > C++ > File Naming}. + is defined in Qt Creator in \gui {Tools > Options... > C++ > File Naming}. For example, if users enter \bold MyClass, the filename becomes myclass.cpp when the project is created. @@ -1635,6 +1681,22 @@ \image qtcreator-qt4-qtversions.png \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 1 + \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. + */ @@ -1642,7 +1704,7 @@ \contentspage index.html \previouspage creator-developing-symbian.html \page creator-building-running.html - \nextpage creator-project-managing-sessions.html + \nextpage creator-building-targets.html \title Building and Running Applications @@ -1663,9 +1725,9 @@ The project pane consists of the following tabs: \list - \o Targets - \o Editor Settings - \o Dependencies + \o \l{Building for Multiple Targets}{Targets} + \o \l{Specifying Editor Settings}{Editor Settings} + \o \l{Specifying Dependencies}{Dependencies} \endlist Use the \gui Build and \gui Run buttons to switch between @@ -1675,13 +1737,22 @@ \gui{Select a Project} option at the top to navigate between different project edits. - \section1 Building for Multiple Targets +*/ + + +/*! + \contentspage index.html + \previouspage creator-building-running.html + \page creator-building-targets.html + \nextpage creator-build-settings.html + + \title Building for Multiple Targets Different build configurations allow you to quickly switch between different build settings. By default, Qt Creator creates \bold debug and \bold release build configurations. - \section2 Building for Desktop + \section1 Building for Desktop \list 1 @@ -1691,7 +1762,7 @@ \endlist - \section2 Building for Qt Simulator + \section1 Building for Qt Simulator You can use the Qt Simulator to test Qt applications that are intended for mobile devices in an environment similar to that of the device. You @@ -1706,10 +1777,23 @@ \endlist - \section2 Building for Maemo + For more information about using the Qt Simulator, see the + \l{http://doc.qt.nokia.com/qt-simulator-beta/index.html}{Qt Simulator Manual}. + + \section1 Building for Maemo \list 1 + \o Build and run the application for \l{Building for Qt Simulator}{Qt Simulator}. + + \o Build and run the application for \l{Using the Maemo Emulator}{Maemo Emulator}. + + \note The Maemo emulator support requires the Nokia Nokia N900 PR1.2 update. + + \o If no problems are found, build and run the application for a device: + + \list 1 + \o Set up the MADDE development environment and specify a connection to the device. For more information, see \l{Setting Up Development Environment for Maemo}. @@ -1718,18 +1802,22 @@ \o Click the \gui Run button. - Qt Creator uses the compiler specified in the MADDE toolchain to - build the application. - - The application is automatically copied to the device and executed - there. The application views are displayed on the N900. Command-line - output is visible in the Qt Creator \gui {Application output} view. - - Debugging also works transparently. + \endlist \endlist - \section2 Building for Symbian + Qt Creator uses the compiler specified in the MADDE toolchain to + build the application. + + Qt Creator generates an installation package, installs in on the device, + and executes it. The application views are displayed on the Nokia N900. + Command-line + output is visible in the Qt Creator \gui {Application Output} view. + + Debugging also works transparently. + + + \section1 Building for Symbian \list 1 @@ -1747,7 +1835,7 @@ for the device using RVCT, select it in the \gui {Tool chain} field in the \gui{General} section. - \section3 Building and Running for a Device + \section2 Building and Running for a Device \list 1 @@ -1854,13 +1942,13 @@ \l{http://doc.qt.nokia.com/4.7-snapshot/qmake-platform-notes.html#capabilities}{Capabilities}. - \section3 Building and Running for Symbian Emulator + \section2 Building and Running for Symbian Emulator Select the \gui{Symbian Emulator} target as the active one, and build and run your project. - \section3 Troubleshooting + \section2 Troubleshooting If you cannot build the application, check if: \list @@ -1893,8 +1981,20 @@ 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}. +*/ - \section2 Adding and Removing Build Configurations + +/*! + \contentspage index.html + \previouspage creator-building-targets.html + \page creator-build-settings.html + \nextpage creator-run-settings.html + + \title Specifying Build Settings + + You specify build settings in the \gui Projects mode. + + \image qtcreator-projectpane.png To add a new build configuration, click \gui Add and select the type of configuration you would like to add. You can add as many build @@ -1902,7 +2002,7 @@ To delete the build configuration currently selected, click \gui Remove. - \section2 Editing Build Configurations + \section1 Editing Build Configurations To edit a build configuration: \list 1 @@ -1913,7 +2013,7 @@ \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 The tool chain required to build the project. \o By default, projects are built in a separate directory from the source directory, as \l{glossary-shadow-build}{shadow builds}. This keeps the files generated for each target platform separate. @@ -1925,19 +2025,23 @@ \endlist \endlist - \section2 Build Steps + \section1 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 + \image qtcreator-build-steps.png "Build steps" + + \section1 Clean Steps You can use the cleaning process to remove intermediate files. This process might help you to fix obscure issues during the process of building a project. + \image qtcreator-clean-steps.png "Clean steps" + 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 @@ -1952,7 +2056,7 @@ . \endlist - \section2 Build Environment + \section1 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 @@ -1962,24 +2066,88 @@ variables or add, reset and unset new variables based on your project requirements. - \section1 Run Settings +*/ + + +/*! + \contentspage index.html + \previouspage creator-build-settings.html + \page creator-run-settings.html + \nextpage creator-editor-settings.html + + \title Specifying Run Settings Qt Creator automatically creates run configurations for your project. - These run configurations derive their executable from the parsed .pro + To view and modify the settings, select \gui {Projects > Run}. + The settings to specify depend on the type of the project: qmake project + or Qt Quick project. + + \section1 Specifying Run Settings for qmake Projects + + The run configurations for qmake projects 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 Specifying Run Settings for Qt Quick Projects - \section1 File Encoding + To run Qt Quick projects in the QML viewer, specify the connection to the + \gui {QML Runtime} in the \gui {Run configuration} field. The settings + are specified automatically and, usually, you do not need to change them: - To define the default file encoding, select the desired encoding in the + \list + + \o \gui {QML runtime} is the path to QML viewer executable. + + \o \gui {QML runtime arguments} sets arguments for running the QML viewer. + The \c{-I } argument searches for C++ or QML plugins from + the project folder. For a list of available arguments, enter \c {qml --help} + on the command line. + + \o \gui {Main QML File} is the Qt Quick project file. + + \o \gui {Debugging address} is the IP address to access the QML viewer. + + \o \gui {Debugging port} is the port to access the QML viewer. You can use any + free port in the registered port range. + + \endlist + + \image qmldesigner-run-settings.png "Run settings for Qt Quick projects" + + To set the executable to run, select \gui {Custom Executable} in the + \gui {Run configuration} field. + + \image qmldesigner-run-custom-exe.png "Run settings for custom executables" + +*/ + + +/*! + \contentspage index.html + \previouspage creator-run-settings.html + \page creator-editor-settings.html + \nextpage creator-build-dependencies.html + + \title Specifying Editor Settings + + To define the default file encoding, select the desired encoding in \gui Projects > \gui{Editor Settings}. By default, the Qt Creator uses the file encoding used by your system. + \image qtcreator-editor-settings.png "Editor Settings view" - \section1 Dependencies +*/ + + +/*! + \contentspage index.html + \previouspage creator-editor-settings.html + \page creator-build-dependencies.html + \nextpage creator-project-managing-sessions.html + + \title Specifying Dependencies If you have multiple projects loaded in your session, you can define the dependencies between them. Inter-project dependencies affect the build @@ -1988,29 +2156,15 @@ \note Inter-project dependencies are unrelated inside a qmake project. + \image qtcreator-build-dependencies.png "Dependencies view" + To define the dependencies between projects: \list 1 - \o Select the project for which you want to configure dependencies. - \o Check the checkboxes in the Dependencies section to select other - projects as dependencies. + \o In \gui Projects, select a project. + \o Click \gui Dependencies. + \o Select 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 1 - \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. */ @@ -2204,7 +2358,7 @@ \endlist - \section1 Buiding and Running the Application + \section1 Building and Running the Application \list 1 @@ -2910,7 +3064,7 @@ /*! \contentspage index.html - \previouspage creator-building-running.html + \previouspage creator-build-dependencies.html \page creator-project-managing-sessions.html \nextpage creator-visual-editor.html @@ -2943,7 +3097,7 @@ /*! \contentspage index.html - \previouspage creator-usability.html + \previouspage creator-maemo-emulator.html \page creator-debugging.html \nextpage creator-debugging-cpp.html @@ -2966,7 +3120,7 @@ When you start debugging, the appropriate tool is automatically selected depending on the type of the project. If you only develop one kind of projects, you can turn - off this automation in \gui {Tools > Options > Debugger > General}. Deselect the + off this automation in \gui {Tools > Options... > Debugger > General}. Deselect the \gui {Change debugger language automatically} check box. The choice of language also determines the contents of the \gui Debug menu. @@ -3083,7 +3237,7 @@ \list - \o \gui {Debugging address} is the local IP address to access the QML viewer. + \o \gui {Debugging address} is the IP address to access the QML viewer. \o \gui {Debugging port} is the port to access the QML viewer. You can use any free port in the registered port range. @@ -3157,7 +3311,7 @@ inspector and the QML viewer. You specify the connection in the \gui {Run Settings} in the \gui Projects mode. - For more information, see \l{Run Settings}. + For more information, see \l{Specifying Run Settings for Qt Quick Projects}. If the connection does not work, check the values of the \gui {Debugging address} and \gui {Debugging port} fields. Check that the default port number is not reserved @@ -3301,7 +3455,7 @@ The Qt Creator installation program asks you whether you want to register Qt Creator as a post-mortem debugger. To change the setting, select - \gui{Tools > Options > Debugger > Common > Use Creator for post-mortem debugging}. + \gui{Tools > Options... > Debugger > Common > Use Creator for post-mortem debugging}. You can launch the debugger in the post-mortem mode if an application crashes on Windows. Click the \gui {Debug in Qt Creator} button in the error message @@ -4856,37 +5010,39 @@ Maemo is a software platform developed by Nokia for smartphones and Internet Tablets. 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. You can find more - information about the Maemo platform \l{http://maemo.org/intro/platform/}{here}. + for different applications on top of the Maemo platform. The necessary + tools from the Maemo SDK are also included in the Nokia Qt SDK. + The whole tool chain that you need to create, build, debug, run, and deploy + Maemo applictions is installed and configured when you install the Nokia + Qt SDK. + + Maemo 5 is based on the Linux 2.6 operating system. For more + information about the Maemo platform, see + \l{http://maemo.org/intro/platform/}{Software Platform} on the Maemo web site. \section1 Hardware and Software Requirements To build and run Qt applications for Maemo, you need the following: \list - \o An N900 device with updates installed. - \o The MADDE cross-platform Maemo development - tool. + \o Nokia N900 device with PR1.2 or later installed. + \o MADDE cross-platform Maemo development + tool (installed as part of the Nokia Qt SDK). For more information about MADDE pertaining to its installation, configuration, and deployment on the device, see \l{http://wiki.maemo.org/MADDE}{Introduction to MADDE}. - \o An IP address for the device. + \o Nokia USB drivers. - In order to setup the device IP address, you need to install - PC Connectivity or implement it using CLI. More information about PC - Connectivity can be found - \l{http://pc-connectivity.garage.maemo.org/2nd_edition/node3.html#SECTION00032300000000000000} - {here}. - \endlist + Only needed if you develop on Windows and if you use a USB connection + to run applications on the device. The drivers are + installed as part of the Nokia Qt SDK. You can also download them from + \l{https://garage.maemo.org/frs/?group_id=801&release_id=2655}{PC Connectivity} + on the Maemo web site. Download and install the latest + PC_Connectivity_.exe (at the time of writing, + PC_Connectivity_0.9.4.exe). - To deploy and run Qt applications on Maemo devices, you need the - following: - \list - \o The Nokia USB drivers that come, for example with, PC Suite, if you use - a USB connection to run applications on the device. \o Qt installed on the device. Recent images should have Qt pre-installed. \endlist @@ -4900,9 +5056,9 @@ \note The only supported build system for Maemo in Qt Creator is qmake. - \section1 Setting Up the N900 + \section1 Setting Up the Nokia N900 - You can connect your device to your development PC using either an USB or a + You can connect your device to your development PC using either a USB or WLAN connection. For the device, you need to use a tool called Mad Developer to create the @@ -4910,71 +5066,86 @@ diagnostics functions but is essential for creating connections between the device and your development PC. - For the development PC, you need to set up the N900 as a network device. + To use a WLAN connection, you must activate WLAN on the device and connect + it to the same WLAN as the development PC. The network address is displayed + in the Mad Developer. - \note If you plan to connect your development PC to the N900 only over WLAN, you can + To use an USB connection, you need to set up the Nokia N900 as a network device + on the development PC. + + \note If you plan to connect your development PC to the Nokia N900 only over WLAN, you can ignore the USB-specific parts in the following sections. - \section2 Installing the Mad Developer Package + \section2 Installing and Configuring Mad Developer To install Mad Developer on your device, you need to add an application - catalogue (repository) to the list of catalogues your device checks for + catalogue to the list of catalogues your device checks for installable software, and install the actual Mad Developer software - package. This is done according to the following - steps: + package. After the installation, you must start Mad Developer and configure + a connection between the development PC and the device. + + To install and configure Mad Developer: + \list 1 - \o Start the application manager + \o On the Nokia N900, select \gui {Application manager > Application catalogs + > New}. - Enter the data as displayed in the screenshot below. + \o Specify the following settings: - \note The complete web address is + \image qtcreator-app-manager-extras-devel-screenshot.png + + \list a + + \o \gui {Catalogue name}: \bold devel + + \o \gui {Web address}: \l http://repository.maemo.org/extras-devel - \image qtcreator-app-manager-extras-devel-screenshot.png + \o \gui Distribution: \bold fremantle - \o Select \gui{Download} > \gui{Development} > \gui{mad-developer}. + \o \gui Components: \bold {free non-free} - The screenshots below shows the process for selecting the - \gui{mad-developer}: + \endlist - \image qt-creator-app_manager_screenshot1.png - \image qt-creator-app_manager_screenshot2.png + \o Click \gui Save to add the catalogue. + \o Select \gui{Download} > \gui{Development} > \gui{mad-developer} + to install the Mad Developer software package. + \o Click \gui {Mad Developer} to start the Mad Developer application. - \o Install the Mad Developer software package. - \o Start the Mad Developer application. - \endlist + \o To use a WLAN connection, activate WLAN on the device and connect + to the same network as the development PC. You can see the network + address in the \gui wlan0 field. - \note If you are using Microsoft Windows as development host, you must + \o To use an USB connection: + + \list a + + \o If you are using Microsoft Windows as development host, you must change the driver loaded for instantiating the connection. - For this click \gui{Manage USB} and select \gui{Load g_ether}. + In the Mad Developer, select \gui{Manage USB} and select \gui{Load g_ether}. - Follow the steps mentioned below to set up the USB settings: - \list 1 - \o Click \gui Edit in the usb0 row and confirm with \gui Configure. + \o To set up the USB settings, click \gui Edit on the \gui usb0 row and + confirm by clicking \gui Configure. - \note By default, you do not need to make changes. The usb0 row + \note By default, you do not need to make changes. The \gui usb0 row displays the IP address 192.168.2.15. - \o Select \gui{Developer Password} to generate a password for a freshly - created user called "developer". The password stays valid for as long - the password generation dialog is open. + \endlist - Refer to the screenshot below as an example. + \o Select \gui{Developer Password} to generate a password for a freshly + created user called \bold developer. The password stays valid for as long + as the password generation dialog is open. You enter the password when + you configure the connection in Qt Creator. \image qtcreator-mad-developer-screenshot.png \endlist - \section2 Establishing the USB Connection + \section1 Setting Up Network Connectivity on Development PC - Connect your device to the development PC via the USB cable. A dialog - pops up asking for the mode to use. Choose \gui{PC suite mode}. - - \note If you experience connection problems due to a USB port issue, switch - to a different port. - - - \section1 Setting Up Connectivity + Use the network configuration tools on your platform to specify the + connection to the device on the development PC. You need to do this + only if you use an USB connection. \section2 Linux @@ -4984,7 +5155,7 @@ \note If you have changed the IP address of the device when configuring Mad Developer, you need to reflect those changes in your development PC USB - network settings as well. + network settings. Run the following command in a shell as root user: \c{ifconfig usb0 192.168.2.14 up} @@ -4997,50 +5168,54 @@ first dialog and \gui{Install the software automatically} in the second dialog. - Open the Network Connections window. The just installed Linux USB Ethernet - connection is now displayed as a new Local Area Connection. - - Perform the same steps through the Network configuration tools available - with the operating system. - - 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 - \o Default gateway: 192.168.2.15 - \endlist - - Accept these settings and close the Network Configuration. Depending on - your version of Microsoft Windows you may have to unplug and re-plug the - N900 to reload the driver with its configuration accordingly. - - \section2 Setting Up MADDE - - If you install Nokia Qt SDK, the MADDE package is installed and - configured automatically on your development PC and you can omit this step. - - 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. - Install the target that starts with "fremantle" by using the command: - \c{mad-admin create fremantle-qt-xxx} - - When you have installed the target, you have a toolchain and a sysroot - environment for cross-compiling. - - \section1 Setting Up Qt Creator - - Set up a connection to the device in the - Qt Creator build and run settings, as follows: + To specify a network connection: \list 1 - \o If you install Qt Creator separately, you must register the - MADDE toolchain: - \list a + \o Open the Network Connections window. - \o Select \gui Tools > \gui Options > \gui Qt4 > \gui{Qt Versions}. + \o Select the Linux USB Ethernet + connection that is displayed as a new Local Area Connection. + + \o Edit the \gui {Internet Protocol Version 4 (TCP/IPv4)} properties + to specify the IP address for the connection. + In the \gui {Use the following IP address} field, enter the following values: + \list + \o \gui {IP Address}: \bold {192.168.2.14} + \o \gui SubnetMask: \bold {255.255.255.0} + \o \gui {Default gateway}: leave this field empty + \endlist + + \endlist + + Depending on + your version of Microsoft Windows you may have to unplug and re-plug the + Nokia N900 to reload the driver with its configuration accordingly. + + \section1 Setting Up MADDE + + If you install Nokia Qt SDK, the MADDE package is installed and + configured automatically on your development PC and you can omit this task. + + \list 1 + + \o Download the MADDE installer file for your platform from the + \l{http://wiki.maemo.org/MADDE}{MADDE} site. + + \o Execute the installer and follow the instructions. + + \o To see which targets are available, run \c{mad-admin list targets}. + + \o To install the target that starts with the string \bold fremantle, use the command: + \c{mad-admin create fremantle-qt-xxx} + + \o In Qt Creator, register the MADDE tool chain: + + \image qtcreator-screenshot-toolchain.png + + \list a + + \o Select \gui Tools > \gui Options... > \gui Qt4 > \gui{Qt Versions}. \o Click \inlineimage qtcreator-windows-add.png, to add a new Qt version. @@ -5048,44 +5223,119 @@ The \gui{qmake Location} is the qmake executable in \c{/targets//bin}. - \image qtcreator-screenshot-toolchain.png + \endlist + + \endlist + + When you have installed the target, you have a toolchain and a sysroot + environment for cross-compiling. + + \section1 Configuring Connections in Qt Creator + + To be able to run and debug applications on the Maemo emulator and + devices, you must set up a connection to the emulator and the device in the + Qt Creator build and run settings. If you install Nokia Qt SDK, the + necessary software is installed and configured automatically and you + only need to configure a connection to the device. + + You can protect the connections between Qt Creator and the Maemo emulator + or a device by using either a password or an SSH key. You must always + use a password for the initial connection, but can then deploy an SSH + key and use it for subsequent connections. If you use a password, you + must generate it in Mad Developer and enter it in Qt Creator every time + you connect to the Maemo emulator or to a device. + + If you do not have an SSH key, you can create it in Qt Creator. For more + information, see \l{Generating SSH Keys}. + + To configure connections between Qt Creator and the Maemo emulator or + device: + + \list 1 + + \o If you install the Maemo emulator (QEMU) separately, you must + specify parameters to access it: + + \list a + + \o Start Mad Developer in the emulator. + + \o Click \gui {Developer Password} to generate a password for + the connection. + + \o In Qt Creator, select \gui {Tools > Options... > Projects > + Maemo Device Configurations > Add} to add a new configuration. + + \image qtcreator-maemo-emulator-connection.png + + \o In the \gui {Configuration name} field, enter a name for + the connection. + + \o In the \gui {Device type} field, select \gui {Local simulator}. + + \o In the \gui {Authentication type} field, select \gui Password + for the initial connection. + + \o In the \gui Password field, enter the password from the Mad + Developer for the initial connection. + + You can use the default values for the other fields. + + \o Click \gui Test to test the connection. + + \o To avoid having to specify the password every time you connect + to the Maemo emulator, click \gui {Deploy Key...} and select + the file that contains your public key. + + \o When you have deployed the key to the device, change the + configuration to use the SSH key for protection. + + \image qtcreator-maemo-emulator-connection-key.png + + The default location of the private key file is displayed in the + \gui {Private key file} field. \endlist - If you installed the Nokia Qt SDK, you can omit this step. + If you installed the Nokia Qt SDK, a connection has been configured + and you only need to specify the password and deploy the SSH key. \o To deploy applications and run them remotely, specify parameters for accessing devices: \list a - \o Select \gui Tools > \gui Options > \gui Qt4 > - \gui{Maemo Devices} and add a new configuration. + \o Connect your device to the development PC via an USB cable or + a WLAN. For an USB connection, you are prompted to select the mode + to use. Choose \gui{PC suite mode}. + + \note If you experience connection problems due to a USB port issue, + switch to a different port or use WLAN to connect to the device. + + \o Select \gui Tools > \gui Options... > \gui Projects > + \gui{Maemo Device Configurations > Add}, and add a new configuration for a + \gui {Remote device}. \image qtcreator-screenshot-devconf.png + \o In the \gui {Host name} field, enter the IP address from the + \gui usb0 or \gui wlan0 field in Mad Developer. - \note The password is the one MADDE Developer displays on the - device. + \o Specify the other settings in the same way as for a Maemo emulator + connection. - \o 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. + \o Click \gui Test to test the connection. \o Click \gui OK to close the dialog. \endlist - \o To specify build settings: + \o To specify build and run settings: \list a \o Open a project for an application you want to develop for your - N900. + Nokia N900. \o Click \gui Projects to open the projects mode. @@ -5094,19 +5344,184 @@ \image qtcreator-screenshot-build-settings.png \o In the \gui{Run Settings} section, click \gui Add to add a new - run configuration on the Maemo device. + run configuration. \o Set a name and select the device configuration. \image qtcreator-screenshot-run-settings.png + \note You can either add separate run settings for both the Maemo + emulator connection and the device connection or select the + \gui {Device configuration} before you run the application. + \endlist \endlist + \section2 Generating SSH Keys + + If you do not have an SSH public and private key pair, you can generate it + in Qt Creator. You can specify key length and the key algorithm, RSA or DSA. + If you only use the keys to protect connections to the Maemo emulator or + device, you can use the default values. + + \list 1 + + \o Select \gui {Tools > Options... > Projects > Maemo Device Configurations + > Generate SSH Key...}. + + \o Click \gui {Generate SSH Key}. + + \image qtcreator-ssh-key-configuration.png "SSH Key Configuration dialog" + + \o Click \gui {Save Public Key...} to select the location to save the + public key. + + \o Click \gui {Save Private Key...} to specify the location to save the + private key. + + \o Click \gui Close to close the dialog. + + \endlist + */ +/*! + \contentspage index.html + \previouspage creator-usability.html + \page creator-maemo-emulator.html + \nextpage creator-debugging.html + + \title Using the Maemo Emulator + + The Maemo emulator emulates the Nokia N900 device environment. You can test + applications in conditions practically identical to running the application + on a Nokia N900 device. You can test user interaction by using the keypad and + touch emulation. + + \note The Maemo emulator support requires the Nokia N900 PR1.2 update. + + To test the application UI, user interaction with the application, and + functionality that uses the mobility APIs, use the Qt Simulator, + instead. For more information, see the + \l{http://doc.qt.nokia.com/qt-simulator-beta/index.html}{Qt Simulator Manual}. + + The Maemo emulator is installed and configured as part of the Nokia Qt SDK + package. You can also install and configure the MADDE environment and + Maemo emulator separately. For more information, see + \l{Setting Up Development Environment for Maemo}. + + \section1 Starting the Maemo Emulator + + The \gui {Start Maemo Emulator} button is visible if you have a project + open in Qt Creator for which you have added the Maemo build target. + + To start the Maemo emulator: + + \list 1 + + \o Click + \inlineimage qtcreator-maemo-emulator-button.png "Start Maemo Emulator button" + . + + \o Select \gui {Mad Developer} on the Maemo emulator, to start the Mad Developer + application + + \o If you have not deployed an SSH key to protect the connection between + Qt Creator and the Maemo emulator, select \gui {Developer Password} to generate + a password. + + \o In Qt Creator, enter the password in the connection settings: + \gui {Tools > Options... > Projects > Maemo Device Configurations}. + + \endlist + + Test your application on the Maemo emulator as on a device. For a list of + keyboard shortcuts that you can use to emulate Nokia N900 keys and functions, see + \l {Emulating Nokia N900 Keys}. + + \section1 Emulating Nokia N900 Keys + + The following table summarizes the keyboard shortcuts that you can use + to emulate Nokia N900 keys and functions. + + \table + \header + \o Nokia N900 Key + \o Keyboard Shortcut + \row + \o \list + \o Alphabet keys + \o Comma (,) + \o Period (.) + \o Space + \o Arrow keys + \o Enter + \o Backspace + \endlist + \o Respective keys on the development PC keyboard. + \row + \o Shift + \o Left Shift key + \row + \o Ctrl + \o Left Ctrl key + \row + \o Mode + \o Left Alt key + \row + \o Power + \o Esc + \row + \o Keypad slider open and close + \o F1 + \row + \o Keypad lock + \o F2 + \row + \o Camera lens open and close + \o F3 + \row + \o Camera focus + \o F4 + \row + \o Camera take picture + \o F5 + \note The actual camera functionality is not emulated. + \row + \o Stereo headphones connect and disconnect + \o F6 + \row + \o Volume down + \o F7 + \row + \o Volume up + \o F8 + \row + \o Accelerometer x axis, negative + \o 1 + \row + \o Accelerometer x axis, positive + \o 2 + \row + \o Accelerometer z axis, negative + \o 4 + \row + \o Accelerometer z axis, positive + \o 5 + \row + \o Accelerometer y axis, negative + \o 7 + \row + \o Accelerometer y axis, positive + \o 8 + + \endtable + + +*/ + /*! \contentspage index.html @@ -5238,7 +5653,7 @@ \contentspage index.html \previouspage creator-visual-editor.html \page creator-usability.html - \nextpage creator-debugging.html + \nextpage creator-maemo-emulator.html \title Optimizing Applications for Mobile Devices @@ -5372,7 +5787,7 @@ \section1 Using the Filter in Options Dialog To find specific settings you require in \gui{Tools} > \gui{Options...} - use the filter located at the top left of the Options dialog box. + use the filter located at the top left of the \gui Options dialog box. \section1 Using Keyboard Shortcuts @@ -5463,7 +5878,7 @@ To customize a keyboard shortcut: \list 1 - \o Select \gui Tools > \gui Options > \gui Environment > + \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 diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 0b586b4d877..737a823d378 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -17608,7 +17608,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen. Unable to load the debugger engine library '%1': %2 - Die Debugger-Bibliothek konnte '%1' nicht geladen werden: %2 + Die Debugger-Bibliothek '%1' konnte nicht geladen werden: %2 diff --git a/share/qtcreator/translations/qtcreator_pl.ts b/share/qtcreator/translations/qtcreator_pl.ts index cbc9da1ca24..b6126535e28 100644 --- a/share/qtcreator/translations/qtcreator_pl.ts +++ b/share/qtcreator/translations/qtcreator_pl.ts @@ -1040,7 +1040,7 @@ p, li { white-space: pre-wrap; } Verbose Symbol Loading - Pokazuj szczegóły podczas ładowania symboli + Gadatliwe ładowania symboli @@ -1740,7 +1740,7 @@ on slow machines. In this case, the value should be increased. Diff - + Pokaż różnice @@ -1770,12 +1770,12 @@ on slow machines. In this case, the value should be increased. Failed to create branch - Utworzenie gałęzi niepomyślnie zakończone + Nie można utworzyć gałęzi Failed to stash - Odłożenie zmian zakończone niepowodzeniem + Nie można odłożyć zmian @@ -1795,7 +1795,7 @@ on slow machines. In this case, the value should be increased. Failed to create a tracking branch - Utworzenie gałęzi śledzącej zakończone niepowodzeniem + Nie można utworzyć gałęzi śledzącej @@ -2064,7 +2064,7 @@ on slow machines. In this case, the value should be increased. Ignore whitespace changes in annotation - Ignoruj zmiany w spacjach w + Ignoruj zmiany w spacjach w adnotacjach @@ -2334,7 +2334,7 @@ Add, modify, and remove document filters, which determine the documentation set Przetestuj - + Perforce Perforce @@ -3023,7 +3023,7 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. The Qt Creator User Interface - Interfesj użytkownika Qt Creatora + Interfejs użytkownika Qt Creatora @@ -3037,12 +3037,12 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt. - + Choose an example... Wybierz przykład... - + Copy Project to writable Location? Kopiować projekt do miejsca zapisywalnego? @@ -3605,12 +3605,12 @@ p, li { white-space: pre-wrap; } Ignore whitespace changes in annotation - + Ignoruj zmiany w spacjach w adnotacjach Log count: - + Licznik dziennika: @@ -4019,9 +4019,8 @@ p, li { white-space: pre-wrap; } - + http://labs.trolltech.com/blogs/feed - Add localized feed here only if one exists http://labs.trolltech.com/blogs/feed @@ -4051,12 +4050,12 @@ p, li { white-space: pre-wrap; } Qt Support Sites - + Strony wsparcia technicznego Qt Qt Links - + Strony o Qt @@ -4358,7 +4357,7 @@ p, li { white-space: pre-wrap; } Failed to load core: %1 - Nie udało się załadować zrzutu: %1 + Nie można załadować zrzutu: %1 @@ -4419,7 +4418,7 @@ p, li { white-space: pre-wrap; } - + Failed Plugins Niezaładowane wtyczki @@ -4754,7 +4753,7 @@ Przyczyna: %3 Pokaż szczegóły - + Details Szczegóły @@ -4800,7 +4799,7 @@ Przyczyna: %3 Name matches MS Windows device. (%1). - + Nazwa pasuje do urządzenia MS Windows. (%1). @@ -6263,9 +6262,13 @@ Czy chcesz je nadpisać? Core::ModeManager - Switch to %1 mode - Przejdź do trybu %1 + Przejdź do trybu %1 + + + + Switch to <b>%1</b> mode + Przejdź do trybu <b>%1</b> @@ -6310,7 +6313,7 @@ Czy chcesz je nadpisać? Core::Internal::OutputPaneManager - + Output Komunikaty @@ -6330,7 +6333,7 @@ Czy chcesz je nadpisać? Poprzedni element - + Maximize Output Pane Zmaksymalizuj panel z komunikatami @@ -6537,7 +6540,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Empty snippet received for "%1". - + Otrzymano pusty urywek dla "%1". This protocol supports no listing @@ -6735,7 +6738,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Update code model - Odśwież model kodu + Uaktualnij model kodu @@ -7074,12 +7077,12 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Update Project - Odśwież projekt + Uaktualnij projekt Update Project "%1" - Odśwież projekt "%1" + Uaktualnij projekt "%1" @@ -7880,7 +7883,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. This switches the debugger to instruction-wise operation mode. In this mode, stepping operates on single instructions and the source location view also shows the disassembled instructions. - + Przestawia debugger do trybu operowania na instrukcjach. W tym trybie kroczenie działa dla pojedynczych instrukcji i widok źródeł pokazuje również zdeasemblowane instrukcje. @@ -7952,12 +7955,12 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Verbose Log - Szczegółowy dziennik + Gadatliwy dziennik Operate by Instruction - + Operuj na instrukcjach @@ -7967,42 +7970,42 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Watch Expression "%1" - + Obserwuj wyrażenie "%1" Remove Watch Expression "%1" - + Usuń obserwowanie wyrażenia "%1" Watch Expression "%1" in Separate Window - + Obserwuj wyrażenie "%1" w osobnym oknie Show "std::" Namespace in Types - + Pokazuj przestrzeń nazw "std::" w widoku typów Show Qt's Namespace in Types - + Pokazuj przestrzeń nazw Qt w widoku typów Use Debugging Helpers - + Używaj asystenta debuggera Debug Debugging Helpers - + Debuguj asystenta debuggera Use Code Model - + Używaj modelu kodu @@ -8012,17 +8015,17 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Recheck Debugging Helper Availability - + Sprawdź ponownie dostępność asystenta debuggera Synchronize Breakpoints - + Zsynchronizuj pułapki Use Precise Breakpoints - + Używaj dokładnych pułapek @@ -8042,7 +8045,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Automatically Quit Debugger - + Automatycznie zakańczaj debugger @@ -8057,22 +8060,22 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Use Tooltips in Locals View When Debugging - + Używaj podpowiedzi w widoku ze zmiennymi lokalnymi podczas debugowania Use Tooltips in Breakpoints View When Debugging - + Używaj podpowiedzi w widoku z pułapkami podczas debugowania Show Address Data in Breakpoints View When Debugging - + Pokazuj adresy w widoku z pułapkami podczas debugowania Show Address Data in Stack View When Debugging - + Pokazuj adresy w widoku stosu podczas debugowania @@ -8097,12 +8100,12 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Register For Post-Mortem Debugging - + Zarejestruj do pośmiertnego debugowania Reload Full Stack - + Przeładuj cały stos @@ -8117,12 +8120,12 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Change debugger language automatically - + Automatycznie zmieniaj język debuggera Changes the debugger language according to the currently opened file. - + Zmienia język debuggera odpowiednio do zawartości otwartego pliku. Use tooltips in locals view when debugging @@ -8361,7 +8364,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Immediately Return From Inner Function - + Powróć natychmiast z wewnętrznej funkcji @@ -8383,7 +8386,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku. Snapshot - + Zrzut @@ -8725,22 +8728,23 @@ Czy chcesz ją zakończyć? Application process could not be stopped: %1 - + Nie można zatrzymać procesu aplikacji: +%1 Application started - + Uruchomiono aplikację Application running - + Aplikacja uruchomiona Attached to stopped application - + Dołączono do zatrzymanej aplikacji Inferior process could not be stopped: @@ -9039,8 +9043,10 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej. Retrieving data for watch view (%n requests pending)... - - + + Pobieranie danych dla widoku ze zmiennymi obserwowanymi (%n oczekujące żądanie)... + Pobieranie danych dla widoku ze zmiennymi obserwowanymi (%n oczekujące żądania)... + Pobieranie danych dla widoku ze zmiennymi obserwowanymi (%n oczekujących żądań)... @@ -9082,12 +9088,12 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej. <shadowed> - + <przykryto> <n/a> - + <niedostępne> @@ -9121,34 +9127,35 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej. Unexpected Gdb Exit - + Nieoczekiwanie zakończenie Gdb The gdb process exited unexpectedly (%1). - + Proces gdb nieoczekiwanie zakończył się (%1). Snapshot Creation Error - + Błąd tworzenia zrzutu Cannot create snapshot file. - + Nie można utworzyć pliku ze zrzutem. Cannot create snapshot: - + Nie można utworzyć zrzutu: + Snapshot Reloading - + Przeładowywanie zrzutu @@ -9159,7 +9166,7 @@ Do you want to stop the debugged process and load the selected snapshot? Finished retrieving data - + Zakończono pobieranie danych @@ -9272,7 +9279,7 @@ You can choose between waiting longer or abort debugging. Stopped: %1 by signal %2 - + Zatrzymano: %1 przez sygnał %2 @@ -9334,7 +9341,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Jumping out of bogus frame... - + Wyskakiwanie z błędnej ramki... @@ -9471,7 +9478,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Unable to acquire a device on '%1'. It appears to be in use. - Nie można pozyskać urządzienia na "%1". Wygląda że jest w użyciu. + Nie można pozyskać urządzenia na "%1". Wygląda że jest w użyciu. @@ -9587,7 +9594,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Update Module List - Odśwież listę modułów + Uaktualnij listę modułów @@ -10297,7 +10304,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej. Generation - Generowanie + Generowanie @@ -10779,7 +10786,7 @@ Rebuilding the project might help. The image could not be created: %1 - Nie można utworzyć obrazu: %1 + Nie można utworzyć pliku graficznego: %1 @@ -11299,7 +11306,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Git::Internal::LocalBranchModel - + <New branch> <Nowa gałąź> @@ -11481,7 +11488,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Invalid revision - + Błędna poprawka @@ -11496,7 +11503,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Unable to describe revision %1 in %2: %3 - + Nie można opisać poprawki %1 w %2: %3 @@ -11517,17 +11524,17 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Unable to run a 'git branch' command in %1: %2 - + Nie można uruchomić komendy "git branch" w %1: %2 Unable to run 'git show' in %1: %2 - + Nie można uruchomić "git show" w %1: %2 Unable to run 'git clean' in %1: %2 - + Nie można uruchomić "git clean" w %1: %2 @@ -11568,7 +11575,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Unable to determine git version: %1 - + Nie można określić wersji git: %1 @@ -11902,27 +11909,27 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Repository Status - + Stan składnicy Log Repository - + Pokaż dziennik składnicy Apply Patch - + Zastosuj łatę Apply "%1" - + Zastosuj "%1" Apply Patch... - + Zastosuj łatę... @@ -11932,12 +11939,12 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Create Repository... - + Utwórz składnicę... Clean Repository... - + Wyczyść składnicę... @@ -12008,7 +12015,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. The repository is clean. - + Składnica jest czysta. @@ -12018,7 +12025,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Choose patch - + Wybierz łatę @@ -12038,7 +12045,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Log - + Dziennik @@ -12254,7 +12261,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Open Image - Otwórz obraz + Otwórz plik graficzny @@ -12658,7 +12665,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Update Project "%1" - Odśwież projekt "%1" + Uaktualnij projekt "%1" @@ -12705,7 +12712,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Update All - Odśwież wszystko + Uaktualnij wszystko @@ -12715,7 +12722,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Delete "%1"... - + Usuń "%1"... @@ -12735,32 +12742,32 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Update Current Project - + Uaktualnij bieżący projekt Revert Unchanged - + Odwróć niezmienione Revert Unchanged Files of Project "%1" - + Odwróć niezmienione pliki projektu "%1" Revert Project - + Odwróć zmiany w projekcie Revert Project "%1" - + Odwróć zmiany w projekcie "%1" Repository Log - + Dziennik składnicy @@ -12796,7 +12803,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Do you want to revert all changes to the project "%1"? - + Czy chcesz odwrócic wszystkie zmiany w projekcie "%1"? @@ -12860,17 +12867,17 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. The file is not mapped File is not managed by Perforce - + Plik nie jest zmapowany Perforce repository: %1 - + Składnica Perforce: %1 Perforce: Unable to determine the repository: %1 - + Perforce: Nie można określić składnicy: %1 @@ -12895,7 +12902,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Perforce is not correctly configured. - + Perforce nie jest poprawnie skonfigurowany. @@ -13066,7 +13073,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. ProjectExplorer::Internal::AllProjectsFind - + All Projects Wszystkie projekty @@ -13160,12 +13167,12 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. <font color="#ff0000">Error while building project %1 (target: %2)</font> - <font color="#ff0000">Błąd podczas budowania projektu %1 (cel: %2)</font> + <font color="#ff0000">Błąd podczas budowania projektu %1 (produkt docelowy: %2)</font> Error while building project %1 (target: %2) - Błąd podczas budowania projektu %1 (cel: %2) + Błąd podczas budowania projektu %1 (produkt docelowy: %2) <font color="#ff0000">Error while building project %1</font> @@ -13249,7 +13256,22 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. ProjectExplorer::Internal::BuildStepsPage - + + Move Up + Przenieś do góry + + + + Move Down + Przenieś na dół + + + + Remove Item + Usuń element + + + Removing Step failed Nie można usunąć kroku @@ -13282,7 +13304,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. Usuń krok z procesu budowania - + Clean Steps Kroki procesu czyszczenia @@ -13340,7 +13362,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich. ProjectExplorer::Internal::CurrentProjectFind - + Current Project Bieżący projekt @@ -13631,12 +13653,12 @@ Powód: %2 Using <b>%1</b> - + Używając <b>%1</b> Using <b>%1</b> and - + Używając <b>%1</b> i Summary: No changes to Environment @@ -13672,17 +13694,17 @@ Powód: %2 The application is still running. - + Aplikacja jest wciąż uruchomiona. Force it to quit? - + Zakończyć ją? Force Quit - + Zakończ Ctrl+Shift+R @@ -13717,7 +13739,7 @@ Powód: %2 Project File Factory ProjectExplorer::ProjectFileFactory display name. - + Fabryka plików projektu @@ -13943,7 +13965,7 @@ Powód: %2 Recent P&rojects - + Ostatnie p&rojekty @@ -13989,7 +14011,7 @@ Powód: %2 Ctrl+T - + Ctrl+T @@ -14005,7 +14027,7 @@ Powód: %2 Always save files before build - + Zawsze zachowuj pliki przed budowaniem @@ -14142,7 +14164,7 @@ do systemu kontroli wersji (%2)? Active run configuration - Aktywna konfiguracja uruchamiania + Aktywna konfiguracja uruchamiania @@ -14168,7 +14190,7 @@ do systemu kontroli wersji (%2)? General - Ogólne + Ogólne @@ -14180,7 +14202,7 @@ do systemu kontroli wersji (%2)? No version control system selected ---------- No project selected - + <Brak> @@ -14192,7 +14214,7 @@ No project selected A version control system repository could not be created in '%1'. - + Nie można utworzyć składnicy systemu kontroli wersji w "%1". @@ -14309,7 +14331,7 @@ No project selected Files to be added in - + Pliki które mają zostać dodane w @@ -14433,7 +14455,7 @@ No project selected Intel C++ Compiler (Linux) - Kompilator Intel C++ (Linux) + Kompilator Intel C++ (Linux) @@ -14458,12 +14480,12 @@ No project selected GCCE/GnuPoc - + GCCE/GnuPoc RVCT (ARMV6)/GnuPoc - + RVCT (ARMV6)/GnuPoc @@ -14478,7 +14500,7 @@ No project selected GCC for Maemo - + GCC dla Maemo @@ -14680,12 +14702,12 @@ No project selected Qt Custom Designer Widget - + Własny widżet Qt Designer Creates a Qt Custom Designer Widget or a Custom Widget Collection. - + Tworzy własny widżet Qt Designer lub kolekcję własnych widżetów. @@ -14764,7 +14786,7 @@ No project selected Make Qt4 MakeStep display name. - Make + Make @@ -14786,7 +14808,7 @@ No project selected <b>Make:</b> %1 not found in the environment. - + <b>Make:</b> Nie odnaleziono %1 w środowisku. <b>Make Step:</b> %1 not found in the environment. @@ -14827,7 +14849,7 @@ No project selected Project setup - + Ustawienia projektu @@ -14856,17 +14878,17 @@ No project selected qmake QMakeStep display name. - + QMake <font color="#0000ff">Configuration is faulty, please check the Build Issues view for details.</font> - + <font color="#0000ff">Konfiguracja jest błędna, sprawdź szczegóły w widoku "Problemy budowania".</font> <font color="#0000ff">Configuration unchanged, skipping qmake step.</font> - + <font color="#0000ff">Konfiguracja niezmieniona, krok qmake opuszczony.</font> @@ -14886,12 +14908,12 @@ No project selected <b>qmake:</b> No Qt version set. Cannot run qmake. - + <b>QMake:</b> Brak ustawionej wersji Qt. Nie można uruchomić qmake. <b>qmake:</b> %1 %2 - + <b>qmake:</b> %1 %2 @@ -14903,7 +14925,7 @@ No project selected qmake - + qmake @@ -14938,7 +14960,7 @@ No project selected Arguments: - Argumenty: + Argumenty: @@ -15059,37 +15081,37 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Unable to remove existing file '%1': %2 - + Nie można usunąć istniejącego pliku "%1": %2 Unable to rename file '%1' to '%2': %3 - + Nie można zmienić nazwy pliku "%1" na "%2": %3 Deploying - + Instalowanie Renaming new package '%1' to '%2' - + Zmienianie nazwy pakietu "%1" na "%2" Removing old package '%1' - + Usuwanie starego pakietu "%1" Package file not found - + Plik pakietu nie został odnaleziony Failed to find package '%1': %2 - + Nie można odnaleźć pakietu "%1": %2 @@ -15126,7 +15148,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. The device '%1' has been disconnected - + Urządzenie "%1" zostało odłączone %1% copied. @@ -15228,7 +15250,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Qt Symbian Emulator RunConfiguration - + Konfiguracja uruchamiania emulatora Qt Symbian QtSymbianEmulatorRunConfiguration @@ -15362,7 +15384,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Error while reading PRO file %1: %2 - + Błąd podczas czytania pliku PRO %1: %2 Error while parsing file %1. Giving up. @@ -15454,17 +15476,17 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Build - Budowanie + Budowanie Run qmake in %1 - + Uruchom qmake w %1 Build in %1 - + Zbuduj w %1 @@ -15480,22 +15502,22 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Clean Environment - Czyste środowisko + Czyste środowisko System Environment - Środowisko systemowe + Środowisko systemowe Build Environment - Środowisko budowania + Środowisko budowania Qt4 RunConfiguration - + Konfiguracja uruchamiania Qt4 @@ -15676,7 +15698,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Select qmake Executable - + Wskaż program qmake @@ -15696,7 +15718,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Select the CSL ARM Toolchain (GCCE) Directory - + Wskaż katalog zestawu narzędzi CSL ARM (GCCE) @@ -15717,41 +15739,47 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. <html><body><table><tr><td>File:</td><td><pre>%1</pre></td></tr><tr><td>Last&nbsp;modified:</td><td>%2</td></tr><tr><td>Size:</td><td>%3 Bytes</td></tr></table></body></html> Tooltip showing the debugging helper library file. - + <html><body><table><tr><td>Plik:</td><td><pre>%1</pre></td></tr><tr><td>Ostatnio&nbsp;zmodyfikowany:</td><td>%2</td></tr><tr><td>Rozmiar:</td><td>%3 Bajtów</td></tr></table></body></html> This Qt Version has a unknown toolchain. - + Ta wersja Qt posiada nieznany zestaw narzędzi. Desktop Qt Version is meant for the desktop - + Symbian Qt Version is meant for Symbian - + Symbian Maemo Qt Version is meant for Maemo - + Maemo + + + + Qt Simulator + Qt Version is meant for Qt Simulator + Symulator Qt unkown No idea what this Qt Version is meant for! - + nieznana Found Qt version %1, using mkspec %2 (%3) - + Znaleziono wersję Qt %1 używającą mkspec %2 (%3) The Qt Version identified by %1 is not installed. Run make install @@ -15769,7 +15797,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Qt4ProjectManager::QtVersionManager - + <not found> <nie znaleziony> @@ -15829,13 +15857,13 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. EditorManager Next Open Document in History - + Manager edytorów EditorManager Previous Open Document in History - + Manager edytorów @@ -15902,7 +15930,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Specify basic information about the classes for which you want to generate skeleton source code files. - Podaj podstawowe informacje o klasach dla których chcesz wygenerować szkielet dla plików z kodem źródłowym. + Podaj podstawowe informacje o klasach dla których chcesz wygenerować szkielet plików z kodem źródłowym. @@ -16451,17 +16479,17 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Repository Status - + Stan składnicy Log Repository - + Dziennik składnicy Update Repository - + Uaktualnij składnicę @@ -16476,22 +16504,22 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Delete... - Usuń... + Usuń... Delete "%1"... - + Usuń "%1"... Revert... - + Odwróć zmiany... Revert "%1"... - + Odwróć zmiany w "%1"... @@ -16501,7 +16529,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Status of Project "%1" - + Pokaż stan projektu "%1" @@ -16516,17 +16544,17 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Update Project - Odśwież projekt + Uaktualnij projekt Update Project "%1" - Odśwież projekt "%1" + Uaktualnij projekt "%1" Revert Repository... - + Odwróć zmiany w składnicy... @@ -16566,17 +16594,17 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Revert repository - + Odwróć zmiany w składnicy Would you like to revert all changes to the repository? - + Czy chcesz odwrócić wszystkie zmiany w składnicy? Revert failed: %1 - + Nie można odwrócić zmian: %1 @@ -16616,7 +16644,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. Executing in %1: %2 %3 - Wykonywanie w %1: %2 %3 + Wykonywanie w %1: %2 %3 @@ -16713,7 +16741,7 @@ Sprawdź czy telefon jest podłączony i czy aplikacja TRK jest uruchomiona. TextEditor::BaseTextEditorEditable - + Line: %1, Col: %2 Linia: %1, kolumna: %2 @@ -17153,7 +17181,87 @@ Następujące kodowania będą najprawdopodobniej pasowały: Ctrl+J - + + Goto Line Start + Przejdź do początku linii + + + + Goto Line End + Przejdź do końca linii + + + + Goto Next Line + Przejdź do następnej linii + + + + Goto Previous Line + Przejdź do poprzedniej linii + + + + Goto Previous Character + Przejdź do poprzedniego znaku + + + + Goto Next Character + Przejdź do następnego znaku + + + + Goto Previous Word + Przejdź do poprzedniego słowa + + + + Goto Next Word + Przejdź do następnego słowa + + + + Goto Line Start With Selection + + + + + Goto Line End With Selection + + + + + Goto Next Line With Selection + + + + + Goto Previous Line With Selection + + + + + Goto Previous Character With Selection + + + + + Goto Next Character With Selection + + + + + Goto Previous Word With Selection + + + + + Goto Next Word With Selection + + + + <line number> <numer linii> @@ -17163,42 +17271,42 @@ Następujące kodowania będą najprawdopodobniej pasowały: Creates a text file (.txt). - Tworzy plik tekstowy (.txt). + Tworzy plik tekstowy (.txt). Text File - Plik tekstowy + Plik tekstowy General - Ogólne + Ogólne Triggers a completion in this scope - Przełącza uzupełnianie kody w tym zakresie + Przełącza uzupełnianie kodu w tym zakresie Ctrl+Space - Ctrl+Space + Ctrl+Space Meta+Space - Meta+Space + Meta+Space Triggers a quick fix in this scope - Uaktywnia w tym zakresie szybką poprawkę + Uaktywnia w tym zakresie szybką poprawkę Alt+Return - Alt+Return + Alt+Return @@ -17498,7 +17606,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: Project from Version Control - + Projekt z systemu kontroli wersji @@ -17604,7 +17712,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: News && Support - + Nowiny i wsparcie @@ -17705,7 +17813,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: <title>about:blank</title> - + <title>o:pusty</title> @@ -17834,7 +17942,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: Invalid file location - + Niepoprawne położenie pliku @@ -17960,7 +18068,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: &New... - + &Nowy... @@ -17970,7 +18078,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: &Open... - + &Otwórz... @@ -18000,7 +18108,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: &Preview - + &Podgląd @@ -18020,7 +18128,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: &Quit - + Za&kończ @@ -18050,7 +18158,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: &Cut - + Wy&tnij @@ -18060,7 +18168,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: &Delete - + &Usuń @@ -18075,7 +18183,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: &View - + &Widok @@ -18085,7 +18193,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: &About... - + Inform&acje o... @@ -18095,7 +18203,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: Could not open file <%1> - + Nie można otworzyć pliku <%1> @@ -18209,7 +18317,7 @@ Następujące kodowania będą najprawdopodobniej pasowały: nieznany - + CMake Project file Plik projektu CMake @@ -18315,72 +18423,72 @@ Następujące kodowania będą najprawdopodobniej pasowały: BMP image - + Plik graficzny BMP GIF image - + Plik graficzny GIF ICO image - + Plik graficzny ICO JPEG image - + Plik graficzny JPEG MNG video - + Plik wideo MNG PBM image - + Plik graficzny PBM PGM image - + Plik graficzny PGM PNG image - + Plik graficzny PNG PPM image - + Plik graficzny PPM SVG image - + Plik graficzny SVG TIFF image - + Plik graficzny TIFF XBM image - + Plik graficzny XBM XPM image - + Plik graficzny XPM QML Project file - + Plik projektu QML @@ -18527,7 +18635,7 @@ aktywny tylko po wpisaniu przedrostka Refresh interval: - + Odświeżanie co: @@ -18567,21 +18675,21 @@ aktywny tylko po wpisaniu przedrostka %1 filter update: 0 files - Odświeżenie filtra %1: 0 plików + Uaktualnienie filtra %1: 0 plików %1 filter update: %n files - Odświeżenie filtra %1: %n plik - Odświeżenie filtra %1: %n pliki - Odświeżenie filtra %1: %n plików + Uaktualnienie filtra %1: %n plik + Uaktualnienie filtra %1: %n pliki + Uaktualnienie filtra %1: %n plików %1 filter update: canceled - Odświeżenie filtra %1: anulowano + Uaktualnienie filtra %1: anulowano @@ -18652,7 +18760,7 @@ aktywny tylko po wpisaniu przedrostka Options - Opcje + Opcje @@ -18910,7 +19018,7 @@ aktywny tylko po wpisaniu przedrostka Command Mappings - + Mapa komend Filter: @@ -18929,7 +19037,7 @@ aktywny tylko po wpisaniu przedrostka Target - + Produkt docelowy @@ -18949,12 +19057,12 @@ aktywny tylko po wpisaniu przedrostka Target Identifier - + Identyfikator produktu docelowego Target: - + Produkt docelowy: Remove @@ -18963,7 +19071,7 @@ aktywny tylko po wpisaniu przedrostka Reset - Przywróć + Przywróć @@ -19102,27 +19210,27 @@ Możesz odłożyć zmiany lub je porzucić. General Information - Ogólne informacje + Ogólne informacje Repository: - Składnica: + Składnica: repository - składnica + składnica Branch: - Gałąź: + Gałąź: branch - gałąź + gałąź @@ -19132,12 +19240,12 @@ Możesz odłożyć zmiany lub je porzucić. Author: - Autor: + Autor: Email: - Email: + Email: @@ -19145,22 +19253,22 @@ Możesz odłożyć zmiany lub je porzucić. Form - Formularz + Formularz Configuration - + Konfiguracja Command: - Komenda: + Komenda: User - + Użytkownik @@ -19170,7 +19278,7 @@ Możesz odłożyć zmiany lub je porzucić. Default username: - + Domyślna nazwa użytkownika: @@ -19180,12 +19288,12 @@ Możesz odłożyć zmiany lub je porzucić. Default Email: - + Domyślny adres email: Miscellaneous - + Różne @@ -19205,17 +19313,17 @@ Możesz odłożyć zmiany lub je porzucić. s - + s Prompt on submit - + Pytaj przed wysłaniem zmian do serwera Mercurial - Mercurial + Mercurial @@ -19223,7 +19331,7 @@ Możesz odłożyć zmiany lub je porzucić. Revert - Odwróć zmiany + Odwróć zmiany @@ -19233,7 +19341,7 @@ Możesz odłożyć zmiany lub je porzucić. Revision: - + Poprawka: @@ -19251,12 +19359,12 @@ Możesz odłożyć zmiany lub je porzucić. Local filesystem: - + Lokalny system plików: e.g. https://[user[:pass]@]host[:port]/[path] - + np. https://[użytkownik[:hasło]@]host[:port]/[ścieżka] @@ -19269,12 +19377,12 @@ Możesz odłożyć zmiany lub je porzucić. Add target - + Dodaj produkt docelowy Target: - + Produkt docelowy: @@ -19282,7 +19390,7 @@ Możesz odłożyć zmiany lub je porzucić. DoubleTabWidget - + PodwójnyTabWidżet @@ -19290,7 +19398,7 @@ Możesz odłożyć zmiany lub je porzucić. TargetSettingsWidget - + WidżetDoUstawieńProduktuDocelowego @@ -19389,7 +19497,7 @@ Możesz odłożyć zmiany lub je porzucić. This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient's type such as start and final point, radius, etc. by drag & drop. - + Ten obszar pokazuje podgląd edytowanego gradientu. Możesz tutaj również zmieniać parametry specyficzne dla typu gradientu, takie jak: punkt początkowy i końcowy, promień, itp... poprzez przeciągnięcie i upuszczenie uchwytu. @@ -19419,12 +19527,12 @@ Możesz odłożyć zmiany lub je porzucić. Gradient Stops Editor - + Edytor punktów gradientu This area allows you to edit gradient stops. Double click on the existing stop handle to duplicate it. Double click outside of the existing stop handles to create a new stop. Drag & drop the handle to reposition it. Use right mouse button to popup context menu with extra actions. - + Ten obszar pozwala na edycję punktów gradientu. Aby skopiować istniejący punkt kliknij dwukrotnie na jego uchwyt. W celu stworzenia nowego punktu kliknij dwukrotnie poza istniejącymi uchwytami punków. Przeciągnij i upuść uchwyt aby go przesunąć. Naciśnij prawy przycisk myszy aby pokazać menu z dodatkowymi akcjami. @@ -19434,37 +19542,37 @@ Możesz odłożyć zmiany lub je porzucić. Reset Zoom - + Normalny rozmiar Position - + Pozycja Hue - + Barwa H - + H Saturation - + Nasycenie S - + S Sat - + Nasycenie @@ -19474,22 +19582,22 @@ Możesz odłożyć zmiany lub je porzucić. V - + V Val - + Wartość Alpha - + Kanał alfa A - + A @@ -19499,72 +19607,72 @@ Możesz odłożyć zmiany lub je porzucić. Spread - + Rozciąganie Color - + Kolor Current stop's color - + Kolor bieżącego punktu Show HSV specification - + Pokaż specyfikację HSV HSV - + HSV Show RGB specification - + Pokaż specyfikację RGB RGB - + RGB Current stop's position - + Pozycja bieżącego punktu % - + % Zoom In - + Powiększ Zoom Out - + Pomniejsz Toggle details extension - + Przełącz rozszerzenie ze szczegółami > - + > Linear Type - + Typ liniowy @@ -19574,109 +19682,109 @@ Możesz odłożyć zmiany lub je porzucić. Radial Type - + Typ radialny Conical Type - + Typ stożkowy Pad Spread - + Powtarzaj punkt brzegowy Repeat Spread - + Powtarzaj cały zakres Reflect Spread - + Powtarzaj z odbiciami Start X - + Początek X Start Y - + Początek Y Final X - + Koniec X Final Y - + Koniec Y Central X - + Środek X Central Y - + Środek Y Focal X - + Ogniskowa X Focal Y - + Ogniskowa Y Radius - + Promień Angle - + Kąt Linear - + Liniowy Radial - + Radialny Conical - + Stożkowy Pad - + Brak Repeat - + Powtórzone Reflect - + Odbite @@ -19697,12 +19805,12 @@ Możesz odłożyć zmiany lub je porzucić. Gradient Editor - Edytor gradientu + Edytor gradientu This area shows a preview of the gradient being edited. It also allows you to edit parameters specific to the gradient's type such as start and final point, radius, etc. by drag & drop. - + Ten obszar pokazuje podgląd edytowanego gradientu. Możesz tutaj również zmieniać parametry specyficzne dla typu gradientu, takie jak: punkt początkowy i końcowy, promień, itp... poprzez przeciągnięcie i upuszczenie uchwytu. @@ -19732,12 +19840,12 @@ Możesz odłożyć zmiany lub je porzucić. Gradient Stops Editor - + Edytor punktów gradientu This area allows you to edit gradient stops. Double click on the existing stop handle to duplicate it. Double click outside of the existing stop handles to create a new stop. Drag & drop the handle to reposition it. Use right mouse button to popup context menu with extra actions. - + Ten obszar pozwala na edycję punktów gradientu. Aby skopiować istniejący punkt kliknij dwukrotnie na jego uchwyt. W celu stworzenia nowego punktu kliknij dwukrotnie poza istniejącymi uchwytami punków. Przeciągnij i upuść uchwyt aby go przesunąć. Naciśnij prawy przycisk myszy aby pokazać menu z dodatkowymi akcjami. @@ -19747,37 +19855,37 @@ Możesz odłożyć zmiany lub je porzucić. Reset Zoom - + Normalny rozmiar Position - + Pozycja Hue - + Barwa H - + H Saturation - + Nasycenie S - + S Sat - + Nasycenie @@ -19787,22 +19895,22 @@ Możesz odłożyć zmiany lub je porzucić. V - + V Val - + Wartość Alpha - + Kanał alfa A - + A @@ -19812,72 +19920,72 @@ Możesz odłożyć zmiany lub je porzucić. Spread - + Rozciąganie Color - + Kolor Current stop's color - + Kolor bieżącego punktu Show HSV specification - + Pokaż specyfikację HSV HSV - + HSV Show RGB specification - + Pokaż specyfikację RGB RGB - + RGB Current stop's position - + Pozycja bieżącego punktu % - + % Zoom In - + Powiększ Zoom Out - + Pomniejsz Toggle details extension - + Przełącz rozszerzenie ze szczegółami > - + > Linear Type - + Typ liniowy @@ -19887,109 +19995,109 @@ Możesz odłożyć zmiany lub je porzucić. Radial Type - + Typ radialny Conical Type - + Typ stożkowy Pad Spread - + Powtarzaj punkt brzegowy Repeat Spread - + Powtarzaj cały zakres Reflect Spread - + Powtarzaj z odbiciami Start X - + Początek X Start Y - + Początek Y Final X - + Koniec X Final Y - + Koniec Y Central X - + Środek X Central Y - + Środek Y Focal X - + Ogniskowa X Focal Y - + Ogniskowa Y Radius - + Promień Angle - + Kąt Linear - + Liniowy Radial - + Radialny Conical - + Stożkowy Pad - + Brak Repeat - + Powtórzone Reflect - + Odbite @@ -19997,7 +20105,7 @@ Możesz odłożyć zmiany lub je porzucić. Gradient View - + Widok gradientów @@ -20026,17 +20134,17 @@ Możesz odłożyć zmiany lub je porzucić. Grad - + Grad Remove Gradient - + Usuń gradient Are you sure you want to remove the selected gradient? - + Czy chcesz usunąć zaznaczony gradient? @@ -20045,7 +20153,7 @@ Możesz odłożyć zmiany lub je porzucić. Select Gradient - + Wybierz gradient @@ -20053,7 +20161,7 @@ Możesz odłożyć zmiany lub je porzucić. Form - Formularz + Formularz Designer @@ -20062,22 +20170,22 @@ Możesz odłożyć zmiany lub je porzucić. Snapping - + Przyciąganie Item spacing - + Odstępy Snap margin - + Margines Qt Quick Designer - + Qt Quick Designer @@ -20176,47 +20284,47 @@ Możesz odłożyć zmiany lub je porzucić. Configuration: - + Konfiguracja: Name - + Nazwa IP or host name of the device - + IP lub nazwa hosta urządzenia Ports: - + Porty: SSH: - + SSH: Gdb server: - + Server Gdb: s - + s Generate SSH Key ... - + Generuj klucz SSH... Deploy Public Key ... - + Zainstaluj klucz publiczny... @@ -20224,27 +20332,27 @@ Możesz odłożyć zmiany lub je porzucić. Form - Formularz + Formularz Self-signed certificate - Własnoręcznie podpisany certyfikat + Własnoręcznie podpisany certyfikat Custom certificate: - Własny certyfikat: + Własny certyfikat: Choose certificate file (.cer) - Wybierz certyfikat (.cer) + Wybierz certyfikat (.cer) Key file: - Plik z kluczem: + Plik z kluczem: @@ -20252,62 +20360,62 @@ Możesz odłożyć zmiany lub je porzucić. WizardPage - StronaKreatora + StronaKreatora Specify basic information about the test class for which you want to generate skeleton source code file. - + Podaj podstawowe informacje o klasie testowej dla której chcesz wygenerować szkielet pliku z kodem źródłowym. Class name: - Nazwa klasy: + Nazwa klasy: Type: - Typ: + Typ: Test - Przetestuj + Test jednostkowy Benchmark - + Test wydajności File: - Plik: + Plik: Generate initialization and cleanup code - + Generuj inicjalizację i kod porządkujący Test slot: - + Slot z testem: Requires QApplication - + Wymaga QApplication Use a test data set - + Użyj zestawy danych testowych Test Class Information - + Informacja o klasie testowej @@ -20315,59 +20423,61 @@ Możesz odłożyć zmiany lub je porzucić. Clean repository - + Wyczyść składnicę The directory %1 could not be deleted. - + Nie można usunąć katalogu "%1". The file %1 could not be deleted. - + Nie można usunąć pliku "%1". There were errors when cleaning the repository %1: - + Wystąpiły błędy podczas usuwania składnicy %1: Delete... - Usuń... + Usuń... Name - + Nazwa Repository: %1 - Składnica: %1 + Składnica: %1 %1 bytes, last modified %2 - + %1 bajtów, ostatnio zmodyfikowano %2 Delete - Usuń + Usuń Do you want to delete %n files? - - + + Czy chcesz usunąć %n plik? + Czy chcesz usunąć %n pliki? + Czy chcesz usunąć %n plików? Cleaning %1 - + Czyszczenie %1 @@ -20375,7 +20485,7 @@ Możesz odłożyć zmiany lub je porzucić. None - Brak + Brak @@ -20385,12 +20495,12 @@ Możesz odłożyć zmiany lub je porzucić. Load on Startup - + Załadowany przy uruchomieniu Utilities - + Narzędzia @@ -20398,7 +20508,7 @@ Możesz odłożyć zmiany lub je porzucić. '%1' is not a valid property name - + "%1" nie jest poprawną nazwą właściwości @@ -20408,12 +20518,12 @@ Możesz odłożyć zmiany lub je porzucić. '%1' does not have members - + "%1" nie posiada składników '%1' is not a member of '%2' - + "%1" nie jest składnikiem "%2" @@ -20428,17 +20538,17 @@ Możesz odłożyć zmiany lub je porzucić. value might be 'undefined' - + wartość może być "niezdefiniowana" numerical value expected - + oczekiwano wartości liczbowej boolean value expected - + oczekiwano wartości boolowskiej @@ -20464,7 +20574,7 @@ Możesz odłożyć zmiany lub je porzucić. using string literals for ids is discouraged - + używanie stałych znakowych dla identyfikatorów nie jest zalecane @@ -20477,27 +20587,27 @@ Możesz odłożyć zmiany lub je porzucić. The file is not module file. - + To nie jest plik modułu. Unexpected element <%1> in <%2> - + Nieoczekiwany element <%1> w <%2> invalid value '%1' for attribute %2 in <%3> - + niepoprawna wartość "%1" dla atrybutu %2 w <%3> <%1> has no valid %2 attribute - + <%1> nie posiada poprawnego atrybutu %2 %1: %2 - + %1: %2 @@ -20515,12 +20625,12 @@ Możesz odłożyć zmiany lub je porzucić. package import requires a version number - + import pakietu wymaga podania numeru wersji package not found - + pakiet nie został odnaleziony @@ -20540,12 +20650,12 @@ Możesz odłożyć zmiany lub je porzucić. Filter - + Filtr Clear text - + Wyczyść tekst @@ -20558,7 +20668,7 @@ Możesz odłożyć zmiany lub je porzucić. The file %1 has been removed outside Qt Creator. Do you want to save it under a different name, or close the editor? - + Plik %1 został usunięty na zewnątrz Qt Creatora. Chcesz zachować go pod inną nazwą czy zamknąć edytor? @@ -20597,12 +20707,12 @@ Możesz odłożyć zmiany lub je porzucić. Copying Failed - + Błąd kopiowania You cannot copy more than 4 MB of binary data. - + Nie można skopiować więcej niż 4 MB danych binarnych. @@ -20617,22 +20727,22 @@ Możesz odłożyć zmiany lub je porzucić. Jump to Address in This Window - + Skocz do adresu w tym oknie Jump to Address in New Window - + Skocz do adresu w nowym oknie Jump to Address 0x%1 in This Window - + Skocz do adresu 0x%1 w tym oknie Jump to Address 0x%1 in New Window - + Skocz do adresu 0x%1 w nowym oknie @@ -20668,7 +20778,7 @@ Możesz odłożyć zmiany lub je porzucić. Desktop CMake Default target display name - + Desktop @@ -20728,7 +20838,7 @@ Możesz odłożyć zmiany lub je porzucić. Could not open url %1. - + Nie można otworzyć url %1. @@ -20916,7 +21026,7 @@ Możesz odłożyć zmiany lub je porzucić. Annotate revision "%1" - + Dołącz adnotację do poprawki "%1" @@ -20924,7 +21034,7 @@ Możesz odłożyć zmiany lub je porzucić. Cdb - Cdb + Cdb @@ -20932,17 +21042,17 @@ Możesz odłożyć zmiany lub je porzucić. <Unknown Type> - <Nieznany typ> + <Nieznany typ> <Unknown Value> - <Nieznana wartość> + <Nieznana wartość> <Unknown> - <Nieznany> + <Nieznany> @@ -20950,12 +21060,12 @@ Możesz odłożyć zmiany lub je porzucić. Unable to load the debugger engine library '%1': %2 - Nie udało się załadować biblioteki silnika debuggera '%1': %2 + Nie udało się załadować biblioteki silnika debuggera '%1': %2 Unable to resolve '%1' in the debugger engine library '%2' - Nie udało się rozwiązać symbolu '%1' w bibliotece silnika debuggera '%2' + Nie udało się rozwiązać symbolu '%1' w bibliotece silnika debuggera '%2' @@ -20963,17 +21073,17 @@ Możesz odłożyć zmiany lub je porzucić. Unable to set the image path to %1: %2 - Nie można ustawić ścieżki do obrazu programu na %1: %2 + Nie można ustawić ścieżki do obrazu na %1: %2 Unable to create a process '%1': %2 - Nie można utworzyć procesu "%1": %2 + Nie można utworzyć procesu "%1": %2 Attaching to a process failed for process id %1: %2 - Dołączenie do procesu o identyfikatorze %1 nie powiodło się: %2 + Dołączenie do procesu o identyfikatorze %1 nie powiodło się: %2 @@ -20985,12 +21095,12 @@ Możesz odłożyć zmiany lub je porzucić. &Languages - + &Języki Alt+L - + Alt+L &Views @@ -21003,7 +21113,7 @@ Możesz odłożyć zmiany lub je porzucić. Language - + Język @@ -21056,30 +21166,34 @@ Możesz odłożyć zmiany lub je porzucić. Snapshots - + Zrzuty Adjust Column Widths to Contents - + Wyrównaj szerokości kolumn do ich zawartości Always Adjust Column Widths to Contents - + Zawsze wyrównuj szerokości kolumn do ich zawartości Designer::Internal::FormEditorFactory + + Open Designer + Otwórz Designera + - This file can only be edited in Design Mode. + This file can only be edited in <b>Design</b> mode. - Open Designer - + Switch mode + Przełącz tryb @@ -21101,7 +21215,7 @@ Możesz odłożyć zmiany lub je porzucić. FakeVim - FakeVim + FakeVim @@ -21111,7 +21225,7 @@ Możesz odłożyć zmiany lub je porzucić. Regular expression: - + Wyrażenie regularne: @@ -21124,22 +21238,22 @@ Możesz odłożyć zmiany lub je porzucić. &Find/Replace - Z&najdź / zastąp + Z&najdź / zastąp Advanced Find - + Zaawansowane przeszukiwanie Open Advanced Find... - + Otwórz zaawansowane przeszukiwanie... Ctrl+Shift+F - Ctrl+Shift+F + Ctrl+Shift+F @@ -21147,7 +21261,7 @@ Możesz odłożyć zmiany lub je porzucić. Make - Make + Make @@ -21155,7 +21269,7 @@ Możesz odłożyć zmiany lub je porzucić. (no branch) - + (brak gałęzi) @@ -21353,12 +21467,13 @@ Możesz odłożyć zmiany lub je porzucić. Executing: %1 %2 - + Wykonywanie: %1 %2 + Unable to start mercurial process '%1': %2 - + Nie można rozpocząć procesu mercurial "%1": %2 @@ -21371,112 +21486,112 @@ Możesz odłożyć zmiany lub je porzucić. Mercurial - Mercurial + Mercurial Annotate Current File - Dołącz adnotację do bieżącego pliku + Dołącz adnotację do bieżącego pliku Annotate "%1" - Dołącz adnotację do "%1" + Dołącz adnotację do "%1" Diff Current File - Pokaż różnice w bieżącym pliku + Pokaż różnice w bieżącym pliku Diff "%1" - Pokaż różnice w "%1" + Pokaż różnice w "%1" Alt+H,Alt+D - + Alt+H,Alt+D Log Current File - + Dziennik bieżącego pliku Log "%1" - + Dziennik "%1" Alt+H,Alt+L - + Alt+H,Alt+L Status Current File - + Stan bieżącego pliku Status "%1" - + Stan "%1" Alt+H,Alt+S - + Alt+H,Alt+S Add - Dodaj + Dodaj Add "%1" - Dodaj "%1" + Dodaj "%1" Delete... - Usuń... + Usuń... Delete "%1"... - + Usuń "%1"... Revert Current File... - + Odwróć zmiany w bieżącym pliku... Revert "%1"... - + Odwróć zmiany w "%1"... Diff - + Pokaż różnice Log - + Dziennik Revert... - + Odwróć zmiany... Status - + Stan @@ -21491,12 +21606,12 @@ Możesz odłożyć zmiany lub je porzucić. Update... - + Uaktualnij... Import... - Importuj... + Importuj... @@ -21516,7 +21631,7 @@ Możesz odłożyć zmiany lub je porzucić. Alt+H,Alt+C - + Alt+H,Alt+C @@ -21536,7 +21651,7 @@ Możesz odłożyć zmiany lub je porzucić. Update - + Uaktualnij @@ -21551,22 +21666,22 @@ Możesz odłożyć zmiany lub je porzucić. Diff Selected Files - Pokaż różnice w zaznaczonych plikach + Pokaż różnice w zaznaczonych plikach &Undo - &Cofnij + &Cofnij &Redo - &Przywróć + &Przywróć There are no changes to commit. - + Brak zmian do wysłania. @@ -21609,7 +21724,7 @@ Możesz odłożyć zmiany lub je porzucić. Mercurial Command - + Komenda Mercurial @@ -21617,43 +21732,43 @@ Możesz odłożyć zmiany lub je porzucić. No executable specified - Nie podano programu do uruchomienia + Nie podano programu do uruchomienia "%1" timed out after %2ms. - "%1" bez odpowiedzi po %2ms. + "%1" bez odpowiedzi po %2ms. Unable to launch "%1": %2 - Nie można uruchomić "%1": %2 + Nie można uruchomić "%1": %2 "%1" crashed. - Wystąpił błąd w "%1" - proces zakończony. + Wystąpił błąd w "%1" - proces zakończony. "%1" terminated with exit code %2: %3 - "%1" zakończone kodem wyjściowym %2: %3 + "%1" zakończone kodem wyjściowym %2: %3 The client does not seem to contain any mapped files. - Wygląda na to, że klient nie ma żadnych zmapowanych plików. + Wygląda na to, że klient nie ma żadnych zmapowanych plików. Unable to determine the client root. Unable to determine root of the p4 client installation - + Nie można określić korzenia klienta. The repository "%1" does not exist. - + Składnica "%1" nie istnieje. @@ -21683,12 +21798,12 @@ Możesz odłożyć zmiany lub je porzucić. System Environment - Środowisko systemowe + Środowisko systemowe Clean Environment - Czyste środowisko + Czyste środowisko @@ -21696,12 +21811,12 @@ Możesz odłożyć zmiany lub je porzucić. Clear system environment - Wyczyść środowisko systemowe + Wyczyść środowisko systemowe Build Environment - Środowisko budowania + Środowisko budowania @@ -21709,7 +21824,7 @@ Możesz odłożyć zmiany lub je porzucić. Build Settings - Ustawienia budowania + Ustawienia budowania @@ -21717,7 +21832,7 @@ Możesz odłożyć zmiany lub je porzucić. Build Settings - Ustawienia budowania + Ustawienia budowania @@ -21729,7 +21844,7 @@ Możesz odłożyć zmiany lub je porzucić. Szczegóły - + Creates a plug-in for the QML runtime. @@ -21755,7 +21870,7 @@ Możesz odłożyć zmiany lub je porzucić. The project %1 could not be opened. - Nie można otworzyć projektu %1. + Nie można otworzyć projektu %1. @@ -21763,7 +21878,7 @@ Możesz odłożyć zmiany lub je porzucić. Path: - Ścieżka: + Ścieżka: @@ -21771,7 +21886,7 @@ Możesz odłożyć zmiany lub je porzucić. <No other projects in this session> - + <Brak innych projektów w tej sesji> @@ -21779,7 +21894,7 @@ Możesz odłożyć zmiany lub je porzucić. Dependencies - Zależności + Zależności @@ -21787,7 +21902,7 @@ Możesz odłożyć zmiany lub je porzucić. Dependencies - Zależności + Zależności @@ -21795,7 +21910,7 @@ Możesz odłożyć zmiany lub je porzucić. Editor Settings - Ustawienia edytora + Ustawienia edytora @@ -21803,7 +21918,7 @@ Możesz odłożyć zmiany lub je porzucić. Editor Settings - Ustawienia edytora + Ustawienia edytora @@ -21811,47 +21926,47 @@ Możesz odłożyć zmiany lub je porzucić. Open - Otwórz + Otwórz Open parent folder - + Otwórz katalog wyżej Open "%1" - Otwórz "%1" + Otwórz "%1" Open with - + Otwórz przy pomocy Choose folder... - + Wybierz katalog... Choose folder - + Wybierz katalog Show in Explorer... - Pokaż w "Explorer"... + Pokaż w "Explorer"... Show in Finder... - Pokaż w "Finder"... + Pokaż w "Finder"... Show containing folder... - Pokaż zawierający katalog... + Pokaż zawierający katalog... @@ -21866,7 +21981,7 @@ Możesz odłożyć zmiany lub je porzucić. Launching a file browser failed - + Nie można uruchomić przeglądarki plików @@ -21882,22 +21997,24 @@ Możesz odłożyć zmiany lub je porzucić. '%1' returned the following error: %2 - + "%1" zwrócił następujący błąd: + +%2 Settings... - Ustawienia... + Ustawienia... Launching Windows Explorer failed - Nie można uruchomić "Windows Explorer" + Nie można uruchomić "Windows Explorer" Could not find explorer.exe in path to launch Windows Explorer. - Nie można odnaleźć explorer.exe w ścieżce w celu uruchomienia "Windows Explorer". + Nie można odnaleźć explorer.exe w ścieżce w celu uruchomienia "Windows Explorer". @@ -21905,12 +22022,12 @@ Możesz odłożyć zmiany lub je porzucić. Select active build configuration - + Wybierz aktywną konfigurację budowania Select active run configuration - + Wybierz aktywną konfigurację uruchamiania @@ -21928,12 +22045,12 @@ Możesz odłożyć zmiany lub je porzucić. Project - Projekt + Projekt Select active project - + Wybierz aktywny projekt @@ -21943,7 +22060,7 @@ Możesz odłożyć zmiany lub je porzucić. <b>Target:</b> %1<br/> - + <b>Produkt docelowy:</b> %1<br/> @@ -21953,7 +22070,7 @@ Możesz odłożyć zmiany lub je porzucić. <br/>%1 - + <br/>%1 @@ -21961,7 +22078,7 @@ Możesz odłożyć zmiany lub je porzucić. Clone of %1 - + Klon %1 @@ -21969,12 +22086,12 @@ Możesz odłożyć zmiany lub je porzucić. Projects - Projekty + Projekty Other Project - + Inny projekt @@ -21982,7 +22099,7 @@ Możesz odłożyć zmiany lub je porzucić. Targets - + Produkty docelowe @@ -21990,7 +22107,7 @@ Możesz odłożyć zmiany lub je porzucić. Run Settings - Ustawienia uruchamiania + Ustawienia uruchamiania @@ -21998,7 +22115,7 @@ Możesz odłożyć zmiany lub je porzucić. Run Settings - Ustawienia uruchamiania + Ustawienia uruchamiania @@ -22006,18 +22123,19 @@ Możesz odłożyć zmiany lub je porzucić. No target defined. - + Brak zdefiniowanych produktów docelowych. Qt Creator - Qt Creator + Qt Creator Do you really want to remove the "%1" target? - + Czy chcesz usunąć produkt docelowy +"%1"? @@ -22026,27 +22144,27 @@ Możesz odłożyć zmiany lub je porzucić. Build Issues - Problemy podczas budowania + Problemy podczas budowania &Copy - S&kopiuj + S&kopiuj &Annotate - + Dołącz &adnotację Show Warnings - Pokazuj ostrzeżenia + Pokazuj ostrzeżenia Filter by categories - + Przefiltruj według kategorii @@ -22055,7 +22173,7 @@ Możesz odłożyć zmiany lub je porzucić. Desktop Generic desktop target display name - + Desktop @@ -22065,54 +22183,60 @@ Możesz odłożyć zmiany lub je porzucić. Desktop Qt4 Desktop target display name - + Desktop Symbian Emulator Qt4 Symbian Emulator target display name - + Emulator Symbiana Symbian Device Qt4 Symbian Device target display name - + Urządzenie Symbian Maemo Emulator Qt4 Maemo Emulator target display name - + Emulator Maemo Maemo Device Qt4 Maemo Device target display name - + Urządzenie Maemo Maemo Qt4 Maemo target display name - + Maemo - + + Qt Simulator + Qt4 Simulator target display name + Symulator Qt + + + <b>Device:</b> Not connected - + <b>Urządzenie:</b> Nie podłączone <b>Device:</b> %1 - + <b>Urządzenie:</b> %1 <b>Device:</b> %1, %2 - + <b>Urządzenie:</b> %1, %2 @@ -22129,12 +22253,12 @@ Możesz odłożyć zmiany lub je porzucić. -New Form- - + -Nowy formularz- - + Cannot save to file "%1": permission denied. - + Nie można zachować "%1": brak uprawnień. @@ -22144,7 +22268,7 @@ Możesz odłożyć zmiany lub je porzucić. Cannot write file: "%1". - + Nie można zapisać pliku: "%1". @@ -22152,12 +22276,12 @@ Możesz odłożyć zmiany lub je porzucić. Open file - Otwórz plik + Otwórz plik Save file - + Zachowaj plik @@ -22167,7 +22291,7 @@ Możesz odłożyć zmiany lub je porzucić. All files (*) - Wszystkie pliki (*) + Wszystkie pliki (*) @@ -22176,25 +22300,25 @@ Możesz odłożyć zmiany lub je porzucić. Library Title of library view - + Biblioteka Items Title of library items view - + Elementy Resources Title of library resources view - Zasoby + Zasoby <Filter> Library search input hint text - + <Filtr> @@ -22203,7 +22327,7 @@ Możesz odłożyć zmiany lub je porzucić. Navigator Title of navigator view - + Nawigator @@ -22211,7 +22335,7 @@ Możesz odłożyć zmiany lub je porzucić. About plugins - + Informacje o wtyczkach @@ -22219,27 +22343,27 @@ Możesz odłożyć zmiany lub je porzucić. Failed to create instance. - + Nie można utworzyć instancji. Not a QmlDesigner plugin. - + Nie jest to wtyczka QmlDesigner. - + Failed to create instance of file '%1': %2 - + Nie można utworzyć instancji pliku "%1": %2 Failed to create instance of file '%1'. - + Nie można utworzyć instancji pliku "%1". File '%1' is not a QmlDesigner plugin. - + Plik "%1" nie jest wtyczką QmlDesigner. @@ -22248,7 +22372,7 @@ Możesz odłożyć zmiany lub je porzucić. Properties Title of properties view. - Właściwości + Właściwości @@ -22256,73 +22380,73 @@ Możesz odłożyć zmiany lub je porzucić. H - + H S - + S V - + V Hue - + Barwa Sat - + Nasycenie Val - + Wartość Saturation - + Nasycenie Value - Wartość + Wartość R - R + R G - + G B - + B Red - + Czerwień Green - + Zieleń Blue - + Błękit @@ -22330,37 +22454,37 @@ Możesz odłożyć zmiany lub je porzucić. New Stop - + Nowy punkt Delete - Usuń + Usuń Flip All - + Odwróć wszystko Select All - Zaznacz wszystko + Zaznacz wszystko Zoom In - + Powiększ Zoom Out - + Pomniejsz Reset Zoom - + Normalny rozmiar @@ -22369,22 +22493,22 @@ Możesz odłożyć zmiany lub je porzucić. base state Implicit default state - + Stan bazowy Invalid state name - + Niepoprawna nazwa stanu The empty string as a name is reserved for the base state. - + Pusta nazwa jest zarezerwowana dla stanu bazowego. Name already used in another state - + Nazwa jest już użyta w innym stanie @@ -22392,13 +22516,13 @@ Możesz odłożyć zmiany lub je porzucić. base state - + Stan bazowy State%1 Default name for newly created states - + Stan%1 @@ -22407,43 +22531,43 @@ Możesz odłożyć zmiany lub je porzucić. States Title of Editor widget - + Stany QmlDesigner::Internal::SubComponentManagerPrivate - + QML Components - + Komponenty QML QmlDesigner::RewriterView - + Error parsing - + Błąd parsowania Internal error - + Błąd wewnętrzny "%1" - + "%1" line %1 - + linia %1 column %1 - + kolumna %1 @@ -22451,17 +22575,17 @@ Możesz odłożyć zmiany lub je porzucić. <a href="goToError">Go to error</a> - + <a href="goToError">Przejdź do błędu</a> %3 (%1:%2) - + %3 (%1:%2) Internal error (%1) - + Błąd wewnętrzny (%1) @@ -22469,97 +22593,97 @@ Możesz odłożyć zmiany lub je porzucić. &Undo - &Cofnij + &Cofnij &Redo - &Przywróć + &Przywróć Delete - Usuń + Usuń Delete "%1" - Usuń "%1" + Usuń "%1" Cu&t - Wy&tnij + Wy&tnij Cut "%1" - + Wytnij "%1" &Copy - S&kopiuj + S&kopiuj Copy "%1" - Skopiuj "%1" + Skopiuj "%1" &Paste - Wk&lej + Wk&lej Paste "%1" - + Wklej "%1" Select &All - + Zaznacz &wszystko Select All "%1" - + Zaznacz wszystkie "%1" Toggle Full Screen - + Przełącz pełny ekran &Restore Default View - + P&rzywróć domyślny widok Toggle &Left Sidebar - + Przełącz &lewy boczny pasek Toggle &Right Sidebar - + Przełącz p&rawy boczny pasek Projects - Projekty + Projekty File System - System plików + System plików Open Documents - Otwarte dokumenty + Otwarte dokumenty @@ -22567,37 +22691,37 @@ Możesz odłożyć zmiany lub je porzucić. Switch Text/Design - + Przełącz tekst / projekt Save %1 As... - Zachowaj %1 jako... + Zachowaj %1 jako... &Save %1 - &Zachowaj %1 + &Zachowaj %1 Revert %1 to Saved - Odwróć zmiany w %1 + Odwróć zmiany w %1 Close %1 - Zamknij %1 + Zamknij %1 Close All Except %1 - + Zamknij wszystko z wyjątkiem %1 Close Others - Zamknij inne + Zamknij inne @@ -22605,7 +22729,7 @@ Możesz odłożyć zmiany lub je porzucić. Frame rate - + Klatki na sekundę @@ -22613,7 +22737,7 @@ Możesz odłożyć zmiany lub je porzucić. Total time elapsed (ms) - + Łączny czas który upłynął @@ -22621,22 +22745,22 @@ Możesz odłożyć zmiany lub je porzucić. Resolution: - + Rozdzielczość: Clear - Wyczyść + Wyczyść New Graph - + Nowy graf Enabled - + Włączony @@ -22644,12 +22768,12 @@ Możesz odłożyć zmiany lub je porzucić. Write and evaluate QtScript expressions. - + Wpisz i wykonaj polecenia QtScript. Clear Output - + Wyczyść wyjście Triggers a completion in this scope @@ -22666,7 +22790,7 @@ Możesz odłożyć zmiany lub je porzucić. <Type expression to evaluate> - + <Wpisz wyrażenie do wykonania> @@ -22688,7 +22812,7 @@ Możesz odłożyć zmiany lub je porzucić. <%n items> - + <%n element> <%n elementy> <%n elementów> @@ -22700,27 +22824,27 @@ Możesz odłożyć zmiany lub je porzucić. Name - + Nazwa Value - Wartość + Wartość Type - Typ + Typ &Watch expression - + &Obserwuj wyrażenie &Remove watch - + &Usuń obserwowanie wyrażenia @@ -22730,12 +22854,12 @@ Możesz odłożyć zmiany lub je porzucić. &Group by item type - + &Grupuj według typów elementów <%n items> - + <%n element> <%n elementy> <%n elementów> @@ -22744,7 +22868,7 @@ Możesz odłożyć zmiany lub je porzucić. Watch expression '%1' - + Obserwuj wyrażenie "%1" @@ -22762,27 +22886,27 @@ Możesz odłożyć zmiany lub je porzucić. Add watch expression... - + Dodaj wyrażenie do obserwowania... Show uninspectable items - + Pokazuj elementy Go to file - + Przejdź do pliku Watch expression - + Obserwuj wyrażenie Expression: - + Wyrażenie: @@ -22790,12 +22914,12 @@ Możesz odłożyć zmiany lub je porzucić. Name - + Nazwa Value - Wartość + Wartość @@ -22803,7 +22927,7 @@ Możesz odłożyć zmiany lub je porzucić. Stop watching - + Zatrzymaj obserwowanie @@ -22811,12 +22935,12 @@ Możesz odłożyć zmiany lub je porzucić. Output - Komunikaty + Komunikaty Clear - Wyczyść + Wyczyść @@ -22824,22 +22948,22 @@ Możesz odłożyć zmiany lub je porzucić. Failed to connect to debugger - + Nie można połączyć się z debuggerem Could not connect to debugger server. - + Nie można połączyć się z serwerem debuggera. Invalid project, debugging canceled. - + Niepoprawny projekt, anulowano debugowanie. Cannot find project run configuration, debugging canceled. - + Nie można odnaleźć konfiguracji uruchamiania, anulowano debugowanie. @@ -22883,7 +23007,7 @@ Możesz odłożyć zmiany lub je porzucić. Start Debugging C++ and QML Simultaneously... - + Rozpocznij jednoczesne debugowanie QML i C++... @@ -22915,17 +23039,17 @@ Please check your project settings. QML engine: - + Silnik QML: Object Tree - + Drzewo obiektów Properties and Watchers - + Właściwości i zmienne obserwowane @@ -22943,27 +23067,27 @@ Please check your project settings. Rename... - Zmień nazwę... + Zmień nazwę... New id: - Nowy identyfikator: + Nowy identyfikator: Unused variable - + Nieużywana zmienna Rename id '%1'... - Zmień nazwę identyfikatora "%1"... + Zmień nazwę identyfikatora "%1"... <Select Symbol> - <Wybierz symbol> + <Wybierz symbol> @@ -23002,7 +23126,7 @@ Please check your project settings. Cancel - Anuluj + Anuluj @@ -23020,27 +23144,27 @@ Please check your project settings. Creates a Qt QML file. - Tworzy plik QML Qt. + Tworzy plik Qt QML. Qt QML File - Plik QML Qt + Plik Qt QML Qt Quick - + Qt Quick Ctrl+Alt+R - Ctrl+Alt+R + Ctrl+Alt+R Follow Symbol Under Cursor - + Podąż za symbolem pod kursorem @@ -23048,7 +23172,7 @@ Please check your project settings. Unfiltered - Nieprzefiltrowane + Nieprzefiltrowane @@ -23056,7 +23180,7 @@ Please check your project settings. Indexing - Indeksowanie + Indeksowanie @@ -23072,12 +23196,12 @@ Please check your project settings. New QML Project - Nowy QML projekt + Nowy projekt QML This wizard generates a QML application project. - Ten kreator generuje projekt aplikacji QML. + Ten kreator generuje projekt aplikacji QML. @@ -23085,19 +23209,19 @@ Please check your project settings. Qt QML Application - + Aplikacja Qt QML Creates a Qt QML application. - + Tworzy aplikację Qt QML. File generated by QtCreator qmlproject Template Comment added to generated .qmlproject file - + Plik wygenerowany przez QtCreatora @@ -23123,7 +23247,7 @@ Please check your project settings. Qt Quick Project - + Projekt Qt Quick @@ -23159,19 +23283,19 @@ Please check your project settings. Import Existing Qt QML Directory - Import istniejącego katalogu QML + Import istniejącego katalogu QML Creates a QML project from an existing directory of QML files. - Tworzy projekt QML na podstawie istniejącego katalogu z plikami QML. + Tworzy projekt QML na podstawie istniejącego katalogu z plikami QML. File generated by QtCreator qmlproject Template Comment added to generated .qmlproject file - + Plik wygenerowany przez Qt Creatora @@ -23197,7 +23321,7 @@ Please check your project settings. Failed opening project '%1': Project already open - Nie można otworzyć projektu "%1": projekt jest już otwarty + Nie można otworzyć projektu "%1": projekt jest już otwarty @@ -23221,7 +23345,7 @@ Please check your project settings. Main QML File: - Główny plik QML: + Główny plik QML: @@ -23239,7 +23363,7 @@ Please check your project settings. <Current File> - <Bieżący plik> + <Bieżący plik> @@ -23247,7 +23371,7 @@ Please check your project settings. Run QML Script - + Uruchom skrypt QML @@ -23255,12 +23379,12 @@ Please check your project settings. Starting %1 %2 - + Uruchamianie %1 %2 %1 exited with code %2 - %1 zakończone kodem %2 + %1 zakończone kodem %2 @@ -23268,7 +23392,7 @@ Please check your project settings. Run - Uruchom + Uruchom @@ -23276,68 +23400,74 @@ Please check your project settings. Testing configuration... - + Testowanie konfiguracji... Stop Test - + Zatrzymaj test Device configuration test failed: %1 - + Test konfiguracji urządzenia zakończony niepowodzeniem: +%1 Did you start Qemu? - + +Czy uruchomiłeś Qemu? Qt version mismatch! Expected Qt on device: 4.6.2 or later. - + Niezgodność wersji Qt. Oczekiwano wersji 4.6.2 lub późniejszej dla urządzenia. Close - Zamknij + Zamknij Device configuration test failed: Unexpected output: %1 - + Test konfiguracji urządzenia zakończony niepowodzeniem: Nieoczekiwany komunikat: +%1 Hardware architecture: %1 - + Architektura sprzętu: %1 + Kernel version: %1 - + Wersja kernela: %1 + Device configuration successful. - + Konfiguracja urządzenia zakończona pomyślnie. + No Qt packages installed. - + Brak zainstalowanych pakietów Qt. List of installed Qt packages: - + Lista zainstalowanych pakietów Qt: @@ -23346,12 +23476,12 @@ Did you start Qemu? Start Maemo Emulator - + Uruchom emulator Maemo Stop Maemo Emulator - + Zatrzymaj emulator Maemo @@ -23359,7 +23489,7 @@ Did you start Qemu? New Maemo Run Configuration - + Nowa konfiguracja uruchamiania Maemo @@ -23377,37 +23507,37 @@ Did you start Qemu? Run configuration name: - + Nazwa konfiguracji uruchamiania: <a href="%1">Manage device configurations</a> - + <a href="%1">Zarządzanie konfiguracjami urządzenia</a> <a href="%1">Set Debugger</a> - + <a href="%1">Ustaw debugger</a> Device Configuration: - + Konfiguracja urządzenia: Executable: - Program: + Program: Arguments: - Argumenty: + Argumenty: Simulator: - + Symulator: @@ -23415,77 +23545,77 @@ Did you start Qemu? Files to deploy: %1. - + Pliki do zainstalowania: %1. Deploying - + Instalowanie No device configuration set for run configuration. - + Brak konfiguracji urządzenia dla konfiguracji uruchamiania. Cleaning up remote leftovers first ... - + Porządkowanie zdalnych pozostałości... Initial cleanup canceled by user. - + Wstępne porządkowanie anulowane przez użytkownika. Error running initial cleanup: %1. - + Błąd podczas wstępnego porządkowania: %1. Initial cleanup done. - + Zakończono wstępne porządkowanie. Starting remote application. - + Uruchamianie zdalnej aplikacji. Deployment canceled by user. - + Instalowanie anulowane przez użytkownika. Deployment finished. - + Zakończono instalowanie. Remote execution canceled due to user request. - + Zdalne uruchomienie anulowane na żądanie użytkownika. Error running remote process: %1 - + Błąd zdalnego procesu: %1 Finished running remote process. - + Zakończono zdalny proces. Remote Execution Failure - + Błąd zdalnego procesu Deployment failed: %1 - + Instalacja zakończona niepowodzeniem: %1 @@ -23500,7 +23630,7 @@ Did you start Qemu? Run on device - + Uruchom na urządzeniu @@ -23508,54 +23638,54 @@ Did you start Qemu? Choose public key file - + Wybierz plik z kluczem publicznym Stop deploying - + Zatrzymaj instalowanie Deployment Failed - + Instalacja zakończona niepowodzeniem New Device Configuration %1 Standard Configuration name with number - + Nowa konfiguracja urządzenia %1 Public Key Files(*.pub);;All Files (*) - + Pliki z kluczami publicznymi (*.pub); Wszystkie pliki (*) Could not read public key file '%1'. - + Nie można odczytać pliku z publicznym kluczem "%1". Key deployment failed: %1 - + Instalacja klucza zakończona niepowodzeniem: %1 Deployment Succeeded - + Instalacja zakończona pomyślnie Key was successfully deployed. - + Klucz został pomyślnie zainstalowany. Deploy Public Key ... - + Zainstaluj klucz publiczny... @@ -23564,7 +23694,7 @@ Did you start Qemu? Create sis Package Create sis package build step name - + Utwórz pakiet sis @@ -23572,25 +23702,25 @@ Did you start Qemu? Create sis Package - + Utwórz pakiet sis Qt4ProjectManager::Internal::S60CreatePackageStepConfigWidget - + self-signed - + własnoręcznie podpisany signed with certificate %1 and key file %2 - + podpisany certyfikatem %1 i kluczem %2 <b>Create sis Package:</b> %1 - + <b>Utwórz pakiet sis:</b> %1 @@ -23598,27 +23728,27 @@ Did you start Qemu? Using Qt Version "%1" - Używając wersji "%1" + Używając wersji "%1" New configuration - Nowa konfiguracja + Nowa konfiguracja New Configuration Name: - Nazwa nowej konfiguracji: + Nazwa nowej konfiguracji: %1 Debug - %1 Debug + %1 Debug %1 Release - %1 Release + %1 Release @@ -23626,36 +23756,36 @@ Did you start Qemu? Qt4 - + Qt4 Qt Versions - + Wersje Qt Qt C++ Project - + Projekt Qt C++ Qt4ProjectManager::Internal::Qt4TargetFactory - + Debug - + Debug Release - + Release QtVersion - + No qmake path set Nie ustawiono ścieżki do qmake @@ -23672,10 +23802,10 @@ Did you start Qemu? Could not determine the path to the binaries of the Qt installation, maybe the qmake path is wrong? - + Nie można określić ścieżki do plików binarnych instalacji Qt. Sprawdź ścieżkę do qmake. - + The Qt Version has no toolchain. Ta wersja Qt nie posiada zestawu narzędzi. @@ -23685,12 +23815,12 @@ Did you start Qemu? Mobile Qt Application - + Mobilna aplikacja Qt Creates a mobile Qt Gui Application with one form. - + Tworzy mobilną aplikację Qt Gui z jednym formularzem. @@ -23699,12 +23829,12 @@ Did you start Qemu? Modules - Moduły + Moduły Qt Versions - + Wersje Qt @@ -23712,78 +23842,78 @@ Did you start Qemu? Qt Creator can set up the following targets: - + Qt Creator może ustawić następujące produkty docelowe: Qt Version - + Wersja Qt Status - + Stan Import Is this an import of an existing build or a new one? - + Import New Is this an import of an existing build or a new one? - Nowy + Nowy - + Qt Creator can set up the following targets for project <b>%1</b>: %1: Project name - + Qt Creator może ustawić następujące produkty docelowe dla projektu <b>%1</b>: Choose a directory to scan for additional shadow builds - + Wybierz katalog w którym przeszukiwać dodatkowych wersji zbudowanych na zewnątrz No builds found - + Brak zbudowanych wersji No builds for project file "%1" were found in the folder "%2". %1: pro-file, %2: directory that was checked. - + Brak zbudowanych wersji dla projektu "%1" w katalogu "%2". <b>Error:</b> Severity is Task::Error - + <b>Błąd:</b> <b>Warning:</b> Severity is Task::Warning - + <b>Ostrzeżenie:</b> Setup targets for your project - + Ustaw produkty docelowe dla projektu Build Directory - + Katalog wersji Import existing shadow build... - + Zaimportuj istniejącą wersję zbudowaną w innym miejscu... @@ -23791,12 +23921,12 @@ Did you start Qemu? Qt Unit Test - + Test jednostkowy Qt Creates a Qt Unit Test. - + Tworzy test jednostkowy Qt. @@ -23804,7 +23934,7 @@ Did you start Qemu? This wizard generates a Qt unit test consisting of a single source file with a test class. - + Ten kreator generuje test jednostkowy składający się z pojedynczego pliku źródłowego z klasą testową. @@ -23817,13 +23947,13 @@ Did you start Qemu? Annotate revision "%1" - + Dołącz adnotację do poprawki "%1" TextEditor - + Text Editor Edytor tekstu @@ -23868,47 +23998,47 @@ Did you start Qemu? Version Control - System kontroli wersji + System kontroli wersji The file '%1' could not be deleted. - Nie można skasować pliku "%1". + Nie można usunąć pliku "%1". Choose repository directory - + Wybierz katalog składnicy The directory '%1' is already managed by a version control system (%2). Would you like to specify another directory? - + Katalog "%1" jest już zarządzany przez system kontroli wersji (%2). Czy chcesz podać inny katalog? Repository already under version control - + Składnica znajduje się już w systemie kontroli wersji Repository created - + Utworzono składnicę A version control repository has been created in %1. - + Składnica systemu kontroli wersji została utworzona w %1. Repository creation failed - + Błąd podczas tworzenia składnicy A version control repository could not be created in %1. - + Nie można utworzyć składnicy systemu kontroli wersji w %1. @@ -23916,17 +24046,17 @@ Did you start Qemu? Cannot open remote file '%1': %2 - + Nie można otworzyć zdalnego pliku "%1": %2 Cannot open '%1': %2 - Nie można otworzyć "%1": %2 + Nie można otworzyć "%1": %2 Unable to acquire a device for port '%1'. It appears to be in use. - + Nie można pozyskać urządzenia na porcie "%1". Wygląda że jest w użyciu. @@ -23943,22 +24073,22 @@ Did you start Qemu? Form - Formularz + Formularz &Path: - + Ś&cieżka: &Display: - + &Wyświetl: entries - + wpisów @@ -23971,7 +24101,7 @@ Did you start Qemu? Start Simultaneous QML and C++ Debugging - + Rozpocznij jednoczesne debugowanie QML i C++ @@ -23986,17 +24116,17 @@ Did you start Qemu? 127.0.0.1 - 127.0.0.1 + 127.0.0.1 Project: - + Projekt: <No project> - + <Brak projektu> @@ -24019,7 +24149,7 @@ Did you start Qemu? Package contents: - + Zawartość pakietu: @@ -24027,57 +24157,57 @@ Did you start Qemu? SSH Key Configuration - + Konfiguracja klucza SSH Options - Opcje + Opcje Key size: - + Rozmiar klucza: Key algorithm: - + Algorytm klucza: RSA - + RSA DSA - + DSA Key - Klucz + Klucz Generate SSH Key - + Generuj klucz SSH Save public Key... - + Zachowaj klucz publiczny... Save private Key... - + Zachowaj klucz prywatny... Close - Zamknij + Zamknij @@ -24090,7 +24220,7 @@ Did you start Qemu? characters - + znakach @@ -24134,12 +24264,12 @@ name <email> alias <email> Source - + Źródło Source Size - + Rozmiar źródła @@ -24167,7 +24297,7 @@ name <email> alias <email> Expression - Wyrażenie + Wyrażenie @@ -24175,28 +24305,28 @@ name <email> alias <email> Effect - + Efekt Blur Radius: - + Promień rozmycia: Pixel Size: - + Rozmiar piksli: x Offset: - + Przesunięcie x: y Offset: - + Przesunięcie y: @@ -24204,12 +24334,12 @@ name <email> alias <email> Reset - Przywróć + Przywróć Set Expression - + Ustaw wyrażenie @@ -24218,22 +24348,22 @@ name <email> alias <email> Font - Czcionka + Czcionka Size - + Rozmiar Font Style - + Styl czcionki Style - + Styl @@ -24241,22 +24371,22 @@ name <email> alias <email> Geometry - + Geometria Position - + Pozycja Size - + Rozmiar Lock aspect ratio - + Zablokuj aspekt @@ -24269,17 +24399,17 @@ name <email> alias <email> Source - + Źródło Fill Mode - + Tryb wypełniania Aliasing - + Antyaliasing @@ -24289,7 +24419,7 @@ name <email> alias <email> Source Size - + Rozmiar źródła @@ -24302,12 +24432,12 @@ name <email> alias <email> Layout - + Rozmieszczenie Anchors - + Kotwice @@ -24317,7 +24447,7 @@ name <email> alias <email> Target - + Produkt docelowy @@ -24327,7 +24457,7 @@ name <email> alias <email> Margin - + Margines @@ -24335,17 +24465,17 @@ name <email> alias <email> Manipulation - + Manipulacja Rotation - + Rotacja z - + z @@ -24353,27 +24483,27 @@ name <email> alias <email> Colors - + Kolory Stops - + Punkty Gradient Stops - + Punkty gradientu Rectangle - + Prostokąt Border - + Brzeg @@ -24381,17 +24511,17 @@ name <email> alias <email> Rectangle - + Prostokąt Border - + Brzeg Radius - + Promień @@ -24399,27 +24529,27 @@ name <email> alias <email> Color - + Kolor Text - Tekst + Tekst Style - + Styl Selection - Zaznaczone + Zaznaczenie Selected - + Zaznaczony @@ -24428,7 +24558,7 @@ name <email> alias <email> Text - Tekst + Tekst @@ -24443,7 +24573,7 @@ name <email> alias <email> Aliasing - + Antyaliasing @@ -24461,27 +24591,27 @@ name <email> alias <email> special properties - + specjalne właściwości layout and geometry - + rozmieszczenie i geometria Geometry - + Geometria advanced properties - + zaawansowane właściwości Advanced - + Zaawansowane @@ -24494,7 +24624,7 @@ name <email> alias <email> Format - + Format @@ -24527,17 +24657,17 @@ name <email> alias <email> Flags - + Flagi Read Only - + Tylko do odczytu Cursor Visible - + Kursor widoczny @@ -24555,7 +24685,7 @@ name <email> alias <email> Transformation - + Transformacja @@ -24610,12 +24740,12 @@ name <email> alias <email> Scale - + Skala Rotation - + Rotacja @@ -24624,12 +24754,12 @@ name <email> alias <email> Type - Typ + Typ Id - + Identyfikator @@ -24638,22 +24768,22 @@ name <email> alias <email> Visibility - + Widoczność Is visible - + jest widoczny Clip - + Klip Opacity - + Nieprzezroczystość @@ -24661,17 +24791,17 @@ name <email> alias <email> WebView - + WidokSieci Preferred Width - + Preferowana szerokość Page Height - + Wysokość strony @@ -24679,12 +24809,12 @@ name <email> alias <email> Locked - Zablokowany + Zablokowany Reset to Default Layout - Przywróć domyślne rozmieszczenie + Przywróć domyślne rozmieszczenie Reset to default layout @@ -24696,7 +24826,7 @@ name <email> alias <email> Could not connect to host. - + Nie można połączyć się z hostem. @@ -24709,7 +24839,7 @@ name <email> alias <email> Error sending input - + Błąd podczas wysyłania wejścia @@ -24717,48 +24847,48 @@ name <email> alias <email> Error setting up SFTP subsystem - + Błąd podczas ustanawiania podsystemu SFTP Could not open file '%1' - + Nie można otworzyć pliku "%1" Could not uplodad file '%1' - + Nie można wysłać pliku "%1" Could not copy remote file '%1' to local file '%2' - + Nie można skopiować pliku zdalnego "%1" do pliku lokalnego "%2" Could not create remote directory - + Nie można utworzyć zdalnego katalogu Could not remove remote directory - + Nie można usunąć zdalnego katalogu Could not get remote directory contents - + Nie można otrzymać zawartości zdalnego katalogu Could not remove remote file - + Nie można usunąć zdalnego pliku Could not change remote working directory - + Nie można zmienić zdalnego katalogu roboczego @@ -24766,18 +24896,18 @@ name <email> alias <email> Error creating temporary files. - + Błąd podczas tworzenia plików tymczasowych. Error generating keys: %1 - + Błąd podczas generowania kluczy: %1 Error reading temporary files. - + Błąd podczas odczytywania plików tymczasowych. @@ -24785,7 +24915,7 @@ name <email> alias <email> Cannot open %1: %2 - Nie można otworzyć %1: %2 + Nie można otworzyć %1: %2 @@ -24795,7 +24925,7 @@ name <email> alias <email> Error in %1 at %2: %3 - + Błąd w %1 w linii %2: %3 @@ -24805,7 +24935,7 @@ name <email> alias <email> Unable to open a file for writing in %1: %2 - + Nie można otworzyć pliku %1 do zapisu: %2 @@ -24826,12 +24956,12 @@ name <email> alias <email> %1 - Configuration Error - + %1 - Błąd konfiguracji Settings... - Ustawienia... + Ustawienia... @@ -24839,7 +24969,7 @@ name <email> alias <email> C++ - C++ + C++ @@ -24847,7 +24977,7 @@ name <email> alias <email> Unable to run '%1': %2 - Nie można uruchomić "%1": %2 + Nie można uruchomić "%1": %2 @@ -24855,22 +24985,22 @@ name <email> alias <email> Binary - Binarny + Plik binarny Toolchains - + Zestawy narzędzi Duplicate binary - + Powielony plik binarny The binary '%1' already exists. - + Plik binarny "%1" już istnieje. @@ -24878,17 +25008,17 @@ name <email> alias <email> Desktop/General - + Desktop / Ogólne Symbian - + Symbian Maemo - + Maemo @@ -24896,7 +25026,7 @@ name <email> alias <email> Select binary and toolchains - + Wybierz plik binarny i zestawy narzędzi @@ -24906,7 +25036,7 @@ name <email> alias <email> Path: - Ścieżka: + Ścieżka: @@ -24914,7 +25044,7 @@ name <email> alias <email> Running requested... - Zażądano uruchomienia... + Zażądano uruchomienia... @@ -24929,22 +25059,22 @@ name <email> alias <email> '%1' contains no identifier - "%1" nie zawiera identyfikatora + "%1" nie zawiera identyfikatora String literal %1 - Stała znakowa %1 + Stała znakowa %1 Cowardly refusing to evaluate expression '%1' with potential side effects - Celowa odmowa obliczenia wyrażenia '%1' z możliwymi efektami ubocznymi + Tchórzliwa odmowa obliczenia wyrażenia '%1' z możliwymi efektami ubocznymi Pdb I/O Error - + Błąd wejścia / wyjścia Pdb @@ -24959,7 +25089,7 @@ name <email> alias <email> The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again. - Ostatnie wywołanie funkcji waitFor...() zakończyło się niepowodzeniem po określonym czasie. Stan QProcess się nie zmienił, możesz ponownie spróbować wywołać waitFor...(). + Ostatnie wywołanie funkcji waitFor...() zakończyło się niepowodzeniem po określonym czasie. Stan QProcess się nie zmienił, możesz ponownie spróbować wywołać waitFor...(). @@ -24982,7 +25112,7 @@ name <email> alias <email> Enter the name of the session: - + Podaj nazwę sesji: @@ -24990,12 +25120,12 @@ name <email> alias <email> Run - Uruchom + Uruchom Build - Budowanie + Zbuduj @@ -25003,7 +25133,7 @@ name <email> alias <email> whole document - + cały dokument @@ -25011,15 +25141,15 @@ name <email> alias <email> Open File - Otwórz plik + Otwórz plik QmlDesigner::Internal::ModelPrivate - + invalid type - + niepoprawny typ @@ -25027,7 +25157,7 @@ name <email> alias <email> Qt Quick - + Qt Quick @@ -25036,7 +25166,7 @@ name <email> alias <email> Engine %1 engine number - + Silnik %1 @@ -25044,7 +25174,7 @@ name <email> alias <email> <No project> - + <Brak projektu> @@ -25052,13 +25182,14 @@ name <email> alias <email> Failed to preview Qt Quick file - + Nie można utworzyć podglądu pliku Qt Quick Could not preview Qt Quick (QML) file. Reason: %1 - + Nie można utworzyć podglądu pliku Qt Quick (QML). Przyczyna: +%1 @@ -25066,7 +25197,7 @@ name <email> alias <email> QML - + QML @@ -25074,12 +25205,12 @@ name <email> alias <email> Local File Path - + Ścieżka do lokalnego pliku Remote File Path - + Ścieżka do zdalnego pliku @@ -25087,12 +25218,12 @@ name <email> alias <email> Creating package file ... - + Tworzenie pliku pakietu... Cannot open MADDE config file '%1'. - + Nie można otworzyć pliku konfiguracyjnego MADDE "%1". @@ -25117,7 +25248,7 @@ name <email> alias <email> Package created. - + Utworzono pakiet. @@ -25150,7 +25281,7 @@ name <email> alias <email> <b>Create Package:</b> - + <b>Utwórz pakiet:</b> @@ -25158,7 +25289,7 @@ name <email> alias <email> New Maemo Run Configuration - + Nowa konfiguracja uruchamiania Maemo @@ -25166,7 +25297,7 @@ name <email> alias <email> Maemo Device Configurations - Konfiguracje urządzenia Maemo + Konfiguracje urządzenia Maemo @@ -25174,23 +25305,24 @@ name <email> alias <email> Save public key file - + Zachowaj plik z kluczem publicznym Save private key file - + Zachowaj plik z kluczem prywatnym Error writing file - + Błąd zapisywania do pliku Could not write file '%1': %2 - + Nie można zapisać pliku "%1": + %2 @@ -25203,17 +25335,17 @@ name <email> alias <email> SDK Location - Położenie SDK + Położenie SDK Qt Location - Położenie Qt + Położenie Qt Choose Qt folder - + Wybierz katalog Qt @@ -25221,7 +25353,7 @@ name <email> alias <email> No Qt installed - Brak zainstalowanego Qt + Brak zainstalowanego Qt @@ -25229,22 +25361,22 @@ name <email> alias <email> Step 1 of 2: Choose GnuPoc folder - + Krok 1 z 2: Wybierz katalog GnuPoc Step 2 of 2: Choose Qt folder - + Krok 2 z 2: Wybierz katalog Qt Adding GnuPoc - + Dodawanie GnuPoc GnuPoc and Qt folders must not be identical. - + Katalogi GnuPoc i Qt nie mogą być takie same. @@ -25252,12 +25384,12 @@ name <email> alias <email> The Symbian SDK and the project sources must reside on the same drive. - + Symbian SDK i źródła projektu muszą być na wspólnym dysku. The Symbian SDK was not found for Qt version %1. - + Brak Symbian SDK dla Qt w wersji %1. @@ -25267,7 +25399,7 @@ name <email> alias <email> The Symbian toolchain does not handle special characters in a project path well. - + Zestaw narzędzi dla Symbiana nie obsługuje również znaków specjalnych w ścieżkach projektów. @@ -25275,22 +25407,22 @@ name <email> alias <email> Evaluating - + Ewaluowanie Qt4ProjectManager::QtVersion - + The Qt version is invalid: %1 %1: Reason for being invalid - + Wersja Qt nie jest poprawna: %1 The qmake command "%1" was not found or is not executable. %1: Path to qmake executable - + Komenda qmake "%1" nie została odnaleziona lub nie jest plikiem wykonywanlym. @@ -25324,7 +25456,7 @@ name <email> alias <email> Invalid Id - + Niepoprawny identyfikator @@ -25332,35 +25464,37 @@ name <email> alias <email> Invalid Id - + Niepoprawny identyfikator QmlDesigner::InvalidArgumentException - + Failed to create item of type %1 - + Nie można utworzyć elementu typu %1 InvalidIdException - + Ids have to be unique: - + Identyfikatory muszą być unikatowe: Invalid Id: - + Niepoprawny identyfikator: Only alphanumeric characters and underscore allowed. Ids must begin with a lowercase letter. - + +Dozwolone są tylko znaki alfanumeryczne i podkreślenia. +Identyfikatory muszą rozpoczynać się małą literą. diff --git a/src/libs/3rdparty/net7ssh/src/src.pro b/src/libs/3rdparty/net7ssh/src/src.pro index a3eca025d79..1584dc722c0 100644 --- a/src/libs/3rdparty/net7ssh/src/src.pro +++ b/src/libs/3rdparty/net7ssh/src/src.pro @@ -12,7 +12,7 @@ include(../net7ssh_dependencies.pri) win32 { LIBS += -lWs2_32 - win32-msvc*: QMAKE_CXXFLAGS += -wd4250 -wd4251 -wd4290 + win32-msvc*: QMAKE_CXXFLAGS += -wd4100 -wd4101 -wd4250 -wd4251 -wd4290 DEFINES += _CRT_SECURE_NO_WARNINGS DEFINES += NE7SSH_EXPORTS=1 _WINDLL _USRDLL _CONSOLE _WINDOWS diff --git a/src/libs/utils/detailsbutton.cpp b/src/libs/utils/detailsbutton.cpp index cd038d09f93..d255f9245c0 100644 --- a/src/libs/utils/detailsbutton.cpp +++ b/src/libs/utils/detailsbutton.cpp @@ -38,10 +38,34 @@ using namespace Utils; +FadingPanel::FadingPanel(QWidget *parent) : QWidget(parent), m_opacityEffect(0) + +{ + m_opacityEffect = new QGraphicsOpacityEffect; + m_opacityEffect->setOpacity(0); + setGraphicsEffect(m_opacityEffect); + + // Workaround for issue with QGraphicsEffect. GraphicsEffect + // currently clears with Window color. Remove if flickering + // no longer occurs on fade-in + QPalette pal; + pal.setBrush(QPalette::All, QPalette::Window, Qt::transparent); + setPalette(pal); +} + +void FadingPanel::fadeTo(float value) +{ + QPropertyAnimation *animation = new QPropertyAnimation(m_opacityEffect, "opacity"); + animation->setDuration(200); + animation->setEndValue(value); + animation->start(QAbstractAnimation::DeleteWhenStopped); +} + DetailsButton::DetailsButton(QWidget *parent) : QAbstractButton(parent), m_fader(0) { setCheckable(true); setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); + setText(tr("Details")); } QSize DetailsButton::sizeHint() const @@ -114,7 +138,6 @@ QPixmap DetailsButton::cacheRendering(const QSize &size, bool checked) p.setRenderHint(QPainter::Antialiasing, true); p.translate(0.5, 0.5); p.setPen(Qt::NoPen); - QColor color = palette().highlight().color(); if(!checked) { lg.setColorAt(0, QColor(0, 0, 0, 10)); lg.setColorAt(1, QColor(0, 0, 0, 16)); @@ -133,12 +156,11 @@ QPixmap DetailsButton::cacheRendering(const QSize &size, bool checked) p.setPen(palette().color(QPalette::Text)); - QString text = tr("Details"); - QRect textRect = p.fontMetrics().boundingRect(text); + QRect textRect = p.fontMetrics().boundingRect(text()); textRect.setWidth(textRect.width() + 15); textRect.moveCenter(rect().center()); - p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text); + p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text()); int arrowsize = 15; QStyleOption arrowOpt; diff --git a/src/libs/utils/detailsbutton.h b/src/libs/utils/detailsbutton.h index f72f9840534..90f4b93e182 100644 --- a/src/libs/utils/detailsbutton.h +++ b/src/libs/utils/detailsbutton.h @@ -31,12 +31,26 @@ #define DETAILSBUTTON_H #include +#include #include +#include +#include +#include #include "utils_global.h" namespace Utils { +class QTCREATOR_UTILS_EXPORT FadingPanel : public QWidget +{ +public: + FadingPanel(QWidget *parent = 0); + void fadeTo(float value); +protected: + QGraphicsOpacityEffect *m_opacityEffect; +}; + + class QTCREATOR_UTILS_EXPORT DetailsButton : public QAbstractButton { Q_OBJECT diff --git a/src/libs/utils/detailswidget.cpp b/src/libs/utils/detailswidget.cpp index 5ab766bff5a..7b8053ce129 100644 --- a/src/libs/utils/detailswidget.cpp +++ b/src/libs/utils/detailswidget.cpp @@ -31,6 +31,7 @@ #include "detailsbutton.h" #include +#include #include #include @@ -57,7 +58,7 @@ namespace Utils { DetailsButton *m_detailsButton; QGridLayout *m_grid; QLabel *m_summaryLabel; - QWidget *m_toolWidget; + Utils::FadingPanel *m_toolWidget; QWidget *m_widget; QPixmap m_collapsedPixmap; @@ -210,7 +211,7 @@ namespace Utils { updateControls(); } - void DetailsWidget::setToolWidget(QWidget *widget) + void DetailsWidget::setToolWidget(Utils::FadingPanel *widget) { if (d->m_toolWidget == widget) return; @@ -221,7 +222,7 @@ namespace Utils { return; d->m_toolWidget->adjustSize(); - d->m_grid->addWidget(d->m_toolWidget, 0, 0, 1, 1, Qt::AlignCenter); + d->m_grid->addWidget(d->m_toolWidget, 0, 1, 1, 1, Qt::AlignRight); d->m_grid->setColumnMinimumWidth(0, d->m_toolWidget->width()); d->m_grid->setRowMinimumHeight(0, d->m_toolWidget->height()); @@ -271,9 +272,11 @@ namespace Utils { { if (!d->m_toolWidget) return; - +#ifdef Q_OS_MAC d->m_toolWidget->setVisible(hovered); - +#else + d->m_toolWidget->fadeTo(hovered ? 1.0 : 0); +#endif d->m_hovered = hovered; } diff --git a/src/libs/utils/detailswidget.h b/src/libs/utils/detailswidget.h index eb5c1b24031..a697015f5d7 100644 --- a/src/libs/utils/detailswidget.h +++ b/src/libs/utils/detailswidget.h @@ -41,6 +41,7 @@ QT_END_NAMESPACE namespace Utils { struct DetailsWidgetPrivate; +class FadingPanel; class QTCREATOR_UTILS_EXPORT DetailsWidget : public QWidget { @@ -68,7 +69,7 @@ public: void setWidget(QWidget *widget); QWidget *widget() const; - void setToolWidget(QWidget *widget); + void setToolWidget(Utils::FadingPanel *widget); QWidget *toolWidget() const; private slots: diff --git a/src/libs/utils/uncommentselection.cpp b/src/libs/utils/uncommentselection.cpp index a5da088da95..c6e4b624b0d 100644 --- a/src/libs/utils/uncommentselection.cpp +++ b/src/libs/utils/uncommentselection.cpp @@ -70,7 +70,7 @@ void Utils::unCommentSelection(QPlainTextEdit *edit) start -= 2; } - bool hasSelStart = (startPos < startText.length() - 2 + bool hasSelStart = (startPos < startText.length() - 1 && startText.at(startPos) == QLatin1Char('/') && startText.at(startPos+1) == QLatin1Char('*')); diff --git a/src/plugins/cmakeprojectmanager/cmaketarget.cpp b/src/plugins/cmakeprojectmanager/cmaketarget.cpp index 8a89c76a04e..9e45ee2cdc0 100644 --- a/src/plugins/cmakeprojectmanager/cmaketarget.cpp +++ b/src/plugins/cmakeprojectmanager/cmaketarget.cpp @@ -34,6 +34,8 @@ #include "cmakerunconfiguration.h" #include "cmakebuildconfiguration.h" +#include + #include #include @@ -131,6 +133,12 @@ void CMakeTarget::updateRunConfigurations() CMakeRunConfiguration *rc = it.value(); removeRunConfiguration(rc); } + if (runConfigurations().isEmpty()) { + // Oh no, no run configuration, + // create a custom executable run configuration + ProjectExplorer::CustomExecutableRunConfiguration *rc = new ProjectExplorer::CustomExecutableRunConfiguration(this); + addRunConfiguration(rc); + } } // ------------------------------------------------------------------------- diff --git a/src/plugins/coreplugin/core.qrc b/src/plugins/coreplugin/core.qrc index 84d8955c2f0..a38f9d148c4 100644 --- a/src/plugins/coreplugin/core.qrc +++ b/src/plugins/coreplugin/core.qrc @@ -54,5 +54,10 @@ images/progressbar.png images/help.png images/editclear.png + images/darkarrowdown.png + images/darkarrowup.png + images/darkclose.png + images/arrowdown.png + images/arrowup.png diff --git a/src/plugins/coreplugin/dialogs/newdialog.cpp b/src/plugins/coreplugin/dialogs/newdialog.cpp index a45d022b615..823f306b3ef 100644 --- a/src/plugins/coreplugin/dialogs/newdialog.cpp +++ b/src/plugins/coreplugin/dialogs/newdialog.cpp @@ -282,6 +282,9 @@ Core::IWizard *NewDialog::showDialog() for (int row = 0; row < m_proxyModel->rowCount(); ++row) m_ui->templateCategoryView->setExpanded(m_proxyModel->index(row, 0), true); + // Ensure that item description is visible on first show + currentItemChanged(m_ui->templatesView->rootIndex().child(0,0)); + updateOkButton(); if (exec() != Accepted) return 0; diff --git a/src/plugins/coreplugin/images/arrowdown.png b/src/plugins/coreplugin/images/arrowdown.png new file mode 100644 index 00000000000..b49843f1d94 Binary files /dev/null and b/src/plugins/coreplugin/images/arrowdown.png differ diff --git a/src/plugins/coreplugin/images/arrowup.png b/src/plugins/coreplugin/images/arrowup.png new file mode 100644 index 00000000000..e9d7b1e7d4b Binary files /dev/null and b/src/plugins/coreplugin/images/arrowup.png differ diff --git a/src/plugins/coreplugin/images/darkarrowdown.png b/src/plugins/coreplugin/images/darkarrowdown.png new file mode 100644 index 00000000000..3b07da15ffb Binary files /dev/null and b/src/plugins/coreplugin/images/darkarrowdown.png differ diff --git a/src/plugins/coreplugin/images/darkarrowup.png b/src/plugins/coreplugin/images/darkarrowup.png new file mode 100644 index 00000000000..3d751f9a1a0 Binary files /dev/null and b/src/plugins/coreplugin/images/darkarrowup.png differ diff --git a/src/plugins/coreplugin/images/darkclose.png b/src/plugins/coreplugin/images/darkclose.png new file mode 100644 index 00000000000..365fdb8ed7c Binary files /dev/null and b/src/plugins/coreplugin/images/darkclose.png differ diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp index ff0ce2c1571..702b00e1da8 100644 --- a/src/plugins/coreplugin/modemanager.cpp +++ b/src/plugins/coreplugin/modemanager.cpp @@ -177,7 +177,7 @@ void ModeManager::objectAdded(QObject *obj) ActionManager *am = d->m_mainWindow->actionManager(); const QString shortcutId = QLatin1String("QtCreator.Mode.") + mode->id(); QShortcut *shortcut = new QShortcut(d->m_mainWindow); - shortcut->setWhatsThis(tr("Switch to %1 mode").arg(mode->displayName())); + shortcut->setWhatsThis(tr("Switch to %1 mode").arg(mode->displayName())); Command *cmd = am->registerShortcut(shortcut, shortcutId, QList() << Constants::C_GLOBAL_ID); d->m_modeShortcuts.insert(index, cmd); diff --git a/src/plugins/coreplugin/outputpane.cpp b/src/plugins/coreplugin/outputpane.cpp index 89903d7f6d5..e3b48e00319 100644 --- a/src/plugins/coreplugin/outputpane.cpp +++ b/src/plugins/coreplugin/outputpane.cpp @@ -201,7 +201,10 @@ OutputPaneManager::OutputPaneManager(QWidget *parent) : m_prevAction(0), m_lastIndex(-1), m_outputWidgetPane(new QStackedWidget), - m_opToolBarWidgets(new QStackedWidget) + m_opToolBarWidgets(new QStackedWidget), + m_minimizeIcon(":/core/images/arrowdown.png"), + m_maximizeIcon(":/core/images/arrowup.png"), + m_maximised(false) { setWindowTitle(tr("Output")); connect(m_widgetComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(changePage())); @@ -221,8 +224,9 @@ OutputPaneManager::OutputPaneManager(QWidget *parent) : connect(m_prevAction, SIGNAL(triggered()), this, SLOT(slotPrev())); m_minMaxAction = new QAction(this); - m_minMaxAction->setText(tr("Maximize Output Pane")); - m_minMaxButton->setArrowType(Qt::UpArrow); + m_minMaxButton->setIcon(m_maximizeIcon); + m_minMaxButton->setToolTip(tr("Maximize Output Pane")); + m_minMaxAction->setText(m_minMaxButton->toolTip()); m_closeButton->setIcon(QIcon(":/core/images/closebutton.png")); connect(m_closeButton, SIGNAL(clicked()), this, SLOT(slotHide())); @@ -309,8 +313,8 @@ void OutputPaneManager::init() #endif cmd->setAttribute(Command::CA_UpdateText); mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup"); - m_minMaxButton->setDefaultAction(cmd->action()); connect(m_minMaxAction, SIGNAL(triggered()), this, SLOT(slotMinMax())); + connect(m_minMaxButton, SIGNAL(clicked()), this, SLOT(slotMinMax())); QAction *sep = new QAction(this); sep->setSeparator(true); @@ -403,7 +407,7 @@ void OutputPaneManager::shortcutTriggered() bool OutputPaneManager::isMaximized()const { - return m_minMaxButton->arrowType() == Qt::DownArrow; + return m_maximised; } void OutputPaneManager::slotMinMax() @@ -412,11 +416,12 @@ void OutputPaneManager::slotMinMax() if (!OutputPanePlaceHolder::m_current->isVisible()) // easier than disabling/enabling the action return; - bool maximize = m_minMaxButton->arrowType() == Qt::UpArrow; - OutputPanePlaceHolder::m_current->maximizeOrMinimize(maximize); - m_minMaxButton->setArrowType(maximize ? Qt::DownArrow : Qt::UpArrow); - m_minMaxAction->setToolTip(maximize ? tr("Minimize Output Pane") - : tr("Maximize Output Pane")); + m_maximised = !m_maximised; + OutputPanePlaceHolder::m_current->maximizeOrMinimize(m_maximised); + m_minMaxButton->setIcon(m_maximised ? m_minimizeIcon : m_maximizeIcon); + m_minMaxButton->setToolTip(m_maximised ? tr("Minimize Output Pane") + : tr("Maximize Output Pane")); + m_minMaxAction->setText(m_minMaxButton->toolTip()); } void OutputPaneManager::buttonTriggered() diff --git a/src/plugins/coreplugin/outputpane.h b/src/plugins/coreplugin/outputpane.h index 64a0a0f7765..edfad8bb500 100644 --- a/src/plugins/coreplugin/outputpane.h +++ b/src/plugins/coreplugin/outputpane.h @@ -148,6 +148,9 @@ private: QWidget *m_buttonsWidget; QMap m_buttons; QMap m_actions; + QPixmap m_minimizeIcon; + QPixmap m_maximizeIcon; + bool m_maximised; }; class OutputPaneToggleButton : public QPushButton diff --git a/src/plugins/designer/formeditorfactory.cpp b/src/plugins/designer/formeditorfactory.cpp index 6b39e50fee8..7e7de93e103 100644 --- a/src/plugins/designer/formeditorfactory.cpp +++ b/src/plugins/designer/formeditorfactory.cpp @@ -90,8 +90,8 @@ void FormEditorFactory::updateEditorInfoBar(Core::IEditor *editor) { if (qobject_cast(editor)) { Core::EditorManager::instance()->showEditorInfoBar(Constants::INFO_READ_ONLY, - tr("This file can only be edited in Design Mode."), - tr("Open Designer"), this, SLOT(designerModeClicked())); + tr("This file can only be edited in Design mode."), + tr("Switch mode"), this, SLOT(designerModeClicked())); } else { Core::EditorManager::instance()->hideEditorInfoBar(Constants::INFO_READ_ONLY); } diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp index 21d00e303c6..744b8549009 100644 --- a/src/plugins/projectexplorer/buildstepspage.cpp +++ b/src/plugins/projectexplorer/buildstepspage.cpp @@ -29,6 +29,7 @@ #include "buildstepspage.h" #include "buildconfiguration.h" +#include "detailsbutton.h" #include #include @@ -117,6 +118,12 @@ void BuildStepsPage::init(BuildConfiguration *bc) s.detailsWidget->setSummaryText(s.widget->summaryText()); } updateBuildStepButtonsState(); + + static QLatin1String buttonStyle( + "QToolButton{ border-width: 2;}" + "QToolButton:hover{border-image: url(:/welcome/images/btn_26_hover.png) 4;}" + "QToolButton:pressed{ border-image: url(:/welcome/images/btn_26_pressed.png) 4;}"); + setStyleSheet(buttonStyle); } void BuildStepsPage::updateAddBuildStepMenu() @@ -160,30 +167,32 @@ void BuildStepsPage::addBuildStepWidget(int pos, BuildStep *step) s.detailsWidget->setSummaryText(s.widget->summaryText()); s.detailsWidget->setWidget(s.widget); - s.upButton = new QToolButton(this); - s.upButton->setArrowType(Qt::UpArrow); - s.upButton->setMaximumHeight(22); - s.upButton->setMaximumWidth(22); - - s.downButton = new QToolButton(this); - s.downButton->setArrowType(Qt::DownArrow); - s.downButton->setMaximumHeight(22); - s.downButton->setMaximumWidth(22); -#ifdef Q_OS_MAC - s.upButton->setIconSize(QSize(10, 10)); - s.downButton->setIconSize(QSize(10, 10)); -#endif - s.removeButton = new QToolButton(this); - s.removeButton->setText(QChar('X')); - s.removeButton->setMaximumHeight(22); - s.removeButton->setMaximumWidth(22); - // layout - QWidget *toolWidget = new QWidget(s.detailsWidget); - toolWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + Utils::FadingPanel *toolWidget = new Utils::FadingPanel(s.detailsWidget); + QSize buttonSize(20, 26); + + s.upButton = new QToolButton(toolWidget); + s.upButton->setAutoRaise(true); + s.upButton->setToolTip(tr("Move Up")); + s.upButton->setFixedSize(buttonSize); + s.upButton->setIcon(QIcon(":/core/images/darkarrowup.png")); + + s.downButton = new QToolButton(toolWidget); + s.downButton->setAutoRaise(true); + s.downButton->setToolTip(tr("Move Down")); + s.downButton->setFixedSize(buttonSize); + s.downButton->setIcon(QIcon(":/core/images/darkarrowdown.png")); + + s.removeButton = new QToolButton(toolWidget); + s.removeButton->setAutoRaise(true); + s.removeButton->setToolTip(tr("Remove Item")); + s.removeButton->setFixedSize(buttonSize); + s.removeButton->setIcon(QIcon(":/core/images/darkclose.png")); + + toolWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); QHBoxLayout *hbox = new QHBoxLayout(); toolWidget->setLayout(hbox); - hbox->setMargin(0); + hbox->setMargin(4); hbox->setSpacing(0); hbox->addWidget(s.upButton); hbox->addWidget(s.downButton); @@ -316,9 +325,14 @@ void BuildStepsPage::updateBuildStepButtonsState() BuildStepsWidgetStruct s = m_buildSteps.at(i); s.removeButton->setEnabled(!steps.at(i)->immutable()); m_removeMapper->setMapping(s.removeButton, i); + s.upButton->setEnabled((i > 0) && !(steps.at(i)->immutable() && steps.at(i - 1))); m_upMapper->setMapping(s.upButton, i); s.downButton->setEnabled((i + 1 < steps.count()) && !(steps.at(i)->immutable() && steps.at(i + 1)->immutable())); m_downMapper->setMapping(s.downButton, i); + + // Only show buttons when needed + s.downButton->setVisible(steps.count() != 1); + s.upButton->setVisible(steps.count() != 1); } } diff --git a/src/plugins/projectexplorer/doubletabwidget.cpp b/src/plugins/projectexplorer/doubletabwidget.cpp index 95010781afc..91c9c12bb0e 100644 --- a/src/plugins/projectexplorer/doubletabwidget.cpp +++ b/src/plugins/projectexplorer/doubletabwidget.cpp @@ -266,7 +266,7 @@ void DoubleTabWidget::paintEvent(QPaintEvent *event) // draw background of second bar painter.fillRect(QRect(0, r.height(), r.width(), OTHER_HEIGHT), grad); - painter.setPen(Qt::black); + painter.setPen(QColor(0x505050)); painter.drawLine(0, r.height() + OTHER_HEIGHT, r.width(), r.height() + OTHER_HEIGHT); painter.setPen(Qt::white); diff --git a/src/plugins/projectexplorer/images/targetseparatorbackground.png b/src/plugins/projectexplorer/images/targetseparatorbackground.png index ff14f0d6737..2205cf22650 100644 Binary files a/src/plugins/projectexplorer/images/targetseparatorbackground.png and b/src/plugins/projectexplorer/images/targetseparatorbackground.png differ diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 70ab42ecd97..0f576fd9bd1 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1390,9 +1390,9 @@ void ProjectExplorerPlugin::updateActions() d->m_rebuildAction->setEnabled(enableBuildActions); d->m_cleanAction->setEnabled(enableBuildActions); - d->m_buildAction->setParameter(projectNameContextMenu); - d->m_rebuildAction->setParameter(projectNameContextMenu); - d->m_cleanAction->setParameter(projectNameContextMenu); + d->m_buildActionContextMenu->setParameter(projectNameContextMenu); + d->m_rebuildActionContextMenu->setParameter(projectNameContextMenu); + d->m_cleanActionContextMenu->setParameter(projectNameContextMenu); d->m_buildActionContextMenu->setEnabled(enableBuildActionsContextMenu); d->m_rebuildActionContextMenu->setEnabled(enableBuildActionsContextMenu); diff --git a/src/plugins/projectexplorer/targetselector.cpp b/src/plugins/projectexplorer/targetselector.cpp index d319be44013..61a582a40d9 100644 --- a/src/plugins/projectexplorer/targetselector.cpp +++ b/src/plugins/projectexplorer/targetselector.cpp @@ -219,6 +219,8 @@ void TargetSelector::paintEvent(QPaintEvent *event) } else { image= m_runselected; } + } else { + p.setPen(Qt::black); } QRect buttonRect(x, 1, targetWidth() , image.height()); diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index c21ccf072c6..2887a886cd9 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -127,8 +127,7 @@ void TargetSettingsPanelWidget::setupUi() updateTargetAddAndRemoveButtons(); - // Restore target originally set: - m_project->setActiveTarget(activeTarget); + activeTargetChanged(activeTarget); } void TargetSettingsPanelWidget::currentTargetChanged(int targetIndex, int subIndex) diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp index 2c36c30c63a..8b94cfcb333 100644 --- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp @@ -133,7 +133,7 @@ void DragTool::beginWithPoint(const QPointF &beginPoint) } -void DragTool::createQmlItemNode(const ItemLibraryInfo &itemLibraryRepresentation, QmlItemNode parentNode, QPointF scenePos) +void DragTool::createQmlItemNode(const ItemLibraryEntry &itemLibraryEntry, QmlItemNode parentNode, QPointF scenePos) { QmlDesignerItemLibraryDragAndDrop::CustomDragAndDrop::hide(); @@ -142,7 +142,7 @@ void DragTool::createQmlItemNode(const ItemLibraryInfo &itemLibraryRepresentatio FormEditorItem *parentItem = scene()->itemForQmlItemNode(parentNode); QPointF pos = parentItem->mapFromScene(scenePos); - m_dragNode = view()->createQmlItemNode(itemLibraryRepresentation, pos, parentNode); + m_dragNode = view()->createQmlItemNode(itemLibraryEntry, pos, parentNode); Q_ASSERT(m_dragNode.modelNode().isValid()); Q_ASSERT(m_dragNode.isValid()); @@ -238,14 +238,14 @@ void DragTool::dragLeaveEvent(QGraphicsSceneDragDropEvent * event) } } -static ItemLibraryInfo ItemLibraryInfoFromData(const QByteArray &data) +static ItemLibraryEntry itemLibraryEntryFromData(const QByteArray &data) { QDataStream stream(data); - ItemLibraryInfo itemLibraryInfo; - stream >> itemLibraryInfo; + ItemLibraryEntry itemLibraryEntry; + stream >> itemLibraryEntry; - return itemLibraryInfo; + return itemLibraryEntry; } void DragTool::dragMoveEvent(QGraphicsSceneDragDropEvent * event) @@ -277,8 +277,8 @@ void DragTool::dragMoveEvent(QGraphicsSceneDragDropEvent * event) if (event->mimeData()->hasFormat("application/vnd.bauhaus.itemlibraryinfo")) { Q_ASSERT(!event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo").isEmpty()); - ItemLibraryInfo ItemLibraryInfo = ItemLibraryInfoFromData(event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo")); - createQmlItemNode(ItemLibraryInfo, parentNode, event->scenePos()); + ItemLibraryEntry itemLibraryEntry = itemLibraryEntryFromData(event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo")); + createQmlItemNode(itemLibraryEntry, parentNode, event->scenePos()); } else if (event->mimeData()->hasFormat("application/vnd.bauhaus.libraryresource")) { Q_ASSERT(!event->mimeData()->data("application/vnd.bauhaus.libraryresource").isEmpty()); QString imageName = QString::fromLatin1((event->mimeData()->data("application/vnd.bauhaus.libraryresource"))); diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.h b/src/plugins/qmldesigner/components/formeditor/dragtool.h index 0e3ae6cd5da..b029085525e 100644 --- a/src/plugins/qmldesigner/components/formeditor/dragtool.h +++ b/src/plugins/qmldesigner/components/formeditor/dragtool.h @@ -86,7 +86,7 @@ protected: private: - void createQmlItemNode(const ItemLibraryInfo &ItemLibraryRepresentation, QmlItemNode parentNode, QPointF scenePos); + void createQmlItemNode(const ItemLibraryEntry &itemLibraryEntry, QmlItemNode parentNode, QPointF scenePos); void createQmlItemNodeFromImage(const QString &imageName, QmlItemNode parentNode, QPointF scenePos); FormEditorItem* calculateContainer(const QPointF &point, FormEditorItem * currentItem = 0); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h index dcdbd2387bd..1c7d787c351 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h @@ -51,7 +51,7 @@ class ResizeTool; class AnchorTool; class DragTool; class ItemCreatorTool; -class ItemLibraryInfo; +class ItemLibraryEntry; class QmlItemNode; class FormEditorView : public QmlModelView diff --git a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp index b6e6a0df291..b9da6c86f19 100644 --- a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp @@ -170,8 +170,8 @@ void ItemCreatorTool::createAtItem(const QRectF &rect) return; if (list.first() == "item") { RewriterTransaction transaction = view()->beginRewriterTransaction(); - ItemLibraryInfo itemLibraryRepresentation = view()->model()->metaInfo().itemLibraryRepresentation(list.at(1)); - QmlItemNode newNode = view()->createQmlItemNode(itemLibraryRepresentation, pos, parentNode); + ItemLibraryEntry itemLibraryEntry = view()->model()->metaInfo().itemLibraryInfo().entry(list.at(1)); + QmlItemNode newNode = view()->createQmlItemNode(itemLibraryEntry, pos, parentNode); newNode.modelNode().variantProperty("width") = rect.width(); newNode.modelNode().variantProperty("height") = rect.height(); QList nodeList; diff --git a/src/plugins/qmldesigner/components/itemlibrary/customdraganddrop.cpp b/src/plugins/qmldesigner/components/itemlibrary/customdraganddrop.cpp index 33be4c0fc96..7e67256099d 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/customdraganddrop.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/customdraganddrop.cpp @@ -45,7 +45,6 @@ namespace QmlDesignerItemLibraryDragAndDrop { void CustomDragAndDropIcon::startDrag() { m_size = m_icon.size(); - setPixmap(m_icon); m_iconAlpha = 1; m_previewAlpha = 0; @@ -83,7 +82,6 @@ void CustomDragAndDropIcon::mouseMoveEvent(QMouseEvent *event) move(pos); else move(-1000, -1000); //no hiding because of mouse grabbing - setPixmap(currentImage()); resize(m_size); show(); update(); @@ -119,13 +117,10 @@ void CustomDragAndDropIcon::mouseMoveEvent(QMouseEvent *event) m_oldTarget = target; } - -QPixmap CustomDragAndDropIcon::currentImage() +void CustomDragAndDropIcon::paintEvent(QPaintEvent *event) { - //blend the two images (icon and preview) according to alpha values - QPixmap pixmap(m_size); - pixmap.fill(Qt::white); - QPainter p(&pixmap); + QWidget::paintEvent(event); + QPainter p(this); if (CustomDragAndDrop::isAccepted()) { p.setOpacity(m_previewAlpha); p.drawPixmap(0 ,0 , m_size.width(), m_size.height(), m_preview); @@ -137,7 +132,6 @@ QPixmap CustomDragAndDropIcon::currentImage() p.setOpacity(m_previewAlpha); p.drawPixmap(0 ,0 , m_size.width(), m_size.height(), m_preview); } - return pixmap; } void CustomDragAndDropIcon::enter() @@ -185,7 +179,6 @@ void CustomDragAndDropIcon::animateDrag(int frame) m_size = QSize(width, height); } QPoint p = pos(); - setPixmap(currentImage()); resize(m_size); move(p); update(); //redrawing needed diff --git a/src/plugins/qmldesigner/components/itemlibrary/customdraganddrop.h b/src/plugins/qmldesigner/components/itemlibrary/customdraganddrop.h index 7d412246624..3ab1b203762 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/customdraganddrop.h +++ b/src/plugins/qmldesigner/components/itemlibrary/customdraganddrop.h @@ -60,10 +60,9 @@ public slots: protected: virtual void mouseMoveEvent(QMouseEvent *); + virtual void paintEvent(QPaintEvent *event); virtual void mouseReleaseEvent(QMouseEvent *); private: - QPixmap currentImage(); - QWidget *m_oldTarget; QPixmap m_preview; QPixmap m_icon; diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h index e5803f01148..71f4fb6fb2b 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h @@ -36,7 +36,7 @@ namespace QmlDesigner { class ItemLibraryPrivate; class MetaInfo; -class ItemLibraryInfo; +class ItemLibraryEntry; class ItemLibrary : public QFrame { @@ -47,7 +47,6 @@ public: ItemLibrary(QWidget *parent = 0); virtual ~ItemLibrary(); - void addItemLibraryInfo(const ItemLibraryInfo &ItemLibraryInfo); void setMetaInfo(const MetaInfo &metaInfo); public Q_SLOTS: diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp index 01f04206df0..0ac8a3d4d6b 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp @@ -387,7 +387,6 @@ bool ItemLibraryModel::isItemVisible(int itemLibId) return elementModel(sectionLibId)->isItemVisible(itemLibId); } - void ItemLibraryModel::update(const MetaInfo &metaInfo) { QMap sections; @@ -403,32 +402,36 @@ void ItemLibraryModel::update(const MetaInfo &metaInfo) *m_metaInfo = metaInfo; } - foreach (const QString &type, metaInfo.itemLibraryItems()) { - foreach (const ItemLibraryInfo &itemLibraryRepresentation, itemLibraryRepresentations(type)) { + foreach (ItemLibraryEntry entry, metaInfo.itemLibraryInfo().entries()) { + QString itemSectionName = entry.category(); + ItemLibrarySectionModel *sectionModel; + ItemLibraryItemModel *itemModel; + int itemId = m_nextLibId++, sectionId; - QString itemSectionName = itemLibraryRepresentation.category(); - ItemLibrarySectionModel *sectionModel; - ItemLibraryItemModel *itemModel; - int itemId = m_nextLibId++, sectionId; - - if (sections.contains(itemSectionName)) { - sectionId = sections.value(itemSectionName); - sectionModel = elementModel(sectionId); - } else { - sectionId = m_nextLibId++; - sectionModel = new ItemLibrarySectionModel(m_scriptEngine.data(), sectionId, itemSectionName, this); - addElement(sectionModel, sectionId); - sections.insert(itemSectionName, sectionId); - } - - m_itemInfos.insert(itemId, itemLibraryRepresentation); - - itemModel = new ItemLibraryItemModel(m_scriptEngine.data(), itemId, itemLibraryRepresentation.name()); - itemModel->setItemIcon(itemLibraryRepresentation.icon()); - itemModel->setItemIconSize(m_itemIconSize); - sectionModel->addSectionEntry(itemModel); - m_sections.insert(itemId, sectionId); + if (sections.contains(itemSectionName)) { + sectionId = sections.value(itemSectionName); + sectionModel = elementModel(sectionId); + } else { + sectionId = m_nextLibId++; + sectionModel = new ItemLibrarySectionModel(m_scriptEngine.data(), sectionId, itemSectionName, this); + addElement(sectionModel, sectionId); + sections.insert(itemSectionName, sectionId); } + + m_itemInfos.insert(itemId, entry); + + itemModel = new ItemLibraryItemModel(m_scriptEngine.data(), itemId, entry.name()); + + // delayed creation of (default) icons + if (entry.icon().isNull()) + entry.setIcon(QIcon(QLatin1String(":/ItemLibrary/images/item-default-icon.png"))); + if (entry.dragIcon().isNull()) + entry.setDragIcon(createDragPixmap(getWidth(entry), getHeight(entry))); + + itemModel->setItemIcon(entry.icon()); + itemModel->setItemIconSize(m_itemIconSize); + sectionModel->addSectionEntry(itemModel); + m_sections.insert(itemId, sectionId); } updateVisibility(); @@ -499,9 +502,9 @@ void ItemLibraryModel::updateVisibility() emit visibilityChanged(); } -static inline int getWidth(const ItemLibraryInfo &itemLibraryRepresentation) +int ItemLibraryModel::getWidth(const ItemLibraryEntry &itemLibraryEntry) { - foreach (const ItemLibraryInfo::Property &property, itemLibraryRepresentation.properties()) + foreach (const ItemLibraryEntry::Property &property, itemLibraryEntry.properties()) { if (property.name() == QLatin1String("width")) return property.value().toInt(); @@ -509,9 +512,9 @@ static inline int getWidth(const ItemLibraryInfo &itemLibraryRepresentation) return 64; } -static inline int getHeight(const ItemLibraryInfo &itemLibraryRepresentation) +int ItemLibraryModel::getHeight(const ItemLibraryEntry &itemLibraryEntry) { - foreach (const ItemLibraryInfo::Property &property, itemLibraryRepresentation.properties()) + foreach (const ItemLibraryEntry::Property &property, itemLibraryEntry.properties()) { if (property.name() == QLatin1String("height")) return property.value().toInt(); @@ -519,7 +522,7 @@ static inline int getHeight(const ItemLibraryInfo &itemLibraryRepresentation) return 64; } -static inline QPixmap createDragPixmap(int width, int height) +QPixmap ItemLibraryModel::createDragPixmap(int width, int height) { QImage dragImage(width, height, QImage::Format_RGB32); // TODO: draw item drag icon dragImage.fill(0xffffffff); @@ -531,53 +534,6 @@ static inline QPixmap createDragPixmap(int width, int height) return QPixmap::fromImage(dragImage); } -QList ItemLibraryModel::itemLibraryRepresentations(const QString &type) -{ - QList itemLibraryRepresentationList; - NodeMetaInfo nodeInfo = m_metaInfo->nodeMetaInfo(type); - - if (nodeInfo.isQmlGraphicsItem()) { - itemLibraryRepresentationList = m_metaInfo->itemLibraryRepresentations(nodeInfo); - - if (!m_metaInfo->hasNodeMetaInfo(type)) - qWarning() << "ItemLibrary: type not declared: " << type; - - static QIcon defaultIcon(QLatin1String(":/ItemLibrary/images/item-default-icon.png")); - - if (itemLibraryRepresentationList.isEmpty() || !m_metaInfo->hasNodeMetaInfo(type)) { - QIcon icon = nodeInfo.icon(); - if (icon.isNull()) - icon = defaultIcon; - - ItemLibraryInfo itemLibraryInfo; - itemLibraryInfo.setName(type); - itemLibraryInfo.setTypeName(nodeInfo.typeName()); - itemLibraryInfo.setCategory(nodeInfo.category()); - itemLibraryInfo.setIcon(icon); - itemLibraryInfo.setDragIcon(createDragPixmap(64, 64)); - itemLibraryInfo.setMajorVersion(nodeInfo.majorVersion()); - itemLibraryInfo.setMinorVersion(nodeInfo.minorVersion()); - itemLibraryRepresentationList.append(itemLibraryInfo); - } - else { - foreach (ItemLibraryInfo itemLibraryRepresentation, itemLibraryRepresentationList) { - - QIcon icon = itemLibraryRepresentation.icon(); - if (itemLibraryRepresentation.icon().isNull()) - itemLibraryRepresentation.setIcon(defaultIcon); - - if (itemLibraryRepresentation.dragIcon().isNull()) - itemLibraryRepresentation.setDragIcon(createDragPixmap(getWidth(itemLibraryRepresentation), getHeight(itemLibraryRepresentation))); - - if (itemLibraryRepresentation.category().isEmpty()) - itemLibraryRepresentation.setCategory(nodeInfo.category()); - } - } - } - - return itemLibraryRepresentationList; -} - } // namespace Internal } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h index 5391d0d83a6..693680d2b8e 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h @@ -41,7 +41,7 @@ QT_FORWARD_DECLARE_CLASS(QMimeData); namespace QmlDesigner { class MetaInfo; -class ItemLibraryInfo; +class ItemLibraryEntry; namespace Internal { @@ -153,11 +153,14 @@ signals: private: void updateVisibility(); - QList itemLibraryRepresentations(const QString &type); + + int getWidth(const ItemLibraryEntry &entry); + int getHeight(const ItemLibraryEntry &entry); + QPixmap createDragPixmap(int width, int height); QWeakPointer m_scriptEngine; MetaInfo *m_metaInfo; - QMap m_itemInfos; + QMap m_itemInfos; QMap m_sections; QString m_searchText; diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp index 1fa3796d6b6..c24395efaab 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp @@ -171,8 +171,9 @@ void IdItemDelegate::paint(QPainter *painter, if (icon.isNull()) { // if node has no own icon, search for it in the itemlibrary - QList InfoList = node.metaInfo().metaInfo().itemLibraryRepresentations(node.metaInfo()); - foreach (const ItemLibraryInfo &entry, InfoList) + const ItemLibraryInfo libraryInfo = node.metaInfo().metaInfo().itemLibraryInfo(); + QList infoList = libraryInfo.entriesForNodeMetaInfo(node.metaInfo()); + foreach (const ItemLibraryEntry &entry, infoList) { if (entry.typeName()==node.metaInfo().typeName()) { icon = entry.icon(); diff --git a/src/plugins/qmldesigner/components/resources/images/slider_indikator.png b/src/plugins/qmldesigner/components/resources/images/slider_indikator.png index 80cbfc85203..343ec38d590 100644 Binary files a/src/plugins/qmldesigner/components/resources/images/slider_indikator.png and b/src/plugins/qmldesigner/components/resources/images/slider_indikator.png differ diff --git a/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h b/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h index c82202426e4..2aa7042d5ea 100644 --- a/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h +++ b/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h @@ -27,8 +27,8 @@ ** **************************************************************************/ -#ifndef ItemLibraryINFO_H -#define ItemLibraryINFO_H +#ifndef ITEMLIBRARYINFO_H +#define ITEMLIBRARYINFO_H #include "corelib_global.h" @@ -45,23 +45,26 @@ class NodeMetaInfo; namespace Internal { -class ItemLibraryInfoData; +class MetaInfoPrivate; +class ItemLibraryEntryData; +class ItemLibraryInfoPrivate; + } -class ItemLibraryInfo; +class ItemLibraryEntry; -CORESHARED_EXPORT QDataStream& operator<<(QDataStream& stream, const ItemLibraryInfo& ItemLibraryInfo); -CORESHARED_EXPORT QDataStream& operator>>(QDataStream& stream, ItemLibraryInfo& ItemLibraryInfo); +CORESHARED_EXPORT QDataStream& operator<<(QDataStream& stream, const ItemLibraryEntry &itemLibraryEntry); +CORESHARED_EXPORT QDataStream& operator>>(QDataStream& stream, ItemLibraryEntry &itemLibraryEntry); -class CORESHARED_EXPORT ItemLibraryInfo +class CORESHARED_EXPORT ItemLibraryEntry { friend class QmlDesigner::MetaInfo; friend class QmlDesigner::Internal::MetaInfoParser; - friend CORESHARED_EXPORT QDataStream& QmlDesigner::operator<<(QDataStream& stream, const ItemLibraryInfo& image); - friend CORESHARED_EXPORT QDataStream& QmlDesigner::operator>>(QDataStream& stream, ItemLibraryInfo& image); + friend CORESHARED_EXPORT QDataStream& QmlDesigner::operator<<(QDataStream& stream, const ItemLibraryEntry &itemLibraryEntry); + friend CORESHARED_EXPORT QDataStream& QmlDesigner::operator>>(QDataStream& stream, ItemLibraryEntry &itemLibraryEntry); public: - ItemLibraryInfo(); - ~ItemLibraryInfo(); + ItemLibraryEntry(); + ~ItemLibraryEntry(); QString name() const; QString typeName() const; @@ -72,8 +75,8 @@ public: QIcon dragIcon() const; QString qml() const; - ItemLibraryInfo(const ItemLibraryInfo &other); - ItemLibraryInfo& operator=(const ItemLibraryInfo &other); + ItemLibraryEntry(const ItemLibraryEntry &other); + ItemLibraryEntry& operator=(const ItemLibraryEntry &other); typedef QmlDesigner::PropertyContainer Property; @@ -90,11 +93,35 @@ public: void setCategory(const QString &category); void setQml(const QString &qml); private: - QExplicitlySharedDataPointer m_data; + QExplicitlySharedDataPointer m_data; }; -} -Q_DECLARE_METATYPE(QmlDesigner::ItemLibraryInfo) +class CORESHARED_EXPORT ItemLibraryInfo +{ + friend class Internal::MetaInfoPrivate; +public: + ItemLibraryInfo(); + ItemLibraryInfo(const ItemLibraryInfo &other); + ~ItemLibraryInfo(); -#endif // ItemLibraryINFO_H + ItemLibraryInfo& operator=(const ItemLibraryInfo &other); + + bool isValid(); + + QList entries() const; + QList entriesForNodeMetaInfo(const NodeMetaInfo &nodeMetaInfo) const; + ItemLibraryEntry entry(const QString &name) const; + + ItemLibraryEntry addItemLibraryEntry(const NodeMetaInfo &nodeMetaInfo, const QString &itemLibraryRepresentationName); + void remove(const NodeMetaInfo &nodeMetaInfo); + void clear(); + +private: + static ItemLibraryInfo createItemLibraryInfo(const ItemLibraryInfo &parentInfo); + QSharedPointer m_data; +}; + +} // namespace QmlDesigner + +#endif // ITEMLIBRARYINFO_H diff --git a/src/plugins/qmldesigner/designercore/include/metainfo.h b/src/plugins/qmldesigner/designercore/include/metainfo.h index f4c776ae9d1..e6b0ead5bd3 100644 --- a/src/plugins/qmldesigner/designercore/include/metainfo.h +++ b/src/plugins/qmldesigner/designercore/include/metainfo.h @@ -47,6 +47,7 @@ namespace QmlDesigner { class ModelNode; class AbstractProperty; +class ItemLibraryInfo; namespace Internal { class MetaInfoPrivate; @@ -58,6 +59,7 @@ namespace Internal { CORESHARED_EXPORT bool operator==(const MetaInfo &first, const MetaInfo &second); CORESHARED_EXPORT bool operator!=(const MetaInfo &first, const MetaInfo &second); + class CORESHARED_EXPORT MetaInfo { friend class QmlDesigner::Internal::MetaInfoPrivate; @@ -82,11 +84,11 @@ public: bool hasEnumerator(const QString &enumeratorName) const; EnumeratorMetaInfo enumerator(const QString &enumeratorName) const; - QStringList itemLibraryItems() const; - QList itemLibraryRepresentations(const NodeMetaInfo &nodeMetaInfo) const; - ItemLibraryInfo itemLibraryRepresentation(const QString &name) const; + ItemLibraryInfo itemLibraryInfo() const; + QString fromQtTypes(const QString &type) const; + public: static MetaInfo global(); static void clearGlobal(); @@ -107,7 +109,6 @@ private: EnumeratorMetaInfo addEnumerator(const QString &enumeratorScope, const QString &enumeratorName); EnumeratorMetaInfo addFlag(const QString &enumeratorScope, const QString &enumeratorName); - ItemLibraryInfo addItemLibraryInfo(const NodeMetaInfo &nodeMetaInfo, const QString &itemLibraryRepresentationName); bool isGlobal() const; diff --git a/src/plugins/qmldesigner/designercore/include/metainfoparser.h b/src/plugins/qmldesigner/designercore/include/metainfoparser.h index 1b5e999871a..1a087771307 100644 --- a/src/plugins/qmldesigner/designercore/include/metainfoparser.h +++ b/src/plugins/qmldesigner/designercore/include/metainfoparser.h @@ -40,7 +40,7 @@ namespace QmlDesigner { class NodeMetaInfo; class EnumeratorMetaInfo; -class ItemLibraryInfo; +class ItemLibraryEntry; namespace Internal { @@ -63,10 +63,10 @@ protected: void handleFlagElementElement(QXmlStreamReader &reader, EnumeratorMetaInfo &enumeratorMetaInfo); void handleNodeElement(QXmlStreamReader &reader); void handleNodeInheritElement(QXmlStreamReader &reader, const QString &className); - void handleNodeItemLibraryRepresentationElement(QXmlStreamReader &reader, const QString &className); + void handleNodeItemLibraryEntryElement(QXmlStreamReader &reader, const QString &className); void handleAbstractPropertyElement(QXmlStreamReader &reader, NodeMetaInfo &nodeMetaInfo); void handleAbstractPropertyDefaultValueElement(QXmlStreamReader &reader, NodeMetaInfo &nodeMetaInfo); - void handleItemLibraryInfoPropertyElement(QXmlStreamReader &reader, ItemLibraryInfo &ItemLibraryInfo); + void handleItemLibraryEntryPropertyElement(QXmlStreamReader &reader, ItemLibraryEntry &itemLibraryEntry); private: MetaInfo m_metaInfo; diff --git a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h index 17a740119df..3dfaa585529 100644 --- a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h +++ b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h @@ -52,7 +52,7 @@ namespace Internal { class MetaInfoParser; class NodeMetaInfoData; class SubComponentManagerPrivate; - class ItemLibraryInfoData; + class ItemLibraryEntryData; } class PropertyMetaInfo; @@ -60,7 +60,7 @@ class PropertyMetaInfo; class CORESHARED_EXPORT NodeMetaInfo { friend class QmlDesigner::MetaInfo; - friend class QmlDesigner::Internal::ItemLibraryInfoData; + friend class QmlDesigner::Internal::ItemLibraryEntryData; friend class QmlDesigner::Internal::MetaInfoPrivate; friend class QmlDesigner::Internal::MetaInfoParser; friend class QmlDesigner::Internal::SubComponentManagerPrivate; @@ -95,7 +95,6 @@ public: bool hasProperty(const QString &propertyName, bool resolveDotSyntax = false) const; bool isContainer() const; - bool isVisibleToItemLibrary() const; bool isWidget() const; bool isGraphicsWidget() const; @@ -105,7 +104,6 @@ public: bool isSubclassOf(const QString& type, int majorVersion = 4, int minorVersion = 6) const; QIcon icon() const; - QString category() const; private: NodeMetaInfo(); @@ -115,9 +113,7 @@ private: void setTypeName(const QString &typeName); void addProperty(const PropertyMetaInfo &property); void setIsContainer(bool isContainer); - void setIsVisibleToItemLibrary(bool isVisibleToItemLibrary); void setIcon(const QIcon &icon); - void setCategory(const QString &category); void setQmlFile(const QString &filePath); void setDefaultProperty(const QString &defaultProperty); void setMajorVersion(int version); diff --git a/src/plugins/qmldesigner/designercore/include/qmlmodelview.h b/src/plugins/qmldesigner/designercore/include/qmlmodelview.h index 8406b7f03de..f48f76fc31f 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlmodelview.h +++ b/src/plugins/qmldesigner/designercore/include/qmlmodelview.h @@ -40,7 +40,7 @@ namespace QmlDesigner { -class ItemLibraryInfo; +class ItemLibraryEntry; class CORESHARED_EXPORT QmlModelView : public ForwardView { @@ -66,7 +66,7 @@ public: int minorVersion, const PropertyListType &propertyList = PropertyListType()); - QmlItemNode createQmlItemNode(const ItemLibraryInfo &ItemLibraryRepresentation, const QPointF &position, QmlItemNode parentNode); + QmlItemNode createQmlItemNode(const ItemLibraryEntry &itemLibraryEntry, const QPointF &position, QmlItemNode parentNode); QmlItemNode createQmlItemNodeFromImage(const QString &imageName, const QPointF &position, QmlItemNode parentNode); QmlObjectNode rootQmlObjectNode() const; diff --git a/src/plugins/qmldesigner/designercore/include/subcomponentmanager.h b/src/plugins/qmldesigner/designercore/include/subcomponentmanager.h index 988096933fb..837f5d489ba 100644 --- a/src/plugins/qmldesigner/designercore/include/subcomponentmanager.h +++ b/src/plugins/qmldesigner/designercore/include/subcomponentmanager.h @@ -54,8 +54,6 @@ public: QStringList qmlFiles() const; QStringList directories() const; -signals: - void qmlFilesChanged(const QStringList &oldPathList, const QStringList &newPathList); private: friend class Internal::SubComponentManagerPrivate; diff --git a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp index a4671301283..aa01e830caa 100644 --- a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp +++ b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp @@ -42,6 +42,7 @@ #include #include +#include #include #include @@ -292,33 +293,33 @@ void QmlGraphicsItemNodeInstance::resetProperty(const QString &name) GraphicsObjectNodeInstance::resetProperty(name); if (name == "anchors.fill") { - qmlGraphicsItem()->anchors()->resetFill(); + anchors()->resetFill(); resetHorizontal(); resetVertical(); } else if (name == "anchors.centerIn") { - qmlGraphicsItem()->anchors()->resetCenterIn(); + anchors()->resetCenterIn(); resetHorizontal(); resetVertical(); } else if (name == "anchors.top") { - qmlGraphicsItem()->anchors()->resetTop(); + anchors()->resetTop(); resetVertical(); } else if (name == "anchors.left") { - qmlGraphicsItem()->anchors()->resetLeft(); + anchors()->resetLeft(); resetHorizontal(); } else if (name == "anchors.right") { - qmlGraphicsItem()->anchors()->resetRight(); + anchors()->resetRight(); resetHorizontal(); } else if (name == "anchors.bottom") { - qmlGraphicsItem()->anchors()->resetBottom(); + anchors()->resetBottom(); resetVertical(); } else if (name == "anchors.horizontalCenter") { - qmlGraphicsItem()->anchors()->resetHorizontalCenter(); + anchors()->resetHorizontalCenter(); resetHorizontal(); } else if (name == "anchors.verticalCenter") { - qmlGraphicsItem()->anchors()->resetVerticalCenter(); + anchors()->resetVerticalCenter(); resetVertical(); } else if (name == "anchors.baseline") { - qmlGraphicsItem()->anchors()->resetBaseline(); + anchors()->resetBaseline(); resetVertical(); } } @@ -333,11 +334,11 @@ void QmlGraphicsItemNodeInstance::resetProperty(const QString &name) // // if (instance.isQmlGraphicsItem()) { // Pointer qmlGraphicsItemInstance(instance.QmlGraphicsItemNodeInstance()); -// qmlGraphicsItem()->anchors()->setProperty("top", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); +// anchors()->setProperty("top", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); // } // } else { -// if (qmlGraphicsItem()->anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasTopAnchor)) { -// qmlGraphicsItem()->anchors()->resetTop(); +// if (anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasTopAnchor)) { +// anchors()->resetTop(); // setPropertyValue("y", modelNode().property("y").value()); // setPropertyValue("height", modelNode().property("height").value()); // } @@ -350,11 +351,11 @@ void QmlGraphicsItemNodeInstance::resetProperty(const QString &name) // // if (instance.isQmlGraphicsItem()) { // Pointer qmlGraphicsItemInstance(instance.QmlGraphicsItemNodeInstance()); -// qmlGraphicsItem()->anchors()->setProperty("left", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); +// anchors()->setProperty("left", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); // } // } else { -// if (qmlGraphicsItem()->anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasLeftAnchor)) { -// qmlGraphicsItem()->anchors()->resetLeft(); +// if (anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasLeftAnchor)) { +// anchors()->resetLeft(); // setPropertyValue("x", modelNode().property("x").value()); // setPropertyValue("width", modelNode().property("width").value()); // } @@ -367,11 +368,11 @@ void QmlGraphicsItemNodeInstance::resetProperty(const QString &name) // // if (instance.isQmlGraphicsItem()) { // Pointer qmlGraphicsItemInstance(instance.QmlGraphicsItemNodeInstance()); -// qmlGraphicsItem()->anchors()->setProperty("right", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); +// anchors()->setProperty("right", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); // } // } else { -// if (qmlGraphicsItem()->anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasRightAnchor)) { -// qmlGraphicsItem()->anchors()->resetRight(); +// if (anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasRightAnchor)) { +// anchors()->resetRight(); // setPropertyValue("x", modelNode().property("x").value()); // setPropertyValue("width", modelNode().property("width").value()); // } @@ -384,11 +385,11 @@ void QmlGraphicsItemNodeInstance::resetProperty(const QString &name) // // if (instance.isQmlGraphicsItem()) { // Pointer qmlGraphicsItemInstance(instance.QmlGraphicsItemNodeInstance()); -// qmlGraphicsItem()->anchors()->setProperty("bottom", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); +// anchors()->setProperty("bottom", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); // } // } else { -// if (qmlGraphicsItem()->anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasBottomAnchor)) { -// qmlGraphicsItem()->anchors()->resetBottom(); +// if (anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasBottomAnchor)) { +// anchors()->resetBottom(); // setPropertyValue("y", modelNode().property("y").value()); // setPropertyValue("height", modelNode().property("height").value()); // } @@ -401,11 +402,11 @@ void QmlGraphicsItemNodeInstance::resetProperty(const QString &name) // // if (instance.isQmlGraphicsItem()) { // Pointer qmlGraphicsItemInstance(instance.QmlGraphicsItemNodeInstance()); -// qmlGraphicsItem()->anchors()->setProperty("horizontalCenter", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); +// anchors()->setProperty("horizontalCenter", anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); // } // } else { -// if (qmlGraphicsItem()->anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasHCenterAnchor)) { -// qmlGraphicsItem()->anchors()->resetHorizontalCenter(); +// if (anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasHCenterAnchor)) { +// anchors()->resetHorizontalCenter(); // setPropertyValue("x", modelNode().property("x").value()); // setPropertyValue("width", modelNode().property("width").value()); // } @@ -418,23 +419,23 @@ void QmlGraphicsItemNodeInstance::resetProperty(const QString &name) // // if (instance.isQmlGraphicsItem()) { // Pointer qmlGraphicsItemInstance(instance.QmlGraphicsItemNodeInstance()); -// qmlGraphicsItem()->anchors()->setProperty("verticalCenter",anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); +// anchors()->setProperty("verticalCenter",anchorLineFor(qmlGraphicsItemInstance->qmlGraphicsItem(), anchorLine)); // } // } else { -// if (qmlGraphicsItem()->anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasVCenterAnchor)) { -// qmlGraphicsItem()->anchors()->resetVerticalCenter(); +// if (anchors()->usedAnchors().testFlag(QDeclarativeAnchors::HasVCenterAnchor)) { +// anchors()->resetVerticalCenter(); // setPropertyValue("y", modelNode().property("y").value()); // setPropertyValue("height", modelNode().property("height").value()); // } // } // // -// qmlGraphicsItem()->anchors()->setTopMargin(anchors.margin(AnchorLine::Top)); -// qmlGraphicsItem()->anchors()->setLeftMargin(anchors.margin(AnchorLine::Left)); -// qmlGraphicsItem()->anchors()->setBottomMargin(anchors.margin(AnchorLine::Bottom)); -// qmlGraphicsItem()->anchors()->setRightMargin(anchors.margin(AnchorLine::Right)); -// qmlGraphicsItem()->anchors()->setHorizontalCenterOffset(anchors.margin(AnchorLine::HorizontalCenter)); -// qmlGraphicsItem()->anchors()->setVerticalCenterOffset(anchors.margin(AnchorLine::VerticalCenter)); +// anchors()->setTopMargin(anchors.margin(AnchorLine::Top)); +// anchors()->setLeftMargin(anchors.margin(AnchorLine::Left)); +// anchors()->setBottomMargin(anchors.margin(AnchorLine::Bottom)); +// anchors()->setRightMargin(anchors.margin(AnchorLine::Right)); +// anchors()->setHorizontalCenterOffset(anchors.margin(AnchorLine::HorizontalCenter)); +// anchors()->setVerticalCenterOffset(anchors.margin(AnchorLine::VerticalCenter)); //} QDeclarativeAnchors::Anchor anchorLineFlagForName(const QString &name) @@ -504,9 +505,9 @@ QPair QmlGraphicsItemNodeInstance::anchor(const QString & QString targetName; if (name == "anchors.fill") { - targetObject = qmlGraphicsItem()->anchors()->fill(); + targetObject = anchors()->fill(); } else if (name == "anchors.centerIn") { - targetObject = qmlGraphicsItem()->anchors()->centerIn(); + targetObject = anchors()->centerIn(); } else { QDeclarativeProperty metaProperty(object(), name, context()); if (!metaProperty.isValid()) @@ -533,46 +534,49 @@ bool QmlGraphicsItemNodeInstance::hasAnchor(const QString &name) const return false; if (name == "anchors.fill") - return qmlGraphicsItem()->anchors()->fill() != 0; + return anchors()->fill() != 0; if (name == "anchors.centerIn") - return qmlGraphicsItem()->anchors()->centerIn() != 0; + return anchors()->centerIn() != 0; if (name == "anchors.right") - return qmlGraphicsItem()->anchors()->right().item != 0; + return anchors()->right().item != 0; if (name == "anchors.top") - return qmlGraphicsItem()->anchors()->top().item != 0; + return anchors()->top().item != 0; if (name == "anchors.left") - return qmlGraphicsItem()->anchors()->left().item != 0; + return anchors()->left().item != 0; if (name == "anchors.bottom") - return qmlGraphicsItem()->anchors()->bottom().item != 0; + return anchors()->bottom().item != 0; if (name == "anchors.horizontalCenter") - return qmlGraphicsItem()->anchors()->horizontalCenter().item != 0; + return anchors()->horizontalCenter().item != 0; if (name == "anchors.verticalCenter") - return qmlGraphicsItem()->anchors()->verticalCenter().item != 0; + return anchors()->verticalCenter().item != 0; if (name == "anchors.baseline") - return qmlGraphicsItem()->anchors()->baseline().item != 0; + return anchors()->baseline().item != 0; - return qmlGraphicsItem()->anchors()->usedAnchors().testFlag(anchorLineFlagForName(name)); + return anchors()->usedAnchors().testFlag(anchorLineFlagForName(name)); } bool isAnchoredTo(QDeclarativeItem *fromItem, QDeclarativeItem *toItem) { - return fromItem->anchors()->fill() == toItem - || fromItem->anchors()->centerIn() == toItem - || fromItem->anchors()->bottom().item == toItem - || fromItem->anchors()->top().item == toItem - || fromItem->anchors()->left().item == toItem - || fromItem->anchors()->right().item == toItem - || fromItem->anchors()->verticalCenter().item == toItem - || fromItem->anchors()->horizontalCenter().item == toItem - || fromItem->anchors()->baseline().item == toItem; + Q_ASSERT(dynamic_cast(QGraphicsItemPrivate::get(fromItem))); + QDeclarativeItemPrivate *fromItemPrivate = static_cast(QGraphicsItemPrivate::get(fromItem)); + QDeclarativeAnchors *anchors = fromItemPrivate->anchors(); + return anchors->fill() == toItem + || anchors->centerIn() == toItem + || anchors->bottom().item == toItem + || anchors->top().item == toItem + || anchors->left().item == toItem + || anchors->right().item == toItem + || anchors->verticalCenter().item == toItem + || anchors->horizontalCenter().item == toItem + || anchors->baseline().item == toItem; } bool areChildrenAnchoredTo(QDeclarativeItem *fromItem, QDeclarativeItem *toItem) @@ -612,8 +616,6 @@ bool QmlGraphicsItemNodeInstance::isAnchoredBy() const return false; } - - QDeclarativeItem *QmlGraphicsItemNodeInstance::qmlGraphicsItem() const { if (object() == 0) @@ -622,5 +624,13 @@ QDeclarativeItem *QmlGraphicsItemNodeInstance::qmlGraphicsItem() const Q_ASSERT(qobject_cast(object())); return static_cast(object()); } + +QDeclarativeAnchors *QmlGraphicsItemNodeInstance::anchors() const +{ + Q_ASSERT(dynamic_cast(QGraphicsItemPrivate::get(qmlGraphicsItem()))); + QDeclarativeItemPrivate *itemPrivate = static_cast(QGraphicsItemPrivate::get(qmlGraphicsItem())); + return itemPrivate->anchors(); } -} + +} // namespace Internal +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h index be3bd5dd1bb..67aa6813516 100644 --- a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h +++ b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.h @@ -68,6 +68,7 @@ public: protected: QmlGraphicsItemNodeInstance(QDeclarativeItem *item, bool hasContent); QDeclarativeItem *qmlGraphicsItem() const; + QDeclarativeAnchors *anchors() const; void resetHorizontal(); void resetVertical(); diff --git a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp index 2a780de6ffa..15f681ea749 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp @@ -28,22 +28,18 @@ **************************************************************************/ #include "itemlibraryinfo.h" -#include "model/internalproperty.h" +#include "nodemetainfo.h" #include -#include -#include -#include -#include namespace QmlDesigner { namespace Internal { -class ItemLibraryInfoData : public QSharedData +class ItemLibraryEntryData : public QSharedData { public: - ItemLibraryInfoData() : majorVersion(-1), minorVersion(-1) + ItemLibraryEntryData() : majorVersion(-1), minorVersion(-1) { } QString name; QString typeName; @@ -55,14 +51,31 @@ public: QList properties; QString qml; }; -} -ItemLibraryInfo::ItemLibraryInfo(const ItemLibraryInfo &other) +class ItemLibraryInfoPrivate +{ +public: + typedef QSharedPointer Pointer; + typedef QSharedPointer WeakPointer; + + QMultiHash itemLibraryInfoHash; + QHash itemLibraryInfoHashAll; + + Pointer parentData; +}; + +} // namespace Internal + +// +// ItemLibraryEntry +// + +ItemLibraryEntry::ItemLibraryEntry(const ItemLibraryEntry &other) : m_data(other.m_data) { } -ItemLibraryInfo& ItemLibraryInfo::operator=(const ItemLibraryInfo &other) +ItemLibraryEntry& ItemLibraryEntry::operator=(const ItemLibraryEntry &other) { if (this !=&other) m_data = other.m_data; @@ -70,139 +83,237 @@ ItemLibraryInfo& ItemLibraryInfo::operator=(const ItemLibraryInfo &other) return *this; } -void ItemLibraryInfo::setDragIcon(const QIcon &icon) +void ItemLibraryEntry::setDragIcon(const QIcon &icon) { m_data->dragIcon = icon; } -QIcon ItemLibraryInfo::dragIcon() const +QIcon ItemLibraryEntry::dragIcon() const { return m_data->dragIcon; } -void ItemLibraryInfo::addProperty(const Property &property) +void ItemLibraryEntry::addProperty(const Property &property) { m_data->properties.append(property); } -QList ItemLibraryInfo::properties() const +QList ItemLibraryEntry::properties() const { return m_data->properties; } -ItemLibraryInfo::ItemLibraryInfo() : m_data(new Internal::ItemLibraryInfoData) +ItemLibraryEntry::ItemLibraryEntry() : m_data(new Internal::ItemLibraryEntryData) { m_data->name.clear(); } -ItemLibraryInfo::~ItemLibraryInfo() +ItemLibraryEntry::~ItemLibraryEntry() { } -QString ItemLibraryInfo::name() const +QString ItemLibraryEntry::name() const { return m_data->name; } -QString ItemLibraryInfo::typeName() const +QString ItemLibraryEntry::typeName() const { return m_data->typeName; } -QString ItemLibraryInfo::qml() const +QString ItemLibraryEntry::qml() const { return m_data->qml; } -int ItemLibraryInfo::majorVersion() const +int ItemLibraryEntry::majorVersion() const { return m_data->majorVersion; } -int ItemLibraryInfo::minorVersion() const +int ItemLibraryEntry::minorVersion() const { return m_data->minorVersion; } -QString ItemLibraryInfo::category() const +QString ItemLibraryEntry::category() const { return m_data->category; } -void ItemLibraryInfo::setCategory(const QString &category) +void ItemLibraryEntry::setCategory(const QString &category) { m_data->category = category; } -QIcon ItemLibraryInfo::icon() const +QIcon ItemLibraryEntry::icon() const { return m_data->icon; } -void ItemLibraryInfo::setName(const QString &name) +void ItemLibraryEntry::setName(const QString &name) { m_data->name = name; } -void ItemLibraryInfo::setTypeName(const QString &typeName) +void ItemLibraryEntry::setTypeName(const QString &typeName) { m_data->typeName = typeName; } -void ItemLibraryInfo::setIcon(const QIcon &icon) +void ItemLibraryEntry::setIcon(const QIcon &icon) { m_data->icon = icon; } -void ItemLibraryInfo::setMajorVersion(int majorVersion) +void ItemLibraryEntry::setMajorVersion(int majorVersion) { m_data->majorVersion = majorVersion; } -void ItemLibraryInfo::setMinorVersion(int minorVersion) +void ItemLibraryEntry::setMinorVersion(int minorVersion) { m_data->minorVersion = minorVersion; } -void ItemLibraryInfo::setQml(const QString &qml) +void ItemLibraryEntry::setQml(const QString &qml) { m_data->qml = qml; } -void ItemLibraryInfo::addProperty(QString &name, QString &type, QString &value) +void ItemLibraryEntry::addProperty(QString &name, QString &type, QString &value) { Property property; property.set(name, type, value); addProperty(property); } -QDataStream& operator<<(QDataStream& stream, const ItemLibraryInfo& itemLibraryInfo) +QDataStream& operator<<(QDataStream& stream, const ItemLibraryEntry &itemLibraryEntry) { - stream << itemLibraryInfo.name(); - stream << itemLibraryInfo.typeName(); - stream << itemLibraryInfo.majorVersion(); - stream << itemLibraryInfo.minorVersion(); - stream << itemLibraryInfo.icon(); - stream << itemLibraryInfo.category(); - stream << itemLibraryInfo.dragIcon(); - stream << itemLibraryInfo.m_data->properties; + stream << itemLibraryEntry.name(); + stream << itemLibraryEntry.typeName(); + stream << itemLibraryEntry.majorVersion(); + stream << itemLibraryEntry.minorVersion(); + stream << itemLibraryEntry.icon(); + stream << itemLibraryEntry.category(); + stream << itemLibraryEntry.dragIcon(); + stream << itemLibraryEntry.m_data->properties; return stream; } -QDataStream& operator>>(QDataStream& stream, ItemLibraryInfo& itemLibraryInfo) +QDataStream& operator>>(QDataStream& stream, ItemLibraryEntry &itemLibraryEntry) { - stream >> itemLibraryInfo.m_data->name; - stream >> itemLibraryInfo.m_data->typeName; - stream >> itemLibraryInfo.m_data->majorVersion; - stream >> itemLibraryInfo.m_data->minorVersion; - stream >> itemLibraryInfo.m_data->icon; - stream >> itemLibraryInfo.m_data->category; - stream >> itemLibraryInfo.m_data->dragIcon; - stream >> itemLibraryInfo.m_data->properties; + stream >> itemLibraryEntry.m_data->name; + stream >> itemLibraryEntry.m_data->typeName; + stream >> itemLibraryEntry.m_data->majorVersion; + stream >> itemLibraryEntry.m_data->minorVersion; + stream >> itemLibraryEntry.m_data->icon; + stream >> itemLibraryEntry.m_data->category; + stream >> itemLibraryEntry.m_data->dragIcon; + stream >> itemLibraryEntry.m_data->properties; return stream; } +// +// ItemLibraryInfo +// +ItemLibraryInfo::ItemLibraryInfo(const ItemLibraryInfo &other) : + m_data(other.m_data) +{ } + +ItemLibraryInfo::ItemLibraryInfo() : + m_data(new Internal::ItemLibraryInfoPrivate()) +{ +} + +ItemLibraryInfo::~ItemLibraryInfo() +{ +} + +ItemLibraryInfo& ItemLibraryInfo::operator=(const ItemLibraryInfo &other) +{ + m_data = other.m_data; + return *this; +} + +bool ItemLibraryInfo::isValid() +{ + return m_data; +} + +ItemLibraryInfo ItemLibraryInfo::createItemLibraryInfo(const ItemLibraryInfo &parentInfo) +{ + ItemLibraryInfo info; + Q_ASSERT(parentInfo.m_data); + info.m_data->parentData = parentInfo.m_data; + return info; +} + +QList ItemLibraryInfo::entriesForNodeMetaInfo(const NodeMetaInfo &nodeMetaInfo) const +{ + QList itemLibraryItems; + + Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data); + while (pointer) { + itemLibraryItems += pointer->itemLibraryInfoHash.values(nodeMetaInfo); + pointer = pointer->parentData; + } + return itemLibraryItems; +} + +ItemLibraryEntry ItemLibraryInfo::entry(const QString &name) const +{ + Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data); + while (pointer) { + if (pointer->itemLibraryInfoHashAll.contains(name)) + return pointer->itemLibraryInfoHashAll.value(name); + pointer = pointer->parentData; + } + + return ItemLibraryEntry(); +} + + +QList ItemLibraryInfo::entries() const +{ + QList list; + + Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data); + while (pointer) { + list += pointer->itemLibraryInfoHashAll.values(); + pointer = pointer->parentData; + } + return list; +} + +ItemLibraryEntry ItemLibraryInfo::addItemLibraryEntry(const NodeMetaInfo &nodeMetaInfo, + const QString &itemLibraryRepresentationName) +{ + ItemLibraryEntry itemLibraryType; + itemLibraryType.setName(itemLibraryRepresentationName); + itemLibraryType.setTypeName(nodeMetaInfo.typeName()); + itemLibraryType.setMajorVersion(nodeMetaInfo.majorVersion()); + itemLibraryType.setMinorVersion(nodeMetaInfo.minorVersion()); + m_data->itemLibraryInfoHash.insert(nodeMetaInfo, itemLibraryType); + m_data->itemLibraryInfoHashAll.insert(itemLibraryRepresentationName, itemLibraryType); + return itemLibraryType; +} + +void ItemLibraryInfo::remove(const NodeMetaInfo &info) +{ + m_data->itemLibraryInfoHash.remove(info); + m_data->itemLibraryInfoHashAll.remove(info.typeName()); +} + +void ItemLibraryInfo::clear() +{ + m_data->itemLibraryInfoHash.clear(); + m_data->itemLibraryInfoHashAll.clear(); +} + +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp index 80a0be8b0f2..1c79dca045e 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp @@ -82,9 +82,8 @@ public: QMultiHash m_superClassHash; // the list of direct superclasses QHash m_nodeMetaInfoHash; QHash m_enumeratorMetaInfoHash; - QMultiHash m_itemLibraryInfoHash; - QHash m_itemLibraryInfoHashAll; QHash m_QtTypesToQmlTypes; + ItemLibraryInfo m_itemLibraryInfo; MetaInfo *m_q; bool m_isInitialized; @@ -94,6 +93,8 @@ MetaInfoPrivate::MetaInfoPrivate(MetaInfo *q) : m_q(q), m_isInitialized(false) { + if (!m_q->isGlobal()) + m_itemLibraryInfo = ItemLibraryInfo::createItemLibraryInfo(m_q->global().itemLibraryInfo()); } void MetaInfoPrivate::clear() @@ -101,8 +102,7 @@ void MetaInfoPrivate::clear() m_superClassHash.clear(); m_nodeMetaInfoHash.clear(); m_enumeratorMetaInfoHash.clear(); - m_itemLibraryInfoHash.clear(); - m_itemLibraryInfoHashAll.clear(); + m_itemLibraryInfo.clear(); m_isInitialized = false; } @@ -492,23 +492,6 @@ QList MetaInfo::directSuperClasses(const NodeMetaInfo &nodeInfo) c return superClassList; } -QList MetaInfo::itemLibraryRepresentations(const NodeMetaInfo &nodeMetaInfo) const -{ - QList itemLibraryItems = m_p->m_itemLibraryInfoHash.values(nodeMetaInfo); - if (!isGlobal()) - itemLibraryItems += global().itemLibraryRepresentations(nodeMetaInfo); - return itemLibraryItems; -} - -ItemLibraryInfo MetaInfo::itemLibraryRepresentation(const QString &name) const -{ - if (m_p->m_itemLibraryInfoHashAll.contains(name)) - return m_p->m_itemLibraryInfoHashAll.value(name); - if (!isGlobal()) - return global().itemLibraryRepresentation(name); - return ItemLibraryInfo(); -} - QString MetaInfo::fromQtTypes(const QString &type) const { if (m_p->m_QtTypesToQmlTypes.contains(type)) @@ -517,21 +500,6 @@ QString MetaInfo::fromQtTypes(const QString &type) const return type; } -QStringList MetaInfo::itemLibraryItems() const -{ - QStringList completeList = m_p->m_nodeMetaInfoHash.keys(); - QStringList finalList; - foreach (const QString &name, completeList) { - if (nodeMetaInfo(name).isVisibleToItemLibrary()) - finalList.append(name); - } - - if (!isGlobal()) - finalList += global().itemLibraryItems(); - - return finalList; -} - /*! \brief Returns whether className is the same type or a type derived from superClassName. */ @@ -574,6 +542,11 @@ EnumeratorMetaInfo MetaInfo::enumerator(const QString &enumeratorName) const return EnumeratorMetaInfo(); } +ItemLibraryInfo MetaInfo::itemLibraryInfo() const +{ + return m_p->m_itemLibraryInfo; +} + /*! \brief Access to the global meta information object. You almost always want to use Model::metaInfo() instead. @@ -643,8 +616,7 @@ void MetaInfo::removeNodeInfo(NodeMetaInfo &info) m_p->m_superClassHash.remove(info.typeName()); // TODO: Other types might specify type as parent type - m_p->m_itemLibraryInfoHash.remove(info); - m_p->m_itemLibraryInfoHashAll.remove(info.typeName()); + m_p->m_itemLibraryInfo.remove(info); } else if (!isGlobal()) { global().removeNodeInfo(info); @@ -688,18 +660,6 @@ EnumeratorMetaInfo MetaInfo::addFlag(const QString &enumeratorScope, const QStri return enumeratorMetaInfo; } -ItemLibraryInfo MetaInfo::addItemLibraryInfo(const NodeMetaInfo &nodeMetaInfo, const QString &itemLibraryRepresentationName) -{ - ItemLibraryInfo itemLibraryInfo; - itemLibraryInfo.setName(itemLibraryRepresentationName); - itemLibraryInfo.setTypeName(nodeMetaInfo.typeName()); - itemLibraryInfo.setMajorVersion(nodeMetaInfo.majorVersion()); - itemLibraryInfo.setMinorVersion(nodeMetaInfo.minorVersion()); - m_p->m_itemLibraryInfoHash.insert(nodeMetaInfo, itemLibraryInfo); - m_p->m_itemLibraryInfoHashAll.insert(itemLibraryRepresentationName, itemLibraryInfo); - return itemLibraryInfo; -} - bool MetaInfo::isGlobal() const { return (this->m_p == s_global.m_p); @@ -714,4 +674,5 @@ bool operator!=(const MetaInfo &first, const MetaInfo &second) { return !(first == second); } + } //namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp index 99dd5c90229..6b899b73eb3 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp @@ -179,16 +179,6 @@ void MetaInfoParser::handleNodeElement(QXmlStreamReader &reader) nodeMetaInfo.setIsContainer(stringToBool(isContainer)); } - if (attributes.hasAttribute("showInItemLibrary")) { - const QString showInItemLibrary = attributes.value("showInItemLibrary").toString(); - nodeMetaInfo.setIsVisibleToItemLibrary(stringToBool(showInItemLibrary)); - } - - if (attributes.hasAttribute("category")) { - const QString category = attributes.value("category").toString(); - nodeMetaInfo.setCategory(category); - } - if (attributes.hasAttribute("icon")) { const QString iconPath = reader.attributes().value("icon").toString(); nodeMetaInfo.setIcon(QIcon(iconPath)); @@ -200,29 +190,33 @@ void MetaInfoParser::handleNodeElement(QXmlStreamReader &reader) handleNodeInheritElement(reader, className); handleAbstractPropertyElement(reader, nodeMetaInfo); handleAbstractPropertyDefaultValueElement(reader, nodeMetaInfo); - handleNodeItemLibraryRepresentationElement(reader, className); + handleNodeItemLibraryEntryElement(reader, className); } } -void MetaInfoParser::handleNodeItemLibraryRepresentationElement(QXmlStreamReader &reader, const QString & className) +void MetaInfoParser::handleNodeItemLibraryEntryElement(QXmlStreamReader &reader, const QString & className) { - if (reader.isStartElement() && reader.name() == "itemlibraryrepresentation") + if (reader.isStartElement() && reader.name() == "itemlibraryentry") { QString name = reader.attributes().value("name").toString(); - ItemLibraryInfo ItemLibraryInfo = m_metaInfo.addItemLibraryInfo(m_metaInfo.nodeMetaInfo(className), name); + ItemLibraryEntry itemLibraryEntry = m_metaInfo.itemLibraryInfo().addItemLibraryEntry(m_metaInfo.nodeMetaInfo(className), name); QString iconPath = reader.attributes().value("icon").toString(); if (!iconPath.isEmpty()) - ItemLibraryInfo.setIcon(QIcon(iconPath)); + itemLibraryEntry.setIcon(QIcon(iconPath)); - while (!reader.atEnd() && !(reader.isEndElement() && reader.name() == "itemlibraryrepresentation")) { + QString category = reader.attributes().value("category").toString(); + if (!category.isEmpty()) + itemLibraryEntry.setCategory(category); + + while (!reader.atEnd() && !(reader.isEndElement() && reader.name() == "itemlibraryentry")) { reader.readNext(); - handleItemLibraryInfoPropertyElement(reader, ItemLibraryInfo); + handleItemLibraryEntryPropertyElement(reader, itemLibraryEntry); } } } -void MetaInfoParser::handleNodeInheritElement(QXmlStreamReader &reader, const QString & className) +void MetaInfoParser::handleNodeInheritElement(QXmlStreamReader &reader, const QString &className) { if (reader.isStartElement() && reader.name() == "inherits") { @@ -233,7 +227,7 @@ void MetaInfoParser::handleNodeInheritElement(QXmlStreamReader &reader, const QS } } -void MetaInfoParser::handleItemLibraryInfoPropertyElement(QXmlStreamReader &reader, ItemLibraryInfo &ItemLibraryInfo) +void MetaInfoParser::handleItemLibraryEntryPropertyElement(QXmlStreamReader &reader, ItemLibraryEntry &itemLibraryEntry) { if (reader.isStartElement() && reader.name() == "property") { @@ -241,7 +235,7 @@ void MetaInfoParser::handleItemLibraryInfoPropertyElement(QXmlStreamReader &read QString name = attributes.value("name").toString(); QString type = attributes.value("type").toString(); QString value = attributes.value("value").toString(); - ItemLibraryInfo.addProperty(name, type, value); + itemLibraryEntry.addProperty(name, type, value); reader.readNext(); } diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index b63a1a991df..d4f60bee8cc 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -62,7 +62,6 @@ public: NodeMetaInfoData(const MetaInfo &metaInfo) : metaInfo(metaInfo), isContainer(false), - isVisibleToItemLibrary(false), isFXItem(Unknown), icon(), category("misc") @@ -71,7 +70,6 @@ public: MetaInfo metaInfo; QString typeName; bool isContainer; - bool isVisibleToItemLibrary; TristateBoolean isFXItem; QHash propertyMetaInfoHash; QIcon icon; @@ -547,15 +545,6 @@ bool NodeMetaInfo::isContainer() const return m_data->isContainer; } -bool NodeMetaInfo::isVisibleToItemLibrary() const -{ - if (!isValid()) { - qWarning() << "NodeMetaInfo is invalid"; - return false; - } - return m_data->isVisibleToItemLibrary; -} - void NodeMetaInfo::setIsContainer(bool isContainer) { if (!isValid()) { @@ -565,15 +554,6 @@ void NodeMetaInfo::setIsContainer(bool isContainer) m_data->isContainer = isContainer; } -void NodeMetaInfo::setIsVisibleToItemLibrary(bool isVisibleToItemLibrary) -{ - if (!isValid()) { - qWarning() << "NodeMetaInfo is invalid"; - return; - } - m_data->isVisibleToItemLibrary = isVisibleToItemLibrary; -} - QIcon NodeMetaInfo::icon() const { if (!isValid()) { @@ -583,15 +563,6 @@ QIcon NodeMetaInfo::icon() const return m_data->icon; } -QString NodeMetaInfo::category() const -{ - if (!isValid()) { - qWarning() << "NodeMetaInfo is invalid"; - return QString(); - } - return m_data->category; -} - void NodeMetaInfo::setIcon(const QIcon &icon) { if (!isValid()) { @@ -601,15 +572,6 @@ void NodeMetaInfo::setIcon(const QIcon &icon) m_data->icon = icon; } -void NodeMetaInfo::setCategory(const QString &category) -{ - if (!isValid()) { - qWarning() << "NodeMetaInfo is invalid"; - return; - } - m_data->category = category; -} - /*! \brief Returns whether the type inherits from "QWidget". diff --git a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp index c018d2bbff1..8bae3ebba17 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp @@ -42,17 +42,13 @@ enum { debug = false }; QT_BEGIN_NAMESPACE -// Allow usage of QFileInfo in hash / qSort +// Allow usage of QFileInfo in qSort static bool operator<(const QFileInfo &file1, const QFileInfo &file2) { return file1.filePath() < file2.filePath(); } -static uint qHash(const QFileInfo &fileInfo) -{ - return qHash(fileInfo.filePath()); -} QT_END_NAMESPACE @@ -73,11 +69,11 @@ public: void parseDirectories(); public slots: - void parseDirectory(const QString &dirPath); - void parseFile(const QString &filePath); + void parseDirectory(const QString &canonicalDirPath); + void parseFile(const QString &canonicalFilePath); public: - QList watchedFiles(const QDir &dirInfo); + QList watchedFiles(const QString &canonicalDirPath); void unregisterQmlFile(const QFileInfo &fileInfo, const QString &qualifier); void registerQmlFile(const QFileInfo &fileInfo, const QString &qualifier, const QDeclarativeDomDocument &document); @@ -88,7 +84,8 @@ public: QFileSystemWatcher m_watcher; - QMultiHash m_dirToQualifier; + // key: canonical directory path + QMultiHash m_dirToQualifier; QUrl m_filePath; @@ -111,8 +108,9 @@ void SubComponentManagerPrivate::addImport(int pos, const QDeclarativeDomImport if (import.type() == QDeclarativeDomImport::File) { QFileInfo dirInfo = QFileInfo(m_filePath.resolved(import.uri()).toLocalFile()); if (dirInfo.exists() && dirInfo.isDir()) { - m_watcher.addPath(dirInfo.filePath()); - m_dirToQualifier.insertMulti(dirInfo, import.qualifier()); + const QString canonicalDirPath = dirInfo.canonicalFilePath(); + m_watcher.addPath(canonicalDirPath); + m_dirToQualifier.insertMulti(canonicalDirPath, import.qualifier()); } } else { // TODO: QDeclarativeDomImport::Library @@ -126,15 +124,16 @@ void SubComponentManagerPrivate::removeImport(int pos) const QDeclarativeDomImport import = m_imports.takeAt(pos); if (import.type() == QDeclarativeDomImport::File) { - QFileInfo dirInfo = QFileInfo(m_filePath.resolved(import.uri()).toLocalFile()); + const QFileInfo dirInfo = QFileInfo(m_filePath.resolved(import.uri()).toLocalFile()); + const QString canonicalDirPath = dirInfo.canonicalFilePath(); - m_dirToQualifier.remove(dirInfo, import.qualifier()); + m_dirToQualifier.remove(canonicalDirPath, import.qualifier()); - if (!m_dirToQualifier.contains(dirInfo)) - m_watcher.removePath(dirInfo.filePath()); + if (!m_dirToQualifier.contains(canonicalDirPath)) + m_watcher.removePath(canonicalDirPath); - foreach (const QFileInfo &monitoredFile, watchedFiles(dirInfo.filePath())) { - if (!m_dirToQualifier.contains(dirInfo)) + foreach (const QFileInfo &monitoredFile, watchedFiles(canonicalDirPath)) { + if (!m_dirToQualifier.contains(canonicalDirPath)) m_watcher.removePath(monitoredFile.filePath()); unregisterQmlFile(monitoredFile, import.qualifier()); } @@ -149,30 +148,30 @@ void SubComponentManagerPrivate::parseDirectories() const QString file = m_filePath.toLocalFile(); QFileInfo dirInfo = QFileInfo(QFileInfo(file).path()); if (dirInfo.exists() && dirInfo.isDir()) - parseDirectory(dirInfo.filePath()); + parseDirectory(dirInfo.canonicalFilePath()); } foreach (const QDeclarativeDomImport &import, m_imports) { if (import.type() == QDeclarativeDomImport::File) { QFileInfo dirInfo = QFileInfo(m_filePath.resolved(import.uri()).toLocalFile()); if (dirInfo.exists() && dirInfo.isDir()) { - parseDirectory(dirInfo.filePath()); + parseDirectory(dirInfo.canonicalFilePath()); } } } } -void SubComponentManagerPrivate::parseDirectory(const QString &dirPath) +void SubComponentManagerPrivate::parseDirectory(const QString &canonicalDirPath) { if (debug) - qDebug() << Q_FUNC_INFO << dirPath; + qDebug() << Q_FUNC_INFO << canonicalDirPath; - QDir dir(dirPath); + QDir dir(canonicalDirPath); dir.setNameFilters(QStringList(QMLFILEPATTERN)); dir.setFilter(QDir::Files | QDir::Readable | QDir::CaseSensitive); - QList monitoredList = watchedFiles(dir); + QList monitoredList = watchedFiles(canonicalDirPath); QList newList; foreach (const QFileInfo &qmlFile, dir.entryInfoList()) { if (QFileInfo(m_filePath.toLocalFile()) == qmlFile) { @@ -203,7 +202,7 @@ void SubComponentManagerPrivate::parseDirectory(const QString &dirPath) continue; } if (oldFileInfo < newFileInfo) { - foreach (const QString &qualifier, m_dirToQualifier.value(dirPath)) + foreach (const QString &qualifier, m_dirToQualifier.value(canonicalDirPath)) unregisterQmlFile(oldFileInfo, qualifier); m_watcher.removePath(oldFileInfo.filePath()); ++oldIter; @@ -216,7 +215,7 @@ void SubComponentManagerPrivate::parseDirectory(const QString &dirPath) } while (oldIter != monitoredList.constEnd()) { - foreach (const QString &qualifier, m_dirToQualifier.value(dirPath)) + foreach (const QString &qualifier, m_dirToQualifier.value(canonicalDirPath)) unregisterQmlFile(*oldIter, qualifier); m_watcher.removePath(oldIter->filePath()); ++oldIter; @@ -231,37 +230,37 @@ void SubComponentManagerPrivate::parseDirectory(const QString &dirPath) } } -void SubComponentManagerPrivate::parseFile(const QString &filePath) +void SubComponentManagerPrivate::parseFile(const QString &canonicalFilePath) { if (debug) - qDebug() << Q_FUNC_INFO << filePath; + qDebug() << Q_FUNC_INFO << canonicalFilePath; - QFile file(filePath); + QFile file(canonicalFilePath); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { return; } QDeclarativeDomDocument document; - if (!document.load(&m_engine, file.readAll(), QUrl::fromLocalFile(filePath))) { + if (!document.load(&m_engine, file.readAll(), QUrl::fromLocalFile(canonicalFilePath))) { // TODO: Put the errors somewhere? - qWarning() << "Could not load qml file " << filePath; + qWarning() << "Could not load qml file " << canonicalFilePath; return; } - QFileInfo dir = QFileInfo(filePath).absolutePath(); + QString dir = QFileInfo(canonicalFilePath).path(); foreach (const QString &qualifier, m_dirToQualifier.values(dir)) { - registerQmlFile(filePath, qualifier, document); + registerQmlFile(canonicalFilePath, qualifier, document); } } -QList SubComponentManagerPrivate::watchedFiles(const QDir &dirInfo) +// dirInfo must already contain a canonical path +QList SubComponentManagerPrivate::watchedFiles(const QString &canonicalDirPath) { QList files; - const QString dirPath = dirInfo.absolutePath(); foreach (const QString &monitoredFile, m_watcher.files()) { QFileInfo fileInfo(monitoredFile); - if (fileInfo.dir().absolutePath() == dirPath) { + if (fileInfo.dir().absolutePath() == canonicalDirPath) { files.append(fileInfo); } } @@ -304,10 +303,9 @@ void SubComponentManagerPrivate::registerQmlFile(const QFileInfo &fileInfo, cons nodeInfo.setQmlFile(fileInfo.filePath()); // Add file components to the library - nodeInfo.setCategory(tr("QML Components")); - nodeInfo.setIsVisibleToItemLibrary(true); + ItemLibraryEntry itemLibType = m_metaInfo.itemLibraryInfo().addItemLibraryEntry(nodeInfo, componentName); + itemLibType.setCategory(tr("QML Components")); - m_metaInfo.addItemLibraryInfo(nodeInfo, componentName); m_metaInfo.addNodeInfo(nodeInfo, baseType); foreach (const QDeclarativeDomDynamicProperty &dynamicProperty, document.rootObject().dynamicProperties()) { @@ -405,14 +403,14 @@ void SubComponentManager::update(const QUrl &filePath, const QListm_dirToQualifier.remove(oldDir, QString()); - if (!m_d->m_dirToQualifier.contains(oldDir)) + m_d->m_dirToQualifier.remove(oldDir.canonicalFilePath(), QString()); + if (!m_d->m_dirToQualifier.contains(oldDir.canonicalFilePath())) m_d->m_watcher.removePath(oldDir.filePath()); } if (!newDir.filePath().isEmpty()) { m_d->m_watcher.addPath(newDir.filePath()); - m_d->m_dirToQualifier.insertMulti(newDir, QString()); + m_d->m_dirToQualifier.insertMulti(newDir.canonicalFilePath(), QString()); } } diff --git a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp index 08fa7bb6d25..01c6d2eec17 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp @@ -133,7 +133,7 @@ QmlItemNode QmlModelView::createQmlItemNodeFromImage(const QString &imageName, c return newNode; } -QmlItemNode QmlModelView::createQmlItemNode(const ItemLibraryInfo &itemLibraryRepresentation, const QPointF &position, QmlItemNode parentNode) +QmlItemNode QmlModelView::createQmlItemNode(const ItemLibraryEntry &itemLibraryEntry, const QPointF &position, QmlItemNode parentNode) { if (!parentNode.isValid()) parentNode = rootQmlItemNode(); @@ -148,17 +148,17 @@ QmlItemNode QmlModelView::createQmlItemNode(const ItemLibraryInfo &itemLibraryRe propertyPairList.append(qMakePair(QString("x"), QVariant(round(position.x(), 4)))); propertyPairList.append(qMakePair(QString("y"), QVariant(round(position.y(), 4)))); - foreach (const PropertyContainer &property, itemLibraryRepresentation.properties()) + foreach (const PropertyContainer &property, itemLibraryEntry.properties()) propertyPairList.append(qMakePair(property.name(), property.value())); - newNode = createQmlItemNode(itemLibraryRepresentation.typeName(), itemLibraryRepresentation.majorVersion(), itemLibraryRepresentation.minorVersion(), propertyPairList); + newNode = createQmlItemNode(itemLibraryEntry.typeName(), itemLibraryEntry.majorVersion(), itemLibraryEntry.minorVersion(), propertyPairList); parentNode.nodeAbstractProperty("data").reparentHere(newNode); Q_ASSERT(newNode.isValid()); QString id; int i = 1; - QString name(itemLibraryRepresentation.name().toLower()); + QString name(itemLibraryEntry.name().toLower()); name.remove(QLatin1Char(' ')); do { id = name + QString::number(i); diff --git a/src/plugins/qmldesigner/fxplugin/fx.metainfo b/src/plugins/qmldesigner/fxplugin/fx.metainfo index 4d63e62eb86..0520af0d2db 100644 --- a/src/plugins/qmldesigner/fxplugin/fx.metainfo +++ b/src/plugins/qmldesigner/fxplugin/fx.metainfo @@ -1,124 +1,124 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp index b0c2f56aed8..acd19d29a38 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp @@ -124,15 +124,15 @@ void GettingStartedWelcomePageWidget::updateCppExamples(const QString &examplePa while (!reader.atEnd()) { switch (reader.readNext()) { case QXmlStreamReader::StartElement: - if (reader.name() == "category") { + if (reader.name() == QLatin1String("category")) { QString name = reader.attributes().value(QLatin1String("name")).toString(); - if (name.contains("tutorial")) + if (name.contains(QLatin1String("tutorial"))) break; dirName = reader.attributes().value(QLatin1String("dirname")).toString(); subMenu = menu->addMenu(name); inExamples = true; } - if (inExamples && reader.name() == "example") { + if (inExamples && reader.name() == QLatin1String("example")) { const QChar slash = QLatin1Char('/'); const QString name = reader.attributes().value(QLatin1String("name")).toString(); const QString fn = reader.attributes().value(QLatin1String("filename")).toString(); @@ -152,7 +152,7 @@ void GettingStartedWelcomePageWidget::updateCppExamples(const QString &examplePa } break; case QXmlStreamReader::EndElement: - if (reader.name() == "category") + if (reader.name() == QLatin1String("category")) inExamples = false; break; default: @@ -161,32 +161,43 @@ void GettingStartedWelcomePageWidget::updateCppExamples(const QString &examplePa } } -void GettingStartedWelcomePageWidget::updateQmlExamples(const QString &examplePath) +void GettingStartedWelcomePageWidget::updateQmlExamples(const QString &examplePath, + const QString &sourcePath) { - QDir declarativeDir(examplePath + "/declarative"); - - if (!declarativeDir.exists()) - return; - - ui->qmlExamplesButton->setEnabled(true);; ui->qmlExamplesButton->setText(tr("Choose an example...")); - - QList examples = declarativeDir.entryInfoList(QStringList(), QDir::AllDirs|QDir::NoDotAndDotDot, QDir::Name); - QMenu *menu = new QMenu(ui->qmlExamplesButton); ui->qmlExamplesButton->setMenu(menu); - foreach(const QFileInfo &example, examples) { - const QString exampleProject = example.absoluteFilePath()+'/'+example.fileName()+QLatin1String(".qmlproject"); - if (QFile::exists(exampleProject)) { - QAction *exampleAction = menu->addAction(example.fileName()); - connect(exampleAction, SIGNAL(triggered()), SLOT(slotOpenExample())); - exampleAction->setProperty(ExamplePathPropertyName, exampleProject); - // FIXME once we have help for QML examples - // exampleAction->setProperty(HelpPathPropertyName, helpPath); + QStringList roots; + roots << (examplePath + QLatin1String("/declarative")) + << (sourcePath + QLatin1String("/examples/declarative")); + QMap exampleProjects; + + foreach (const QString &root, roots) { + QList examples = QDir(root).entryInfoList(QStringList(), QDir::AllDirs|QDir::NoDotAndDotDot, QDir::Name); + foreach(const QFileInfo &example, examples) { + const QString fileName = example.fileName(); + if (exampleProjects.contains(fileName)) + continue; + const QString exampleProject = example.absoluteFilePath() + + QLatin1Char('/') + fileName + + QLatin1String(".qmlproject"); + if (!QFile::exists(exampleProject)) + continue; + exampleProjects.insert(fileName, exampleProject); } } + QMapIterator it(exampleProjects); + while (it.hasNext()) { + it.next(); + QAction *exampleAction = menu->addAction(it.key()); + connect(exampleAction, SIGNAL(triggered()), SLOT(slotOpenExample())); + exampleAction->setProperty(ExamplePathPropertyName, it.value()); + // FIXME once we have help for QML examples + // exampleAction->setProperty(HelpPathPropertyName, helpPath); + } + ui->qmlExamplesButton->setEnabled(!exampleProjects.isEmpty()); } void GettingStartedWelcomePageWidget::updateExamples(const QString &examplePath, @@ -200,7 +211,7 @@ void GettingStartedWelcomePageWidget::updateExamples(const QString &examplePath, return; } updateCppExamples(examplePath, sourcePath, demoxml); - updateQmlExamples(examplePath); + updateQmlExamples(examplePath, sourcePath); } diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.h b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.h index 872fc52f464..5d730953c54 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.h +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.h @@ -64,7 +64,8 @@ private: void updateCppExamples(const QString &examplePath, const QString &sourcePath, const QString &demoXml); - void updateQmlExamples(const QString &examplePath); + void updateQmlExamples(const QString &examplePath, + const QString &sourcePath); Ui::GettingStartedWelcomePageWidget *ui; int m_currentTip; diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp index fa50bb1618e..ffeb87f1533 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp @@ -247,7 +247,7 @@ QString S60DeviceRunConfiguration::packageFileNameWithTargetInfo() const TargetInformation ti = qt4Target()->qt4Project()->rootProjectNode()->targetInformation(m_proFilePath); if (!ti.valid) return QString(); - QString baseFileName = ti.workingDir + QLatin1Char('/') + ti.target; + QString baseFileName = ti.buildDir + QLatin1Char('/') + ti.target; baseFileName += QLatin1Char('_') + (isDebug() ? QLatin1String("debug") : QLatin1String("release")) + QLatin1Char('-') + symbianPlatform() + QLatin1String(".sis"); @@ -284,7 +284,7 @@ QString S60DeviceRunConfiguration::packageTemplateFileName() const TargetInformation ti = qt4Target()->qt4Project()->rootProjectNode()->targetInformation(m_proFilePath); if (!ti.valid) return QString(); - return ti.workingDir + QLatin1Char('/') + ti.target + QLatin1String("_template.pkg"); + return ti.buildDir + QLatin1Char('/') + ti.target + QLatin1String("_template.pkg"); } /* Grep a package file for the '.exe' file. Curently for use on Linux only @@ -351,7 +351,7 @@ QString S60DeviceRunConfiguration::signedPackage() const TargetInformation ti = qt4Target()->qt4Project()->rootProjectNode()->targetInformation(m_proFilePath); if (!ti.valid) return QString(); - return ti.workingDir + QLatin1Char('/') + ti.target + QLatin1String(".sis"); + return ti.buildDir + QLatin1Char('/') + ti.target + QLatin1String(".sis"); } QStringList S60DeviceRunConfiguration::commandLineArguments() const diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 5cc67a80085..9db7a03b4a4 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -1428,7 +1428,8 @@ TargetInformation Qt4ProFileNode::targetInformation(ProFileReader *reader) const if (!reader) return result; - const QString baseDir = buildDir(); + result.buildDir = buildDir(); + const QString baseDir = result.buildDir; // qDebug() << "base build dir is:"<fillRect(rect, grad); painter->setPen(outline); @@ -2977,7 +3059,9 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e) int boxWidth = collapseBoxWidth(fm); if (hovered) { - QRect box = QRect(extraAreaWidth + 1, top, boxWidth - 2, bottom - top); + int itop = qRound(top); + int ibottom = qRound(bottom); + QRect box = QRect(extraAreaWidth + 1, itop, boxWidth - 2, ibottom - itop); drawRectBox(&painter, box, drawStart, drawEnd, pal); } diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index af067e777e4..fed0d251d59 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -231,6 +231,23 @@ public slots: void gotoBlockStartWithSelection(); void gotoBlockEndWithSelection(); + void gotoLineStart(); + void gotoLineStartWithSelection(); + void gotoLineEnd(); + void gotoLineEndWithSelection(); + void gotoNextLine(); + void gotoNextLineWithSelection(); + void gotoPreviousLine(); + void gotoPreviousLineWithSelection(); + void gotoPreviousCharacter(); + void gotoPreviousCharacterWithSelection(); + void gotoNextCharacter(); + void gotoNextCharacterWithSelection(); + void gotoPreviousWord(); + void gotoPreviousWordWithSelection(); + void gotoNextWord(); + void gotoNextWordWithSelection(); + void selectBlockUp(); void selectBlockDown(); diff --git a/src/plugins/texteditor/texteditoractionhandler.cpp b/src/plugins/texteditor/texteditoractionhandler.cpp index eeb0b09d9a1..aa5e9dedf36 100644 --- a/src/plugins/texteditor/texteditoractionhandler.cpp +++ b/src/plugins/texteditor/texteditoractionhandler.cpp @@ -302,6 +302,58 @@ void TextEditorActionHandler::createActions() command = am->registerAction(m_insertLineBelowAction, Constants::INSERT_LINE_BELOW, m_contextId); command->setDefaultKeySequence(QKeySequence(tr("Ctrl+Return"))); connect(m_insertLineBelowAction, SIGNAL(triggered()), this, SLOT(insertLineBelow())); + + QAction *a = 0; + a = new QAction(tr("Goto Line Start"), this); + command = am->registerAction(a, Constants::GOTO_LINE_START, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoLineStart())); + a = new QAction(tr("Goto Line End"), this); + command = am->registerAction(a, Constants::GOTO_LINE_END, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoLineEnd())); + a = new QAction(tr("Goto Next Line"), this); + command = am->registerAction(a, Constants::GOTO_NEXT_LINE, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoNextLine())); + a = new QAction(tr("Goto Previous Line"), this); + command = am->registerAction(a, Constants::GOTO_PREVIOUS_LINE, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoPreviousLine())); + a = new QAction(tr("Goto Previous Character"), this); + command = am->registerAction(a, Constants::GOTO_PREVIOUS_CHARACTER, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoPreviousCharacter())); + a = new QAction(tr("Goto Next Character"), this); + command = am->registerAction(a, Constants::GOTO_NEXT_CHARACTER, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoNextCharacter())); + a = new QAction(tr("Goto Previous Word"), this); + command = am->registerAction(a, Constants::GOTO_PREVIOUS_WORD, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoPreviousWord())); + a = new QAction(tr("Goto Next Word"), this); + command = am->registerAction(a, Constants::GOTO_NEXT_WORD, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoNextWord())); + + a = new QAction(tr("Goto Line Start With Selection"), this); + command = am->registerAction(a, Constants::GOTO_LINE_START_WITH_SELECTION, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoLineStartWithSelection())); + a = new QAction(tr("Goto Line End With Selection"), this); + command = am->registerAction(a, Constants::GOTO_LINE_END_WITH_SELECTION, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoLineEndWithSelection())); + a = new QAction(tr("Goto Next Line With Selection"), this); + command = am->registerAction(a, Constants::GOTO_NEXT_LINE_WITH_SELECTION, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoNextLineWithSelection())); + a = new QAction(tr("Goto Previous Line With Selection"), this); + command = am->registerAction(a, Constants::GOTO_PREVIOUS_LINE_WITH_SELECTION, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoPreviousLineWithSelection())); + a = new QAction(tr("Goto Previous Character With Selection"), this); + command = am->registerAction(a, Constants::GOTO_PREVIOUS_CHARACTER_WITH_SELECTION, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoPreviousCharacterWithSelection())); + a = new QAction(tr("Goto Next Character With Selection"), this); + command = am->registerAction(a, Constants::GOTO_NEXT_CHARACTER_WITH_SELECTION, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoNextCharacterWithSelection())); + a = new QAction(tr("Goto Previous Word With Selection"), this); + command = am->registerAction(a, Constants::GOTO_PREVIOUS_WORD_WITH_SELECTION, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoPreviousWordWithSelection())); + a = new QAction(tr("Goto Next Word With Selection"), this); + command = am->registerAction(a, Constants::GOTO_NEXT_WORD_WITH_SELECTION, m_contextId); + connect(a, SIGNAL(triggered()), this, SLOT(gotoNextWordWithSelection())); + } bool TextEditorActionHandler::supportsAction(const QString & /*id */) const @@ -467,6 +519,24 @@ FUNCTION(joinLines) FUNCTION(insertLineAbove) FUNCTION(insertLineBelow) +FUNCTION(gotoLineStart) +FUNCTION(gotoLineStartWithSelection) +FUNCTION(gotoLineEnd) +FUNCTION(gotoLineEndWithSelection) +FUNCTION(gotoNextLine) +FUNCTION(gotoNextLineWithSelection) +FUNCTION(gotoPreviousLine) +FUNCTION(gotoPreviousLineWithSelection) +FUNCTION(gotoPreviousCharacter) +FUNCTION(gotoPreviousCharacterWithSelection) +FUNCTION(gotoNextCharacter) +FUNCTION(gotoNextCharacterWithSelection) +FUNCTION(gotoPreviousWord) +FUNCTION(gotoPreviousWordWithSelection) +FUNCTION(gotoNextWord) +FUNCTION(gotoNextWordWithSelection) + + void TextEditorActionHandler::updateCurrentEditor(Core::IEditor *editor) { m_currentEditor = 0; diff --git a/src/plugins/texteditor/texteditoractionhandler.h b/src/plugins/texteditor/texteditoractionhandler.h index c747bc30fdb..25f2e9febb3 100644 --- a/src/plugins/texteditor/texteditoractionhandler.h +++ b/src/plugins/texteditor/texteditoractionhandler.h @@ -120,6 +120,24 @@ private slots: void insertLineBelow(); void updateCurrentEditor(Core::IEditor *editor); + void gotoLineStart(); + void gotoLineStartWithSelection(); + void gotoLineEnd(); + void gotoLineEndWithSelection(); + void gotoNextLine(); + void gotoNextLineWithSelection(); + void gotoPreviousLine(); + void gotoPreviousLineWithSelection(); + void gotoPreviousCharacter(); + void gotoPreviousCharacterWithSelection(); + void gotoNextCharacter(); + void gotoNextCharacterWithSelection(); + void gotoPreviousWord(); + void gotoPreviousWordWithSelection(); + void gotoNextWord(); + void gotoNextWordWithSelection(); + + private: QAction *m_undoAction; QAction *m_redoAction; diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h index 2a27a67296d..b111121c824 100644 --- a/src/plugins/texteditor/texteditorconstants.h +++ b/src/plugins/texteditor/texteditorconstants.h @@ -70,6 +70,22 @@ const char * const SELECT_ENCODING = "TextEditor.SelectEncoding"; const char * const REWRAP_PARAGRAPH = "TextEditor.RewrapParagraph"; const char * const GOTO_OPENING_PARENTHESIS = "TextEditor.GotoOpeningParenthesis"; const char * const GOTO_CLOSING_PARENTHESIS = "TextEditor.GotoClosingParenthesis"; +const char * const GOTO_LINE_START = "TextEditor.GotoLineStart"; +const char * const GOTO_LINE_END = "TextEditor.GotoLineEnd"; +const char * const GOTO_NEXT_LINE = "TextEditor.GotoNextLine"; +const char * const GOTO_PREVIOUS_LINE = "TextEditor.GotoPreviousLine"; +const char * const GOTO_PREVIOUS_CHARACTER = "TextEditor.GotoPreviousCharacter"; +const char * const GOTO_NEXT_CHARACTER = "TextEditor.GotoNextCharacter"; +const char * const GOTO_PREVIOUS_WORD = "TextEditor.GotoPreviousWord"; +const char * const GOTO_NEXT_WORD = "TextEditor.GotoNextWord"; +const char * const GOTO_LINE_START_WITH_SELECTION = "TextEditor.GotoLineStartWithSelection"; +const char * const GOTO_LINE_END_WITH_SELECTION = "TextEditor.GotoLineEndWithSelection"; +const char * const GOTO_NEXT_LINE_WITH_SELECTION = "TextEditor.GotoNextLineWithSelection"; +const char * const GOTO_PREVIOUS_LINE_WITH_SELECTION = "TextEditor.GotoPreviousLineWithSelection"; +const char * const GOTO_PREVIOUS_CHARACTER_WITH_SELECTION = "TextEditor.GotoPreviousCharacterWithSelection"; +const char * const GOTO_NEXT_CHARACTER_WITH_SELECTION = "TextEditor.GotoNextCharacterWithSelection"; +const char * const GOTO_PREVIOUS_WORD_WITH_SELECTION = "TextEditor.GotoPreviousWordWithSelection"; +const char * const GOTO_NEXT_WORD_WITH_SELECTION = "TextEditor.GotoNextWordWithSelection"; const char * const C_TEXTEDITOR_MIMETYPE_TEXT = "text/plain"; const char * const C_TEXTEDITOR_MIMETYPE_XML = "application/xml"; diff --git a/src/plugins/welcome/welcomemode.ui b/src/plugins/welcome/welcomemode.ui index 57d2e986399..f00d137f2ac 100644 --- a/src/plugins/welcome/welcomemode.ui +++ b/src/plugins/welcome/welcomemode.ui @@ -22,7 +22,7 @@ QToolButton, QPushButton, QComboBox { font-size: 12px; } -*{ +QToolButton, QPushButton, QComboBox, QLabel { color: black; } diff --git a/tests/auto/qml/qmldesigner/coretests/coretests.pro b/tests/auto/qml/qmldesigner/coretests/coretests.pro index ffd725dfc66..9052343d92f 100644 --- a/tests/auto/qml/qmldesigner/coretests/coretests.pro +++ b/tests/auto/qml/qmldesigner/coretests/coretests.pro @@ -5,7 +5,7 @@ QT += testlib \ script \ declarative -include($$CREATORDIR/src/plugins/qmldesigner/core/core.pri) +include($$CREATORDIR/src/plugins/qmldesigner/designercore/designercore.pri) include($$CREATORDIR/src/libs/qmljs/qmljs-lib.pri) HEADERS+=$$CREATORDIR/src/libs/utils/changeset.h SOURCES+=$$CREATORDIR/src/libs/utils/changeset.cpp @@ -16,7 +16,7 @@ DEFINES+=QTCREATOR_UTILS_STATIC_LIB QML_BUILD_STATIC_LIB QTCREATOR_TEST DEFINES+=QTCREATORDIR=\\\"$$CREATORDIR\\\" DEPENDPATH += .. -DEPENDPATH += $$CREATORDIR/src/plugins/qmldesigner/core/include +DEPENDPATH += $$CREATORDIR/src/plugins/qmldesigner/designercore/include TARGET = tst_qmldesigner_core