diff --git a/doc/examples/batteryindicator/BatteryIndicator.pro b/doc/examples/batteryindicator/BatteryIndicator.pro new file mode 100644 index 00000000000..da30a71a4b6 --- /dev/null +++ b/doc/examples/batteryindicator/BatteryIndicator.pro @@ -0,0 +1,28 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2010-05-26T16:46:58 +# +#------------------------------------------------- + +QT += core gui + +TARGET = BatteryIndicator +TEMPLATE = app + + +SOURCES += main.cpp\ + batteryindicator.cpp + +HEADERS += batteryindicator.h + +FORMS += batteryindicator.ui + +CONFIG += mobility +MOBILITY = systeminfo + +symbian { + TARGET.UID3 = 0xecbd72d7 + # TARGET.CAPABILITY += + TARGET.EPOCSTACKSIZE = 0x14000 + TARGET.EPOCHEAPSIZE = 0x020000 0x800000 +} diff --git a/doc/examples/batteryindicator/batteryindicator.cpp b/doc/examples/batteryindicator/batteryindicator.cpp new file mode 100644 index 00000000000..8ddb69590a6 --- /dev/null +++ b/doc/examples/batteryindicator/batteryindicator.cpp @@ -0,0 +1,30 @@ +#include "batteryindicator.h" +#include "ui_batteryindicator.h" + +//! [2] +BatteryIndicator::BatteryIndicator(QWidget *parent) : + QDialog(parent), + ui(new Ui::BatteryIndicator), + deviceInfo(NULL) +{ + ui->setupUi(this); + setupGeneral(); +} +//! [2] + +BatteryIndicator::~BatteryIndicator() +{ + delete ui; +} + +//! [1] +void BatteryIndicator::setupGeneral() +{ + deviceInfo = new QSystemDeviceInfo(this); + + ui->batteryLevelBar->setValue(deviceInfo->batteryLevel()); + + connect(deviceInfo, SIGNAL(batteryLevelChanged(int)), + ui->batteryLevelBar, SLOT(setValue(int))); +} +//! [1] diff --git a/doc/examples/batteryindicator/batteryindicator.h b/doc/examples/batteryindicator/batteryindicator.h new file mode 100644 index 00000000000..50a1b93bd62 --- /dev/null +++ b/doc/examples/batteryindicator/batteryindicator.h @@ -0,0 +1,35 @@ +#ifndef BATTERYINDICATOR_H +#define BATTERYINDICATOR_H + +#include + +//! [1] +#include +//! [1] + +//! [2] +QTM_USE_NAMESPACE +//! [2] + +namespace Ui { + class BatteryIndicator; +} + +class BatteryIndicator : public QDialog +{ + Q_OBJECT + +public: + explicit BatteryIndicator(QWidget *parent = 0); + ~BatteryIndicator(); + +//! [3] +private: + Ui::BatteryIndicator *ui; + void setupGeneral(); + + QSystemDeviceInfo *deviceInfo; +//! [3] +}; + +#endif // BATTERYINDICATOR_H diff --git a/doc/examples/batteryindicator/batteryindicator.ui b/doc/examples/batteryindicator/batteryindicator.ui new file mode 100644 index 00000000000..3e62af26ae1 --- /dev/null +++ b/doc/examples/batteryindicator/batteryindicator.ui @@ -0,0 +1,33 @@ + + + BatteryIndicator + + + + 0 + 0 + 800 + 480 + + + + BatteryIndicator + + + + + 10 + 10 + 118 + 23 + + + + 24 + + + + + + + diff --git a/doc/examples/batteryindicator/main.cpp b/doc/examples/batteryindicator/main.cpp new file mode 100644 index 00000000000..2674f5de173 --- /dev/null +++ b/doc/examples/batteryindicator/main.cpp @@ -0,0 +1,15 @@ +#include +#include "batteryindicator.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + BatteryIndicator w; +#if defined(Q_WS_S60) + w.showMaximized(); +#else + w.show(); +#endif + + return a.exec(); +} diff --git a/doc/images/qmldesigner-run-custom-exe.png b/doc/images/qmldesigner-run-custom-exe.png index a053ec8702b..52bd2e83ded 100644 Binary files a/doc/images/qmldesigner-run-custom-exe.png 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 index f95d7689bfd..20601095931 100644 Binary files a/doc/images/qmldesigner-run-settings.png and b/doc/images/qmldesigner-run-settings.png differ diff --git a/doc/images/qmldesigner-visual-editor.png b/doc/images/qmldesigner-visual-editor.png index ee60aa35341..0620b51c69c 100644 Binary files a/doc/images/qmldesigner-visual-editor.png and b/doc/images/qmldesigner-visual-editor.png differ diff --git a/doc/images/qt-simulator.png b/doc/images/qt-simulator.png new file mode 100644 index 00000000000..94f2906481e Binary files /dev/null and b/doc/images/qt-simulator.png differ diff --git a/doc/images/qtcreator-add-resource-wizard.png b/doc/images/qtcreator-add-resource-wizard.png index 551a2e5858a..688f1efae83 100644 Binary files a/doc/images/qtcreator-add-resource-wizard.png and b/doc/images/qtcreator-add-resource-wizard.png differ diff --git a/doc/images/qtcreator-add-resource-wizard2.png b/doc/images/qtcreator-add-resource-wizard2.png index a4c78756c1c..cef9d6231a7 100644 Binary files a/doc/images/qtcreator-add-resource-wizard2.png and b/doc/images/qtcreator-add-resource-wizard2.png differ diff --git a/doc/images/qtcreator-add-resource-wizard3.png b/doc/images/qtcreator-add-resource-wizard3.png index 4c84bb43b9b..8f4208b708c 100644 Binary files a/doc/images/qtcreator-add-resource-wizard3.png and b/doc/images/qtcreator-add-resource-wizard3.png differ diff --git a/doc/images/qtcreator-add-resource.png b/doc/images/qtcreator-add-resource.png index 728e7eeef59..d0942a3ecf1 100644 Binary files a/doc/images/qtcreator-add-resource.png and b/doc/images/qtcreator-add-resource.png differ diff --git a/doc/images/qtcreator-application-output.png b/doc/images/qtcreator-application-output.png index f980c44b63f..77e79007fae 100644 Binary files a/doc/images/qtcreator-application-output.png and b/doc/images/qtcreator-application-output.png differ diff --git a/doc/images/qtcreator-batteryindicator-screenshot.png b/doc/images/qtcreator-batteryindicator-screenshot.png new file mode 100644 index 00000000000..8447e2be7db Binary files /dev/null and b/doc/images/qtcreator-batteryindicator-screenshot.png differ diff --git a/doc/images/qtcreator-breakdown.png b/doc/images/qtcreator-breakdown.png index 61ac4100d71..d813528269c 100644 Binary files a/doc/images/qtcreator-breakdown.png and b/doc/images/qtcreator-breakdown.png differ diff --git a/doc/images/qtcreator-class-info.png b/doc/images/qtcreator-class-info.png index 9791e6c0414..addc5743fd0 100644 Binary files a/doc/images/qtcreator-class-info.png and b/doc/images/qtcreator-class-info.png differ diff --git a/doc/images/qtcreator-compile-pane.png b/doc/images/qtcreator-compile-pane.png index 13e15aa909e..18fb8c509d3 100644 Binary files a/doc/images/qtcreator-compile-pane.png and b/doc/images/qtcreator-compile-pane.png differ diff --git a/doc/images/qtcreator-formedit.png b/doc/images/qtcreator-formedit.png index f1293a5bc3d..f42c3656d6f 100644 Binary files a/doc/images/qtcreator-formedit.png and b/doc/images/qtcreator-formedit.png differ diff --git a/doc/images/qtcreator-gs-build-example-open.png b/doc/images/qtcreator-gs-build-example-open.png new file mode 100644 index 00000000000..1ebdc4d6c7f Binary files /dev/null and b/doc/images/qtcreator-gs-build-example-open.png differ diff --git a/doc/images/qtcreator-gs-build-example-select-qs.png b/doc/images/qtcreator-gs-build-example-select-qs.png new file mode 100644 index 00000000000..c3d7fb5e747 Binary files /dev/null and b/doc/images/qtcreator-gs-build-example-select-qs.png differ diff --git a/doc/images/qtcreator-gs-build-example-targets.png b/doc/images/qtcreator-gs-build-example-targets.png new file mode 100644 index 00000000000..c039bd03cc1 Binary files /dev/null and b/doc/images/qtcreator-gs-build-example-targets.png differ diff --git a/doc/images/qtcreator-help-filters.png b/doc/images/qtcreator-help-filters.png index 69326b424b7..1f843bf0252 100644 Binary files a/doc/images/qtcreator-help-filters.png and b/doc/images/qtcreator-help-filters.png differ diff --git a/doc/images/qtcreator-intro-and-location.png b/doc/images/qtcreator-intro-and-location.png index e5118f7a830..014bba77083 100644 Binary files a/doc/images/qtcreator-intro-and-location.png and b/doc/images/qtcreator-intro-and-location.png differ diff --git a/doc/images/qtcreator-maemo-deb-package.png b/doc/images/qtcreator-maemo-deb-package.png new file mode 100644 index 00000000000..11beaa83687 Binary files /dev/null and b/doc/images/qtcreator-maemo-deb-package.png differ diff --git a/doc/images/qtcreator-maemo-emulator-connection-key.png b/doc/images/qtcreator-maemo-emulator-connection-key.png index 93f40c51e4e..78b96052afa 100644 Binary files a/doc/images/qtcreator-maemo-emulator-connection-key.png 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 index efb998e10f5..b441023b559 100644 Binary files a/doc/images/qtcreator-maemo-emulator-connection.png and b/doc/images/qtcreator-maemo-emulator-connection.png differ diff --git a/doc/images/qtcreator-mobile-class-info.png b/doc/images/qtcreator-mobile-class-info.png new file mode 100644 index 00000000000..25b2b8259f1 Binary files /dev/null and b/doc/images/qtcreator-mobile-class-info.png differ diff --git a/doc/images/qtcreator-mobile-intro-and-location.png b/doc/images/qtcreator-mobile-intro-and-location.png new file mode 100644 index 00000000000..5ca057b2e1c Binary files /dev/null and b/doc/images/qtcreator-mobile-intro-and-location.png differ diff --git a/doc/images/qtcreator-mobile-project-contents.png b/doc/images/qtcreator-mobile-project-contents.png new file mode 100644 index 00000000000..a41ef63dc37 Binary files /dev/null and b/doc/images/qtcreator-mobile-project-contents.png differ diff --git a/doc/images/qtcreator-mobile-project-qt-versions.png b/doc/images/qtcreator-mobile-project-qt-versions.png new file mode 100644 index 00000000000..d7593b2f2a9 Binary files /dev/null and b/doc/images/qtcreator-mobile-project-qt-versions.png differ diff --git a/doc/images/qtcreator-mobile-project-summary.png b/doc/images/qtcreator-mobile-project-summary.png new file mode 100644 index 00000000000..c1f2a1b5a89 Binary files /dev/null and b/doc/images/qtcreator-mobile-project-summary.png differ diff --git a/doc/images/qtcreator-mobile-project-widgets.png b/doc/images/qtcreator-mobile-project-widgets.png new file mode 100644 index 00000000000..cdd61eb0f04 Binary files /dev/null and b/doc/images/qtcreator-mobile-project-widgets.png differ diff --git a/doc/images/qtcreator-mobile-simulated.png b/doc/images/qtcreator-mobile-simulated.png new file mode 100644 index 00000000000..a498fdc9375 Binary files /dev/null and b/doc/images/qtcreator-mobile-simulated.png differ diff --git a/doc/images/qtcreator-new-mobile-project.png b/doc/images/qtcreator-new-mobile-project.png new file mode 100644 index 00000000000..adc657cd9e7 Binary files /dev/null and b/doc/images/qtcreator-new-mobile-project.png differ diff --git a/doc/images/qtcreator-new-project-qt-versions.png b/doc/images/qtcreator-new-project-qt-versions.png index d6007f74fd7..48ef70b91d2 100644 Binary files a/doc/images/qtcreator-new-project-qt-versions.png and b/doc/images/qtcreator-new-project-qt-versions.png differ diff --git a/doc/images/qtcreator-new-project-summary.png b/doc/images/qtcreator-new-project-summary.png index d8ace9f3c1c..2b99727ebb8 100644 Binary files a/doc/images/qtcreator-new-project-summary.png and b/doc/images/qtcreator-new-project-summary.png differ diff --git a/doc/images/qtcreator-new-project.png b/doc/images/qtcreator-new-project.png index ca465974bd2..54c74efac0e 100644 Binary files a/doc/images/qtcreator-new-project.png and b/doc/images/qtcreator-new-project.png differ diff --git a/doc/images/qtcreator-pprunsettings.png b/doc/images/qtcreator-pprunsettings.png index b68b45656a2..9e09b0e4438 100644 Binary files a/doc/images/qtcreator-pprunsettings.png and b/doc/images/qtcreator-pprunsettings.png differ diff --git a/doc/images/qtcreator-run.png b/doc/images/qtcreator-run.png index ff8ff15b903..a4c24365dea 100644 Binary files a/doc/images/qtcreator-run.png and b/doc/images/qtcreator-run.png differ diff --git a/doc/images/qtcreator-screenshot-build-settings.png b/doc/images/qtcreator-screenshot-build-settings.png index fbabf6c0b09..16fa3bfba4b 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 768438b5352..4410e3f51c4 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 eb42afed05f..d398f274a28 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 29ccac0e356..58a481b5bc9 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-symbian-run-settings.png b/doc/images/qtcreator-symbian-run-settings.png new file mode 100644 index 00000000000..49ecdb821f8 Binary files /dev/null and b/doc/images/qtcreator-symbian-run-settings.png differ diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc index 694d55f2776..5c7f9b41e0e 100644 --- a/doc/qtcreator.qdoc +++ b/doc/qtcreator.qdoc @@ -46,7 +46,9 @@ \o \l{Quick Tour} \o \l{Getting Started} \list + \o \l{Building and Running an Example Application} \o \l{Creating a Qt C++ Application} + \o \l{Creating a Mobile Application with Nokia Qt SDK} \o \l{Creating a Qt Quick Application} \endlist \o \l{Using the Editor} @@ -138,7 +140,7 @@ phones, media players, set-top boxes, and netbooks. \QMLD allows you to easily develop animations by using a declarative programming - language called \l {http://qt.nokia.com/doc/4.7-snapshot/declarativeui.html}{QML}. + language called \l {http://doc.qt.nokia.com/4.7-snapshot/declarativeui.html}{QML}. In QML, a user interface is specified as a tree of objects with properties. You use a visual editor to create items, screens, and applications, as well as define changes @@ -573,7 +575,7 @@ \endlist For more information on \QD, see - \l{http://doc.trolltech.com/designer-manual.html}{Qt Designer Manual}. + \l{http://doc.qt.nokia.com/4.7-snapshot/designer-manual.html}{Qt Designer Manual}. \section1 Using Qt Quick Designer @@ -1846,7 +1848,7 @@ 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} + \o Follow the instructions at \l{http://doc.qt.nokia.com/4.7-snapshot/qmake-project-files.html#declaring-other-libraries} {Declaring other Libraries}. \endlist @@ -1875,7 +1877,7 @@ \section1 Setting Up a Project To view and modify the settings for currently open projects, switch to the - \gui Projects mode by pressing \key Ctrl+4. + \gui Projects mode by pressing \key Ctrl+5. \image qtcreator-projectpane.png @@ -1944,9 +1946,7 @@ \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: + \o Alternatively, you can build and run the application for a device: \list 1 @@ -1972,6 +1972,22 @@ Debugging also works transparently. + \section2 Creating Installation Packages + + When you build the application for the \gui{Maemo} target, Qt + Creator automatically generates a debian installation package + in the project folder. You can deliver the installation package to + users for installation on Maemo devices. + + You can add other files to the installation package in the + \gui {Create package} step in the build configuration. Add files + to the \gui {Package contents} field. In \gui {Local File Path}, + specify the location of the file on the development PC. In + \gui {Remote File Path}, specify the folder to install the file on + the device. + + \image qtcreator-maemo-deb-package.png "Create installation package" + \section1 Building for Symbian @@ -1999,14 +2015,12 @@ \l{Setting Up Development Environment for Symbian}. \o Connect the device to the development PC through a USB cable. - Qt Creator shows the current connection state - of a device in its main toolbar, showing a red cross when no device is - connected, or a green check mark when a device is connected. + The target selector displays a green check mark when a + device is connected. - \image qtcreator-qt4-symbian-device-notconnected.png \image qtcreator-qt4-symbian-device-connected.png - The tool tip of the target button shows more details about the actual + The tool tip of the target selector shows more details about the actual device that will be used when you run your application. \o Start the \gui{App TRK} application on your device. @@ -2262,11 +2276,58 @@ \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. + files. + + \section2 Specifying Run Settings for Desktop Targets + + You can specify command line arguments to be passed to the executable + and the working directory to use. The working directory defaults to + the directory of the build result. + + For console applications, check the \gui{Run in Terminal} check box. + If you need to run with special environment variables set up, you + also do it in the run configuration settings. \image qtcreator-pprunsettings.png + You can also create custom executable run configurations where you + can set the executable to be run. For more information, see + \l{Specifying a Custom Executable to Run}. + + \section2 Specifying Run Settings for Symbian Devices + + Qt Creator automatically detects Symbian devices that are connected to + the development PC with an USB cable. + If only one device is detected, the application is deployed + and run on it. If multiple devices are connected to the PC, + make sure that the correct device is selected in the + \gui {Symbian Device} run settings for your project. + + You can also pass command line arguments to your application on the device. + Press the \gui{Device info button} to get more information about the selected + device, such as the CPU type and the running TRK version. + + \image qtcreator-symbian-run-settings.png "Run settings for Symbian devices" + + \section2 Specifying Run Settings for Maemo Devices + + To run an application on a Maemo device, create and select + a device configuration in the Maemo run settings for your project. + You can also pass command line arguments to your application. + + \image qtcreator-screenshot-run-settings.png "Run settings for Maemo devices" + + \section1 Specifying a Custom Executable to Run + + If you use cmake or the generic project type in Qt Creator, or want + to run a custom desktop executable, create a \gui {Custom Executable} + run configuration for your project. + + Specify the executable to run, command line arguments, working directory, + and environment variables to use. + + \image qmldesigner-run-custom-exe.png "Run settings for custom executables" + \section1 Specifying Run Settings for Qt Quick Projects Select run settings in the \gui {Run configuration} field. The settings @@ -2292,11 +2353,6 @@ \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" - */ @@ -2348,15 +2404,18 @@ \contentspage index.html \previouspage creator-quick-tour.html \page creator-getting-started.html - \nextpage creator-writing-program.html + \nextpage creator-build-example-application.html \title Getting Started This section contains examples that illustrate how to use Qt Creator and the - integrated design tools, \QD and \QMLD, to create simple applications: + integrated design tools, \QD and \QMLD, to create, build, and run simple + applications: \list + \o \l{Building and Running an Example Application} \o \l{Creating a Qt C++ Application} + \o \l{Creating a Mobile Application with Nokia Qt SDK} \o \l{Creating a Qt Quick Application} \endlist @@ -2366,14 +2425,322 @@ /*! \contentspage index.html \previouspage creator-writing-program.html + \page creator-mobile-example.html + \nextpage creator-qml-application.html + + \title Creating a Mobile Application with Nokia Qt SDK + + \note To complete this tutorial, you must install Nokia Qt SDK. + The installation program installs and configures the necessary tool chains + for mobile application development. + + This tutorial describes how to use Qt Creator to create a small Qt + application, Battery Indicator, that uses the System Information + Mobility API to fetch battery information from the device. + + \image qtcreator-batteryindicator-screenshot.png + + \section1 Creating the Battery Indicator Project + + \note Create the project with the \gui{Help} mode active so that you can follow + these instructions while you work. + + \list 1 + + \o Select \gui{File > New File or Project > Qt Application Project > Mobile Qt + Application > Choose}. + + \image qtcreator-new-mobile-project.png "New File or Project dialog" + + The \gui{Introduction and Project Location} dialog opens. + + \image qtcreator-mobile-intro-and-location.png "Introduction and Project Location dialog" + + \o In the \gui{Name} field, type \bold {BatteryIndicator}. + + \o In the \gui {Create in} field, enter the path for the project files. For example, + \c {C:\Qt\examples}, and then click \gui{Next}. + + The \gui{Select Required Qt Versions} dialog opens. + + \image qtcreator-mobile-project-qt-versions.png "Select Required Qt Versions dialog" + + \o Select \gui Maemo, \gui {Qt Simulator}, and \gui {Symbian Device} targets, + and click \gui{Next}. + + \note Targets are listed if you installed the appropriate development + environment, for example, as part of the Nokia Qt SDK. + + The \gui{Class Information} dialog opens. + + \image qtcreator-mobile-class-info.png "Class Information dialog" + + \o In the \gui{Class Name} field, type \bold {BatteryIndicator} as the class name. + + \o In the \gui{Base Class} list, select \bold {QDialog} as the base class type. + + \note The \gui{Header File}, \gui{Source File} and \gui{Form File} fields are + automatically updated to match the name of the class. + + \o Click \gui{Next}. + + The \gui{Project Management} dialog opens. + + \image qtcreator-mobile-project-summary.png "Project Management dialog" + + \o Review the project settings, and click \gui{Finish} to create the project. + + \endlist + + The BatteryIndicator project now contains the following files: + + \list + + \o batteryindicator.h + \o batteryindicator.cpp + \o main.cpp + \o batteryindicator.ui + \o BatteryIndicator.pro + + \endlist + + \image qtcreator-mobile-project-contents.png "Project contents" + + The files come with the necessary boiler plate code that you must + modify, as described in the following sections. You do not need + to change the main.cpp file. + + \section1 Declaring the Qt Mobility API + + The \gui New wizard automatically adds information to the .pro file + that you need when you use the Qt Mobility APIs or develop applications + for Symbian devices. You must modify the information to declare the + Qt Mobility APIs that you use. + + This example uses the System Info API, so you must declare it, as + illustrated by the following code snippet: + + \code + + CONFIG += mobility + MOBILITY = systeminfo + + \endcode + + Each Mobility API has its corresponding value that you have to add + as a value of MOBILITY to use the API. For a list of the APIs and the + corresponding values that you can assign to MOBILITY, see the + \l {http://doc.qt.nokia.com/qtmobility-1.0/quickstart.html}{Quickstart Example}. + + The following code snippet shows information that is needed for + applications developed for Symbian device. Qt Creator generated + the UID for testing the application on a device. You only need + to change the UID and capabilities if you deliver the application + for public use and need to have it Symbian Signed. + + \code + + symbian { + TARGET.UID3 = 0xecbd72d7 + # TARGET.CAPABILITY += + TARGET.EPOCSTACKSIZE = 0x14000 + TARGET.EPOCHEAPSIZE = 0x020000 0x800000 + } + + \endcode + + \section1 Designing the User Interface + + \list 1 + + \o In the \gui{Editor} mode, double-click the batteryindicator.ui + file in the \gui{Projects} view to launch the integrated \QD. + + \o Drag and drop a \gui{Progress Bar} (\l{http://doc.qt.nokia.com/4.7-snapshot/qprogressbar.html}{QProgressBar}) + widget to the form. + + \image qtcreator-mobile-project-widgets.png "Adding widgets to the UI" + + \o In the \gui Properties pane, change the \gui objectName to + \bold batteryLevelBar. + + \endlist + + \section1 Completing the Header File + + The batteryindicator.h file contains some of the necessary #includes, a + constructor, a destructor, and the \c{Ui} object. You must include + the System Info header file, add a shortcut to the mobility name + space, and add a private function to update the battery level value in + the indicator when the battery power level changes. + + \list 1 + + \o In the \gui{Projects} view, double-click the \c{batteryindicator.h} file + to open it for editing. + + \o Include the System Info header file, as illustrated by the following + code snippet: + + \snippet examples/batteryindicator/batteryindicator.h 1 + + \o Add a shortcut to the mobility name space, as illustrated by the + following code snippet: + + \snippet examples/batteryindicator/batteryindicator.h 2 + + \o Declare a private function in the \c{private} section, after the + \c{Ui::BatteryIndicator} function, as illustrated by the following code + snippet: + + \snippet examples/batteryindicator/batteryindicator.h 3 + + \endlist + + \section1 Completing the Source File + + Now that the header file is complete, move on to the source file, + batteryindicator.cpp. + + \list 1 + + \o In the \gui{Projects} view, double-click the batteryindicator.cpp file + to open it for editing. + + \o Create a QSystemDeviceInfo object and set its value. Then connect the signal + that indicates that battery level changed to the \c setValue + slot of the progress bar. This is illustrated by the following code snippet: + + \snippet examples/batteryindicator/batteryindicator.cpp 1 + + \o Use the constructor to set initial values and make sure that the + created object is in a defined state, as illustrated by the following + code snippet: + + \snippet examples/batteryindicator/batteryindicator.cpp 2 + + \endlist + + \section1 Compiling and Running Your Program + + Now that you have all the necessary code, select \gui {Qt Simulator} + as the target and click the + \inlineimage qtcreator-run.png + button to build your program and run it in the Qt Simulator. + + In Qt Simulator, run the runOutOfBattery.qs example script + to see the value change in the Battery Indicator application. + Select \gui {Scripting > examples > runOutOfBattery.qs > Run}. + + \image qtcreator-mobile-simulated.png "Mobile example in Qt Simulator" + + \section1 Testing on a Symbian Device + + You also need to test the application on real devices. Before you can + start testing on Symbian devices, you must connect them to the development + PC by using an USB cable and install the necessary software on them. + + \list 1 + + \o Install Qt 4.6.2 libraries, the Qt mobile libraries, and the TRK + debugging application on the device. For more information, + see \l{Setting Up Development Environment for Symbian}. + + \o Start TRK on the device. + + \o Click the \gui {Target Selector} and select \gui {Symbian Device}. + + \o Click \gui Run to build the application for the Symbian device. + + \endlist + + \section1 Testing on 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 with the software update release 1.2 (V10.2010.19-1). + + For more information, see \l{Using the Maemo Emulator}. + +*/ + +/*! + \contentspage index.html + \previouspage creator-getting-started.html + \page creator-build-example-application.html + \nextpage creator-writing-program.html + + \title Building and Running an Example Application + + You can test that your installation is successful by opening an existing + example application project. + + \list 1 + + \o On the \gui Welcome page, select \gui {Choose an example... > + Animation Framework > Animated Tiles}. + + \image qtcreator-gs-build-example-open.png "Selecting an example" + + \o Select targets for the project. Select at least Qt Simulator + and one of the mobile targets, Maemo or Symbian Device, depending on + the device you develop for. + + \image qtcreator-gs-build-example-targets.png "Selecting targets" + + \note You can add targets later in the \gui Projects mode. + + \o To test the application in Qt Simulator, click the \gui {Target + Selector} and select \gui {Qt Simulator}. + + \image {qtcreator-gs-build-example-select-qs.png} "Selecting Qt Simulator as target" + + \o Click + \inlineimage{qtcreator-run.png} + to build the application for Qt Simulator. + + \o To see the compilation progress, press \key{Alt+4} to open the + \gui Compile Output pane. + + The gui Build progress bar on the toolbar turns green when the project + is successfully built. The application opens in Qt Simulator. + + \image {qt-simulator.png} "Qt Simulator" + + \o Change the settings in the + \gui View pane, for example, to toggle the orientation by clicking + \gui {Rotate Device}, or choose from the various Symbian and Maemo + configurations by clicking \gui {Device}. You can also simulate various + mobile functions and create your own scripts. + + \o To test the application on a Symbian device install Qt 4.6.2 + and the TRK debugging application on the device. For more information, + see \l{Setting Up Development Environment for Symbian}. + + \o Click the \gui {Target Selector} and select \gui {Symbian Device}. + + \o Click \gui Run to build the application for the Symbian device. + + \endlist + +*/ + + +/*! + \contentspage index.html + \previouspage creator-mobile-example.html \page creator-qml-application.html \nextpage creator-editor-using.html \title Creating a Qt Quick Application - \note This tutorial assumes that you are familiar with the \l {http://qt.nokia.com/doc/4.7-snapshot/declarativeui.html} + \note This tutorial assumes that you are familiar with the \l {http://doc.qt.nokia.com/4.7-snapshot/declarativeui.html} {QML declarative language}. + \note The Qt Quick specific features and the QDeclarative help are based on a + preview version of the QtDeclarative package. Update Qt Creator when Qt 4.7 is + released. + This tutorial describes how to use Qt Creator to create a small animated Qt Quick application, Hello World. @@ -2386,7 +2753,7 @@ \list 1 - \o Select \gui{File > New File or Project > Qt Quick Project > Qt QML Application > OK}. + \o Select \gui{File > New File or Project > Qt Quick Project > Qt QML Application > Choose}. \image qmldesigner-new-project.png "New File or Project dialog" @@ -2553,9 +2920,9 @@ /*! \contentspage index.html - \previouspage creator-getting-started.html + \previouspage creator-build-example-application.html \page creator-writing-program.html - \nextpage creator-qml-application.html + \nextpage creator-mobile-example.html \title Creating a Qt C++ Application @@ -2565,7 +2932,7 @@ This tutorial describes how to use Qt Creator to create a small Qt application, Text Finder. It is a simplified version of the - QtUiTools \l{http://doc.trolltech.com/uitools-textfinder.html}{Text Finder} + QtUiTools \l{http://doc.qt.nokia.com/4.7-snapshot/uitools-textfinder.html}{Text Finder} example. \image qtcreator-textfinder-screenshot.png @@ -2584,7 +2951,7 @@ \list 1 \o Select \gui{File > New File or Project > Qt Application Project > Qt Gui - Application > OK}. + Application > Choose}. \image qtcreator-new-project.png "New File or Project dialog" @@ -2661,9 +3028,9 @@ \o Drag and drop the following widgets to the form: \list - \o \gui{Label} (\l{http://doc.trolltech.com/qlabel.html}{QLabel}) - \o \gui{Line Edit} (\l{http://doc.trolltech.com/qlineedit.html}{QLineEdit}) - \o \gui{Push Button} (\l{http://doc.trolltech.com/qpushbutton.html}{QPushButton}) + \o \gui{Label} (\l{http://doc.qt.nokia.com/4.7-snapshot/qlabel.html}{QLabel}) + \o \gui{Line Edit} (\l{http://doc.qt.nokia.com/4.7-snapshot/qlineedit.html}{QLineEdit}) + \o \gui{Push Button} (\l{http://doc.qt.nokia.com/4.7-snapshot/qpushbutton.html}{QPushButton}) \endlist @@ -2679,15 +3046,15 @@ \o Press \key {Ctrl+A} to select the widgets and click \gui{Lay out Horizontally} (or press \gui{Ctrl+H}) to apply a horizontal layout - (\l{http://doc.trolltech.com/qhboxlayout.html}{QHBoxLayout}). + (\l{http://doc.qt.nokia.com/4.7-snapshot/qhboxlayout.html}{QHBoxLayout}). \image qtcreator-texfinder-ui-horizontal-layout.png "Applying horizontal layout" - \o Drag and drop a \gui{Text Edit} widget (\l{http://doc.trolltech.com/qtextedit.html}{QTextEdit}) + \o Drag and drop a \gui{Text Edit} widget (\l{http://doc.qt.nokia.com/4.7-snapshot/qtextedit.html}{QTextEdit}) to the form. \o Select the screen area and click \gui{Lay out Vertically} (or press \gui{Ctr+V}) - to apply a vertical layout (\l{http://doc.trolltech.com/qvboxlayout.html}{QVBoxLayout}). + to apply a vertical layout (\l{http://doc.qt.nokia.com/4.7-snapshot/qvboxlayout.html}{QVBoxLayout}). \image qtcreator-textfinder-ui.png "Text Finder UI" @@ -2715,7 +3082,7 @@ \endlist For more information about designing forms with \QD, see the - \l{http://doc.trolltech.com/designer-manual.html}{Qt Designer Manual}. + \l{http://doc.qt.nokia.com/4.7-snapshot/designer-manual.html}{Qt Designer Manual}. \section2 Completing the Header File @@ -2723,7 +3090,7 @@ constructor, a destructor, and the \c{Ui} object. You need to add a private function, \c{loadTextFile()}, to read and display the contents of the input text file in the - \l{http://doc.trolltech.com/qtextedit.html}{QTextEdit}. + \l{http://doc.qt.nokia.com/4.7-snapshot/qtextedit.html}{QTextEdit}. \list 1 @@ -2749,22 +3116,22 @@ to open it for editing. \o Add code to load a text file using - \l{http://doc.trolltech.com/qfile.html}{QFile}, read it with - \l{http://doc.trolltech.com/qtextstream.html}{QTextStream}, and + \l{http://doc.qt.nokia.com/4.7-snapshot/qfile.html}{QFile}, read it with + \l{http://doc.qt.nokia.com/4.7-snapshot/qtextstream.html}{QTextStream}, and then display it on \c{textEdit} with - \l{http://doc.trolltech.com/qtextedit.html#plainText-prop}{setPlainText()}. + \l{http://doc.qt.nokia.com/4.7-snapshot/qtextedit.html#plainText-prop}{setPlainText()}. This is illustrated by the following code snippet: \snippet examples/textfinder/textfinder.cpp 0 - \o To use \l{http://doc.trolltech.com/qfile.html}{QFile} and - \l{http://doc.trolltech.com/qtextstream.html}{QTextStream}, add the + \o To use \l{http://doc.qt.nokia.com/4.7-snapshot/qfile.html}{QFile} and + \l{http://doc.qt.nokia.com/4.7-snapshot/qtextstream.html}{QTextStream}, add the following #includes to textfinder.cpp: \snippet examples/textfinder/textfinder.cpp 1 \o For the \c{on_findButton_clicked()} slot, add code to extract the search string and - use the \l{http://doc.trolltech.com/qtextedit.html#find}{find()} function + use the \l{http://doc.qt.nokia.com/4.7-snapshot/qtextedit.html#find}{find()} function to look for the search string within the text file. This is illustrated by the following code snippet: @@ -2793,7 +3160,7 @@ To add a resource file: \list 1 - \o Select \gui{File > New File or Project > Qt > Qt Resource File > OK}. + \o Select \gui{File > New File or Project > Qt > Qt Resource File > Choose}. \image qtcreator-add-resource-wizard.png "New File or Project dialog" The \gui {Choose the Location} dialog opens. @@ -3220,7 +3587,7 @@ \key Space. The prefix is usually a single character. For example, to locate symbols matching - \l{http://doc.trolltech.com/qdatastream.html}{QDataStream:} + \l{http://doc.qt.nokia.com/4.7-snapshot/qdatastream.html}{QDataStream:} \list 1 \o Activate the locator. \o Enter \tt{\bold{: QDataStream}} (: (colon) followed by a @@ -4223,7 +4590,7 @@ \list 1 \o Click in between the line number and the window border on the line - where we invoke \l{http://doc.trolltech.com/qtextedit.html#plainText-prop}{setPlainText()} + where we invoke \l{http://doc.qt.nokia.com/4.7-snapshot/qtextedit.html#plainText-prop}{setPlainText()} to set a breakpoint. \image qtcreator-setting-breakpoint1.png @@ -4797,9 +5164,13 @@ You can either create Qt Quick projects from scratch or import them to Qt Creator. For example, you can import and run the - \l {http://qt.nokia.com/doc/4.7-snapshot/qdeclarativeexamples.html} {QML examples and demos} + \l {http://doc.qt.nokia.com/4.7-snapshot/qdeclarativeexamples.html} {QML examples and demos} to learn how to use various aspects of QML. + \note The Qt Quick specific features and the QDeclarative help are based on a + preview version of the QtDeclarative package. Update Qt Creator when Qt 4.7 is + released. + You can use the code editor (\gui Edit mode) or the visual editor (\gui Design mode) to develop Qt Quick applications. @@ -4829,7 +5200,7 @@ \endlist The \c import statement in the beginning of the .qml file specifies the - \l {http://qt.nokia.com/doc/4.7-snapshot/qdeclarativemodules.html} {Qt modules} + \l {http://doc.qt.nokia.com/4.7-snapshot/qdeclarativemodules.html} {Qt modules} to import to \QMLD. Each Qt module contains a set of default elements. Specify a version to get the features you want. @@ -4855,22 +5226,22 @@ \list - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-borderimage.html}{Border Image} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-borderimage.html}{Border Image} uses an image as a border or background. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-image.html}{Image} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-image.html}{Image} adds a bitmap to the scene. You can stretch and tile images. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-item.html}{Item} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-item.html}{Item} is the most basic of all visual items in QML. Even though it has no visual appearance, it defines all the properties that are common across visual items, such as the x and y position, width and height, anchoring, and key handling. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-rectangle.html}{Rectangle} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-rectangle.html}{Rectangle} adds a rectangle that is painted with a solid fill color and an optional border. You can also use the radius property to create rounded rectangles. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-text.html}{Text} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-text.html}{Text} adds formatted read-only text. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-textedit.html}{Text Edit} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-textedit.html}{Text Edit} adds a single line of editable formatted text that can be validated. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-textinput.html}{Text Input} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-textinput.html}{Text Input} adds a single line of editable plain text that can be validated. \endlist @@ -4941,12 +5312,12 @@ \endlist To create a graphical button that scales beautifully without using vector graphics, - use the \l{http://qt.nokia.com/doc/4.7-snapshot/qml-borderimage.html}{Border Image} + use the \l{http://doc.qt.nokia.com/4.7-snapshot/qml-borderimage.html}{Border Image} element. \section3 Creating Scalable Buttons and Borders - You can use the \l{http://qt.nokia.com/doc/4.7-snapshot/qml-borderimage.html}{Border Image} + You can use the \l{http://doc.qt.nokia.com/4.7-snapshot/qml-borderimage.html}{Border Image} element to display an image, such as a PNG file, as a border and a background. Use two Border Image elements and suitable graphics to make it look like the button @@ -5100,13 +5471,13 @@ You can use the \gui Library items and your own components to create screens. You can create the following types of views to organize items provided by - \l{http://qt.nokia.com/doc/4.7-snapshot/qdeclarativemodels.html}{data models}: + \l{http://doc.qt.nokia.com/4.7-snapshot/qdeclarativemodels.html}{data models}: \list - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-gridview.html}{Grid View} - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-listview.html}{List View} - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-pathview.html}{Path View} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-gridview.html}{Grid View} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-listview.html}{List View} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-pathview.html}{Path View} \endlist @@ -5247,7 +5618,7 @@ You can use different types of animated transitions. For example, you can animate changes to property values and colors. You can use rotation animation to control the direction of rotation. For more information, see - \l{http://doc.trolltech.com/4.7-snapshot/qdeclarativeanimation.html}{QML Animation}. + \l{http://doc.qt.nokia.com/4.7-snapshot/qdeclarativeanimation.html}{QML Animation}. You can use the \c ParallelAnimation element to start several animations at the same time. Or use the \c SequentialAnimation element to run them one after another. @@ -5260,14 +5631,14 @@ \list - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-flickable.html}{Flickable} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-flickable.html}{Flickable} items can be flicked horizontally or vertically. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-flipable.html}{Flipable} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-flipable.html}{Flipable} items can be flipped between their front and back sides by using rotation, state, and transition. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-focusscope.html}{Focus Scope} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-focusscope.html}{Focus Scope} assists in keyboard focus handling when building reusable QML components. - \o \l{http://qt.nokia.com/doc/4.7-snapshot/qml-mousearea.html}{Mouse Area} + \o \l{http://doc.qt.nokia.com/4.7-snapshot/qml-mousearea.html}{Mouse Area} enables simple mouse handling. \endlist @@ -5283,10 +5654,10 @@ A user interface is only a part of an application, and not really useful by itself. You can use Qt or JavaScript to implement the application logic. For more information on using JavaScript, see - \l {http://qt.nokia.com/doc/4.7-snapshot/qdeclarativejavascript.html} {Integrating JavaScript}. + \l {http://doc.qt.nokia.com/4.7-snapshot/qdeclarativejavascript.html} {Integrating JavaScript}. For an example of how to use JavaScript to develop a game, see the - \l {http://qt.nokia.com/doc/4.7-snapshot/qml-advtutorial.html} {QML Advanced Tutorial}. + \l {http://doc.qt.nokia.com/4.7-snapshot/qml-advtutorial.html} {QML Advanced Tutorial}. */ @@ -5317,7 +5688,8 @@ To build and run Qt applications for Maemo, you need the following: \list - \o Nokia N900 device with PR1.2 or later installed. + \o Nokia N900 device with software update release 1.2 (V10.2010.19-1) + or later installed. \o MADDE cross-platform Maemo development tool (installed as part of the Nokia Qt SDK). @@ -5335,7 +5707,6 @@ PC_Connectivity_.exe (at the time of writing, PC_Connectivity_0.9.4.exe). - \o Qt installed on the device. Recent images should have Qt pre-installed. \endlist The Qt Creator/MADDE integration is supported on the following platforms: @@ -5370,38 +5741,13 @@ \section2 Installing and Configuring Mad Developer - To install Mad Developer on your device, you need to add an application - catalogue to the list of catalogues your device checks for - installable software, and install the actual Mad Developer software - package. After the installation, you must start Mad Developer and configure + Install Mad Developer on a device and configure a connection between the development PC and the device. To install and configure Mad Developer: \list 1 - \o On the Nokia N900, select \gui {Application manager > Application catalogs - > New}. - - \o Specify the following settings: - - \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 - - \o \gui Distribution: \bold fremantle - - \o \gui Components: \bold {free non-free} - - \endlist - - \o Click \gui Save to add the catalogue. - - \o Select \gui{Download} > \gui{Development} > \gui{mad-developer} + \o On the Nokia N900, 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. @@ -5537,7 +5883,8 @@ 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 + If you do not have an SSH key, you can create it in Qt Creator. + Encrypted keys are not supported. For more information, see \l{Generating SSH Keys}. To configure connections between Qt Creator and the Maemo emulator or @@ -5689,11 +6036,10 @@ 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 + on a Nokia N900 device with software update release 1.2 (V10.2010.19-1). + 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 @@ -5707,7 +6053,9 @@ \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. + open in Qt Creator for which you have added the Maemo build target + and if you have configured a connection between Qt Creator and the Maemo + Emulator. To start the Maemo emulator: @@ -5835,12 +6183,41 @@ \o The \l{http://tools.ext.nokia.com/trk/}{App TRK} application for your device \o The \e{qt_installer.sis} package installed on the device, that is - bundled with the binary Qt distribution + delivered with the Qt SDK. \endlist To run your applications in the Symbian emulator, you also need to install Carbide.c++ v2.0.0 or higher. + \section1 Installing Required Applications on Devices + + The Nokia Qt SDK installation program creates shortcuts for installing + the required applications on Symbian devices (you can also use any of + the standard methods for installing applications on devices): + + \list 1 + + \o Connect the device to the development PC with an USB cable in + PC Suite Mode. If you have not previously used the device with Ovi Suite + or PC Suite, all the necessary drivers are installed automatically. + This takes approximately one minute. + + \o Choose \gui {Start > Nokia Qt SDK > Symbian > Install Qt to Symbian + device} and follow the instructions on the screen to install Qt 4.6.2 + libraries on the device. + + \o Choose \gui {Start > Nokia Qt SDK > Symbian > Install QtMobility to Symbian + device} and follow the instructions on the screen to install Qt + mobility libraries on the device. + + \o Choose \gui {Start > Nokia Qt SDK > Symbian > Install TRK to Symbian + device} and follow the instructions on the screen to install the TRK + debugging application for S60 5th Edition devices on the device. + + \o Start TRK on the device. + + \endlist + \section1 Adding Symbian Platform SDKs Nokia Qt SDK contains all the tools you need for developing Qt applications for @@ -5904,7 +6281,7 @@ change the default plugin path, see \l{How to Create Qt Plugins}. For more information about how to create plugins for \QD, see - \l{http://doc.trolltech.com/4.6/designer-using-custom-widgets.html}{Creating and Using Components for Qt Designer}. + \l{http://doc.qt.nokia.com/4.7-snapshot/designer-using-custom-widgets.html}{Creating and Using Components for Qt Designer}. \section1 Locating Qt Designer Plugins diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py index d35235368f7..fae39edb0df 100644 --- a/share/qtcreator/gdbmacros/dumper.py +++ b/share/qtcreator/gdbmacros/dumper.py @@ -1214,8 +1214,15 @@ class Dumper: type = value.type if type.code == gdb.TYPE_CODE_REF: - type = type.target() - value = value.cast(type) + try: + # This throws "RuntimeError: Attempt to dereference a + # generic pointer." with MinGW's gcc 4.5 when it "identifies" + # a "QWidget &" as "void &". + type = type.target() + value = value.cast(type) + except RuntimeError: + value = item.value + type = value.type if type.code == gdb.TYPE_CODE_TYPEDEF: type = type.target() diff --git a/share/qtcreator/qml-type-descriptions/qml-builtin-types.xml b/share/qtcreator/qml-type-descriptions/qml-builtin-types.xml index 6f2f3eea5d1..3f917c54797 100644 --- a/share/qtcreator/qml-type-descriptions/qml-builtin-types.xml +++ b/share/qtcreator/qml-type-descriptions/qml-builtin-types.xml @@ -1,5 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1466,7 +1552,7 @@ - + @@ -2214,12 +2300,12 @@ - - - - - - + + + + + + @@ -2555,6 +2641,7 @@ + @@ -2566,6 +2653,8 @@ + + @@ -2597,6 +2686,7 @@ + @@ -2619,6 +2709,7 @@ + @@ -2628,22 +2719,29 @@ + + + + + + + @@ -2685,7 +2783,15 @@ + + + + + + + + @@ -2720,9 +2826,11 @@ + + @@ -2772,6 +2880,12 @@ + + + + + + @@ -2779,6 +2893,8 @@ + + @@ -2884,6 +3000,10 @@ + + + + @@ -2893,6 +3013,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2947,169 +3092,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/share/qtcreator/templates/wizards/qml-runtime/wizard.xml b/share/qtcreator/templates/wizards/qml-runtime/wizard_disabled.xml similarity index 100% rename from share/qtcreator/templates/wizards/qml-runtime/wizard.xml rename to share/qtcreator/templates/wizards/qml-runtime/wizard_disabled.xml diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 2a47c9da1b4..1d922d21849 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -429,7 +429,7 @@ The directory %1 contains an outdated .cbp file. Qt Creator needs to update this file by running cmake. If you want to add additional command line arguments, add them below. Note that cmake remembers command line arguments from the previous runs. - Das Verzeichnis %1 enthält eine veraltetet cbp-Datei. Qt Creator muss die Datei durch einen cmake-Aufruf erneuern. Zusätzliche Für Kommandozeilenargumente können unten angegeben werden. Beachten Sie, dass cmake die Argumente vorangegangener Aufrufe speichert. + Das Verzeichnis %1 enthält eine veraltete cbp-Datei. Qt Creator muss die Datei durch einen cmake-Aufruf erneuern. Zusätzliche Kommandozeilenargumente können unten angegeben werden. Beachten Sie, dass cmake die Argumente vorangegangener Aufrufe speichert. @@ -5481,7 +5481,7 @@ Versuchen Sie, das Projekt neu zu erstellen. Qt Designer Form Class - Qt Designer-Formular-Klasse + Qt-Designer-Formularklasse @@ -5522,22 +5522,22 @@ Versuchen Sie, das Projekt neu zu erstellen. Qt Designer Form - Qt Designer-Formular + Qt-Designer-Formular Creates a Qt Designer form along with a matching class (C++ header and source file) for implementation purposes. You can add the form and class to an existing Qt C++ Project. - Erstellt eine Qt Designer-Formular-Datei mit zugehörigem Klassenrumpf (bestehend aus C++-Header- und Quelldatei) für ein existierendes C++-Projekt. + Erstellt ein Qt-Designer-Formular mit zugehörigem Klassenrumpf (bestehend aus C++-Header- und -Quelldatei) für ein existierendes C++-Projekt. Creates a Qt Designer form that you can add to a Qt C++ project. This is useful if you already have an existing class for the UI business logic. - Erstellt eine Qt Designer-Formular-Datei für ein C++-Projekt. Verwenden Sie diese Vorlage, wenn bereits Geschäftslogik existiert. + Erstellt ein Qt-Designer-Formular für ein C++-Projekt. Verwenden Sie diese Vorlage, wenn bereits eine Klasse für den Programmablauf existiert. Qt Designer Form Class - Qt Designer-Formular-Klasse + Qt-Designer-Formularklasse @@ -5713,7 +5713,7 @@ Versuchen Sie, das Projekt neu zu erstellen. Qt Designer Form - Qt Designer-Formular + Qt-Designer-Formular @@ -8559,7 +8559,7 @@ on slow machines. In this case, the value should be increased. Qt Designer file - Qt Designer-Datei + Qt-Designer-Datei @@ -8569,7 +8569,7 @@ on slow machines. In this case, the value should be increased. Generic Qt Creator Project file - Generische Qt Creator Projektdatei + Allgemeine Qt-Creator-Projektdatei @@ -8639,17 +8639,17 @@ on slow machines. In this case, the value should be increased. Generic Project Files - Generische Projektdateien + Allgemeine Projektdateien Generic Project Include Paths - Include-Pfade für generisches Projekt + Include-Pfade für allgemeines Projekt Generic Project Configuration File - Projekt-Konfigurationsdatei für generische Projekte + Projekt-Konfigurationsdatei für allgemeine Projekte @@ -10006,7 +10006,7 @@ Fehler: %2 File &pattern: - Such&muster für Dateinamen + Such&muster für Dateinamen: @@ -10165,7 +10165,7 @@ Fehler: %2 File &pattern: - Such&muster für Dateinamen + Such&muster für Dateinamen: @@ -11851,7 +11851,7 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü Explore Qt Quick Examples - Qt Quick-Beispiele öffnen + Qt-Quick-Beispiele öffnen @@ -11871,7 +11871,7 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü Creates a Qt application for the desktop. Includes a Qt Designer-based main window. Preselects a desktop Qt for building the application if available. - Erstellt eine Qt-Anwendung für den Desktop mit einem Qt Designer-basierten Hauptfenster. + Erstellt eine Qt-Anwendung für den Desktop mit einem Qt-Designer-basierten Hauptfenster. Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfügbar ist. @@ -12010,7 +12010,7 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü Forms - Formular-Dateien + Formulardateien @@ -14470,7 +14470,7 @@ Die folgenden Encodings scheinen der Datei zu entsprechen: File &pattern: - Such&muster für Dateinamen + Such&muster für Dateinamen: @@ -17419,7 +17419,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen. Qt Quick Designer - Qt Quick Designer + Qt-Quick-Designer @@ -20133,7 +20133,7 @@ QML-Anwendungen werden durch die QML-Laufzeitumgebung direkt ausgeführt und ben Switch Text/Design - Text/Entwurf umschalten + Text/Design umschalten @@ -20171,7 +20171,7 @@ QML-Anwendungen werden durch die QML-Laufzeitumgebung direkt ausgeführt und ben Design - Entwurf + Design @@ -21509,7 +21509,7 @@ Haben Sie Qemu gestartet? This file can only be edited in <b>Design</b> mode. - Datei kann nur im <b>Entwurfsmodus</b> bearbeitet werden. + Datei kann nur im <b>Designmodus</b> bearbeitet werden. @@ -21579,7 +21579,7 @@ Haben Sie Qemu gestartet? Creates a Qt application optimized for mobile devices with a Qt Designer-based main window. Preselects Qt for Simulator and mobile targets if available - Erstellt eine Qt-Anwendung für mobile Geräte mit einem Qt Designer-basierten Hauptfenster. + Erstellt eine Qt-Anwendung für mobile Geräte mit einem Qt-Designer-basierten Hauptfenster. Wählt Qt-Versionen für Simulator und mobile Ziele aus, sofern sie verfügbar sind. @@ -21678,23 +21678,23 @@ Wählt Qt-Versionen für Simulator und mobile Ziele aus, sofern sie verfügbar s Do you want to enable the experimental Qt Quick Designer? - Möchten Sie den experimentellen Quick-Designer aktivieren? + Möchten Sie den experimentellen Qt-Quick-Designer aktivieren? Enable Qt Quick Designer - Quick Designer aktivieren + Qt-Quick-Designer aktivieren Enable experimental Qt Quick Designer? - Möchten Sie den experimentellen Quick-Designer aktivieren? + Möchten Sie den experimentellen Qt-Quick-Designer aktivieren? Do you want to enable the experimental Qt Quick Designer? After enabling it, you can access the visual design capabilities by switching to Design Mode. This can affect the overall stability of Qt Creator. To disable Qt Quick Designer again, visit the menu '%1' and disable 'QmlDesigner'. - Möchten Sie den experimentellen Quick-Designer aktivieren? Nach der Aktivierung haben Sie Zugriff auf die graphische Entwurfsfunktionalität, wenn Sie in den Entwurfsmodus schalten. Das kann allerdings die Stabilität von Qt Creator beeinträchtigen. Um Quick-Designer zu deaktivieren, wählen Sie '%1' und deaktivieren 'QmlDesigner' in dem gezeigten Fenster. + Möchten Sie den experimentellen Qt-Quick-Designer aktivieren? Dadurch bekommen Sie Zugriff auf die grafische Designfunktion, wenn Sie in den Designmodus schalten. Dies kann allerdings die Stabilität von Qt Creator beeinträchtigen. Um den Qt-Quick-Designer wieder zu deaktivieren, wählen Sie '%1' und deaktivieren 'QmlDesigner' in dem gezeigten Fenster. @@ -22576,7 +22576,7 @@ Namen <E-Mail> Alias <E-Mail? Could not preview Qt Quick (QML) file. Reason: %1 - Die Qt-Quick-Datei (QML) konnte angezeigt werden: + Die Qt-Quick-Datei (QML) konnte nicht angezeigt werden: %1 diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts index 23e56ea1744..b297f8692ce 100644 --- a/share/qtcreator/translations/qtcreator_ru.ts +++ b/share/qtcreator/translations/qtcreator_ru.ts @@ -28,7 +28,7 @@ Не удалось найти 'Core.pluginspec' в %1 - + Qt Creator - Plugin loader messages Qt Creator - Сообщения загрузчика модулей @@ -60,8 +60,8 @@ - Attach to Process ID: - Поключить к ID процесса: + Attach to process ID: + Поключиться к процессу с ID: @@ -153,7 +153,7 @@ Animation - Анимация + Анимация @@ -163,17 +163,17 @@ Settings - Настройки + Настройки Duration: - Продолжительность: + Длительность: Curve: - Переходная кривая: + Кривая: @@ -229,7 +229,7 @@ Новая папка - + @@ -251,7 +251,7 @@ BookmarkManager - + Bookmarks Закладки @@ -275,7 +275,7 @@ BookmarkWidget - + Delete Folder Удалить папку @@ -305,12 +305,7 @@ Переименовать закладку - - Filter: - Шаблон: - - - + Add Добавить @@ -404,15 +399,53 @@ - Previous Bookmark In Document + Previous Bookmark in Document Предыдущая закладка в документе - Next Bookmark In Document + Next Bookmark in Document Следующая закладка в документе + + BorderImageSpecifics + + + Image + Изображение + + + + Source + Источник + + + + Source Size + Размер источника + + + + Left + Левый + + + + Right + Правый + + + + Top + Верхний + + + + Bottom + Нижний + + BreakByFunctionDialog @@ -476,7 +509,7 @@ CMakeProjectManager::Internal::CMakeBuildSettingsWidget - + &Change &Изменить @@ -484,7 +517,7 @@ CMakeProjectManager::Internal::CMakeOpenProjectWizard - + CMake Wizard Мастер CMake @@ -516,7 +549,7 @@ - Select the working directory + Select Working Directory Выбор рабочего каталога @@ -642,7 +675,7 @@ CMake - + Executable: Программа: @@ -650,7 +683,7 @@ CMakeProjectManager::Internal::CMakeTarget - + Desktop CMake Default target display name @@ -662,7 +695,7 @@ Qt Creator has detected an <b>in-source-build in %1</b> which prevents shadow builds. Qt Creator will not allow you to change the build directory. If you want a shadow build, clean your source directory and re-open the project. - Qt Creator обнаружил <b>сборку в каталоге с исходниками (%1)</b>, что препятствует фоновой сборке. Qt Creator не позволит изменить каталог сборки. Если требуется фоновая сборка, необходимо очистить каталог исходников и открыть проект снова. + Qt Creator обнаружил <b>сборку в каталоге с исходниками (%1)</b>, что препятствует теневой сборке. Qt Creator не позволит изменить каталог сборки. Если требуется теневая сборка, необходимо очистить каталог исходников и открыть проект снова. @@ -934,7 +967,7 @@ &Повторить - + Closing CVS Editor Закрытие редактора CVS @@ -1018,7 +1051,7 @@ - + No cvs executable specified! Не указан исполняемый файл программы cvs! @@ -1065,8 +1098,8 @@ CVS::Internal::CheckoutWizard - Checks out a project from a CVS repository. - Извлечение проекта из хранилища CVS. + Checks out a CVS repository and tries to load the contained project. + Извлечение хранилища CVS с последующей попыткой загрузки содержащегося там проекта. @@ -1094,26 +1127,6 @@ CVS::Internal::SettingsPage - - - When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit id). Otherwise, only the respective file will be displayed. - Если включено, по щелчку на номере равизии при просмотре аннотации (полученной по идентификатору фиксации) будут отображаться все зафиксированные файлы. В противном случае, только соответствующий файл. - - - - CVS Command: - Команда CVS: - - - - CVS Root: - Корень CVS: - - - - Diff Options: - Опции сравнения: - CVS @@ -1149,6 +1162,26 @@ s сек + + + CVS command: + Команда CVS: + + + + CVS root: + Корень CVS: + + + + Diff options: + Опции сравнения: + + + + When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit ID). Otherwise, only the respective file will be displayed. + Если включено, по щелчку на номере равизии при просмотре аннотации (полученной по идентификатору фиксации) будут отображаться все зафиксированные файлы. В противном случае, только соответствующий файл. + CVS::Internal::SettingsPageWidget @@ -1161,7 +1194,7 @@ CVSPlugin - + Cannot find repository for '%1' Не удалось найти хранилище для "%1" @@ -1169,7 +1202,7 @@ CdbCore::CoreEngine - + Unable to set the image path to %1: %2 Не удалось установить путь к образу "%1": %2 @@ -1191,12 +1224,6 @@ These options take effect at the next start of Qt Creator. Данные настройки вступят в силу после перезапуска Qt Creator. - - - Cdb - Placeholder - Cdb - Path: @@ -1235,12 +1262,18 @@ - Other options + CDB + Placeholder + + + + + Other Options Другие параметры - Verbose Symbol Loading + Verbose symbol loading Наглядная загрузка символов @@ -1275,7 +1308,7 @@ <Неизвестное значение> - + <Unknown> <Неизвестный> @@ -1284,11 +1317,6 @@ ChangeSelectionDialog - Repository Location: - Хранилище: - - - Select Выбрать @@ -1297,6 +1325,11 @@ Change: Фиксация: + + + Repository location: + Хранилище: + CodePaster @@ -1309,7 +1342,7 @@ CodePaster::CodePasterProtocol - + No Server defined in the CodePaster preferences. Не указан сервер в настройках CodePaster. @@ -1319,7 +1352,7 @@ Не указан сервер в настройках CodePaster. - + No such paste Нет такой вставки @@ -1332,7 +1365,7 @@ CodePaster - + Server: Сервер: @@ -1345,7 +1378,7 @@ CodePaster::CodepasterPlugin - + &Code Pasting Вставка &Кода @@ -1375,11 +1408,80 @@ - + Empty snippet received for "%1". Для "%1" получен пустой фрагмент. + + CodePaster::FileShareProtocol + + + Cannot open %1: %2 + Не удалось открыть %1: %2 + + + + %1 does not appear to be a paster file. + %1 не является файлом paster. + + + + Error in %1 at %2: %3 + Ошибка в %1, строка %2: %3 + + + + Please configure a path. + Необходимо настроить путь. + + + + Unable to open a file for writing in %1: %2 + Не удалось открыть файл для записи в %1: %2 + + + + Pasted: %1 + Вставлен: %1 + + + + CodePaster::FileShareProtocolSettingsPage + + + Fileshare + Общие файлы + + + + CodePaster::FileShareProtocolSettingsWidget + + + Form + Форма + + + + &Path: + &Путь: + + + + &Display: + &Отображать: + + + + entries + записей + + + + The fileshare-based paster protocol allows for sharing code snippets using simple files on a shared network drive. Files are never deleted. + Протокол на базе общей папки позволяет публиковать фрагменты кода просто используя сетевой диск для хранения файлов. Файлы никогда не удаляются. + + CodePaster::PasteBinDotComSettings @@ -1406,12 +1508,12 @@ Обновить - + Waiting for items Ожидание элементов - + This protocol does not support listing Данный протокол не поддерживает получение списка @@ -1429,6 +1531,19 @@ <Комментарий> + + CodePaster::Protocol + + + %1 - Configuration Error + %1 - ошибка конфигурации + + + + Settings... + Настройки... + + CodePaster::SettingsPage @@ -1443,18 +1558,18 @@ - Copy Paste URL to clipboard - Скопировать ссылку в буфер обмена + Default protocol: + Протокол по умолчанию: - Display Output Pane after sending a post + Display Output pane after sending a post Отправив данные, показать окно вывода - Default Protocol: - Протокол по умолчанию: + Copy-paste URL to clipboard + Скопировать ссылку в буфер обмена @@ -1464,11 +1579,6 @@ Command Mappings Связывание команд - - - Filter: - Шаблон: - Command @@ -1511,8 +1621,8 @@ - Remove - Удалить + Reset + Сбросить @@ -1532,20 +1642,6 @@ Use alternating row colors in debug views Чередование цвета строк в представлении отладчика - - When this option is checked, 'Step Into' compresses several steps into one in certain situations, leading to 'less noisy' debugging. So will, e.g., the atomic - reference counting code be skipped, and a single 'Step Into' for a signal emission will end up directly in the slot connected to it. - Когда включён данный параметр, в определенных ситуациях 'Зайти в' объединяет несколько шагов в один, позволяя 'снизить шум' при отладке. -Например, будет пропущен атомарный код подсчета ссылок и единственная операция 'Зайти в' инициации сигнала завершится прямо в слоте, подключённому к данному сигналу. - - - Skip known frames when stepping - Пропускать известные кадры при пошаговой отладке - - - Enable reverse debugging - Включить реверсивную отладку - Maximal stack depth: @@ -1556,10 +1652,6 @@ <unlimited> <бесконечна> - - Show a message box when receiving a signal - Показывать сообщение при получении сигнала - Use tooltips in main editor while debugging @@ -1580,10 +1672,6 @@ Change debugger language automatically Автоматически менять язык отладчика - - C++ - C++ - Register Qt Creator for debugging crashed applications. @@ -1591,13 +1679,58 @@ - Use Creator for post-mortem debugging - Назначить Qt Creator системным отладчиком + GUI Behavior + Особенности интерфейса пользователя - Gui behavior - Особенности интерфейса пользователя + Use Qt Creator for post-mortem debugging + Назначить Qt Creator системным отладчиком + + + + CommonSettingsPage + + + Wrap submit message at: + Ограничить длину строки до: + + + + characters + символов + + + + An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure. + Программа, которой передаётся файл сообщения о фиксации в качестве первого аргумента. Она должна завершиться с кодом неравным нулю и сообщением в стандартный поток ошибок в случае обнаружения ошибки. + + + + Submit message check script: + Скрипт проверки сообщений: + + + + A file listing user names and email addresses in a 4-column mailmap format: +name <email> alias <email> + Файл списка пользователей и их email в 4-х столбцовом формате mailmap: +имя <email> алиас <email> + + + + User/alias configuration file: + Файл настройки пользователей: + + + + A simple file containing lines with field names like "Reviewed-By:" which will be added below the submit editor. + Простой файл, содержащий строки типа "Reviewed-By:", которые будут добавлены ниже редактора сообщения. + + + + User fields configuration file: + Файл настройки полей: @@ -1630,33 +1763,33 @@ &Case-sensitivity: - &Учёт регистра: + &Учитывать регистр: Full - Полный + Всегда None - Отсутствует - - - - First letter - Только первая буква + Никогда Insert &space after function name &Вставлять пробел после имени функции + + + First Letter + Первой буквы + ContentWindow - + Open Link Открыть ссылку @@ -1669,9 +1802,9 @@ Core - + Qt - Qt + @@ -1682,7 +1815,7 @@ Core::BaseFileWizard - + Unable to create the directory %1. Невозможно создать каталог %1. @@ -1697,7 +1830,7 @@ Ошибка при записи в %1: %2 - + @@ -1706,17 +1839,17 @@ - + Existing files Существующие файлы - + Failed to open an editor for '%1'. Не удалось открыть редактор для '%1'. - + [read only] [только для чтения] @@ -1750,7 +1883,7 @@ Would you like to overwrite them? Core::CommandMappings - + Command Команда @@ -1771,30 +1904,31 @@ Would you like to overwrite them? Core::EditorManager - - + + Revert to Saved Вернуть к сохранённому - - + + + Close Закрыть - + Close All Закрыть всё - + Close Others Закрыть другие - + Next Open Document in History Следующий открытый документ в истории @@ -1805,7 +1939,7 @@ Would you like to overwrite them? - + Go Back Перейти назад @@ -1826,12 +1960,12 @@ Would you like to overwrite them? Вернуть файл к сохранённому состоянию - + Ctrl+W Ctrl+W - + Ctrl+Shift+W Ctrl+Shift+W @@ -1906,22 +2040,22 @@ Would you like to overwrite them? Удалить все разделения - + Save %1 &As... Сохранить %1 &как... - + %1,2 %1,2 - + Ctrl+F4 Ctrl+F4 - + %1,3 %1,3 @@ -1956,7 +2090,7 @@ Would you like to overwrite them? Alt+V,Alt+I - + All Files (*) Все Файлы (*) @@ -1988,12 +2122,12 @@ Would you like to overwrite them? - + Make writable Сделать записываемым - + Save as ... Сохранить как... @@ -2014,12 +2148,12 @@ Would you like to overwrite them? Не удалось разрешить запись. - + <b>Warning:</b> You are changing a read-only file. <b>Внимание:</b> Вы изменяете файл, доступный только для чтения. - + &Save %1 &Сохранить %1 @@ -2062,7 +2196,7 @@ Would you like to overwrite them? Core::EditorToolBar - + Copy full path to clipboard Скопировать полный путь в буфер обмена @@ -2080,7 +2214,7 @@ Would you like to overwrite them? Core::FileManager - + Cannot save file Не удалось сохранить файл @@ -2110,10 +2244,18 @@ Would you like to overwrite them? Открыть файл + + Core::InteractiveSshConnection + + + Error sending input + Ошибка отправки ввода + + Core::Internal::ComboBox - + Activate %1 Включить %1 @@ -2241,7 +2383,7 @@ Would you like to overwrite them? ? - + General Основные @@ -2251,7 +2393,7 @@ Would you like to overwrite them? <Системный> - + Restart required Требуется перезапуск @@ -2270,16 +2412,6 @@ Would you like to overwrite them? When files are externally modified: Когда файлы изменены извне: - - - Always ask - Всегда спрашивать - - - - Ignore modifications - Игнорировать изменения - External file browser: @@ -2307,9 +2439,24 @@ Would you like to overwrite them? - Reload all unchanged editors + Default file encoding: + Кодировка файла по умолчанию: + + + + Always Ask + Всегда спрашивать + + + + Reload All Unchanged Editors Перезагружать неизменённые + + + Ignore Modifications + Игнорировать изменения + Core::Internal::MainWindow @@ -2339,7 +2486,7 @@ Would you like to overwrite them? &Окно - + &Help Справ&ка @@ -2392,7 +2539,7 @@ Would you like to overwrite them? Пе&чать... - + E&xit В&ыход @@ -2470,6 +2617,11 @@ Would you like to overwrite them? + &Views + &Обзоры + + + About &Qt Creator О программе &Qt Creator @@ -2485,12 +2637,17 @@ Would you like to overwrite them? - New... + New Title of dialog - Новый... + Новый - + + Open Project + Открытие проекта + + + Settings... Настройки... @@ -2551,8 +2708,23 @@ Would you like to overwrite them? - 1 - + Choose a template: + Выберите шаблон: + + + + &Choose... + &Выбрать... + + + + Projects + Проекты + + + + Files and Classes + Файлы и классы @@ -2592,7 +2764,7 @@ Would you like to overwrite them? Core::Internal::OpenEditorsWindow - + * * @@ -2609,7 +2781,7 @@ Would you like to overwrite them? Core::Internal::OutputPaneManager - + Output Вывод @@ -2629,18 +2801,18 @@ Would you like to overwrite them? Предыдущий - - + + Maximize Output Pane Развернуть панель вывода - + Output &Panes Панели в&ывода - + Minimize Output Pane Свернуть панель вывода @@ -2717,7 +2889,7 @@ Would you like to overwrite them? Core::Internal::SettingsDialog - + Preferences Настройки @@ -2730,34 +2902,33 @@ Would you like to overwrite them? Core::Internal::ShortcutSettings - + Keyboard Клавиатура - - + Keyboard Shortcuts Клавиатурные сокращения - - Shortcut: - Клавиши: + + Key sequence: + Сочетание клавиш: - + Shortcut - Клавиши + Сокращение - + Import Keyboard Mapping Scheme Импорт схемы разметки клавиатуры - + Keyboard Mapping Scheme (*.kms) Схемы разметки клавиатуры (*.kms) @@ -2770,7 +2941,7 @@ Would you like to overwrite them? Core::Internal::SideBarWidget - + Split Разделить @@ -2796,23 +2967,28 @@ Would you like to overwrite them? О Qt Creator - + + (%1) + + + + From revision %1<br/> This gets conditionally inserted as argument %8 into the description string. Ревизия %1<br/> - <h3>Qt Creator %1</h3>Based on Qt %2 (%3 bit)<br/><br/>Built on %4 at %5<br /><br/>%8<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> - <h3>Qt Creator %1</h3>Основан на Qt %2 (%3-х битной)<br/><br/>Собран %4 в %5<br /><br/>%8<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> + <h3>Qt Creator %1 %8</h3>Based on Qt %2 (%3 bit)<br/><br/>Built on %4 at %5<br /><br/>%9<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> + <h3>Qt Creator %1 %8</h3>Основан на Qt %2 (%3-х битной)<br/><br/>Собран %4 в %5<br /><br/>%9<br/>© 2008-%6 %7. Все права защищены.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> Core::ModeManager - Switch to %1 mode - Переключить в режим %1 + Switch to <b>%1</b> mode + Переключить в режим <b>%1</b> @@ -2830,6 +3006,55 @@ Would you like to overwrite them? Неизвестная ошибка + + Core::SftpConnection + + + Error setting up SFTP subsystem + Ошибка инициализации подсистемы SFTP + + + + + Could not open file '%1' + Не удалось открыть файл "%1" + + + + Could not uplodad file '%1' + Не удалось закачать файл "%1" + + + + Could not copy remote file '%1' to local file '%2' + Не удалось скопировать удалённый файл "%1" в локальный "%2" + + + + Could not create remote directory + Не удалось создать удалённый каталог + + + + Could not remove remote directory + Не удалось удалить удалённый каталог + + + + Could not get remote directory contents + Не удалось получить содержимое удалённого каталога + + + + Could not remove remote file + Не удалось удалить удалённый файл + + + + Could not change remote working directory + Не удалось сменить удалённый рабочий каталог + + Core::StandardFileWizard @@ -2838,6 +3063,14 @@ Would you like to overwrite them? Новый %1 + + CppEditor + + + C++ + + + CppEditor::Internal::CPPEditor @@ -2912,14 +3145,19 @@ Would you like to overwrite them? CppEditor::Internal::CppPlugin - - C++ - C++ + + Creates a C++ header and a source file for a new class that you can add to a C++ project. + Создание новых заголовочного и исходного файлов C++ под новый класс для добавления в проект C++. - - Creates a C++ header file. - Создание нового заголовочного файл C++. + + Creates a C++ source file that you can add to a C++ project. + Создание нового исходного файла C++ для добавления в проект C++. + + + + Creates a C++ header file that you can add to a C++ project. + Создание нового заголовочного файл C++ для добавления в проект C++. @@ -2942,12 +3180,12 @@ Would you like to overwrite them? Переименовать символ под курсором - - Creates a C++ source file. - Создание нового исходного файла C++. + + Update Code Model + Обновить модель кода - + C++ Source File Файл исходных текстов C++ @@ -2957,12 +3195,7 @@ Would you like to overwrite them? Класс C++ - - Creates a header and a source file for a new class. - Создание заголовочного и исходного файлов для нового класса. - - - + Find Usages Найти использование @@ -2971,11 +3204,6 @@ Would you like to overwrite them? Ctrl+Shift+U Ctrl+Shift+U - - - Update code model - Обновить модель кода - CppFileSettingsPage @@ -2996,15 +3224,14 @@ Would you like to overwrite them? - License Template: - "Шаблон лицензии" обрезается - Лицензия: + License template: + Шаблон лицензии: CppPreprocessor - + %1: No such file or directory %1: Нет такого файла или каталога @@ -3025,7 +3252,7 @@ Would you like to overwrite them? CppTools::Internal::CompletionSettingsPage - + Completion Дополнение @@ -3072,8 +3299,8 @@ Would you like to overwrite them? - Choose a location for the new license template file - Выбор нового файла шаблона лицензии + Choose Location for New License Template File + Выбор размещения нового файла шаблона лицензии @@ -3114,21 +3341,21 @@ Would you like to overwrite them? CppTools::Internal::CppModelManager - + Scanning Слово "сканирование" слишком длинное Анализ - Indexing - Индексация + Parsing + Разбор CppTools::Internal::CppToolsPlugin - + &C++ &C++ @@ -3141,17 +3368,68 @@ Would you like to overwrite them? CppTools::Internal::FunctionArgumentWidget - + %1 of %2 %1 из %2 - Debugger + CppTools::QuickFix - Common - Общее + + + Rewrite Using %1 + Переписать с использованием %1 + + + Swap Operands + Обменять операнды + + + + Rewrite Condition Using || + Переписать условие используя || + + + + Split Declaration + Разделить объявление + + + + Add Curly Braces + Добавить фигурные скобки + + + + + Move Declaration out of Condition + Вынести обявление из условия + + + + Split if Statement + Разделить оператор if + + + + Enclose in QLatin1String(...) + Обернуть в QLatin1String(...) + + + + Convert to Objective-C String Literal + Преобразовать в строковый литерал Objective-C + + + + Use Fast String Concatenation with % + Использовать быстрое объединение строк с помощью % + + + + Debugger General @@ -3163,7 +3441,7 @@ Would you like to overwrite them? Отладчик - + <Encoding error> <Ошибка кодировки> @@ -3184,18 +3462,18 @@ Would you like to overwrite them? Debugger::DebuggerManager - + Continue Продолжить - + Interrupt Прервать - + Step Over Перейти через @@ -3223,7 +3501,7 @@ Would you like to overwrite them? Immediately Return From Inner Function - Немедленно выйти из функции + Немедленно выйти из функции @@ -3253,28 +3531,27 @@ Would you like to overwrite them? Обратное направление - + Running... Выполнение... - - + Changing breakpoint state requires either a fully running or fully stopped application. Изменение состояние точки останова требует или полностью остановленную программу, или полностью запущенную. - + The application requires the debugger engine '%1', which is disabled. Приложению требуется движок отладчика '%1', который выключен. - + Starting debugger for tool chain '%1'... Запускается отладчик из инструментария '%1'... - + Warning Предупреждение @@ -3284,7 +3561,7 @@ Would you like to overwrite them? Не удалось отладить '%1' (инструментарий: '%2'): %3 - + Abort Debugging Прервать отладку @@ -3294,7 +3571,7 @@ Would you like to overwrite them? Прервать отладку и сбросить отладчик в исходное состояние. - + Stopped Остановлен @@ -3304,12 +3581,12 @@ Would you like to overwrite them? Завершён - + Save Debugger Log Сохранить журнал отладчика - + Turn off helper usage Не использовать помощника @@ -3324,12 +3601,12 @@ Would you like to overwrite them? Помощник отладчика используется для преобразования значений некоторых типов данных Qt и стандартной библиотеки к наглядному виду. Он должен быть собран отдельно для каждой версии Qt. Это можно сделать в параметрах Qt, выбрав профиль Qt и нажав на 'Пересобрать' в строке 'Помощник отладчика'. - + Stop Debugger Остановить отладчик - + %1 (explicitly set in the Debugger Options) %1 (установлено в параметрах отладчика) @@ -3352,27 +3629,17 @@ Would you like to overwrite them? Debugger::DebuggerUISwitcher - - Locked - Зафиксировано - - - + &Languages &Языки - - &Views - &Обзоры + + Alt+L + - - Reset to default layout - Сбросить в исходное состояние - - - + Language Язык @@ -3465,6 +3732,24 @@ Would you like to overwrite them? Обновить + + Debugger::Internal::BinaryToolChainDialog + + + Select binary and toolchains + Выбор программы и инструментария + + + + Gdb binary + Программа gdb + + + + Path: + Путь: + + Debugger::Internal::BreakHandler @@ -3532,7 +3817,7 @@ Would you like to overwrite them? Corrected Line Number: - Уточнённый номер строки: + Исправленный номер строки: @@ -3547,7 +3832,7 @@ Would you like to overwrite them? Количество пропусков: - + Number Номер @@ -3595,7 +3880,7 @@ Would you like to overwrite them? Debugger::Internal::BreakWindow - + Breakpoints Точки останова @@ -3640,12 +3925,22 @@ Would you like to overwrite them? Согласовать точки останова - + + Disable Selected Breakpoints + Выключить выбранную точку останова + + + + Enable Selected Breakpoints + Включить выбранную точку останова + + + Disable Breakpoint Отключить точку останова - + Enable Breakpoint Включить точку останова @@ -3694,7 +3989,7 @@ Would you like to overwrite them? Сбой функции "%1()": %2 - + Version: %1 Версия: %1 @@ -3729,7 +4024,7 @@ Would you like to overwrite them? Процесс завершился с кодом %1. - + Continuing with '%1'... Продолжение '%1'... @@ -3779,7 +4074,7 @@ Would you like to overwrite them? Невозможно присвоить '%2' значение '%1': %3 - + Unable to retrieve %1 bytes of memory at 0x%2: %3 Не удалось получить %1 байт памяти начиная с 0x%2: %3 @@ -3800,7 +4095,7 @@ Would you like to overwrite them? Начальная точка останова пропущена... - + Interrupted in thread %1, current thread: %2 Прервано в потоке %1, текущий поток: %2 @@ -3815,14 +4110,29 @@ Would you like to overwrite them? Смена потоков: %1 -> %2 - - Thread %1: Missing debug information for top stack frame (%2). - Поток %1: Отсутствует отладочная информация о вершине кадра стека (%2). + + Stopped at %1:%2 in thread %3. + Остановлено на %1:%2 в потоке %3. - - Thread %1: No debug information available (%2). - Поток %1: Отладочная информация недоступна (%2). + + Stopped at %1 in thread %2 (missing debug information). + Остановлено на %1 в потоке %2 (нет отладочной информации). + + + + Stopped at %1 (%2) in thread %3 (missing debug information). + Остановлено на %1 (%2) в потоке %3 (нет отладочной информации). + + + + Stopped in thread %1 (missing debug information). + Остановлено в потоке %1 (нет отладочной информации). + + + + Breakpoint: %1 + Точка остановка: %1 @@ -4022,7 +4332,7 @@ Would you like to terminate it? Debugger::Internal::DebuggerPlugin - + Option '%1' is missing the parameter. У настройки '%1' пропущен параметр. @@ -4077,7 +4387,7 @@ Would you like to terminate it? Сбросить отладчик - + Threads: Потоки: @@ -4087,7 +4397,7 @@ Would you like to terminate it? Подключение к PID %1. - + Remove Breakpoint Удалить точки останова @@ -4107,7 +4417,7 @@ Would you like to terminate it? Установить точку останова - + Warning Предупреждение @@ -4117,7 +4427,7 @@ Would you like to terminate it? Невозможно подключиться к PID 0 - + Attaching to core %1. Подключение к дампу %1. @@ -4125,7 +4435,7 @@ Would you like to terminate it? Debugger::Internal::DebuggerRunControl - + Debugger Отладчик @@ -4133,7 +4443,7 @@ Would you like to terminate it? Debugger::Internal::DebuggerRunControlFactory - + Debug Отладка @@ -4218,12 +4528,12 @@ Would you like to terminate it? Show "std::" Namespace in Types - Показывать пространство имён "std::" в типах + Показывать пространство имён "std::" в типах Show Qt's Namespace in Types - Показывать пространство имён Qt в типах + Показывать пространство имён Qt в типах @@ -4405,12 +4715,35 @@ Would you like to terminate it? Ctrl+Shift+F11 + + Debugger::Internal::GdbChooserWidget + + + Binary + Программа + + + + Toolchains + Инструментарий + + + + Duplicate binary + Идентичная программа + + + + The binary '%1' already exists. + Программа "%1" уже присутствует. + + Debugger::Internal::GdbEngine - + The Gdb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program. - Процесс Gdb не смог запуститься. Или вызываемая программа '%1' отсутствует, или у вас нет прав на ее вызов. + Процесс Gdb не смог запуститься. Или вызываемая программа "%1" отсутствует, или у вас нет прав на её вызов. @@ -4435,7 +4768,7 @@ Would you like to terminate it? Thread group %1 created. - Группа потоков %1 создана. + Группа потоков %1 создана. @@ -4443,9 +4776,9 @@ Would you like to terminate it? Чтение %1... - + Stopping temporarily. - Временно остановлено. + Временно остановлено. @@ -4457,20 +4790,20 @@ You can choose between waiting longer or abort debugging. Process failed to start. - Не удалось запустить процесс. + Не удалось запустить процесс. - + Jumped. Stopped. - Переход сделан. Остановлено. + Переход сделан. Остановлено. - + Processing queued commands. - Обработка очереди команд. + Обработка очереди команд. - + Library %1 loaded Библиотека %1 загружена @@ -4500,7 +4833,7 @@ You can choose between waiting longer or abort debugging. Выбран поток %1 - + Application exited with exit code %1 Приложение завершилось с кодом %1 @@ -4532,36 +4865,31 @@ You can choose between waiting longer or abort debugging. Stopped: %1 by signal %2 - Остановлено по причине %1 (сигнал %2) + Остановлено по причине %1 (сигнал %2) - + Stopped. Остановлено. - + Stopped: "%1" Остановлено: "%1" - - The debugger you are using identifies itself as: - Отладчик, используемый вами, определяет себя как: - - - + Continuing after temporary stop... Продолжение после временного останова... - + The debugging helper library was not found at %1. Библиотека помощника отладчика не обнаружена в %1. - + Unable to start gdb '%1': %2 Не удалось запустить gdb '%1': %2 @@ -4571,7 +4899,7 @@ You can choose between waiting longer or abort debugging. Не удалось запустить адаптер - + Snapshot Creation Error Ошибка создания снимка @@ -4601,17 +4929,17 @@ Do you want to stop the debugged process and load the selected snapshot? - + Finished retrieving data Закончено получение данных - + There is no gdb binary available for '%1' Отсутствует программа gdb для "%1" - + Cannot find debugger initialization script Не удалось найти скрипт инициализации отладчика @@ -4621,7 +4949,7 @@ Do you want to stop the debugged process and load the selected snapshot?В настройках указан файл скрипта '%1', который сейчас недоступен. Если файл скрипта не обязателен, просто очистите поле, чтобы не было этого предупреждения. - + Unable to run '%1': %2 Не удалось запустить '%1': %2 @@ -4641,7 +4969,7 @@ Do you want to stop the debugged process and load the selected snapshot? - + An unknown error in the Gdb process occurred. Неизвестная ошибка возникла у процесса Gdb. @@ -4651,19 +4979,19 @@ Do you want to stop the debugged process and load the selected snapshot?Потребована остановка... - + Executable failed Программа завершилась с ошибкой - + Running... Выполнение... - + Gdb not responding Gdb не отвечает @@ -4684,14 +5012,14 @@ Do you want to stop the debugged process and load the selected snapshot?Программа завершилась с ошибкой: %1 - + <unknown> <неизвестно> Stopped at breakpoint %1 in thread %2. - Остановлено на точке останова %1 потока %2. + Остановлено на точке останова %1 потока %2. @@ -4706,24 +5034,15 @@ Do you want to stop the debugged process and load the selected snapshot? <Неизвестно> - - This version is not officially supported by Qt Creator. -Debugging will most likely not work well. -Using gdb 7.1 or later is strongly recommended. - Qt Creator не поддерживает официально эту версию. -Отладка может не работать. -Настоятельно рекомендуется использование gdb версии не ниже 7.1. - - - - + + Execution Error Ошибка выполнения - - + + Cannot continue debugged process: @@ -4731,17 +5050,17 @@ Using gdb 7.1 or later is strongly recommended. - + Failed to shut down application Не удалось закрыть приложение - + Launching Запуск - + Running requested... Потребован запуск... @@ -4786,9 +5105,9 @@ Using gdb 7.1 or later is strongly recommended. Потребован немедленный выход из функции... - + ATTEMPT BREAKPOINT SYNC - + @@ -4803,7 +5122,7 @@ Using gdb 7.1 or later is strongly recommended. Выход из подложного кадра... - + Retrieving data for watch view (%n requests pending)... Получение наблюдаемых данных (%n запрос ожидается)... @@ -4812,17 +5131,17 @@ Using gdb 7.1 or later is strongly recommended. - + Debugging helpers not found. Помощники отладчика не найдены. - + Custom dumper setup: %1 Настройка пользовательского дампера: %1 - + <0 items> <0 элементов> @@ -4837,12 +5156,12 @@ Using gdb 7.1 or later is strongly recommended. - + <shadowed> <затенено> - + <n/a> <н/д> @@ -4858,15 +5177,15 @@ Using gdb 7.1 or later is strongly recommended. <нет информации> - + - + Disassembler failed: %1 Не удалось дизассемблировать: %1 - + Gdb I/O Error Ошибка вводы/вывода gdb @@ -4924,10 +5243,6 @@ Using gdb 7.1 or later is strongly recommended. Gdb Gdb - - Choose Gdb Location - Выбор размещения Gdb - Choose Location of Startup Script File @@ -4944,7 +5259,7 @@ Using gdb 7.1 or later is strongly recommended. No memory viewer available - Просмотрщик памяти отсутствует + Не доступна программа просмотра памяти @@ -4955,7 +5270,17 @@ Using gdb 7.1 or later is strongly recommended. Debugger::Internal::ModulesModel - + + yes + да + + + + no + нет + + + Module name Название модуля @@ -4983,7 +5308,7 @@ Using gdb 7.1 or later is strongly recommended. Модули - + Update Module List Обновить список модулей @@ -5076,6 +5401,74 @@ Using gdb 7.1 or later is strongly recommended. Не удалось открыть FiFo %1: %2 + + Debugger::Internal::PdbEngine + + + Running requested... + Потребовано выполнение... + + + + Unable to start pdb '%1': %2 + Не удалось запустить pdb "%1": %2 + + + + Adapter start failed + Не удалось запустить адаптер + + + + '%1' contains no identifier + "%1" не содержит идентификаторов + + + + String literal %1 + Строковый литерал %1 + + + + Cowardly refusing to evaluate expression '%1' with potential side effects + Робкий отказ вычислить выражение "%1" с возможными побочными эффектами + + + + Pdb I/O Error + Ошибка вводы/вывода pdb + + + + The Pdb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program. + Процесс Pdb не смог запуститься. Или вызываемая программа "%1" отсутствует, или у вас нет прав на её вызов. + + + + The Pdb process crashed some time after starting successfully. + Процесс Pdb вылетел через некоторое время после успешного запуска. + + + + The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again. + У последней функции waitFor...() истекло время ожидания. Состояние QProcess не изменилось, и вы можете попробовать вызвать waitFor...() снова. + + + + An error occurred when attempting to write to the Pdb process. For example, the process may not be running, or it may have closed its input channel. + Возникла ошибка при отправке данных процессу Pdb. Например, процесс может уже не работать или он мог закрыть свой входной канал. + + + + An error occurred when attempting to read from the Pdb process. For example, the process may not be running. + Возникла ошибка при получении данных от процесса Pdb. Например, процесс может уже не работать. + + + + An unknown error in the Pdb process occurred. + Неизвестная ошибка возникла у процесса Pdb. + + Debugger::Internal::PlainGdbAdapter @@ -5112,7 +5505,7 @@ Using gdb 7.1 or later is strongly recommended. Регистры - + Reload Register Listing Перезагрузить список регистров @@ -5314,7 +5707,7 @@ Using gdb 7.1 or later is strongly recommended. Debugger::Internal::SourceFilesWindow - + Source Files Файлы исходных текстов @@ -5411,7 +5804,7 @@ Using gdb 7.1 or later is strongly recommended. Debugger::Internal::StackWindow - + Stack Стек @@ -5546,7 +5939,7 @@ Using gdb 7.1 or later is strongly recommended. Debugger::Internal::ThreadsWindow - + Thread Поток @@ -5561,15 +5954,38 @@ Using gdb 7.1 or later is strongly recommended. Всегда выравнивать ширину столбцов по содержимому + + Debugger::Internal::ToolChainSelectorWidget + + + Desktop/General + Настольный/Стандартный + + + + Symbian + + + + + Maemo + + + Debugger::Internal::TrkGdbAdapter - + + Port specification missing. + Отсутствует спецификация порта. + + + Unable to acquire a device on '%1'. It appears to be in use. Не удалось получить доступ к устройству через "%1". Возможно, оно уже используется. - + Process started, PID: 0x%1, thread id: 0x%2, code segment: 0x%3, data segment: 0x%4. Процесс запущен, PID: 0x%1, ID потока: 0x%2, сегмент кода: 0x%3, сегмент данных: 0x%4. @@ -5581,70 +5997,11 @@ Using gdb 7.1 or later is strongly recommended. - - Debugger::Internal::TrkOptionsPage - - Symbian TRK - Symbian TRK - - - - Symbian - - - - - Debugger::Internal::TrkOptionsWidget - - - Form - Форма - - - - Gdb - Gdb - - - - Symbian ARM gdb location: - Размещение gdb для Symbian ARM: - - - Communication - Связь - - - - Serial Port - Последовательный порт - - - - Bluetooth - Bluetooth - - - - Port: - Порт: - - - - Device: - Устройство: - - - - Device Communication - Связь с устройством - - Debugger::Internal::WatchData + - <not in scope> <вне области> @@ -5692,7 +6049,7 @@ Using gdb 7.1 or later is strongly recommended. Поколение - + unknown address неизвестный адрес @@ -5702,22 +6059,22 @@ Using gdb 7.1 or later is strongly recommended. Объект типа %1 по адресу %2 - + <Edit> - <Измените> + <Изменить> - + Root Корень - + Name Имя - + Locals Локальные переменные @@ -5735,7 +6092,7 @@ Using gdb 7.1 or later is strongly recommended. Debugger::Internal::WatchModel - + decimal десятичный @@ -5798,7 +6155,7 @@ Using gdb 7.1 or later is strongly recommended. Debugger::Internal::WatchWindow - + Locals and Watchers Переменные @@ -5828,17 +6185,17 @@ Using gdb 7.1 or later is strongly recommended. Сменить формат объекта - + Insert New Watch Item Вставить новый наблюдаемый элемент - + Select Widget to Watch Выбрать виджет для слежения - + Open Memory Editor... Открыть редактор памяти... @@ -5848,7 +6205,7 @@ Using gdb 7.1 or later is strongly recommended. Открыть редактор памяти с %1 - + Refresh Code Model Snapshot Обновить образ модели кода @@ -5905,27 +6262,17 @@ Using gdb 7.1 or later is strongly recommended. Использовать модель кода - Use Debugging helper - Использовать помощник отладчика + + <html><head/><body> +<p>The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Watchers&quot; view.</p> +<p> It is not strictly necessary for debugging with Qt Creator. </p></body></html> + <html><head/><body> +<p>Помощник отладчика используется только для корректного отображения объектов некоторых типов, вроде QString и std::map в обзоре &quot;Переменные&quot; режима отладки.</p> +<p>Он не является необходимым для отладки с помощью Qt Creator.</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Note:</span> The debugging helper in only used to produce a nice display of objects of certain type like QString or std::map in the &quot;Locals and Watchers&quot; view.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">It is not strictly necessary for debugging with Qt Creator.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> - <html><body style="font-size:9pt;"> -<p><b>Справка:</b> Помощник отладчика используется только для корректного отображения объектов некоторых типов, вроде QString и std::map в обзоре &quot;Переменные&quot; режима отладки.</p> -<p>Он не является необходимым для отладки с помощью Qt Creator.</p> -</body></html> - - - - Use debugging helper + Use Debugging Helper Использовать помощник отладчика @@ -6040,11 +6387,6 @@ Rebuilding the project might help. Aggregation Агрегация - - - Multiple Inheritance - Множественное наследование - Code Generation @@ -6060,6 +6402,11 @@ Rebuilding the project might help. Use Qt module name in #include-directive Использовать в директиве #include название модуля Qt + + + Multiple inheritance + Множественное наследование + Designer::Internal::FormClassWizardDialog @@ -6106,13 +6453,13 @@ Rebuilding the project might help. Designer::Internal::FormEditorFactory - This file can only be edited in Design Mode. - Этот файл можно редактировать только в режиме дизайна. + This file can only be edited in <b>Design</b> mode. + Этот файл можно редактировать только в режиме <b>дизайна</b>. - Open Designer - Открыть дизайнер + Switch mode + Переключить режим @@ -6124,19 +6471,19 @@ Rebuilding the project might help. - Creates a Qt Designer form file (.ui). - Создание файла формы Qt Designer (.ui). + Creates a Qt Designer form along with a matching class (C++ header and source file) for implementation purposes. You can add the form and class to an existing Qt C++ Project. + Создание формы дизайнера Qt и соответствующего класса (исходный и заголовочный файлы C++) для реализации. Их можно будет добавить к существующему проекту Qt C++. - + + Creates a Qt Designer form that you can add to a Qt C++ project. This is useful if you already have an existing class for the UI business logic. + Создание формы дизайнера Qt для добавления к существующему проекту Qt C++. Это полезно в случае, если уже имеется класс бизнес-логики интерфеса пользователя. + + + Qt Designer Form Class Класс формы Qt Designer - - - Creates a Qt Designer form file (.ui) with a matching class. - Создание файла формы Qt Designer (.ui) и соответствующего класса. - Designer::Internal::FormEditorW @@ -6146,128 +6493,113 @@ Rebuilding the project might help. Панель виджетов - - + + Object Inspector Инспектор объектов - - + + Property Editor Редактор свойств - - + + Action Editor Редактор действий - + Widget box Панель виджетов - + For&m Editor Редактор &форм - - Edit widgets - Изменение виджетов - - - + F3 - F3 + - - Edit signals/slots - Изменение сигналов/слотов - - - + F4 - F4 + - - Edit buddies - Изменение партнёров - - - - Edit tab order - Изменение порядка обхода - - - + Meta+H - Meta+H + Ctrl+H - Ctrl+H + Meta+L - Meta+L + Ctrl+L - Ctrl+L + Meta+G - Meta+G + Ctrl+G - Ctrl+G + Meta+J - Meta+J + Ctrl+J - Ctrl+J + - - Views - Обзоры - - - - + + Signals && Slots Editor Редактор сигналов и слотов - - Locked - Зафиксировано + + Edit Widgets + Изменение виджетов - - Reset to Default Layout - Сбросить в исходное состояние + + Edit Signals/Slots + Изменение сигналов/слотов - + + Edit Buddies + Изменение партнёров + + + + Edit Tab Order + Изменение порядка обхода + + + Ctrl+Alt+R - Ctrl+Alt+R + @@ -6275,7 +6607,7 @@ Rebuilding the project might help. О модулях Qt Designer... - + Preview in Предпросмотр в @@ -6285,7 +6617,7 @@ Rebuilding the project might help. Дизайнер - + The image could not be created: %1 Картинка не может быть создана: %1 @@ -6389,14 +6721,6 @@ Rebuilding the project might help. Remove Удалить - - <html><body><p>The Documentation page lets you install and remove compressed help files.</p> -<p>Click the <b>Install</b> button and choose the path of the compressed help file (*.qch) you would like to install. To delete a help file, select a documentation set in the list and click <b>Remove</b>.</p></body></html> - - <html><body><p>В разделе Документация можно установить или удалить сжатые файлы справки.</p> -<p>Щёлкните кнопку <b>Установить</b> и выберите сжатый файл справки (*qch), который желаете установить. Чтобы удалить файл справки, выберите набор документации и щёлкните <b>Удалить</b>.</p></body></html> - - Add and remove compressed help files, .qch. @@ -6419,6 +6743,56 @@ Rebuilding the project might help. Настройки редактора + + ExpressionEditor + + + Expression + Выражение + + + + Extended + + + Effect + Эффект + + + + + Blur Radius: + Радиус размазывания: + + + + Pixel Size: + Размер пикселя: + + + + x Offset: + Смещение по x: + + + + y Offset: + Смещение по y: + + + + ExtendedFunctionButton + + + Reset + Сбросить + + + + Set Expression + Присвоить выражение + + ExtensionSystem::Internal::PluginDetailsView @@ -6494,7 +6868,7 @@ Rebuilding the project might help. ExtensionSystem::Internal::PluginSpecPrivate - + File does not exist: %1 Файл не существует: %1 @@ -6626,7 +7000,7 @@ Rebuilding the project might help. ExtensionSystem::PluginManager - + Circular dependency detected: Обнаружена циклическая зависимость: @@ -6645,13 +7019,8 @@ Rebuilding the project might help. %1(%2) - - Cannot load plugin because dependencies are not resolved - Не удалось загрузить модуль, так как его зависимости не были разрешены - - - - + + Cannot load plugin because dependency failed to load: %1(%2) Reason: %3 Не удалось загрузить модуль, так как его зависимость не загрузилась: %1(%2) @@ -6663,12 +7032,12 @@ Reason: %3 - + Load on Startup Загружать при запуске - + Utilities Утилиты @@ -6677,11 +7046,16 @@ Reason: %3 FakeVim::Internal - Use vim-style editing + Use Vim-style Editing Использовать редактирование в стиле Vim - + + Read .vimrc + Загрузить .vimrc + + + FakeVim properties... Настройки FakeVim... @@ -6689,7 +7063,7 @@ Reason: %3 FakeVim::Internal::FakeVimExCommandsPage - + Ex Command Mapping Расширенное связывание команд @@ -6706,7 +7080,7 @@ Reason: %3 - Regular Expression: + Regular expression: Регулярное выражение: @@ -6718,17 +7092,17 @@ Reason: %3 FakeVim::Internal::FakeVimHandler - + Not implemented in FakeVim Не реализовано в FakeVim - + E20: Mark '%1' not set E20: Отметка '%1' не установлена - + %1%2% %1%2% @@ -6738,7 +7112,7 @@ Reason: %3 %1Все - + File '%1' exists (add ! to override) Файл '%1' уже существует (добавьте !, чтобы перезаписать) @@ -6758,12 +7132,12 @@ Reason: %3 Не удалось открыть файл '%1' для чтения - + "%1" %2L, %3C "%1" %2L, %3C - + %n lines filtered %n строка соответствует шаблону @@ -6772,7 +7146,7 @@ Reason: %3 - + %n lines >ed %1 time %n строка сдвинута вправо %1 раз @@ -6781,12 +7155,17 @@ Reason: %3 - + + Can't open file %1 + Невозможно открыть файл %1 + + + E512: Unknown option: E512: Неизвестный параметр: - + search hit BOTTOM, continuing at TOP поиск дошёл до НИЗА и продолжился СВЕРХУ @@ -6796,12 +7175,12 @@ Reason: %3 поиск дошёл до ВЕРХА и продолжился СНИЗУ - + Pattern not found: Шаблон не найден: - + Already at oldest change Уже на первом изменении @@ -6814,7 +7193,7 @@ Reason: %3 FakeVim::Internal::FakeVimOptionPage - + General Основное @@ -6827,7 +7206,7 @@ Reason: %3 FakeVim::Internal::FakeVimPluginPrivate - + Switch to next file Перейти к следующему файлу @@ -6837,13 +7216,13 @@ Reason: %3 Перейти к предыдущему файлу - - + + Quit FakeVim Покинуть FakeVim - + Saving succeeded Сохранение выполнено успешно @@ -6857,7 +7236,7 @@ Reason: %3 - + Not an editor command: %1 Не команда редактора: %1 @@ -6871,39 +7250,9 @@ Reason: %3 FakeVimOptionPage - Vim style settings - Настройки стиля Vim - - - - vim's "expandtab" option - параметр vim "expandtab" - - - - Expand tabulators: - Разворачивать табуляции: - - - - Highlight search results: - Подсвечивать результаты поиска: - - - Shift width: Ширина смещения: - - - Smart tabulators: - Умные табуляторы: - - - - Start of line: - Начало строки: - vim's "tabstop" option @@ -6919,41 +7268,6 @@ Reason: %3 Backspace: Забой: - - - VIM's "autoindent" option - параметр vim "autoindent" - - - - Automatic indentation: - Автоматические отступы: - - - - Incremental search: - Пошаговый поиск: - - - - Copy text editor settings - Настройки редактора - - - - Set Qt style - Стиль Qt - - - - Set plain style - Простой стиль - - - - Smart indentation: - "Умные" отступы: - Use FakeVim @@ -6961,8 +7275,81 @@ Reason: %3 - Use search dialog: - Использовать диалог поиска: + Vim Behavior + Поведение Vim + + + + Automatic indentation + Автоматические отступы + + + + Start of line + Вначале строки + + + + Smart indentation + Умные отступы + + + + Use search dialog + Использовать диалог поиска + + + + Expand tabulators + Разворачивать табуляторы + + + + Smart tabulators + Умные табуляторы + + + + Highlight search results + Выделять результаты поиска + + + + Incremental search + Пошаговый поиск + + + + Read .vimrc + Загрузить .vimrc + + + + Keyword characters: + Ключевые символы: + + + + Copy Text Editor Settings + Копировать настройки редактора + + + + Set Qt Style + Стиль Qt + + + + Set Plain Style + Простой стиль + + + + FileWidget + + + Open File + Открытие файла @@ -7005,32 +7392,6 @@ Reason: %3 Remove Удалить - - <html><body> -<p> -The Filters page lets you create and remove documentation filters. -</p><p> -To add a new filter, click the <b>Add</b> button, specify a filter name in the pop-up dialog and click <b>OK</b>, then select the filter attributes in the list box on the right hand side. You can delete a filter by selecting it and clicking the <b>Remove</b> button. -</p><p> -A filter is identified by its name and contains a list of filter attributes. An attribute is just a string that can be freely chosen. Attributes are defined by the documentation itself, this means that every documentation set usually has one or more attributes. -</p><p> -For example, the Qt 4.7.0 Linguist documentation defines the attributes '<b>qt</b>', '<b>tools</b>' and '<b>4.7.0</b>', Qt Designer defines '<b>designer</b>', '<b>tools</b>' and '<b>4.7.0</b>'. The filter to display all tools would then define only the attribute '<b>tools</b>' since this attribute is part of both documentation sets. -</p><p> -Adding the attribute '<b>qmake</b>' to the filter would then only show qmake documentation, since the Qt Designer documentation does not contain this attribute. Having an empty list of attributes in a filter will match all documentation; i.e., it is equivalent to requesting unfiltered documentation. -</p></body></html> - <html><body> -<p> -В разделе Фильтры можно создавать и удалять фильтры документации. -</p><p> -Чтобы добавить новый фильтры, щёлкните кнопку <b>Добавить</b>, укажите название фильтра в открывшемся диалоге и щёлкните кнопку <b>OK</b>, затем выберите разделы в правом списке. Чтобы удалить фильтр, выберите его и щёлкните кнопку <b>Удалить</b>. -</p><p> -Фильтр определяется по его названию и содержит список разделов. Раздел - это просто строка, которую можно свободно менять. Разделы задаются в документации, что означает, что каждая документация содержит, как минимум, один раздел. -</p><p> -Например, документация к Qt Linguist 4.7.0 содержит разделы: «<b>qt</b>», «<b>tools</b>» и «<b>4.7.0</b>»; а к Qt Designer: «<b>designer</b>», «<b>tools</b>» и «<b>4.7.0</b>». Чтобы фильтр показывал все «<b>tools</b>», необходимо выбрать только раздел «<b>tools</b>», так как он входит в обе документации. -</p><p> -Если же добавить раздел «<b>qmake</b>» в фильтр, то будет отображаться справка только по qmake, так как в документации к Qt Designer нет этого раздела. Если не указать набор разделов, то отображаться будет вся документация. -</p></body></html> - <html><body> @@ -7233,20 +7594,40 @@ Add, modify, and remove document filters, which determine the documentation set Заменить + + FontGroupBox + + + + Font + Шрифт + + + + Size + Размер + + + + Font Style + Начертание + + + + Style + Стиль + + + + GdbChooserWidget + + + Unable to run '%1': %2 + Не удалось запустить "%1": %2 + + GdbOptionsPage - - Gdb interaction - Взаимодействие с Gdb - - - This is either a full absolute path leading to the gdb binary you intend to use or the name of a gdb binary that will be searched in your PATH. - Это абсолютный путь к исполняемому файлу gdb, который желаете использовать, или просто его имя, которое будет искаться в системных путях. - - - Gdb location: - Размещение Gdb: - Environment: @@ -7262,11 +7643,6 @@ Add, modify, and remove document filters, which determine the documentation set Gdb startup script: Сценарий запуска gdb: - - - Behaviour of breakpoint setting in plugins - Поведение точек останова, устанавливаемых в модулях - This is the slowest but safest option. @@ -7354,6 +7730,11 @@ on slow machines. In this case, the value should be increased. Show a message box when receiving a signal Показывать сообщение при получении сигнала + + + Behavior of Breakpoint Setting in Plugins + Поведение точек останова, устанавливаемых в модулях + GeneralSettingsPage @@ -7392,26 +7773,6 @@ on slow machines. In this case, the value should be increased. On help start: При запуске справки: - - - Show my home page - Открыть домашнюю страницу - - - - Show a blank page - Открыть пустую страницу - - - - Show my tabs from last session - Открыть вкладки с предыдущего запуска - - - - Home Page: - Домашняя страница: - Use &Current Page @@ -7449,19 +7810,39 @@ on slow machines. In this case, the value should be increased. - Show side-by-side if possible + Home page: + Домашняя страница: + + + + Show Side-by-Side if Possible Показывать сбоку, если возможно - Always show side-by-side + Always Show Side-by-Side Всегда показывать сбоку - Always start full help + Always Start Full Help Всегда запускать полную справку + + + Show My Home Page + Открыть домашнюю страницу + + + + Show a Blank Page + Открыть пустую страницу + + + + Show My Tabs from Last Session + Открыть вкладки с предыдущего запуска + GenericMakeStep @@ -7511,7 +7892,7 @@ on slow machines. In this case, the value should be increased. GenericProjectManager::Internal::GenericBuildSettingsWidget - + Configuration Name: Название конфигурации: @@ -7561,25 +7942,20 @@ on slow machines. In this case, the value should be increased. GenericProjectManager::Internal::GenericProjectWizard - + Import Existing Project Импорт существующего проекта - Creates a generic project, supporting any build system. - Создание базового проекта, поддерживающего любую систему сборки. - - - - The project %1 could not be opened. - Невозможно открыть проект %1. + Imports existing projects that do not use qmake or CMake. This allows you to use Qt Creator as a code editor. + Импорт существующего проекта, не использующего qmake или CMake. Это позволяет использовать Qt Creator в качестве редактора кода. GenericProjectManager::Internal::GenericProjectWizardDialog - + Import Existing Project Импорт существующего проекта @@ -7604,6 +7980,50 @@ on slow machines. In this case, the value should be increased. Размещение + + GenericProjectManager::Internal::Manager + + + Failed opening project '%1': Project already open + Не удалось открыть проект "%1": проект уже открыт + + + + GenericSshConnection + + + Could not connect to host. + Ну удалось подключиться к узлу. + + + + Error in cryptography backend: %1 + Ошибка в криптографическом модуле: %1 + + + + Geometry + + + Geometry + Геометрия + + + + Position + Положение + + + + Size + Размер + + + + Lock aspect ratio + Зафиксировать соотношение сторон + + Git::CloneWizardPage @@ -7696,21 +8116,21 @@ on slow machines. In this case, the value should be increased. - Remote branches - Удаленные ветки + Remote Branches + Внешние ветки Git::Internal::ChangeSelectionDialog - Select a Git commit - Выберите фиксацию Git + Select a Git Commit + Выбор фиксации Git - Select Git repository - Выбрать хранилище Git + Select Git Repository + Выбор хранилища Git @@ -7727,8 +8147,8 @@ on slow machines. In this case, the value should be increased. Git::Internal::CloneWizard - Clones a project from a git repository. - Клонирование проекта из хранилища GIT. + Clones a Git repository and tries to load the contained project. + Клонирование хранилища Git с последующей попыткой загрузки содержащегося там проекта. @@ -7739,7 +8159,7 @@ on slow machines. In this case, the value should be increased. Git::Internal::GitClient - + Note that the git plugin for QtCreator is not able to interact with the server so far. Thus, manual ssh-identification etc. will not work. Следует иметь в виду, что модуль Git до сих пор не умеет работать с сервером. Поэтому, ручная настройка ssh-авторизации и другое не будет работать. @@ -7762,7 +8182,7 @@ on slow machines. In this case, the value should be increased. Ожидание данных... - + Git Diff Git - Сравнение @@ -7873,13 +8293,13 @@ on slow machines. In this case, the value should be increased. - Stash description - Описание спрятанного + Description: + Описание: - Description: - Описание: + Stash Description + Описание спрятанного @@ -8023,7 +8443,7 @@ on slow machines. In this case, the value should be increased. The command 'git pull --rebase' failed, aborting rebase. - Не удалось выполнить команду "git pull --rebase", перебазирование прервано. + Не удалось выполнить команду "git pull --rebase", перебазирование прервано. @@ -8067,7 +8487,7 @@ on slow machines. In this case, the value should be increased. Alt+G,Alt+D - Alt+G,Alt+D + @@ -8082,7 +8502,7 @@ on slow machines. In this case, the value should be increased. Alt+G,Alt+L - Alt+G,Alt+L + @@ -8097,7 +8517,7 @@ on slow machines. In this case, the value should be increased. Alt+G,Alt+B - Alt+G,Alt+B + @@ -8112,7 +8532,7 @@ on slow machines. In this case, the value should be increased. Alt+G,Alt+U - Alt+G,Alt+U + @@ -8127,7 +8547,7 @@ on slow machines. In this case, the value should be increased. Alt+G,Alt+A - Alt+G,Alt+A + @@ -8150,7 +8570,12 @@ on slow machines. In this case, the value should be increased. Сравнить проект "%1" - + + Stash Snapshot... + Спрятать изменения (stash)... + + + Stashes... Спрятанное (stashes)... @@ -8167,7 +8592,7 @@ on slow machines. In this case, the value should be increased. Alt+G,Alt+K - Alt+G,Alt+K + @@ -8192,7 +8617,7 @@ on slow machines. In this case, the value should be increased. Diff Repository - Сравнить всё + Сравнить всё @@ -8222,7 +8647,7 @@ on slow machines. In this case, the value should be increased. Undo Repository Changes - Отменить все изменения + Отменить все изменения @@ -8235,12 +8660,7 @@ on slow machines. In this case, the value should be increased. Очистить хранилище... - - Stash snapshot... - Спрятать изменения (stash)... - - - + Saves the current state of your work and resets the repository. Сохраняет текущее состояние вашей работы и сбрасывает хранилище. @@ -8267,7 +8687,7 @@ on slow machines. In this case, the value should be increased. Alt+G,Alt+C - Alt+G,Alt+C + @@ -8320,7 +8740,7 @@ on slow machines. In this case, the value should be increased. &Вернуть - + Would you like to revert all pending changes to the repository %1? Желаете откатить все изменения рабочей копии @@ -8449,7 +8869,7 @@ on slow machines. In this case, the value should be increased. Git::Internal::LocalBranchModel - + <New branch> <Новая ветка> @@ -8475,25 +8895,15 @@ on slow machines. In this case, the value should be increased. Git - + Git Settings Настройки Git - Environment variables - Переменные среды окружения - - - PATH: Значение PATH: - - - From system - Системное - <b>Note:</b> @@ -8555,6 +8965,16 @@ Perl через переменные среды окружения.Pull with rebase Принимать (pull) с перебазированием + + + Environment Variables + Переменные среды окружения + + + + From System + Системное + Git::Internal::StashDialog @@ -8690,7 +9110,7 @@ You can choose between stashing the changes or discarding them. GitClient - + Unable to determine the repository for %1. Не удалось определить хранилище для %1. @@ -8738,8 +9158,8 @@ You can choose between stashing the changes or discarding them. Gitorious::Internal::GitoriousCloneWizard - Clones a project from a Gitorious repository. - Клонирование проекта из хранилища Gitorious. + Clones a Gitorious repository and tries to load the contained project. + Клонирование хранилища Gitorious с последующей попыткой загрузки содержащегося там проекта. @@ -9300,7 +9720,7 @@ You can choose between stashing the changes or discarding them. Help::Internal::GeneralSettingsPage - General settings + General Settings Основные настройки @@ -9344,14 +9764,14 @@ You can choose between stashing the changes or discarding them. Help::Internal::HelpPlugin - - + + Contents Содержание - - + + Index Указатель @@ -9366,12 +9786,12 @@ You can choose between stashing the changes or discarding them. Закладки - + Home Домой - + Previous Назад @@ -9381,7 +9801,7 @@ You can choose between stashing the changes or discarding them. Вперёд - + Add Bookmark Добавить закладку @@ -9401,7 +9821,7 @@ You can choose between stashing the changes or discarding them. Контекстная справка - + Activate Index in Help mode Включить Указатель в режиме помощи @@ -9411,14 +9831,14 @@ You can choose between stashing the changes or discarding them. Включить Содержание в режиме помощи - + Increase Font Size Увеличить шрифт Ctrl++ - Ctrl++ + @@ -9428,7 +9848,7 @@ You can choose between stashing the changes or discarding them. Ctrl+- - Ctrl+- + @@ -9436,12 +9856,32 @@ You can choose between stashing the changes or discarding them. Восстановить размер шрифта - + Ctrl+0 - Ctrl+0 + - + + Alt+Tab + + + + + Alt+Shift+Tab + + + + + Ctrl+Tab + + + + + Ctrl+Shift+Tab + + + + Open Pages Открытые страницы @@ -9485,7 +9925,7 @@ You can choose between stashing the changes or discarding them. - + Open Link as New Page Открыть ссылку на новой странице @@ -9516,7 +9956,7 @@ You can choose between stashing the changes or discarding them. Help::Internal::OpenPagesWidget - + Close %1 Закрыть %1 @@ -9580,7 +10020,7 @@ You can choose between stashing the changes or discarding them. HelpViewer - + <title>about:blank</title> @@ -9590,15 +10030,53 @@ You can choose between stashing the changes or discarding them. <title>Ошибка 404...</title><div align="center"><br><br><h1>Страница отсутствует</h1><br><h3>'%1'</h3></div> + + ImageSpecifics + + + Image + Изображение + + + + Source + Источник + + + + Fill Mode + Режим заливки + + + + Aliasing + Ступенчатость + + + + Smooth + Гладкий + + + + Source Size + Размер источника + + + + Painted Size + Размер рисования + + IndexWindow - + &Look for: &Искать: - + Open Link Открыть ссылку @@ -9616,6 +10094,61 @@ You can choose between stashing the changes or discarding them. Нажмите Ctrl-<Ввод> для выполнения строки. + + InvalidIdException + + + Ids have to be unique: + Следующие идентификаторы должны быть уникальными: + + + + Invalid Id: + Неверный идентификатор: + + + + +Only alphanumeric characters and underscore allowed. +Ids must begin with a lowercase letter. + +Допустимы только цифры, буквы и знак подчёркивания. +Идентификаторы должны начинаться с маленькой буквы. + + + + Layout + + + Layout + Компоновка + + + + Anchors + Привязки + + + + + + + + + Target + Цель + + + + + + + + + Margin + Отступ + + Locator @@ -9662,8 +10195,8 @@ You can choose between stashing the changes or discarding them. - Choose a directory to add - Выбор каталога для добавления + Select Directory + Выбор каталога @@ -9692,11 +10225,6 @@ You can choose between stashing the changes or discarding them. Name: Название: - - - File Types: - Типы файлов: - Specify file name filters, separated by comma. Filters may contain wildcards. @@ -9739,6 +10267,11 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Directories: Каталоги: + + + File types: + Типы файлов: + Locator::Internal::FileSystemFilter @@ -9810,12 +10343,17 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Обзор... - + Type to locate Введите, чтобы найти - + + Options + Параметры + + + <type here> <введите здесь> @@ -9832,7 +10370,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Locator::Internal::SettingsPage - %1 (Prefix: %2) + %1 (prefix: %2) %1 (префикс: %2) @@ -9860,13 +10398,13 @@ To do this, you type this shortcut and a space in the Locator entry field, and t - Refresh Interval: - Период обновления: + min + мин - min - мин + Refresh interval: + Период обновления: @@ -9874,7 +10412,25 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Device Configuration Test - Проверка конфигурации устройства + Тест конфигурации устройства + + + + MaemoPackageCreationWidget + + + Package contents: + Содержимое пакета: + + + + Add File to Package + Добавить файл в пакет + + + + Remove File from Package + Удалить файл из пакета @@ -9884,26 +10440,11 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Maemo Device Configurations Настройки устройства Maemo - - - Configuration Name: - Название конфигурации: - Device type: Тип устройства: - - - Remote Device - Внешнее устройство - - - - Local Simulator - Эмулятор - Authentication type: @@ -9919,26 +10460,6 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Key Ключ - - - Host Name: - Имя хоста: - - - - SSH Port: - Порт SSH: - - - - Connection Timeout: - Время ожидания: - - - - User Name: - Имя пользователя: - Password: @@ -9949,11 +10470,6 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Private key file: Файл секретного ключа: - - - Gdb-server port: - Порт сервера Gdb: - Add @@ -9971,8 +10487,131 @@ To do this, you type this shortcut and a space in the Locator entry field, and t - Deploy Key ... - Ключ установки... + Configuration: + Конфигурация: + + + + Name + Название + + + + IP or host name of the device + IP или имя узла устройства + + + + Ports: + Порты: + + + + SSH: + + + + + Gdb server: + Сервер gdb: + + + + Generate SSH Key ... + Создать ключ SSH... + + + + s + сек + + + + Deploy Public Key ... + Установить ключ... + + + + Remote device + Внешнее + + + + Maemo emulator + Эмулятор Maemo + + + + Host name: + Имя хоста: + + + + Connection timeout: + Время ожидания: + + + + Username: + Имя пользователя: + + + + MaemoSshConfigDialog + + + SSH Key Configuration + Настройка ключа SSH + + + + Generate SSH Key + Создать ключ SSH + + + + Close + Закрыть + + + + Options + Параметры + + + + Key size: + Размер ключа: + + + + Key algorithm: + Алгоритм ключа: + + + + RSA + + + + + DSA + + + + + Key + Ключ + + + + Save Public Key... + Сохранить открытый... + + + + Save Private Key... + Сохранить секретный... @@ -10046,7 +10685,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t &Preview with Debug - Предпросмотр с отла&дкой + Предпросмотр с отла&дкой @@ -10170,8 +10809,8 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Mercurial::Internal::CloneWizard - Clone a Mercurial repository - Клонировать хранилище Mercurial + Clones a Mercurial repository and tries to load the contained project. + Извлечение проекта из хранилища Mercurial с последующей попыткой его загрузки. @@ -10244,7 +10883,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Hg исходящие %1 - + Working... Исполнение... @@ -10331,7 +10970,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Mercurial::Internal::MercurialPlugin - + Mercurial Mercurial @@ -10603,11 +11242,6 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Email to use by default on commit. Email используемый по умолчанию при фиксации. - - - Default Email: - Email по умолчанию: - Miscellaneous @@ -10644,6 +11278,11 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Log count: Количество отображаемых записей истории фиксаций: + + + Default email: + Email по умолчанию: + Mercurial::Internal::OptionsPageWidget @@ -10897,6 +11536,24 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Разница между файлами + + Modifiers + + + Manipulation + Управление + + + + Rotation + Вращение + + + + z + + + MyMain @@ -11102,7 +11759,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t OpenWith::Editors - + Plain Text Editor Текстовый редактор @@ -11112,7 +11769,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Бинарный редактор - + C++ Editor Редактор C++ @@ -11127,7 +11784,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Редактор *.files - + QMLJS Editor Редактор QMLJS @@ -11175,16 +11832,16 @@ To do this, you type this shortcut and a space in the Locator entry field, and t - Server Prefix: + Server prefix: Префикс сервера: <html><head/><body> -<p><a href="http://pastebin.com">pastebin.com</a> allows to send posts to custom subdomains (eg. qtcreator.pastebin.com). Fill in the desired prefix.</p> +<p><a href="http://pastebin.com">pastebin.com</a> allows to send posts to custom subdomains (eg. creator.pastebin.com). Fill in the desired prefix.</p> <p>Note that the plugin will use this for posting as well as fetching.</p></body></html> <html><head/><body> -<p><a href="http://pastebin.com">pastebin.com</a> позволяет отправлять данные на пользовательские субдомены (например, qtcreator.pastebin.com). Поэтому укажите желаемый префикс.</p> +<p><a href="http://pastebin.com">pastebin.com</a> позволяет отправлять данные на пользовательские субдомены (например, creator.pastebin.com). Поэтому укажите желаемый префикс.</p> <p>Внимание! Модуль будет использовать его как для отправки, так и для получения.</p></body></html> @@ -11252,7 +11909,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t "%1" завершилась с кодом %2: %3 - + The client does not seem to contain any mapped files. Похоже, клиент не содержит отображенных файлов. @@ -11532,7 +12189,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t &Вернуть - + p4 revert p4 revert @@ -11712,36 +12369,11 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Perforce::Internal::SettingsPage - P4 Command: - Команда Perforce: - - - - Environment variables - Переменные среды окружения - - - - P4 Client: - Клиент P4: - - - - P4 User: - Пользователь P4: - - - - P4 Port: - Порт P4: - - - Test Проверить - + Perforce Perforce @@ -11775,6 +12407,31 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Log count: Количество отображаемых записей истории фиксаций: + + + P4 command: + Команда Perforce: + + + + P4 client: + Клиент P4: + + + + P4 user: + Пользователь P4: + + + + P4 port: + Порт P4: + + + + Environment Variables + Переменные среды окружения + Perforce::Internal::SettingsPageWidget @@ -11865,7 +12522,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t - + Failed Plugins Проблемные модули @@ -11873,7 +12530,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t PluginSpec - + '%1' misses attribute '%2' В '%1' пропущен атрибут '%2' @@ -11908,12 +12565,12 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Не удалось разрешить зависимости, так как state != Read - + Could not resolve dependency '%1(%2)' Не удалось разрешить зависимость '%1(%2)' - + Loading the library failed because state != Resolved Не удалось загрузить библиотеку, так как state != Resolved @@ -11951,7 +12608,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t ProjectExplorer - + Projects Проекты @@ -11964,32 +12621,37 @@ To do this, you type this shortcut and a space in the Locator entry field, and t ProjectExplorer::AbstractProcessStep - - <font color="#0000ff">Starting: %1 %2</font> + + <font color="#0000ff">Starting: "%1" %2</font> - <font color="#0000ff">Запускается: %1 %2</font> + <font color="#0000ff">Запускается: "%1" %2</font> - - <font color="#0000ff">Exited with code %1.</font> - <font color="#0000ff">Завершено с кодом %1.</font> + + <font color="#0000ff">The process "%1" exited normally.</font> + <font color="#0000ff">Процесс "%1" завершился нормально.</font> - <font color="#ff0000"><b>Exited with code %1.</b></font> - <font color="#ff0000"><b>Завершено с кодом %1.</b></font> + <font color="#ff0000"><b>The process "%1" exited with code %2.</b></font> + <font color="#ff0000"><b>Процесс "%1" завершился с кодом %2.</b></font> - - <font color="#ff0000"><b>Could not start process %1 </b></font> - <font color="#ff0000"><b>Невозможно запустить процесс %1 </b></font> + + <font color="#ff0000"><b>The process "%1" crashed.</b></font> + <font color="#ff0000"><b>Процесс "%1" завершился крахом.</b></font> + + + + <font color="#ff0000"><b>Could not start process "%1"</b></font> + <font color="#ff0000"><b>Невозможно запустить процесс "%1"</b></font> ProjectExplorer::ApplicationLauncher - + Failed to start program. Path or permissions wrong? Не удалось запустить программу. Путь или права недопустимы? @@ -12021,7 +12683,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t ProjectExplorer::BuildConfiguration - + System Environment Системная среда @@ -12046,17 +12708,8 @@ To do this, you type this shortcut and a space in the Locator entry field, and t ProjectExplorer::BuildManager - - - Finished %n of %1 build steps - - Завершен %n из %1 этапов сборки - Завершено %n из %1 этапов сборки - Завершено %n из %1 этапов сборки - - - + Compile Category for compiler isses listened under 'Build Issues' Компиляция @@ -12083,13 +12736,22 @@ To do this, you type this shortcut and a space in the Locator entry field, and t <font color="#ff0000">Canceled build.</font> <font color="#ff0000">Сборка прервана.</font> + + + Finished %1 of %n build steps + + Завершено %1 из %n этапа сборки + Завершено %1 из %n этапов сборки + Завершено %1 из %n этапов сборки + + - + Build Сборка - + <font color="#ff0000">When executing build step '%1'</font> <font color="#ff0000">Во время выполнения сборки на этапе '%1'</font> @@ -12146,7 +12808,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t ProjectExplorer::CustomProjectWizard - + The project %1 could not be opened. Невозможно открыть проект %1. @@ -12154,15 +12816,15 @@ To do this, you type this shortcut and a space in the Locator entry field, and t ProjectExplorer::CustomWizard - + Details Default short title for custom wizard page to be shown in the progress pane of the wizard. Подробнее - Creates a plug-in for the QML runtime. - Создание модуля для среды выполнения QML. + Creates a C++ plugin to extend the funtionality of the QML runtime. + Создание на С++ модуля для расширения функциональности среды исполнения QML. @@ -12184,7 +12846,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t ProjectExplorer::DebuggingHelperLibrary - + The target directory %1 could not be created. Не удалось создать целевой каталог %1. @@ -12210,7 +12872,7 @@ Reason: %2 Причина: %2 - + Building debugging helper library in %1 Сборка библиотеки помощника отладчика в %1 @@ -12243,7 +12905,7 @@ Reason: %2 ProjectExplorer::EnvironmentModel - + Variable Переменная @@ -12253,18 +12915,24 @@ Reason: %2 Значение - - + + <VARIABLE> + Name when inserting a new variable + <переменная> + + + + <VALUE> + Value when inserting a new variable + <значение> + + + <VARIABLE> <переменная> - - <VALUE> - <значение> - - - + <UNSET> <не задано> @@ -12272,7 +12940,7 @@ Reason: %2 ProjectExplorer::EnvironmentWidget - + &Edit &Изменить @@ -12292,7 +12960,7 @@ Reason: %2 &Сбросить - + Using <b>%1</b> Используется <b>%1</b> @@ -12336,7 +13004,7 @@ Reason: %2 ProjectExplorer::Internal::AllProjectsFind - + All Projects Все проекты @@ -12398,12 +13066,12 @@ Reason: %2 ProjectExplorer::Internal::BuildSettingsWidget - No Build Settings available + No build settings available Настройки сборки не обнаружены - Edit Build Configuration: + Edit build configuration: Изменить конфигурацию сборки: @@ -12445,22 +13113,47 @@ Reason: %2 ProjectExplorer::Internal::BuildStepsPage - + + Move Up + Поднять + + + + Move Down + Опустить + + + + Remove Item + Удалить + + + + Removing Step failed + Не удалось удалить этап + + + + Can't remove build step while building + Невозможно удалить этап сборки во время сборки + + + No Build Steps Этапов сборки нет - Add build step - Добавить этап сборки - - - - Add clean step + Add Clean Step Добавить этап очистки - + + Add Build Step + Добавить этап сборки + + + Build Steps Этапы сборки @@ -12518,7 +13211,7 @@ Reason: %2 ProjectExplorer::Internal::CurrentProjectFind - + Current Project Текущий проект @@ -12619,14 +13312,14 @@ Reason: %2 ProjectExplorer::Internal::EditorSettingsPropertiesPage - Default File Encoding: + Default file encoding: Кодировка файла по умолчанию: ProjectExplorer::Internal::FolderNavigationWidget - + Open Открыть @@ -12744,7 +13437,7 @@ Reason: %2 Запускается %1... - + %1 exited with code %2 %1 завершился с кодом %2 @@ -12752,7 +13445,7 @@ Reason: %2 ProjectExplorer::Internal::LocalApplicationRunControlFactory - + Run Выполнить @@ -12760,7 +13453,7 @@ Reason: %2 ProjectExplorer::Internal::MiniProjectTargetSelector - + Project Проект @@ -12770,7 +13463,17 @@ Reason: %2 Выбор активного проекта - + + Build: + Сборка: + + + + Run: + Запуск: + + + <html><nobr><b>Project:</b> %1<br/>%2%3<b>Run:</b> %4%5</html> <html><nobr><b>Проект:</b> %1<br/>%2%3<b>Запуск:</b> %4%5</html> @@ -12793,7 +13496,7 @@ Reason: %2 ProjectExplorer::Internal::MiniTargetWidget - + Select active build configuration Выбор активной конфигурации сборки @@ -12803,33 +13506,20 @@ Reason: %2 Выбор активной конфигурации запуска - + Build: Сборка: - + Run: Запуск: - - ProjectExplorer::Internal::NewSessionInputDialog - - - New session name - Название новой сессии - - - - Enter the name of the new session: - Введите название новой сессии: - - ProjectExplorer::Internal::OutputPane - + Re-run this run-configuration Перезапустить эту конфигурацию запуска @@ -12840,17 +13530,27 @@ Reason: %2 Остановить - + Application Output Консоль приложения - - The application is still running. Close it first. - Приложение работает. Сначала закройте его. + + The application is still running. + Программа еще работает. - + + Force it to quit? + Завершить её принудительно? + + + + Force Quit + Завершить + + + Unable to close Невозможно закрыть @@ -12858,7 +13558,7 @@ Reason: %2 ProjectExplorer::Internal::OutputWindow - + Application Output Window Окно вывода приложения @@ -12900,24 +13600,24 @@ Reason: %2 - Working Directory: + Enable custom process step + Включить этот этап + + + + Working directory: Рабочий каталог: - Command Arguments: - Параметры: - - - - Enable Custom Process Step - Включить этот этап + Command arguments: + Параметры команды: ProjectExplorer::Internal::ProjectExplorerSettingsPage - + General Основное @@ -12929,21 +13629,6 @@ Reason: %2 Build and Run Сборка и запуск - - - Save all files before Build - Сохранять все файлы перед сборкой - - - - Always build Project before Running - Всегда собирать проект перед запуском - - - - Show Compiler Output on building - Показывать вывод компилятора при сборке - Use jom instead of nmake @@ -12974,6 +13659,26 @@ Reason: %2 Projects Directory Каталог проектов + + + Save all files before build + Сохранять все файлы перед сборкой + + + + Always build project before running + Всегда собирать проект перед запуском + + + + Show compiler output on building + Показывать вывод компилятора при сборке + + + + Clear old application output on a new run + Очищать старый вывод приложения при новом запуске + ProjectExplorer::Internal::ProjectFileFactory @@ -13071,21 +13776,11 @@ No project selected - Create New Project... - Создать проект... + Recent Projects + Последние проекты - - Open Recent Project - Недавние проекты - - - - Resume Session - Продолжение сессии - - - + %1 (last session) %1 (последняя сессия) @@ -13095,9 +13790,24 @@ No project selected %1 (текущая сессия) - - New Project... - Новый проект... + + New Project + Новый проект + + + + Create Project... + Создать проект... + + + + Recent Sessions + Последние сессии + + + + Open Project... + Открыть проект... @@ -13173,37 +13883,76 @@ No project selected - ProjectExplorer::Internal::SessionDialog + ProjectExplorer::Internal::S60ProjectChecker - - Switch to session - Сделать активной + + The Symbian SDK and the project sources must reside on the same drive. + Symbian SDK и исходные файлы проекта должны располагаться на одном диске. + + + The Symbian SDK was not found for Qt version %1. + Не найден Symbian SDK для профиля Qt %1. + + + + The "Open C/C++ plugin" is not installed in the Symbian SDK or the Symbian SDK path is misconfigured for Qt version %1. + У профиля Qt %1 путь к Symbian SDK неверен или в него не установлен "Open C/C++ plugin". + + + + The Symbian toolchain does not handle special characters in a project path well. + Инструментарий Symbian не способен обрабатывать специальные символы в пути проекта. + + + + ProjectExplorer::Internal::SessionDialog Session Manager Управление сессиями - - - Create New Session - Создать - - - - Clone Session - Копировать - - - - Delete Session - Удалить - <a href="qthelp://com.nokia.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">What is a Session?</a> <a href="qthelp://com.nokia.qtcreator/doc/creator-quick-tour.html#session-management-in-qt-creator">Что такое сессия?</a> + + + &New + &Новая + + + + &Rename + &Переименовать + + + + C&lone + &Дублировать + + + + &Delete + &Удалить + + + + &Switch to + &Открыть + + + + + New session name + Имя создаваемой сессии + + + + Rename session + Переименование сессии + ProjectExplorer::Internal::SessionFile @@ -13219,6 +13968,27 @@ No project selected Неозаглавленный + + ProjectExplorer::Internal::SessionNameInputDialog + + + Enter the name of the session: + Введите название сессии: + + + + ProjectExplorer::Internal::TargetSelector + + + Run + Выполнить + + + + Build + Собрать + + ProjectExplorer::Internal::TargetSettingsPanelWidget @@ -13227,7 +13997,7 @@ No project selected Цель не указана. - + Qt Creator Qt Creator @@ -13250,7 +14020,7 @@ No project selected ProjectExplorer::Internal::TaskDelegate - + File not found: %1 Файл не найден: %1 @@ -13310,7 +14080,7 @@ No project selected ProjectExplorer::ProjectExplorerPlugin - + Projects Проекты @@ -13523,7 +14293,7 @@ No project selected Ctrl+T - + Load Project Загрузить проект @@ -13534,12 +14304,12 @@ No project selected Новый проект - + Always save files before build Всегда сохранять файлы перед сборкой - + Cannot run without a project. Невозможно запустить без проекта. @@ -13549,7 +14319,7 @@ No project selected Невозможно запустить отладку без проекта. - + New File Title of dialog Новый файл @@ -13660,8 +14430,8 @@ to version control (%2)? ProjectExplorer::TaskWindow - - + + Build Issues Сообщения сборки @@ -13695,26 +14465,24 @@ to version control (%2)? - QML + QApplication - QML - QML + + EditorManager + Next Open Document in History + + + + + EditorManager + Previous Open Document in History + QMakeStep - debug - debug - - - - release - release - - - Additional arguments: Дополнительные параметры: @@ -13725,9 +14493,19 @@ to version control (%2)? - qmake Build Configuration: + qmake build configuration: Конфигурация сборки qmake: + + + Debug + Отладка + + + + Release + Релиз + QObject @@ -13862,40 +14640,37 @@ to version control (%2)? - Qml::Internal::EngineSpinBox + Qml::Internal::EngineComboBox - + Engine %1 engine number - Движок %1 + Движок %1 Qml::Internal::ExpressionQueryWidget - - <Expression> - <Выражение> - - - + Write and evaluate QtScript expressions. Запись и вычисление выражений QtScript. - + Clear Output Очистить вывод - - Debug Console - - Консоль отладки + + <Type expression to evaluate> + <Введите выражение для вычисления> - Triggers a completion in this scope - Переключение завершения в этой области + + Script Console + + Консоль сценария + @@ -13929,7 +14704,7 @@ to version control (%2)? Qml::Internal::ObjectPropertiesView - + Name Имя @@ -13943,8 +14718,13 @@ to version control (%2)? Type Тип + + + Show unwatchable properties + Отобразить ненаблюдаемые свойства + - + <%n items> <%n элемент> @@ -13952,16 +14732,56 @@ to version control (%2)? <%n элементов> + + + &Watch expression + &Наблюдаемое выражение + + + + &Remove watch + &Удалить наблюдение + + + + Show &unwatchable properties + &Отобразить ненаблюдаемые свойства + + + + &Group by item type + &Сгруппировать по типу + + + + Watch expression '%1' + Наблюдаемое выражение "%1" + + + + Hide unwatchable properties + Скрыть ненаблюдаемые свойства + Qml::Internal::ObjectTree - - Add watch... - Добавить в наблюдение... + + Add watch expression... + Добавить выражение для наблюдения... - + + Show uninspectable items + Отобразить неисследуемые элементы + + + + Go to file + Перейти к файлу + + + Watch expression Наблюдаемое выражение @@ -13979,10 +14799,18 @@ to version control (%2)? Частота кадров + + Qml::Internal::StartExternalQmlDialog + + + <No project> + <Не указан> + + Qml::Internal::WatchTableModel - + Name Имя @@ -13995,7 +14823,7 @@ to version control (%2)? Qml::Internal::WatchTableView - + Stop watching Прекратить наблюдение @@ -14003,9 +14831,19 @@ to version control (%2)? Qml::QmlInspector - - No active project, debugging canceled. - Нет активных проектов, отладка отменена. + + Failed to connect to debugger + Не удалось подключиться к отладчику + + + + Could not connect to debugger server. + Не удалось подключиться к серверу отладчика. + + + + Invalid project, debugging canceled. + Некорректный проект, отладка отменена. @@ -14013,12 +14851,12 @@ to version control (%2)? Не удалось найти конфигурацию запуска проекта, отладка отменена. - + [Inspector] set to connect to debug server %1:%2 [Инспектор] установите для подключения к серверу отладки %1: %2 - + [Inspector] disconnected. @@ -14027,7 +14865,7 @@ to version control (%2)? - + [Inspector] resolving host... [Инспектор] определение узла... @@ -14055,12 +14893,40 @@ to version control (%2)? [Инспектор] ошибка (%1) %2 - - Frame rate - Частота кадров + + Start Debugging C++ and QML Simultaneously... + Запустить одновременно отладку C++ и QML... - + + No project was found. + Не найдено ни одного проекта. + + + + + No run configurations were found for the project '%1'. + Не обнаружена конфигурация запуска для проекта "%1". + + + + No valid run configuration was found for the project %1. Only locally runnable configurations are supported. +Please check your project settings. + Не обнаружена корректная конфигурация запуска для проекта %1. Поддерживаются только локально запускаемые конфигурации. +Пожалуйста, проверьте настройки. + + + + A valid run control was not registered in Qt Creator for this project run configuration. + Корректное управление выполнением не зарегистрировано в Qt Creator для конфигурации запуска этого проекта. + + + + Debugging failed: could not start C++ debugger. + Ошибка отладки: не удалось запустить отладчик C++. + + + QML engine: Движок QML: @@ -14070,44 +14936,21 @@ to version control (%2)? Дерево объектов - + Properties and Watchers Свойства и наблюдаемые - - Contents of the scene. - Содержимое сцены. + + Script Console + Консоль сценария - - Frame rate graph for analyzing performance. - График частоты кадров для анализа быстродействия. - - - - Properties of the selected item. - Свойства выбранного элемента. - - - + Output of the QML inspector, such as information on connecting to the server. Вывод инспектора QML, такой как информация о подключении к серверу. - - Qml::QmlInspectorPlugin - - - Failed to connect to debugger - Не удалось подключиться к отладчику - - - - Could not connect to debugger server. Please check your settings from Projects pane. - Не удалось подключиться к серверу отладчика. Проверьте настройки проекта. - - QmlDesigner::AllPropertiesBox @@ -14117,6 +14960,14 @@ to version control (%2)? Свойства + + QmlDesigner::ComponentView + + + whole document + документ полностью + + QmlDesigner::DesignDocumentController @@ -14125,7 +14976,7 @@ to version control (%2)? -Новая Форма- - + Cannot save to file "%1": permission denied. Не удалось сохранить в файл "%1": недостаточно прав. @@ -14135,11 +14986,29 @@ to version control (%2)? Родительский каталог "%1" файла "%2" не существует. - + Cannot write file: "%1". Не удалось записать файл: "%1". + + QmlDesigner::FormEditorWidget + + + Snap to guides (E) + Прилипать к направляющим (E) + + + + Show bounding rectangles (A) + Отображать прямоугольники границы (A) + + + + Only select items with content (S) + Выделять только элементы с содержимым (S) + + QmlDesigner::Internal::BauhausPlugin @@ -14148,7 +15017,7 @@ to version control (%2)? Переключить текст/дизайн - + Save %1 As... Сохранить %1 как... @@ -14181,7 +15050,7 @@ to version control (%2)? QmlDesigner::Internal::DesignModeWidget - + &Undo &Отменить @@ -14241,17 +15110,37 @@ to version control (%2)? Выделить все "%1" - + + Toggle Full Screen + Переключить полноэкранный режим + + + + &Restore Default View + &Восстановить исходный вид + + + + Toggle &Left Sidebar + Показать/скрыть &левую панель + + + + Toggle &Right Sidebar + Показать/скрыть &правую панель + + + Projects Проекты - + File System Файловая система - + Open Documents Открытые документы @@ -14259,15 +15148,28 @@ to version control (%2)? QmlDesigner::Internal::DocumentWarningWidget - + <a href="goToError">Go to error</a> <a href="goToError">Перейти к ошибке</a> - + %3 (%1:%2) %3 (%1:%2) + + + Internal error (%1) + Внутренняя ошибка (%1) + + + + QmlDesigner::Internal::ModelPrivate + + + invalid type + некорректный тип + QmlDesigner::Internal::SettingsPage @@ -14276,46 +15178,6 @@ to version control (%2)? Form - - &Snap to Grid - Притягивать к &сетке - - - Show Bounding Rectangles - Показывать границы - - - Only Show Items with Contents - Отображать только непустые элементы - - - Designer - Дизайнер - - - Open editor in: - Открывать редактор в режиме: - - - - Design mode - Дизайнере - - - - Edit mode - Редакторе - - - - Files - Файлы - - - - Open file in: - Открыть файл в: - Snapping @@ -14332,7 +15194,7 @@ to version control (%2)? Отступ от края - + Qt Quick Designer Дизайнер Qt Quick @@ -14374,23 +15236,27 @@ to version control (%2)? Default name for newly created states - - State%1 - Состояние%1 - QmlDesigner::Internal::SubComponentManagerPrivate - + QML Components Компоненты QML + + QmlDesigner::InvalidArgumentException + + + Failed to create item of type %1 + Не удалось создать элемент типа %1 + + QmlDesigner::ItemLibrary - + Library Title of library view Библиотека @@ -14417,24 +15283,15 @@ to version control (%2)? QmlDesigner::NavigatorTreeModel - - Invalid id. -Only alphanumeric characters and underscore allowed. -Ids must begin with a lowercase letter. - Неверный идентификатор. -Допустимы только цифры, буквы и знак подчёркивания. -Идентификаторы должны начинаться с маленькой буквы. - - - - Item id must be unique. - Идентификатор элемента должен быть уникальным. + + Invalid Id + Неверный идентификатор QmlDesigner::NavigatorWidget - + Navigator Title of navigator view Навигатор @@ -14448,10 +15305,26 @@ Ids must begin with a lowercase letter. О модулях + + QmlDesigner::PropertyEditor + + + Invalid Id + Неверный идентификатор + + + + QmlDesigner::QmlModelView + + + Invalid Id + Неверный идентификатор + + QmlDesigner::RewriterView - + Error parsing Разбор ошибок @@ -14511,47 +15384,47 @@ Ids must begin with a lowercase letter. QmlJS::Check - + '%1' is not a valid property name "%1" не является корректным именем свойства - + unknown type неизвестный тип - + + unknown value for enum + неизвестное значение для перечисления + + + '%1' does not have members "%1" не содержит членов - + '%1' is not a member of '%2' "%1" не является членом "%2" - - easing-curve name is not a string - название переходной кривой не является строкой - - - - unknown easing-curve name - неизвестное имя переходной кривой - - - + value might be 'undefined' значение возможно не определено - + + enum value is not a string or number + значение перечисления не строка или число + + + numerical value expected требуется числовое значение - + boolean value expected требуется булевое значение @@ -14561,7 +15434,7 @@ Ids must begin with a lowercase letter. требуется строковое значение - + not a valid color некорректный цвет @@ -14571,7 +15444,7 @@ Ids must begin with a lowercase letter. требуется строка привязки - + expected id требуется id @@ -14579,18 +15452,18 @@ Ids must begin with a lowercase letter. using string literals for ids is discouraged - не рекомендуется использовать строковые литералы в качестве идентификаторов + не рекомендуется использовать строковые литералы в качестве id ids must be lower case - идентификаторы должны быть в нижнем регистре + id должен быть в нижнем регистре QmlJS::Interpreter::QmlXmlReader - + The file is not module file. Файл не является модулем. @@ -14610,7 +15483,7 @@ Ids must begin with a lowercase letter. У <%1> нет корректного атрибута %2 - + %1: %2 @@ -14618,7 +15491,7 @@ Ids must begin with a lowercase letter. QmlJS::Link - + could not find file or directory не удалось найти файл или каталог @@ -14633,7 +15506,7 @@ Ids must begin with a lowercase letter. импорт пакета требует номер версии - + package not found пакет не найден @@ -14641,7 +15514,7 @@ Ids must begin with a lowercase letter. QmlJSEditor::Internal::HoverHandler - + Unfiltered Вся @@ -14649,7 +15522,7 @@ Ids must begin with a lowercase letter. QmlJSEditor::Internal::ModelManager - + Indexing Индексация @@ -14706,7 +15579,7 @@ Ids must begin with a lowercase letter. QmlJSEditor::Internal::QmlJSEditorPlugin - + Creates a Qt QML file. Создание файла Qt QML. @@ -14717,19 +15590,44 @@ Ids must begin with a lowercase letter. + Qt Quick + + + + + Ctrl+Alt+R + + + + Follow Symbol Under Cursor Перейти к символу под курсором + + QmlJSEditor::Internal::QmlJSPreviewRunner + + + Failed to preview Qt Quick file + Не удалось выполнить предпросмотр файла Qt Quick + + + + Could not preview Qt Quick (QML) file. Reason: +%1 + Не удалось запустить предпросмотр файла Qt Quick (QML). Причина: +%1 + + QmlJSEditor::Internal::QmlJSTextEditor - + <Select Symbol> <Выберите символ> - + Rename... Переименовать... @@ -14744,7 +15642,7 @@ Ids must begin with a lowercase letter. Неиспользуемая переменная - + Rename id '%1'... Переименовать id '%1'... @@ -14752,7 +15650,7 @@ Ids must begin with a lowercase letter. QmlManager - + <Current File> <Текущий файл> @@ -14833,7 +15731,7 @@ Ids must begin with a lowercase letter. QmlProjectManager::Internal::Manager - + Failed opening project '%1': Project already open Не удалось открыть проект "%1": проект уже открыт @@ -14841,17 +15739,21 @@ Ids must begin with a lowercase letter. QmlProjectManager::Internal::QmlProjectApplicationWizard - + Qt QML Application Приложение Qt QML - Creates a Qt QML application. - Создание приложения Qt QML. + Creates a Qt QML application project with a single QML file containing the main view. + +QML application projects are executed through the QML runtime and do not need to be built. + Создание проекта приложения Qt QML с одним QML файлом, содержащим главный вид. + +Приложение QML запускается средой исполнения QML и не требует сборки. - + File generated by QtCreator qmlproject Template Comment added to generated .qmlproject file @@ -14871,16 +15773,11 @@ Ids must begin with a lowercase letter. Comment added to generated .qmlproject file Список каталогов модулей передаваемый среде исполнения QML - - - The project %1 could not be opened. - Невозможно открыть проект %1. - QmlProjectManager::Internal::QmlProjectApplicationWizardDialog - + New QML Project Новый проект QML @@ -14893,7 +15790,7 @@ Ids must begin with a lowercase letter. QmlProjectManager::Internal::QmlProjectImportWizard - + Import Existing Qt QML Directory Импорт существующего каталога Qt QML @@ -14923,16 +15820,11 @@ Ids must begin with a lowercase letter. Comment added to generated .qmlproject file Список каталогов модулей передаваемый среде исполнения QML - - - The project %1 could not be opened. - Невозможно открыть проект %1. - QmlProjectManager::Internal::QmlProjectImportWizardDialog - + Import Existing Qt QML Directory Импорт существующего каталога Qt QML @@ -14969,19 +15861,19 @@ Ids must begin with a lowercase letter. QmlProjectManager::Internal::QmlRunConfiguration - QML Runtime - Среда исполнения QML + QML Viewer + Просмотр QML QmlProjectManager::Internal::QmlRunControl - + Starting %1 %2 Запускается %1 %2 - + %1 exited with code %2 %1 завершился с кодом %2 @@ -14994,10 +15886,18 @@ Ids must begin with a lowercase letter. Выполнить + + QmlProjectManager::Internal::QmlTaskManager + + + QML + + + QmlProjectManager::QmlProject - + Error while loading project file! Ошибка при загрузке файла проекта! @@ -15005,20 +15905,20 @@ Ids must begin with a lowercase letter. QmlProjectManager::QmlProjectRunConfiguration - - QML Runtime + + QML Viewer QMLRunConfiguration display name. - Среда исполнения QML + Просмотр QML - - QML Runtime - Среда исполнения QML + + QML Viewer + Просмотр QML - QML Runtime arguments: - Параметры среды исполнения QML: + QML Viewer arguments: + Параметры просмотра QML: @@ -15040,9 +15940,9 @@ Ids must begin with a lowercase letter. QmlProjectManager::QmlTarget - QML Runtime - QML Runtime target display name - Среда исполнения QML + QML Viewer + QML Viewer target display name + Просмотр QML @@ -15078,6 +15978,14 @@ Ids must begin with a lowercase letter. Псевдоним: + + Qt Quick + + + Qt Quick + + + Qt4ProjectManager @@ -15092,43 +16000,98 @@ Ids must begin with a lowercase letter. - Qt Application Project - Проект приложения Qt + Qt C++ Project + Проект Qt С++ Qt4ProjectManager::Internal::AbstractMaemoRunControl - + + No device configuration set for run configuration. + Не выбрана конфигурация устройства для запуска. + + + Deploying Развёртывание - + Files to deploy: %1. Файлы для установки: %1. - + Deployment finished. Развёртывание завершено. - + Deployment failed: %1 Развёртывание не удалось: %1 + + + Cleaning up remote leftovers first ... + Сначала подчищаются внешние остатки... + + + + Initial cleanup canceled by user. + Начальная очистка отменена пользователем. + + + + Error running initial cleanup: %1. + Ошибка выполнения начальной очистки: %1. + + + + Initial cleanup done. + Начальная очистка выполнена. + + + + Starting remote application. + Запуск внешней программы. + + + + Deployment canceled by user. + Установка отменена пользователем. + + + + Remote execution canceled due to user request. + Внешнее выполнение отменено по запросу пользователя. + + + + Error running remote process: %1 + Ошибка выполнения внешнего процесса: %1 + + + + Finished running remote process. + Завершено выполнение внешнего процесса. + + + + Remote Execution Failure + Не удалось запустить удалённо + Qt4ProjectManager::Internal::BaseQt4ProjectWizardDialog - + Modules Модули - + Qt Versions Профили Qt @@ -15269,13 +16232,12 @@ Ids must begin with a lowercase letter. Qt4ProjectManager::Internal::ClassList - - + <New class> <Новый класс> - + Confirm Delete Подтверждение удаления @@ -15294,8 +16256,12 @@ Ids must begin with a lowercase letter. - Creates a Qt console application. - Создание консольного приложения Qt. + Creates a project containing a single main.cpp file with a stub implementation. + +Preselects a desktop Qt for building the application if available. + Создание проекта, содержащего один файл main.cpp с простейшей реализацией. + +Выбирается профиль Qt "Настольный" для сборки приложения, если он доступен. @@ -15376,6 +16342,11 @@ Ids must begin with a lowercase letter. Specify the list of custom widgets and their properties. Укажите список пользовательских виджетов и их свойств. + + + ... + + Qt4ProjectManager::Internal::CustomWidgetWizard @@ -15430,8 +16401,8 @@ Ids must begin with a lowercase letter. - Creates an empty Qt project. - Создание пустого проекта Qt. + Creates a qmake-based project without any files. This allows you to create an application without any default classes. + Создание проекта без файлов под управлением qmake. Это позволяет создать приложение без умолчальных классов. @@ -15484,60 +16455,38 @@ Ids must begin with a lowercase letter. Форма - Examples not installed - Примеры не установлены - - - Open - Открыть - - - + Tutorials Учебники - - Explore Qt Examples - Обзор примеров Qt - - - + Did You Know? Знаете ли вы, что? - - <b>Qt Creator - A quick tour</b> - <b>Краткий курс по Qt Creator</b> + + The Qt Creator User Interface + Интерфейс пользователя Qt Creator - Creating an address book - Создание адресной книги + Creating a Qt C++ Application + Создание приложения Qt на С++ - Understanding widgets - Что такое виджет + Creating a Qt Quick Application + Создание приложения Qt Quick - - Building with qmake - Сборка с помощью qmake - - - - Writing test cases - Создание тестов - - - + + Choose an example... Выберите пример... - + Copy Project to writable Location? Скопировать проект в каталог с правами на запись? @@ -15572,7 +16521,12 @@ Ids must begin with a lowercase letter. Указанный каталог уже существует. Укажите другой каталог. - + + New Project + Новый проект + + + Cmd Shortcut key @@ -15593,72 +16547,72 @@ Ids must begin with a lowercase letter. You can switch between Qt Creator's modes using <tt>Ctrl+number</tt>:<ul><li>1 - Welcome</li><li>2 - Edit</li><li>3 - Debug</li><li>4 - Projects</li><li>5 - Help</li></ul> - Вы можете переключать режим Qt Creator, используя <tt>Ctrl+число</tt>:<ul><li>1 - Приветствие</li><li>2 - Правка</li><li>3 - Отладка</li><li>4 - Проекты</li><li>5 - Справка</li></ul> + Можно переключать режим Qt Creator, используя <tt>Ctrl+число</tt>:<ul><li>1 - Приветствие</li><li>2 - Правка</li><li>3 - Отладка</li><li>4 - Проекты</li><li>5 - Справка</li></ul> You can show and hide the side bar using <tt>%1+0<tt>. - Вы можете отображать и скрывать боковую панель, используя <tt>%1+0<tt>. + Можно отображать и скрывать боковую панель, используя <tt>%1+0<tt>. You can fine tune the <tt>Find</tt> function by selecting &quot;Whole Words&quot; or &quot;Case Sensitive&quot;. Simply click on the icons on the right end of the line edit. - Вы можете тонко настроить функцию <tt>Поиск</tt>, выбрав &quot;Слово целиком&quot; и/или &quot;Учитывать регистр&quot;. Просто кликните на иконку справа от редактируемой строки. + Можно тонко настроить функцию <tt>Поиск</tt>, выбрав &quot;Слово целиком&quot; и/или &quot;Учитывать регистр&quot;. Просто кликните на иконку справа от редактируемой строки. If you add <a href="qthelp://com.nokia.qtcreator/doc/creator-external-library-handling.html">external libraries</a>, Qt Creator will automatically offer syntax highlighting and code completion. - Если вы добавите <a href="qthelp://com.nokia.qtcreator/doc/creator-external-library-handling.html">внешние библиотеки</a>, то Qt Creator автоматически предложит подсветку синтаксиса и дополнение кода. + Если добавить <a href="qthelp://com.nokia.qtcreator/doc/creator-external-library-handling.html">внешние библиотеки</a>, то Qt Creator автоматически предложит подсветку синтаксиса и дополнение кода. The code completion is CamelCase-aware. For example, to complete <tt>namespaceUri</tt> you can just type <tt>nU</tt> and hit <tt>Ctrl+Space</tt>. - Автодополнение кода ориентировано на ВерблюжийРегистр. Например, чтобы получить <tt>namespaceUri</tt> вы можете просто ввести <tt>nU</tt> и нажать <tt>Ctrl+Space</tt>. + Автодополнение кода ориентировано на ВерблюжийРегистр. Например, чтобы получить <tt>namespaceUri</tt> можно просто ввести <tt>nU</tt> и нажать <tt>Ctrl+Space</tt>. You can force code completion at any time using <tt>Ctrl+Space</tt>. - Вы можете в любой момент вызвать дополнение кода нажатием <tt>Ctrl+Space</tt>. + Можно в любой момент вызвать дополнение кода нажатием <tt>Ctrl+Space</tt>. You can start Qt Creator with a session by calling <tt>qtcreator &lt;sessionname&gt;</tt>. - Вы можете открыть сессию в Qt Creator, выполнив команду <tt>qtcreator &lt;sessionname&gt;</tt>. + Можно открыть сессию в Qt Creator, выполнив команду <tt>qtcreator &lt;sessionname&gt;</tt>. You can return to edit mode from any other mode at any time by hitting <tt>Escape</tt>. - Вы можете вернуться в режим редактирования из любого другого режима нажатием на <tt>Escape</tt>. + Можно вернуться в режим редактирования из любого другого режима нажатием на <tt>Escape</tt>. You can switch between the output pane by hitting <tt>%1+n</tt> where n is the number denoted on the buttons at the window bottom:<ul><li>1 - Build Issues</li><li>2 - Search Results</li><li>3 - Application Output</li><li>4 - Compile Output</li></ul> - Вы можете переключать окно вывода, используя <tt>%1+n</tt>, где n - число, указанное на кнопке внизу окна:<ul><li>1 - Сообщения сборки</li><li>2 - Результаты поиска</li><li>3 - Консоль программы</li><li>4 - Консоль сборки</li></ul> + Можно переключать окно вывода используя <tt>%1+n</tt>, где n - число, указанное на кнопке внизу окна:<ul><li>1 - Сообщения сборки</li><li>2 - Результаты поиска</li><li>3 - Консоль программы</li><li>4 - Консоль сборки</li></ul> You can quickly search methods, classes, help and more using the <a href="qthelp://com.nokia.qtcreator/doc/creator-navigation.html">Locator bar</a> (<tt>%1+K</tt>). - Вы можете осуществлять быстрый поиск методов, классов, справки и прочего, используя <a href="qthelp://com.nokia.qtcreator/doc/creator-navigation.html">Панель поиска</a> (<tt>%1+K</tt>). + Можно осуществлять быстрый поиск методов, классов, справки и прочего, используя <a href="qthelp://com.nokia.qtcreator/doc/creator-navigation.html">Панель поиска</a> (<tt>%1+K</tt>). You can add custom build steps in the <a href="qthelp://com.nokia.qtcreator/doc/creator-project-pane.html#build-settings">build settings</a>. - Вы можете добавить собственные этапы сборки в <a href="qthelp://com.nokia.qtcreator/doc/creator-project-pane.html#build-settings">настройках сборки</a>. + Можно добавить собственные этапы сборки в <a href="qthelp://com.nokia.qtcreator/doc/creator-project-pane.html#build-settings">настройках сборки</a>. Within a session, you can add <a href="qthelp://com.nokia.qtcreator/doc/creator-project-pane.html#dependencies">dependencies</a> between projects. - В пределах одной сессии вы можете добавлять <a href="qthelp://com.nokia.qtcreator/doc/creator-project-pane.html#dependencies">зависимости</a> проектов друг от друга. + В пределах одной сессии можно добавлять <a href="qthelp://com.nokia.qtcreator/doc/creator-project-pane.html#dependencies">зависимости</a> проектов друг от друга. You can set the preferred editor encoding for every project in <tt>Projects -> Editor Settings -> Default Encoding</tt>. - Вы можете установить предпочитаемую кодировку редактора для каждого проекта в <tt>Проекты -> Настройки редактора -> Кодировка по умолчанию</tt>. + Можно установить предпочитаемую кодировку редактора для каждого проекта в <tt>Проекты -> Настройки редактора -> Кодировка по умолчанию</tt>. You can use Qt Creator with a number of <a href="qthelp://com.nokia.qtcreator/doc/creator-version-control.html">revision control systems</a> such as Subversion, Perforce, CVS and Git. - Вы можете использовать Qt Creator с <a href="qthelp://com.nokia.qtcreator/doc/creator-version-control.html">системами контроля версий</a>, такими как Subversion, Perforce, CVS и Git. + Можно использовать Qt Creator с <a href="qthelp://com.nokia.qtcreator/doc/creator-version-control.html">системами контроля версий</a>, такими как Subversion, Perforce, CVS и Git. @@ -15670,6 +16624,49 @@ Ids must begin with a lowercase letter. Examples not installed... Примеры не установлены... + + + Create Project... + Создать проект... + + + + Explore Qt C++ Examples + Примеры на Qt C++ + + + + Explore Qt Quick Examples + Примеры на Qt Quick + + + + Open Project... + Открыть проект... + + + + Qt4ProjectManager::Internal::GnuPocS60DevicesWidget + + + Step 1 of 2: Choose GnuPoc folder + Шаг 1 из 2: Выбор каталога GnuPoc + + + + Step 2 of 2: Choose Qt folder + Шаг 2 из 2: Выбор каталога Qt + + + + Adding GnuPoc + Добавление GnuPoc + + + + GnuPoc and Qt folders must not be identical. + Каталоги GnuPoc и Qt не должны совпадать. + Qt4ProjectManager::Internal::GuiAppWizard @@ -15680,11 +16677,15 @@ Ids must begin with a lowercase letter. - Creates a Qt Gui Application with one form. - Создание графического приложения Qt с одной формой. + Creates a Qt application for the desktop. Includes a Qt Designer-based main window. + +Preselects a desktop Qt for building the application if available. + Создание приложения Qt для настольных компьютеров. Включает основное окно в виде формы дизайнера Qt. + +Выбирается профиль Qt "Настольный" для сборки приложения, если он доступен. - + The template file '%1' could not be opened for reading: %2 Файл шаблона '%1' не может быть открыт для чтения: %2 @@ -15711,8 +16712,8 @@ Ids must begin with a lowercase letter. - Creates a Qt based C++ Library. - Создание библиотеки C++ на основе Qt. + Creates a C++ library based on qmake. This can be used to create:<ul><li>a shared C++ library for use with <tt>QPluginLoader</tt> and runtime (Plugins)</li><li>a shared or static C++ library for use with another project at linktime</li></ul>. + Создание проекта C++ библиотеки под управлением qmake. Может использоваться для разработки:<ul><li>разделяемая C++ библиотека для загрузки через <tt>QPluginLoader</tt> (модуль)</li><li>разделяемая или статическая C++ библиотека для подключения к другому проекту на этапе компоновки</li></ul>. @@ -15774,20 +16775,25 @@ Did you start Qemu? Qemu уже запущен? + + + Qt version mismatch! Expected Qt on device: 4.6.2 or later. + Неподходящий профиль Qt! Требуется Qt на устройстве: 4.6.2 и выше. + Close Закрыть - + Device configuration test failed: Unexpected output: %1 Ошибка при проверке настройки устройства: неожиданный результат: %1 - + Hardware architecture: %1 Аппаратная архитектура: %1 @@ -15807,128 +16813,152 @@ Qemu уже запущен? Настройка устройства успешно выполнена. - - - Qt4ProjectManager::Internal::MaemoDebugRunControl - - Debugging failed: %1 - Отладка не удалась: %1 + + No Qt packages installed. + Пакеты Qt не установлены. - - Debugging failed, could not parse gdb server pid! - Отладка не удалась, так как не удалось определить PID сервера gdb! - - - - Stopping debugging operation ... - Остановка отладки... - - - - Debugging finished. - Отладка завершена. + + List of installed Qt packages: + Список установленых пакетов Qt: - Qt4ProjectManager::Internal::MaemoGdbSettingsPage + Qt4ProjectManager::Internal::MaemoPackageContents - - Maemo - + + Local File Path + Путь к локальному файлу + + + + Remote File Path + Путь к удалённому файлу - Qt4ProjectManager::Internal::MaemoGdbWidget + Qt4ProjectManager::Internal::MaemoPackageCreationStep - - Form - Форма - - - - Gdb - - - - - Use MADDE gdb - Использовать MADDE gdb - - - - Maemo ARM gdb location: - Размещение gdb для Maemo ARM: - - - - Qt4ProjectManager::Internal::MaemoInteractiveSshConnection - - - Could not start remote shell: %1 - Ну удалось запустить удалённую оболочку: %1 - - - - Error running command: %1 - Ошибка выполнения команды: %1 - - - - SSH error: %1 - Ошибка SSH: %1 - - - - Qt4ProjectManager::Internal::MaemoManager - - - - Start Maemo Emulator - Запустить эмулятор Maemo + + Creating package file ... + Создание файла пакета... - Stop Maemo Emulator - Остановить эмулятор Maemo + Cannot open MADDE config file '%1'. + Невозможно открыть конфигурационный файл MADDE "%1". + + + + Packaging Error: Cannot open file '%1'. + Ошибка создания пакета: Невозможно открыть файл "%1". + + + + Packaging Error: Cannot write file '%1'. + Ошибка создания пакета: Невозможно записать файл "%1". + + + + Packaging Error: Could not create directory '%1'. + Ошибка создания пакета: Не удалось создать каталог "%1". + + + + Packaging Error: Could not replace file '%1'. + Ошибка создания пакета: Не удалось перезаписать файл "%1". + + + + Packaging Error: Could not copy '%1' to '%2'. + Ошибка создания пакета: Не удалось скопировать "%1" в "%2". + + + + Package created. + Пакет создан. + + + + Package Creation: Running command '%1'. + Создание пакета: Выполнение команды "%1". + + + + + Packaging failed. + Не удалось создать пакет. + + + + Packaging error: Could not start command '%1'. Reason: %2 + Ошибка создания пакета: Не удалось выполнить команду "%1" по причине: %2 + + + + Packaging Error: Command '%1' timed out. + Ошибка создания пакета: Истекло время выполнения команды "%1". + + + + Packaging Error: Command '%1' failed. + Ошибка создания пакета: Команда "%1" завершилась с ошибкой. + + + + Reason: %1 + Причина: %1 + + + + Output was: + Вывод: + + + + Qt4ProjectManager::Internal::MaemoPackageCreationWidget + + + <b>Create Package:</b> + <b>Создать пакет:</b> + + + + Choose a local file + Выбор локального файла + + + + File already in package + Этот файл уже в пакете + + + + You have already added this file. + Этот файл уже был добавлен в пакет. Qt4ProjectManager::Internal::MaemoRunConfiguration - - %1 on Maemo device - %1 на устройстве с Maemo - - - - MaemoRunConfiguration - - - - - '%1' does not contain a valid Maemo simulator image. - "%1" не содержит корректный образ эмулятора Maemo. - - - - Simulator could not be found. Please check the Qt Version you are using and that a simulator image is already installed. - Не удалось найти эмулятор. Проверьте используемый профиль Qt и наличие установленного образа эмулятора. + + New Maemo Run Configuration + Новая конфигурация запуска Maemo Qt4ProjectManager::Internal::MaemoRunConfigurationFactory - - %1 on Maemo Device - %1 на устройстве с Maemo + + New Maemo Run Configuration + Новая конфигурация запуска Maemo Qt4ProjectManager::Internal::MaemoRunConfigurationWidget - + Run configuration name: Название конфигурации запуска: @@ -15938,8 +16968,13 @@ Qemu уже запущен? <a href="%1">Управление конфигурациями устройств</a> - - Device Configuration: + + <a href="%1">Set Debugger</a> + <a href="%1">Установить отладчик</a> + + + + Device configuration: Конфигурация устройства: @@ -15952,49 +16987,11 @@ Qemu уже запущен? Arguments: Параметры: - - - <a href="%1">Set Maemo Debugger</a> - <a href="%1">Установить отладчик Maemo</a> - - - - Debugger: - Отладчик: - - - - Simulator: - Эмулятор: - - - - Qt4ProjectManager::Internal::MaemoRunControl - - - Starting remote application. - Запуск внешней программы. - - - - Remote process stopped by user. - Внешний процесс остановлен пользователем. - - - - Remote process exited with error: %1 - Внешний процесс завершился с ошибкой: %1 - - - - Remote process finished successfully. - Внешний процесс успешно завершился. - Qt4ProjectManager::Internal::MaemoRunControlFactory - + Run on device Выполнить на устройстве @@ -16003,87 +17000,94 @@ Qemu уже запущен? Qt4ProjectManager::Internal::MaemoSettingsPage - Maemo Devices - Устройства Maemo + Maemo Device Configurations + Конфигурации устройств Maemo Qt4ProjectManager::Internal::MaemoSettingsWidget - - Choose public key file - Выберите файл открытого ключа + + New Device Configuration %1 + Standard Configuration name with number + Новая конфигурация устройства %1 - - Stop deploying - Прекратить установку + + Public Key Files(*.pub);;All Files (*) + Файлы открытых ключей (*.pub);;Все файлы (*) - + + Could not read public key file '%1'. + Не удалось прочитать файл открытого ключа "%1". + + + Key deployment failed: %1 Не удалось установить ключ: %1 - + + Deploy Public Key ... + Установить ключ... + + + + Deployment Failed Установка не удалась - + + Choose Public Key File + Выбор файла открытого ключа + + + + Stop Deploying + Прекратить установку + + + Key was successfully deployed. Ключ был успешно установлен. - + Deployment Succeeded Установка выполнена - - - Deploy Key ... - Установочный -ключ... - - Qt4ProjectManager::Internal::MaemoSftpConnection + Qt4ProjectManager::Internal::MaemoSshConfigDialog - - Error setting up SFTP subsystem: %1 - Ошибка настройки подсистемы SFTP: %1 + + Save Public Key File + Сохранение файла открытого ключа - - Could not open file '%1' - Не удалось открыть файл "%1" + + Save Private Key File + Сохранение файла секретного ключа - Could not copy local file '%1' to remote file '%2': %3 - Не удалось скопировать локальный файл "%1" в "%2": %3 + Error writing file + Ошибка записи в файл - - - Qt4ProjectManager::Internal::MaemoSshConnection - - Could not connect to host - Ну удалось подключиться к узлу - - - - Qt4ProjectManager::Internal::MaemoSshThread - - - Error in cryptography backend: %1 - Ошибка в криптографическом модуле: %1 + + Could not write file '%1': + %2 + Не удалось записать файл "%1": + %2 Qt4ProjectManager::Internal::MakeStepFactory - + Make Сборка @@ -16097,8 +17101,12 @@ Qemu уже запущен? - Creates a mobile Qt Gui Application with one form. - Создание мобильного графического приложения Qt с одной формой. + Creates a Qt application optimized for mobile devices with a Qt Designer-based main window. + +Preselects Qt for Simulator and mobile targets if available + Создание приложения Qt для мобильных устройств. Включает основное окно в виде формы дизайнера Qt. + +Выбирается профиль Qt для эмулятора и мобильных целей, если он доступен @@ -16122,12 +17130,12 @@ Qemu уже запущен? Не удалось открыть файл значка %1. - + Creating multiple widget libraries (%1, %2) in one project (%3) is not supported. Создание нескольких библиотек виджетов (%1, %2) в одном проекте (%3) не поддерживается. - + Cannot open %1: %2 Не удалось открыть %1: %2 @@ -16139,24 +17147,53 @@ Qemu уже запущен? Project setup Настройка проекта - - - Targets - Цели - Qt4ProjectManager::Internal::QMakeStepFactory - + qmake qmake + + Qt4ProjectManager::Internal::QemuRuntimeManager + + + + Start Maemo Emulator + Запустить эмулятор Maemo + + + + Qemu has been shut down, because you removed the corresponding Qt version. + Qemu был завершён, так как был удалён соответствующий ему профиль Qt. + + + + Qemu failed to start: %1 + Qemu не удалось запуститься: %1 + + + + Qemu crashed + Qemu завершился крахом + + + + Qemu error + Ошибка Qemu + + + + Stop Maemo Emulator + Остановить эмулятор Maemo + + Qt4ProjectManager::Internal::Qt4BuildConfigurationFactory - + Using Qt Version "%1" Используется профиль Qt "%1" @@ -16209,13 +17246,14 @@ Qemu уже запущен? Другие файлы - + + Failed! Не удалось! - + Could not open the file for edit with SCC. Не удалось открыть файл для редактирования с помощью SCC. @@ -16230,7 +17268,12 @@ Qemu уже запущен? Имеются несохранённые изменения в файле проекта %1. - + + Could not write project file %1. + Не удалось записать в файл проекта %1. + + + Error while reading PRO file %1: %2 Ошибка чтения .PRO файла %1: %2 @@ -16238,13 +17281,13 @@ Qemu уже запущен? Qt4ProjectManager::Internal::Qt4ProFileNode - + Error while parsing file %1. Giving up. Ошибка разбора файла %1. Отмена. - + Could not find .pro file for sub dir '%1' in '%2' Не удалось найти .pro файл для подкаталога '%1' в '%2' @@ -16253,38 +17296,13 @@ Qemu уже запущен? Qt4ProjectManager::Internal::Qt4ProjectConfigWidget - Configuration Name: - Название конфигурации: - - - - Qt Version: - Профиль Qt: - - - - This Qt-Version is invalid. - Некорректный профиль Qt. - - - - Shadow Build: - Фоновая сборка: - - - - Build Directory: - Каталог сборки: - - - <a href="import">Import existing build</a> <a href="import">Импорт существующей сборки</a> - + Shadow Build Directory - Каталог фоновой сборки + Каталог теневой сборки @@ -16302,7 +17320,7 @@ Qemu уже запущен? используется профиль Qt: <b>%1</b><br>с инструментарием <b>%2</b><br>сборка в <b>%3</b> - + Building in subdirectories of the source directory is not supported by qmake. Сборка в подкаталогах каталога исходников не поддерживается qmake. @@ -16313,17 +17331,12 @@ Qemu уже запущен? В %1 обнаружена несовместимая сборка. Она будет замещена. - + General Основное - Tool Chain: - Инструментарий: - - - Manage Управление @@ -16332,6 +17345,36 @@ Qemu уже запущен? problemLabel + + + Configuration name: + Название конфигурации: + + + + Qt version: + Профиль Qt: + + + + This Qt version is invalid. + Некорректный профиль Qt. + + + + Tool chain: + Инструментарий: + + + + Shadow build: + Теневая сборка: + + + + Build directory: + Каталог сборки: + Qt4ProjectManager::Internal::Qt4ProjectManagerPlugin @@ -16347,7 +17390,7 @@ Qemu уже запущен? Собрать - + Run qmake in %1 Выполнить qmake в %1 @@ -16360,7 +17403,7 @@ Qemu уже запущен? Qt4ProjectManager::Internal::Qt4RunConfiguration - + Clean Environment Чистая среда @@ -16383,7 +17426,22 @@ Qemu уже запущен? Qt4ProjectManager::Internal::Qt4RunConfigurationWidget - + + Select Working Directory + Выбор рабочего каталога + + + + Working directory: + Рабочий каталог: + + + + Run in terminal + Запускать в терминале + + + Run Environment Среда выполнения @@ -16408,12 +17466,7 @@ Qemu уже запущен? Параметры: - - Run in Terminal - Запускать в терминале - - - + Base environment for this runconfiguration: Базовая среда для этой конфигурации сборки: @@ -16428,23 +17481,13 @@ Qemu уже запущен? Программа: - - Select the working directory - Выбор рабочего каталога - - - + Reset to default "Сбросить к состоянию по умолчанию" - слишком длинно По умолчанию - - Working Directory: - Рабочий каталог: - - - + Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug) Использовать отладочные версии библиотек (DYLD_IMAGE_SUFFIX=_debug) @@ -16456,7 +17499,7 @@ Qemu уже запущен? Desktop Qt4 Desktop target display name - Рабочий стол + Настольный компьютер @@ -16491,7 +17534,13 @@ Qemu уже запущен? Maemo - + + Qt Simulator + Qt4 Simulator target display name + Эмулятор Qt + + + <b>Device:</b> %1 <b>Устройство:</b> %1 @@ -16509,7 +17558,7 @@ Qemu уже запущен? Qt4ProjectManager::Internal::Qt4TargetFactory - + Debug Отладка @@ -16578,19 +17627,15 @@ Qemu уже запущен? <html><body><table><tr><td>Файл:</td><td><pre>%1</pre></td></tr><tr><td>Изменён:</td><td>%2</td></tr><tr><td>Размер:</td><td>%3 байт</td></tr></table></body></html> - + This Qt Version has a unknown toolchain. У этого профиля Qt неизвестный инструментарий. - - %1 does not specify a valid Qt installation - %1 не является корректно установленной Qt - Desktop Qt Version is meant for the desktop - Настольный компьютер + Настольный @@ -16604,11 +17649,17 @@ Qemu уже запущен? Qt Version is meant for Maemo Maemo + + + Qt Simulator + Qt Version is meant for Qt Simulator + Эмулятор Qt + unkown No idea what this Qt Version is meant for! - неизвестная + неизвестная @@ -16621,11 +17672,6 @@ Qemu уже запущен? Qt4ProjectManager::Internal::QtVersionManager - Qt versions - Профили Qt - - - + + @@ -16644,16 +17690,6 @@ Qemu уже запущен? Debugging Helper Помощник отладчика - - - Version Name: - Название версии: - - - - MinGW Directory: - Каталог MinGW: - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -16667,11 +17703,6 @@ p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#ff0000;">Не удалось определить версию MSVC.</span></p></body></html> - - - Debugging Helper: - Помощник отладчика: - Show &Log @@ -16687,53 +17718,60 @@ p, li { white-space: pre-wrap; } S60 SDK: SDK для S60: - - - Carbide Directory: - Каталог Carbide: - - - - CSL/GCCE Directory: - Каталог CSL/GCCE: - qmake Location Размещение qmake - - - qmake Location: - Размещение qmake: - Toolchain: Инструментарий: - - - Qt4ProjectManager::Internal::QtWizard - - The project %1 could not be opened. - Невозможно открыть проект %1. + + Version name: + Название версии: + + + + qmake location: + Размещение qmake: + + + + MinGW directory: + Каталог MinGW: + + + + CSL/GCCE directory: + Каталог CSL/GCCE: + + + + Carbide directory: + Каталог Carbide: + + + + Debugging helper: + Помощник отладчика: Qt4ProjectManager::Internal::S60CreatePackageStep - Create sis Package - Create sis package build step name - Создание пакета sis + Create SIS Package + Create SIS package build step name + Создание пакета SIS Qt4ProjectManager::Internal::S60CreatePackageStepConfigWidget - + self-signed самоподписанного @@ -16744,16 +17782,16 @@ p, li { white-space: pre-wrap; } - <b>Create sis Package:</b> %1 - <b>Создание пакета sis:</b> %1 + <b>Create SIS Package:</b> %1 + <b>Создание пакета SIS:</b> %1 Qt4ProjectManager::Internal::S60CreatePackageStepFactory - - Create sis Package - Создание пакета sis + + Create SIS Package + Создание пакета SIS @@ -16787,7 +17825,7 @@ p, li { white-space: pre-wrap; } Qt4ProjectManager::Internal::S60DeviceDebugRunControl - + Launching debugger... Запускается отладчик... @@ -16805,7 +17843,7 @@ p, li { white-space: pre-wrap; } Qt4ProjectManager::Internal::S60DeviceRunConfiguration - + QtS60DeviceRunConfiguration QtS60DeviceRunConfiguration @@ -16837,12 +17875,12 @@ p, li { white-space: pre-wrap; } - Install File: + Installation file: Установочный файл: - Device on Serial Port: + Device on serial port: Последовательный порт устройства: @@ -16864,7 +17902,7 @@ p, li { white-space: pre-wrap; } Qt4ProjectManager::Internal::S60DeviceRunControl - + Could not start application: %1 Не удалось запустить приложение: %1 @@ -16887,14 +17925,14 @@ p, li { white-space: pre-wrap; } Qt4ProjectManager::Internal::S60DeviceRunControlBase - + Could not connect to phone on port '%1': %2 Check if the phone is connected and App TRK is running. Не удалось подключиться к телефону через порт "%1": %2 Убедитесь, что телефон подключён, и на нём работает App TRK. - + There is no device plugged in. Устройство не подключено. @@ -16934,7 +17972,7 @@ Check if the phone is connected and App TRK is running. Удаление старого пакета "%1" - + Package file not found Не найден файл пакета @@ -16972,7 +18010,7 @@ Deploying application to '%2'... - Copying install file... + Copying installation file... Копирование установочного файла... @@ -17001,7 +18039,7 @@ Deploying application to '%2'... Отменено. - + The device '%1' has been disconnected Устройство "%1" было отключено @@ -17009,7 +18047,7 @@ Deploying application to '%2'... Qt4ProjectManager::Internal::S60Devices::Device - + Id: Id: @@ -17034,6 +18072,37 @@ Deploying application to '%2'... Qt: + + Qt4ProjectManager::Internal::S60DevicesBaseWidget + + + Default + По умолчанию + + + + SDK Location + Размещение SDK + + + + Qt Location + Размещение Qt + + + + Choose Qt folder + Выбор каталога Qt + + + + Qt4ProjectManager::Internal::S60DevicesModel + + + No Qt installed + Qt не установлена + + Qt4ProjectManager::Internal::S60DevicesPreferencePane @@ -17041,23 +18110,13 @@ Deploying application to '%2'... Form Форма - - - SDK Location - Размещение SDK - - - - Qt Location - Размещение Qt - Refresh Обновить - + S60 SDKs SDK для S60 @@ -17066,13 +18125,20 @@ Deploying application to '%2'... Error Ошибка - - - Qt4ProjectManager::Internal::S60DevicesWidget - - No Qt installed - Qt не установлена + + Add + Добавить + + + + Change Qt version + Сменить профиль Qt + + + + Remove + Удалить @@ -17130,7 +18196,7 @@ Deploying application to '%2'... Qt4ProjectManager::Internal::S60Manager - + Run in Emulator Выполнить на эмуляторе @@ -17148,51 +18214,80 @@ Deploying application to '%2'... Qt4ProjectManager::Internal::TargetSetupPage - - Set up targets for your project - Настройка целей проекта - - - + Qt Creator can set up the following targets: Qt Creator может настроить следующие цели: - + Qt Version Профиль Qt - + Status Состояние - - Directory - Каталог + + No builds found + Сборки не найдены - - Scan for builds - Поиск сборок + + No builds for project file "%1" were found in the folder "%2". + %1: pro-file, %2: directory that was checked. + Сборки для файла проекта "%1" не были найдены в каталоге "%2". + + + + <b>Error:</b> + Severity is Task::Error + <b>Ошибка:</b> - Directory to import builds from - Каталог импорта сборок + <b>Warning:</b> + Severity is Task::Warning + <b>Предупреждение:</b> - + + Qt Creator can set up the following targets for project <b>%1</b>: + %1: Project name + Qt Creator позволяет настроить следующие цели для проекта <b>%1</b>: + + + + Choose a directory to scan for additional shadow builds + Выбор директории для поиска дополнительных теневых сборок + + + Import Is this an import of an existing build or a new one? - Импортируемая + Импортируемая New Is this an import of an existing build or a new one? - Новая + Новая + + + + Setup targets for your project + Настройте цели вашего проекта + + + + Build Directory + Каталог сборки + + + + Import Existing Shadow Build... + Импорт каталога теневой сборки... @@ -17204,8 +18299,8 @@ Deploying application to '%2'... - Creates a Qt Unit Test. - Создание юнит теста Qt. + Creates a QTestLib-based unit test for a feature or a class. Unit tests allow you to verify that the code is fit for use and that there are no regressions. + Создание юнит теста основанного на QTestLib для класса или свойства. Юнит тесты позволяют проверять код на соответствие целям и отсутствие регрессий. @@ -17287,7 +18382,7 @@ Deploying application to '%2'... Qt4ProjectManager::MakeStep - + Make Qt4 MakeStep display name. Сборка @@ -17301,11 +18396,7 @@ Deploying application to '%2'... Qt4ProjectManager::MakeStepConfigWidget - <b>Make Step:</b> %1 not found in the environment. - <b>Этап сборки:</b>программа %1 не найдена. - - - + <b>Make:</b> %1 not found in the environment. <b>Сборка:</b>программа %1 не найдена. @@ -17323,44 +18414,15 @@ Deploying application to '%2'... Qt4ProjectManager::QMakeStep - + qmake QMakeStep display name. qmake - - <font color="#ff0000">Qt version <b>%1</b> is invalid. Set a valid Qt Version in Preferences </font> - - <font color="#ff0000">Профиль Qt <b>%1</b> некорректный. Выберите корректный профиль Qt в Параметрах </font> - - - - - <font color="#ff0000">Qt version <b>%1</b> is invalid. Set valid Qt Version in Tools/Options </b></font> - - <font color="#ff0000">Профиль Qt <b>%1</b> некорректный. Выберите корректный профиль Qt в Инструментах/Настройках </font> - - - - - The Symbian SDK and the project sources must reside on the same drive. - Symbian SDK и исходные файлы проекта должны располагаться на одном диске. - - - - The Symbian SDK was not found for Qt version %1. - Не найден Symbian SDK для профиля Qt %1. - - - - The "Open C/C++ plugin" is not installed in the Symbian SDK or the Symbian SDK path is misconfigured for Qt version %1. - У профиля Qt %1 путь к Symbian SDK неверен или в него не установлен "Open C/C++ plugin". - - - - The Symbian toolchain does not handle special characters in a project path well. - Инструментарий Symbian не способен обрабатывать специальные символы в пути проекта. + + <font color="#0000ff">Configuration is faulty, please check the Build Issues view for details.</font> + <font color="#0000ff">Конфигурация неисправна. Окно "Сообщения сборки" содержит подробную информацию.</font> @@ -17397,15 +18459,30 @@ Deploying application to '%2'... Qt4ProjectManager::Qt4Project - - Evaluate - Вычислить + + Evaluating + Вычисление + + + + Qt4ProjectManager::QtVersion + + + The Qt version is invalid: %1 + %1: Reason for being invalid + Некорректный профиль Qt: %1 + + + + The qmake command "%1" was not found or is not executable. + %1: Path to qmake executable + Не удалось найти программу qmake "%1" или она неисполняема. Qt4ProjectManager::QtVersionManager - + <not found> <не найдена> @@ -17966,7 +19043,7 @@ Deploying application to '%2'... QtVersion - + No qmake path set Путь к qmake не указан @@ -17986,11 +19063,57 @@ Deploying application to '%2'... Не удалось определить путь к утилитам Qt. Может путь к qmake неверен? - + The Qt Version has no toolchain. У профиля Qt нет инструментария. + + RectangleColorGroupBox + + + Colors + Цвета + + + + Stops + Опорные точки + + + + Gradient Stops + Опорные точки градиента + + + + Rectangle + Прямоугольник + + + + Border + Рамка + + + + RectangleSpecifics + + + Rectangle + Прямоугольник + + + + Radius + Радиус + + + + Border + Рамка + + RegExp::Internal::RegExpWindow @@ -18098,8 +19221,8 @@ Deploying application to '%2'... ResourceEditor::Internal::ResourceEditorPlugin - Creates a Qt Resource file (.qrc). - Создание файла ресурсов Qt (.qrc). + Creates a Qt Resource file (.qrc) that you can add to a Qt C++ project. + Создание файла ресурсов Qt (.qrc) для добавления в проект Qt C++. @@ -18120,7 +19243,7 @@ Deploying application to '%2'... ResourceEditor::Internal::ResourceEditorW - + untitled безымянный @@ -18164,7 +19287,7 @@ Deploying application to '%2'... SharedTools::QrcEditor - + Add Files Добавить файлы @@ -18174,12 +19297,7 @@ Deploying application to '%2'... Добавить приставку - - Invalid file - Некорректный файл - - - + Copy Копировать @@ -18194,9 +19312,14 @@ Deploying application to '%2'... Прервать - - The file %1 is not in a subdirectory of the resource file. Continuing will result in an invalid resource file. - Файл %1 не найден в подкаталоге ресурсного файла. Если продолжить, будет создан некорректный файл ресурсов. + + Invalid file location + Неверное размещение файла + + + + The file %1 is not in a subdirectory of the resource file. You now have the option to copy this file to a valid location. + Файл %1 не является подкаталогом файла ресурсов. Есть возможность скопировать его в верное местоположение. @@ -18227,7 +19350,7 @@ Deploying application to '%2'... SharedTools::ResourceView - + Add Files... Добавить файлы... @@ -18321,6 +19444,87 @@ Deploying application to '%2'... Фрагменты + + SshKeyGenerator + + + Error creating temporary files. + Ошибка создания временных файлов. + + + + Error generating keys: %1 + Ошибка создания ключей: %1 + + + + + Error reading temporary files. + Ошибка чтения временных файлов. + + + + StandardTextColorGroupBox + + + Color + Цвет + + + + Text + Текст + + + + Style + Стиль + + + + Selection + Выделение + + + + Selected + Выделено + + + + StandardTextGroupBox + + + + Text + Текст + + + + Wrap Mode + Режим переноса + + + + + + + + + Aliasing + Ступенчатость + + + + Smooth + Гладкий + + + + Alignment + Выравнивание + + StartExternalDialog @@ -18344,6 +19548,54 @@ Deploying application to '%2'... Останов на 'main': + + StartExternalQmlDialog + + + Debugging address: + Адрес отладчика: + + + + Debugging port: + Порт отладчика: + + + + 127.0.0.1 + + + + + Project: + Проект: + + + + <No project> + <Не указан> + + + + To switch languages while debugging, go to Debug->Language menu. + Для переключения языков при отладке, перейдите в меню Отладка->Язык. + + + + Start Simultaneous QML and C++ Debugging + Запуск одновременной отладки C++ и QML + + + + Viewer path: + Программа просмотра: + + + + Viewer arguments: + Параметры программы: + + StartRemoteDialog @@ -18384,15 +19636,15 @@ Deploying application to '%2'... Sysroot: - Системный корень: + Системный корень: Subversion::Internal::CheckoutWizard - Checks out a project from a Subversion repository. - Извлечение проекта из хранилища Subversion. + Checks out a Subversion repository and tries to load the contained project. + Извлечение хранилища Subversion с последующей попыткой загрузки содержащегося там проекта. @@ -18422,19 +19674,9 @@ Deploying application to '%2'... Subversion::Internal::SettingsPage - Subversion Command: - Команда Subversion: - - - Authentication Авторизация - - - User name: - Пользователь: - Password: @@ -18480,6 +19722,16 @@ Deploying application to '%2'... Log count: Количество отображаемых записей истории фиксаций: + + + Subversion command: + Команда Subversion: + + + + Username: + Имя пользователя: + Subversion::Internal::SettingsPageWidget @@ -18500,7 +19752,7 @@ Deploying application to '%2'... Subversion::Internal::SubversionPlugin - + &Subversion &Subversion @@ -18540,12 +19792,12 @@ Deploying application to '%2'... Alt+S,Alt+D - + Commit All Files Фиксировать все файлы - + Commit Current File Фиксировать текущий файл @@ -18580,12 +19832,42 @@ Deploying application to '%2'... Аннотация "%1" (annotate) - + + Commit Project + Фиксировать проект + + + + Commit Project "%1" + Фиксировать проект "%1" + + + + Diff Repository + Сравнить всё + + + + Repository Status + Состояние хранилища + + + + Log Repository + История хранилища + + + + Update Repository + Обновить всё + + + Describe... Описать (describe)... - + Project Status Состояние проекта @@ -18640,12 +19922,7 @@ Deploying application to '%2'... Обновить проект "%1" - - Repository Log - История хранилища - - - + Revert Repository... Откатить все изменения... @@ -18670,7 +19947,7 @@ Deploying application to '%2'... &Вернуть - + Closing Subversion Editor Закрытие редактора Subversion @@ -18685,7 +19962,7 @@ Deploying application to '%2'... Сообщение о фиксации содержит ошибки. Фиксировать изменение? - + Revert repository Откатить все изменения @@ -18705,7 +19982,7 @@ Deploying application to '%2'... Файл был изменён. Желаете откатить его изменения? - + Another commit is currently being executed. В данный момент уже идёт другая фиксация. @@ -18720,7 +19997,7 @@ Deploying application to '%2'... Не удаётся создать временный файл: %1 - + Describe Описание @@ -18730,20 +20007,26 @@ Deploying application to '%2'... Номер ревизии: - + + Executing in %1: %2 %3 + + Выполняется в %1: %2 %3 + + + + No subversion executable specified! Исполняемый файл Subversion не указан! - + Executing: %1 %2 - Executing: <executable> <arguments> Выполняется: %1 %2 - + The process terminated with exit code %1. Процесс завершился с кодом %1. @@ -18771,6 +20054,34 @@ Deploying application to '%2'... Фиксация Subversion + + Switches + + + special properties + специальные свойства + + + + layout and geometry + компоновка и геометрия + + + + Geometry + Геометрия + + + + advanced properties + дополнительные свойства + + + + Advanced + Дополнительно + + SymbolGroup @@ -18787,10 +20098,23 @@ Deploying application to '%2'... Цели + + TextEditSpecifics + + + Text Edit + Текстовый редактор + + + + Format + Формат + + TextEditor - + Text Editor Текстовый редактор @@ -18798,7 +20122,7 @@ Deploying application to '%2'... TextEditor::BaseFileFind - + %1 found %1 найдено @@ -18806,18 +20130,18 @@ Deploying application to '%2'... List of comma separated wildcard filters - Список шаблонов (с символами-заменителями), разделенных запятой + Список масок, разделённых запятой - Use Regular E&xpressions + Use regular e&xpressions Использовать регул&ярные выражения TextEditor::BaseTextDocument - + untitled безымянный @@ -18830,12 +20154,12 @@ Deploying application to '%2'... TextEditor::BaseTextEditor - + Print Document Печать документа - + <b>Error:</b> Could not decode "%1" with "%2"-encoding. Editing not possible. <b>Ошибка:</b> Не удалось преобразовать "%1" в кодировку "%2". Редактирование невозможно. @@ -18848,7 +20172,7 @@ Deploying application to '%2'... TextEditor::BaseTextEditorEditable - + Line: %1, Col: %2 Строка: %1, Столбец: %2 @@ -18875,11 +20199,6 @@ Deploying application to '%2'... Always Всегда - - - In leading white space - Перед текстом - Storage @@ -18970,14 +20289,6 @@ Deploying application to '%2'... Enable scroll &wheel zooming Включить масштабирование &колёсиком - - Braces will be flush with indented block, except first indent level. - Скобки будут выравниваться в пределах структурного блока, за исключением первого уровня отступов. - - - Indent brace&s - Выравнивать &скобки - Automatically determine based on the nearest indented line (previous line preferred over next line) @@ -19008,6 +20319,11 @@ Deploying application to '%2'... GNU Style Стиль GNU + + + In Leading White Space + Перед текстом + TextEditor::DisplaySettingsPage @@ -19076,22 +20392,27 @@ Deploying application to '%2'... Auto-fold first &comment С&ворачивать первый комментарий + + + Center &cursor on scroll + &Центрировать курсор при прокрутке + TextEditor::FontSettingsPage - + Font && Colors Шрифт и цвета - + Copy Color Scheme Копировать цветовую схему - Color Scheme name: + Color scheme name: Название цветовой схемы: @@ -19212,7 +20533,7 @@ The following encodings are likely to fit: TextEditor::Internal::FindInFiles - + Files on File System Файлы в системе @@ -19232,7 +20553,7 @@ The following encodings are likely to fit: Ш&аблон: - + Directory to search Каталог поиска @@ -19307,278 +20628,14 @@ The following encodings are likely to fit: - TextEditor::TextEditorActionHandler - - - &Undo - &Отменить - - - - &Redo - &Вернуть - - - - Select Encoding... - Выбрать кодировку... - - - - Auto-&indent Selection - буквальный перевод "автоотступить выделенное" - Сделать &автоотступ - - - - Ctrl+I - Ctrl+I - - - - Meta - Meta - - - - Ctrl - Ctrl - - - - &Rewrap Paragraph - &Переделать переносы - - - - &Visualize Whitespace - Отображение про&белов - - - - Clean Whitespace - Очистить пробелы - - - - Enable Text &Wrapping - П&еренос текста - - - - %1+E, R - %1+E, R - - - - %1+E, %2+V - %1+E, %2+V - - - - %1+E, %2+W - %1+E, %2+W - - - - (Un)Comment &Selection - &Закомментировать/раскомментировать - - - - Ctrl+/ - Ctrl+/ - - - - Cut &Line - В&ырезать строку - - - - Shift+Del - Shift+Del - - - - Delete &Line - Удалить строк&у - - - - Collapse - Свернуть - - - - Ctrl+< - Ctrl+< - - - - Expand - Развернуть - - - - Ctrl+> - Ctrl+> - - - - (Un)&Collapse All - Свернут&ь/развернуть всё - - - - Increase Font Size - Увеличить шрифт - - - - Ctrl++ - Ctrl++ - - - - Decrease Font Size - Уменьшить шрифт - - - - Ctrl+- - Ctrl+- - - - - Reset Font Size - Восстановить размер шрифта - - - - Ctrl+0 - Ctrl+0 - - - - Go to Block Start - Перейти в начало блока - - - - Go to Block End - Перейти в конец блока - - - - Go to Block Start With Selection - Перейти в начало блока с выделением - - - - Go to Block End With Selection - Перейти в конец блока с выделением - - - - Ctrl+[ - Ctrl+[ - - - - Ctrl+] - Ctrl+] - - - - Ctrl+{ - Ctrl+{ - - - - Ctrl+} - Ctrl+} - - - - Select Block Up - Выделить блок вверх - - - - Ctrl+U - Ctrl+U - - - - Select Block Down - Выделить блок вниз - - - - Move Line Up - Переместить строку выше - - - - Ctrl+Shift+Up - Ctrl+Shift+Up - - - - Move Line Down - Переместить строку ниже - - - - Ctrl+Shift+Down - Ctrl+Shift+Down - - - - Copy Line Up - Скопировать строку выше - - - - Ctrl+Alt+Up - Ctrl+Alt+Up - - - - Copy Line Down - Скопировать строку ниже - - - - Ctrl+Alt+Down - Ctrl+Alt+Down - - - - Join Lines - Объединить строки - - - - Ctrl+J - Ctrl+J - - - - <line number> - <номер строки> - - - - TextEditor::TextEditorPlugin + TextEditor::Internal::TextEditorPlugin - Creates a text file (.txt). - Создаст текстовый файл (.txt). + Creates a text file. The default file extension is <tt>.txt</tt>. You can specify a different extension as part of the filename. + Создание текстового файла. Расширение по умолчанию - <tt>.txt</tt>. Можно указать другое расширение, как часть имени файла. - + Text File Текстовый файл @@ -19613,10 +20670,354 @@ The following encodings are likely to fit: + + TextEditor::TextEditorActionHandler + + + &Undo + &Отменить + + + + &Redo + &Вернуть + + + + Select Encoding... + Выбрать кодировку... + + + + Auto-&indent Selection + буквальный перевод "автоотступить выделенное" + Сделать &автоотступ + + + + Ctrl+I + + + + + Meta + + + + + Ctrl + + + + + &Rewrap Paragraph + &Переделать переносы + + + + &Visualize Whitespace + Отображение про&белов + + + + Clean Whitespace + Очистить пробелы + + + + Enable Text &Wrapping + П&еренос текста + + + + %1+E, R + + + + + %1+E, %2+V + + + + + %1+E, %2+W + + + + + (Un)Comment &Selection + &Закомментировать/раскомментировать + + + + Ctrl+/ + + + + + Cut &Line + В&ырезать строку + + + + Shift+Del + + + + + Delete &Line + Удалить строк&у + + + + Collapse + Свернуть + + + + Ctrl+< + + + + + Expand + Развернуть + + + + Ctrl+> + + + + + (Un)&Collapse All + Свернут&ь/развернуть всё + + + + Increase Font Size + Увеличить шрифт + + + + Ctrl++ + + + + + Decrease Font Size + Уменьшить шрифт + + + + Ctrl+- + + + + + Reset Font Size + Восстановить размер шрифта + + + + Ctrl+0 + + + + + Go to Block Start + Перейти в начало блока + + + + Go to Block End + Перейти в конец блока + + + + Go to Block Start With Selection + Перейти в начало блока с выделением + + + + Go to Block End With Selection + Перейти в конец блока с выделением + + + + Goto Line Start + Перейти в начало строки + + + + Goto Line End + Перейти в конец строки + + + + Goto Next Line + Перейти на следующую строку + + + + Goto Previous Line + Перейти на предыдущую строку + + + + Goto Previous Character + Перейти на предыдущий символ + + + + Goto Next Character + Перейти на следующий символ + + + + Goto Previous Word + Перейти на предыдущее слово + + + + Goto Next Word + Перейти на следующее слово + + + + 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 + Перейти на следующее слово с выделением + + + + Ctrl+[ + + + + + Ctrl+] + + + + + Ctrl+{ + + + + + Ctrl+} + + + + + Select Block Up + Выделить блок вверх + + + + Ctrl+U + + + + + Select Block Down + Выделить блок вниз + + + + Move Line Up + Переместить строку выше + + + + Ctrl+Shift+Up + + + + + Move Line Down + Переместить строку ниже + + + + Ctrl+Shift+Down + + + + + Copy Line Up + Скопировать строку выше + + + + Ctrl+Alt+Up + + + + + Copy Line Down + Скопировать строку ниже + + + + Ctrl+Alt+Down + + + + + Join Lines + Объединить строки + + + + Ctrl+J + + + + + <line number> + <номер строки> + + TextEditor::TextEditorSettings - + Text Текст @@ -19756,62 +21157,120 @@ The following encodings are likely to fit: Сравнение: размещение - + Behavior Поведение - + Display Вид - ToolChain + TextInputGroupBox - - GCC - GCC + + Text Input + Текстовый ввод - + + Input Mask + Маска ввода + + + + Echo Mode + Режим эха + + + + Pass. Char + Символ пароля + + + + Password Character + Символ пароля + + + + Flags + Флаги + + + + Read Only + Только для чтения + + + + Cursor Visible + Курсор виден + + + + Focus On Press + Выбирать при нажатии + + + + Auto Scroll + Прокручивать автоматически + + + + ToolChain + + + GCC + + + + + Intel C++ Compiler (Linux) + + + + Microsoft Visual C++ - Microsoft Visual C++ + Windows CE - Windows CE + WINSCW - WINSCW + GCCE - GCCE + GCCE/GnuPoc - GCCE/GnuPoc + RVCT (ARMV6)/GnuPoc - RVCT (ARMV6)/GnuPoc + RVCT (ARMV5) - RVCT (ARMV5) + RVCT (ARMV6) - RVCT (ARMV6) + @@ -19863,16 +21322,85 @@ The following encodings are likely to fit: - TrkOptions + Transformation - - No Symbian gdb executable specified. - Не указан исполняемый файл gdb для Symbian. + + Transformation + Преобразование - - The Symbian gdb executable '%1' could not be found in the search path. - Не удалось найти исполняемый файл gdb для Symbian '%1'. + + Origin + Начало + + + + Top Left + Верхний левый + + + + Top + Верхний + + + + Top Right + Верхний правый + + + + Left + Левый + + + + Center + Центральный + + + + Right + Правый + + + + Bottom Left + Нижний левый + + + + Bottom + Нижний + + + + Bottom Right + Нижний правый + + + + Scale + Масштаб + + + + Rotation + Вращение + + + + Type + + + + Type + Тип + + + + Id + @@ -19977,11 +21505,24 @@ The following encodings are likely to fit: Utils::DetailsButton - + Details Подробнее + + Utils::FancyMainWindow + + + Locked + Зафиксировано + + + + Reset to Default Layout + Сбросить в исходное состояние + + Utils::FileNameValidatingLineEdit @@ -20051,15 +21592,20 @@ The following encodings are likely to fit: Utils::FilterLineEdit - - Type to filter - Введите для отбора + + Filter + Фильтр + + + + Clear text + Очистить текст Utils::LinearProgressWidget - + ... ... @@ -20161,12 +21707,12 @@ The following encodings are likely to fit: - Choose a directory + Choose Directory Выбор каталога - Choose a file + Choose File Выбор файла @@ -20209,7 +21755,7 @@ The following encodings are likely to fit: - Delete line + Delete Line Удалить строку @@ -20472,7 +22018,7 @@ The following encodings are likely to fit: Редактор фиксаций Subversion - + Subversion Command Log Editor Редактор журнала команд Subversion @@ -20496,15 +22042,19 @@ The following encodings are likely to fit: VCSBase - Version Control Контроль версий - + Common Общее + + + Project from Version Control + Проект из системы контроля версий + VCSBase::BaseCheckoutWizard @@ -20559,11 +22109,6 @@ The following encodings are likely to fit: VCSBase::CleanDialog - - - Clean repository - Очистить хранилище - The directory %1 could not be deleted. @@ -20618,6 +22163,11 @@ The following encodings are likely to fit: Cleaning %1 Очистка %1 + + + Clean Repository + Очистить хранилище + VCSBase::Internal::CheckoutProgressWizardPage @@ -20724,7 +22274,7 @@ The following encodings are likely to fit: Копировать "%1" - + Describe change %1 Описать изменение %1 @@ -20750,7 +22300,7 @@ The following encodings are likely to fit: VCSBase::VCSBasePlugin - + Version Control Контроль версий @@ -20761,7 +22311,7 @@ The following encodings are likely to fit: - Choose repository directory + Choose Repository Directory Выберите каталог хранилища @@ -20798,7 +22348,7 @@ The following encodings are likely to fit: VCSBase::VCSBaseSubmitEditor - + Check message Проверие сообщение @@ -20853,51 +22403,6 @@ The following encodings are likely to fit: Скрипт проверки вернул код %1. - - VCSBaseSettingsPage - - - Wrap submit message at: - Ограничить длину строки до: - - - - An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure. - Программа, которой передаётся файл сообщения о фиксации в качестве первого аргумента. Она должна завершиться с кодом неравным нулю и сообщением в стандартный поток ошибок в случае обнаружения ошибки. - - - - Submit message check script: - Скрипт проверки сообщений: - - - - A file listing user names and email addresses in a 4-column mailmap format: -name <email> alias <email> - Файл списка пользователей и их email в 4-х столбцовом формате mailmap: -имя <email> алиас <email> - - - - User/alias configuration file: - Файл настройки пользователей: - - - - A simple file containing lines with field names like "Reviewed-By:" which will be added below the submit editor. - Простой файл, содержащий строки типа "Reviewed-By:", которые будут добавлены ниже редактора сообщения. - - - - User fields configuration file: - Файл настройки полей: - - - - characters - символа(ов) - - VCSManager @@ -20943,23 +22448,18 @@ Note: This might remove the local file. Patch 1 - Patch 1 + Patch 2 - Patch 2 + Protocol: Протокол: - - - Parts to send to server - Части для отправки на сервер - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -20973,13 +22473,60 @@ p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'DejaVu Sans'; font-size:10pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans Serif'; font-size:9pt;">&lt;Комментарий&gt;</span></p></body></html> + + + Parts to Send to Server + Части для отправки на сервер + + + + Visibility + + + + Visibility + Видимость + + + + Is visible + Виден + + + + Clip + Обрезка + + + + Opacity + Непрозрачность + + + + WebViewSpecifics + + + WebView + + + + + Preferred Width + Желаемая ширина + + + + Page Height + Высота страницы + Welcome::Internal::CommunityWelcomePage - Community - Сообщество + News && Support + Новости и поддержка @@ -20990,70 +22537,65 @@ p, li { white-space: pre-wrap; } Форма - + News From the Qt Labs Новости от Qt Labs - - Qt Websites - Вэбсайты Qt + + Qt Support Sites + Сайты поддержки Qt - - http://labs.trolltech.com/blogs/feed - Add localized feed here only if one exists - http://labs.trolltech.com/blogs/feed + + Qt Links + Ссылки Qt + + + + <b>Forum Nokia</b><br /><font color='gray'>Mobile Application Support</font> + <b>Форум Nokia</b><br /><font color='gray'>Поддержка по мобильным приложениям</font> - Qt Home - Домашняя страница Qt + <b>Qt LGPL Support</b><br /><font color='gray'>Buy commercial Qt support</font> + <b>Поддержка Qt LGPL</b><br /><font color='gray'>Купить коммерческую поддержку Qt</font> - - Qt Labs - Qt Labs + + <b>Qt Centre</b><br /><font color='gray'>Community based Qt support</font> + <b>Центр Qt</b><br /><font color='gray'>Поддержка Qt силами сообщества</font> - - Qt Git Hosting - Размещение хранилищ Qt + + <b>Qt Home</b><br /><font color='gray'>Qt by Nokia on the web</font> + <b>Домашняя страница Qt</b><br /><font color='gray'>Qt от Nokia в сети</font> - - Qt Centre - Qt Centre + + <b>Qt Git Hosting</b><br /><font color='gray'>Participate in Qt development</font> + <b>Размещение Git хранилищ Qt</b><br /><font color='gray'>Участие в разработке Qt</font> - - Qt Apps - Qt Apps + + <b>Qt Apps</b><br /><font color='gray'>Find free Qt-based apps</font> + <b>Приложения Qt</b><br /><font color='gray'>Поиск свободных приложений на основе Qt</font> - - Qt for Symbian at Forum Nokia - Qt для Symbian на форуме Nokia + + http://labs.trolltech.com/blogs/feed + http://labs.trolltech.com/blogs/feed Welcome::WelcomeMode - + Welcome Начало - #gradientWidget { - background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(247, 247, 247, 255), stop:1 rgba(215, 215, 215, 255)); -} - #gradientWidget { - background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(247, 247, 247, 255), stop:1 rgba(215, 215, 215, 255)); -} - - - #headerFrame { border-image: url(:/welcome/images/center_frame_header.png) 0; border-width: 0; @@ -21089,7 +22631,7 @@ p, li { white-space: pre-wrap; } Не модуль QmlDesigner. - + Failed to create instance of file '%1': %2 Не удалось создать экземпляр файла "%1": %2 @@ -21104,6 +22646,14 @@ p, li { white-space: pre-wrap; } Файл "%1" не является модулем QmlDesigner. + + emptyPane + + + none or multiple items selected + ничего не выбрано или выбрано несколько элементов + + mainClass @@ -21269,7 +22819,7 @@ p, li { white-space: pre-wrap; } trk::Launcher - + Cannot open remote file '%1': %2 Невозможно открыть внешний файл "%1": %2 @@ -21354,609 +22904,4 @@ p, li { white-space: pre-wrap; } Подключение к %1... - - MaemoSshConfigDialog - - - SSH Key Configuration - Настройка ключа SSH - - - - Use key from location: - Использовать внешний ключ: - - - - Private key file: - Файл секретного ключа: - - - - Generate SSH Key - Создать ключ SSH - - - - Deploy Public Key - Установить открытый - - - - Close - Закрыть - - - - BorderImageSpecifics - - - Image - Изображение - - - - Source - Источник - - - - Source Size - Размер источника - - - - Left - Левый - - - - Right - Правый - - - - Top - Верхний - - - - Bottom - Нижний - - - - ExpressionEditor - - - Expression - Выражение - - - - Extended - - - Effect - Эффект - - - - - Blur Radius: - Радиус размазывания: - - - - Pixel Size: - Размер пикселя: - - - - x Offset: - Смещение по x: - - - - y Offset: - Смещение по y: - - - - ExtendedFunctionButton - - - Reset - Сбросить - - - - Set Expression - Установить выражение - - - - FontGroupBox - - - - Font - Шрифт - - - - Size - Размер - - - - Font Style - Начертание - - - - Bold - Жирный - - - - Italic - Курсив - - - - Style - Стиль - - - - Geometry - - - Geometry - Геометрия - - - - Position - Положение - - - - Size - Размер - - - - ImageSpecifics - - - Image - Изображение - - - - Source - Источник - - - - Fill Mode - Режим заливки - - - - Aliasing - Ступенчатость - - - - Smooth - Гладкий - - - - Source Size - Размер источника - - - - Painted Size - Размер рисования - - - - Layout - - - Layout - Компоновка - - - - Anchors - Привязки - - - - - - - - - Target - Цель - - - - - - - - - Margin - Отступ - - - - Modifiers - - - Manipulation - Управление - - - - Rotation - Вращение - - - - z - - - - - RectangleColorGroupBox - - - Colors - Цвета - - - - Rectangle - Прямоугольник - - - - Border - Рамка - - - - RectangleSpecifics - - - Rectangle - Прямоугольник - - - - Radius - Радиус - - - - Border - Рамка - - - - StandardTextColorGroupBox - - - Color - Цвет - - - - Text - Текст - - - - Style - Стиль - - - - Selection - Выделение - - - - Selected - Выделено - - - - StandardTextGroupBox - - - - Text - Текст - - - - Is Wrapping - Переносится - - - - Alignment - Выравнивание - - - - Switches - - - layout and geometry - компоновка и геометрия - - - - Geometry - Геометрия - - - - Advanced - Дополнительно - - - - TextEditSpecifics - - - Text Edit - Текстовый редактор - - - - Format - Формат - - - - TextInputGroupBox - - - Text Input - Текстовый ввод - - - - Flags - Флаги - - - - Read Only - Только для чтения - - - - Cursor Visible - Курсор виден - - - - Focus On Press - Выбирать при нажатии - - - - Transformation - - - Transformation - Преобразование - - - - Origin - Начало - - - - Scale - Масштаб - - - - Rotation - Вращение - - - - Type - - - - Type - Тип - - - - Id - Id - - - - Visibility - - - - Visibility - Видимость - - - - Is visible - Виден - - - - Clip - Обрезка - - - - Opacity - Непрозрачность - - - - WebViewSpecifics - - - WebView - - - - - Preferred Width - Желаемая ширина - - - - Page Height - Высота страницы - - - - GdbChooserWidget - - - Unable to run '%1': %2 - Не удалось запустить "%1": %2 - - - - Debugger::Internal::GdbChooserWidget - - - Binary - Программа - - - - Toolchains - Инструментарий - - - - Duplicate binary - Идентичная программа - - - - The binary '%1' already exists. - Программа "%1" уже присутствует. - - - - Debugger::Internal::ToolChainSelectorWidget - - - Desktop/General - Настольный/Стандартный - - - - Symbian - - - - - Maemo - - - - - Debugger::Internal::BinaryToolChainDialog - - - Select binary and toolchains - Выбор программы и инструментария - - - - Gdb binary - Программа gdb - - - - Path: - Путь: - - - - QmlDesigner::ComponentView - - - whole document - документ полностью - - - - FileWidget - - - Open File - Открытие файла - - - - Qt Quick - - - Qt Quick - - - - - Qt4ProjectManager::Internal::MaemoPackageCreationWidget - - - Package Creation - Создание пакета - - - - Qt4ProjectManager::Internal::MaemoSshConfigDialog - - - Stop deploying - Прекратить установку - - - - Key deployment failed: %1 - Не удалось установить ключ: %1 - - - - Key was successfully deployed. - Ключ успешно установлен. - - - - Deploy Public Key - Установить открытый - - diff --git a/src/app/main.cpp b/src/app/main.cpp index af205c30fbd..efbbd311deb 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -173,7 +173,8 @@ int main(int argc, char **argv) // increase the number of file that can be opened in Qt Creator. struct rlimit rl; getrlimit(RLIMIT_NOFILE, &rl); - rl.rlim_cur = rl.rlim_max; + + rl.rlim_cur = qMin((rlim_t)OPEN_MAX, rl.rlim_max); setrlimit(RLIMIT_NOFILE, &rl); #endif diff --git a/src/libs/3rdparty/net7ssh/src/ne7ssh_sftp.cpp b/src/libs/3rdparty/net7ssh/src/ne7ssh_sftp.cpp index 0663301200b..61d325634eb 100644 --- a/src/libs/3rdparty/net7ssh/src/ne7ssh_sftp.cpp +++ b/src/libs/3rdparty/net7ssh/src/ne7ssh_sftp.cpp @@ -108,10 +108,11 @@ bool Ne7sshSftp::handleData (Botan::SecureVector& packet) commBuffer.addVector (sftpBuffer); mainBuffer.addVector (sftpBuffer); - len = mainBuffer.getInt(); + if (mainBuffer.length() < sizeof(uint32) + || mainBuffer.getInt() > mainBuffer.length()) + return true; - if (len > mainBuffer.length()) return true; - else commBuffer.clear(); + commBuffer.clear(); _cmd = mainBuffer.getByte(); diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index 76a77ac3954..a32cd10c9fc 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -1494,6 +1494,20 @@ void Context::setProperty(const ObjectValue *object, const QString &name, const _properties[object].insert(name, value); } +QString Context::defaultPropertyName(const ObjectValue *object) +{ + for (const ObjectValue *o = object; o; o = o->prototype(this)) { + if (const ASTObjectValue *astObjValue = dynamic_cast(o)) { + QString defaultProperty = astObjValue->defaultPropertyName(); + if (!defaultProperty.isEmpty()) + return defaultProperty; + } else if (const QmlObjectValue *qmlValue = dynamic_cast(o)) { + return qmlValue->defaultPropertyName(); + } + } + return QString(); +} + bool Context::documentImportsPlugins(const QmlJS::Document *doc) const { return _documentsImportingPlugins.contains(doc->fileName()); @@ -2800,7 +2814,7 @@ ASTObjectValue::ASTObjectValue(UiQualifiedId *typeName, UiObjectInitializer *initializer, const QmlJS::Document *doc, Engine *engine) - : ObjectValue(engine), _typeName(typeName), _initializer(initializer), _doc(doc) + : ObjectValue(engine), _typeName(typeName), _initializer(initializer), _doc(doc), _defaultPropertyRef(0) { if (_initializer) { for (UiObjectMemberList *it = _initializer->members; it; it = it->next) { @@ -2809,6 +2823,8 @@ ASTObjectValue::ASTObjectValue(UiQualifiedId *typeName, if (def->type == UiPublicMember::Property && def->name && def->memberType) { ASTPropertyReference *ref = new ASTPropertyReference(def, _doc, engine); _properties.append(ref); + if (def->defaultToken.isValid()) + _defaultPropertyRef = ref; } else if (def->type == UiPublicMember::Signal && def->name) { ASTSignalReference *ref = new ASTSignalReference(def, _doc, engine); _signals.append(ref); @@ -2846,6 +2862,16 @@ void ASTObjectValue::processMembers(MemberProcessor *processor) const ObjectValue::processMembers(processor); } +QString ASTObjectValue::defaultPropertyName() const +{ + if (_defaultPropertyRef) { + UiPublicMember *prop = _defaultPropertyRef->ast(); + if (prop && prop->name) + return prop->name->asString(); + } + return QString(); +} + ASTVariableReference::ASTVariableReference(VariableDeclaration *ast, Engine *engine) : Reference(engine), _ast(ast) { diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h index ba2ee534ab7..50254fda99c 100644 --- a/src/libs/qmljs/qmljsinterpreter.h +++ b/src/libs/qmljs/qmljsinterpreter.h @@ -297,6 +297,8 @@ public: const Value *property(const ObjectValue *object, const QString &name) const; void setProperty(const ObjectValue *object, const QString &name, const Value *value); + QString defaultPropertyName(const ObjectValue *object); + bool documentImportsPlugins(const Document *doc) const; void setDocumentImportsPlugins(const Document *doc); @@ -817,6 +819,7 @@ class QMLJS_EXPORT ASTObjectValue: public ObjectValue const Document *_doc; QList _properties; QList _signals; + ASTPropertyReference *_defaultPropertyRef; public: ASTObjectValue(AST::UiQualifiedId *typeName, @@ -827,6 +830,8 @@ public: bool getSourceLocation(QString *fileName, int *line, int *column) const; virtual void processMembers(MemberProcessor *processor) const; + + QString defaultPropertyName() const; }; } } // end of namespace QmlJS::Interpreter diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp index 6c8bfc9bdde..1d6c2900a4e 100644 --- a/src/plugins/bineditor/bineditorplugin.cpp +++ b/src/plugins/bineditor/bineditorplugin.cpp @@ -275,7 +275,9 @@ public: if (type == TypePermissions) { emit changed(); } else { - open(m_fileName); + emit aboutToReload(); + if (open(m_fileName)) + emit reloaded(); } } diff --git a/src/plugins/bookmarks/bookmark.h b/src/plugins/bookmarks/bookmark.h index efa2211dd30..aeb800a8b9f 100644 --- a/src/plugins/bookmarks/bookmark.h +++ b/src/plugins/bookmarks/bookmark.h @@ -48,7 +48,7 @@ class Bookmark : public TextEditor::BaseTextMark { Q_OBJECT public: - Bookmark(const QString& fileName, int lineNumber, BookmarkManager *manager); + Bookmark(const QString &fileName, int lineNumber, BookmarkManager *manager); QIcon icon() const; diff --git a/src/plugins/coreplugin/ifile.h b/src/plugins/coreplugin/ifile.h index 42da335a92a..6042ee51994 100644 --- a/src/plugins/coreplugin/ifile.h +++ b/src/plugins/coreplugin/ifile.h @@ -93,6 +93,9 @@ public: signals: void changed(); + + void aboutToReload(); + void reloaded(); }; } // namespace Core diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp index bd4754c2aa1..4135d0b6ccd 100644 --- a/src/plugins/cppeditor/cpphoverhandler.cpp +++ b/src/plugins/cppeditor/cpphoverhandler.cpp @@ -221,23 +221,24 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in } } - if (m_toolTip.isEmpty()) { - foreach (const Document::Include &incl, doc->includes()) { - if (incl.line() == lineNumber) { - m_toolTip = QDir::toNativeSeparators(incl.fileName()); - m_helpId = QFileInfo(incl.fileName()).fileName(); - break; - } - } - } - if (m_helpEngineNeedsSetup && m_helpEngine->registeredDocumentations().count() > 0) { m_helpEngine->setupData(); m_helpEngineNeedsSetup = false; } - QMap helpLinks; + + if (m_toolTip.isEmpty()) { + foreach (const Document::Include &incl, doc->includes()) { + if (incl.line() == lineNumber) { + m_toolTip = QDir::toNativeSeparators(incl.fileName()); + m_helpId = QFileInfo(incl.fileName()).fileName(); + helpLinks = m_helpEngine->linksForIdentifier(m_helpId); + break; + } + } + } + if (m_helpId.isEmpty()) { // Move to the end of a qualified name bool stop = false; diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 8a3f2e150fe..76f522580c8 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -1078,8 +1078,11 @@ void DebuggerManager::startNewDebugger(const DebuggerStartParametersPtr &sp) const unsigned engineCapabilities = d->m_engine->debuggerCapabilities(); theDebuggerAction(OperateByInstruction) ->setEnabled(engineCapabilities & DisassemblerCapability); - d->m_actions.reverseDirectionAction - ->setEnabled(engineCapabilities & ReverseSteppingCapability); + + const bool canReverse = (engineCapabilities & ReverseSteppingCapability) + && theDebuggerBoolSetting(EnableReverseDebugging); + d->m_actions.reverseDirectionAction->setChecked(false); + d->m_actions.reverseDirectionAction->setEnabled(canReverse); } void DebuggerManager::startFailed() @@ -1101,6 +1104,7 @@ void DebuggerManager::cleanupViews() d->m_sourceFilesWindow->removeAll(); d->m_disassemblerViewAgent.cleanup(); d->m_actions.reverseDirectionAction->setChecked(false); + d->m_actions.reverseDirectionAction->setEnabled(false); hideDebuggerToolTip(); // FIXME: Move to plugin? diff --git a/src/plugins/debugger/debuggeroutputwindow.cpp b/src/plugins/debugger/debuggeroutputwindow.cpp index e65499686e2..df75bc9a4b8 100644 --- a/src/plugins/debugger/debuggeroutputwindow.cpp +++ b/src/plugins/debugger/debuggeroutputwindow.cpp @@ -335,6 +335,9 @@ public slots: QString needle2 = QLatin1Char('>') + needle; QTextCursor cursor(document()); do { + cursor = document()->find(needle, cursor); + if (cursor.isNull()) + break; // Not found. const QString line = cursor.block().text(); if (line.startsWith(needle) || line.startsWith(needle2)) { setFocus(); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 275771a22d5..0ef2503bc3a 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -1539,8 +1539,8 @@ void DebuggerPlugin::enableReverseDebuggingTriggered(const QVariant &value) { QTC_ASSERT(m_reverseToolButton, return); m_reverseToolButton->setVisible(value.toBool()); - if (!value.toBool()) - m_manager->debuggerManagerActions().reverseDirectionAction->setChecked(false); + m_manager->debuggerManagerActions().reverseDirectionAction->setChecked(false); + m_manager->debuggerManagerActions().reverseDirectionAction->setEnabled(value.toBool()); } void DebuggerPlugin::toggleBreakpoint() diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 309f1c656b3..c5fb4b3c76c 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1892,6 +1892,7 @@ void GdbEngine::executeStepI() void GdbEngine::executeStepOut() { QTC_ASSERT(state() == InferiorStopped, qDebug() << state()); + postCommand("-stack-select-frame 0"); setTokenBarrier(); setState(InferiorRunningRequested); showStatusMessage(tr("Finish function requested..."), 5000); diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp index 51e45335f0a..7ac31008452 100644 --- a/src/plugins/designer/formeditorw.cpp +++ b/src/plugins/designer/formeditorw.cpp @@ -281,6 +281,15 @@ void FormEditorW::fullInit() initDesignerSubWindows(); m_integration = new QtCreatorIntegration(m_formeditor, this); m_formeditor->setIntegration(m_integration); + // Connect Qt Designer help request to HelpManager. + // TODO: Use Core::HelpManager once it has been introduced. + foreach(QObject *object, ExtensionSystem::PluginManager::instance()->allObjects()) { + if (!qstrcmp(object->metaObject()->className(), "Help::HelpManager")) { + connect(m_integration, SIGNAL(creatorHelpRequested(QString)), + object, SLOT(handleHelpRequest(QString))); + break; + } + } /** * This will initialize our TabOrder, Signals and slots and Buddy editors. diff --git a/src/plugins/designer/formwindowfile.cpp b/src/plugins/designer/formwindowfile.cpp index ce5594e2fe9..e176010a7af 100644 --- a/src/plugins/designer/formwindowfile.cpp +++ b/src/plugins/designer/formwindowfile.cpp @@ -142,7 +142,9 @@ void FormWindowFile::reload(ReloadFlag flag, ChangeType type) if (type == TypePermissions) { emit changed(); } else { + emit aboutToReload(); emit reload(m_fileName); + emit reloaded(); } } diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp index 13182575d9c..18f5b19916e 100644 --- a/src/plugins/designer/qtcreatorintegration.cpp +++ b/src/plugins/designer/qtcreatorintegration.cpp @@ -94,6 +94,14 @@ QtCreatorIntegration::QtCreatorIntegration(QDesignerFormEditorInterface *core, F setSlotNavigationEnabled(true); connect(this, SIGNAL(navigateToSlot(QString, QString, QStringList)), this, SLOT(slotNavigateToSlot(QString, QString, QStringList))); + connect(this, SIGNAL(helpRequested(QString,QString)), + this, SLOT(slotDesignerHelpRequested(QString,QString))); +} + +void QtCreatorIntegration::slotDesignerHelpRequested(const QString &manual, const QString &document) +{ + // Pass on as URL. + emit creatorHelpRequested(QString::fromLatin1("qthelp://com.trolltech.%1/qdoc/%2").arg(manual, document)); } void QtCreatorIntegration::updateSelection() diff --git a/src/plugins/designer/qtcreatorintegration.h b/src/plugins/designer/qtcreatorintegration.h index 138858286fd..c667ea8504d 100644 --- a/src/plugins/designer/qtcreatorintegration.h +++ b/src/plugins/designer/qtcreatorintegration.h @@ -46,12 +46,18 @@ public: QWidget *containerWindow(QWidget *widget) const; - bool supportsToSlotNavigation() { return true; }; + bool supportsToSlotNavigation() { return true; } + +signals: + void creatorHelpRequested(const QString &url); public slots: void updateSelection(); + private slots: void slotNavigateToSlot(const QString &objectName, const QString &signalSignature, const QStringList ¶meterNames); + void slotDesignerHelpRequested(const QString &manual, const QString &document); + private: bool navigateToSlot(const QString &objectName, const QString &signalSignature, diff --git a/src/plugins/help/helpmanager.h b/src/plugins/help/helpmanager.h index 39f2c939ea1..18a36bcd08a 100644 --- a/src/plugins/help/helpmanager.h +++ b/src/plugins/help/helpmanager.h @@ -57,8 +57,6 @@ public: void setupGuiHelpEngine(); bool guiEngineNeedsUpdate() const; - void handleHelpRequest(const QString &url); - void verifyDocumenation(); void registerDocumentation(const QStringList &fileNames); void unregisterDocumentation(const QStringList &nameSpaces); @@ -69,6 +67,9 @@ public: static BookmarkManager& bookmarkManager(); +public slots: + void handleHelpRequest(const QString &url); + signals: void helpRequested(const QUrl &url); diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 58e942904ce..7f55ddd0d5c 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -852,8 +852,7 @@ void HelpPlugin::handleHelpRequest(const QUrl &url) // local help not installed, resort to external web help QString urlPrefix = QLatin1String("http://doc.trolltech.com/"); if (url.authority() == QLatin1String("com.nokia.qtcreator")) { - urlPrefix.append(QString::fromLatin1("qtcreator-%1.%2") - .arg(IDE_VERSION_MAJOR).arg(IDE_VERSION_MINOR)); + urlPrefix.append(QString::fromLatin1("qtcreator")); } else { urlPrefix.append(QLatin1String("latest")); } diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index 156d5ce9f8f..c8bbb792ed5 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -35,21 +35,28 @@ SUBDIRS = plugin_coreplugin \ plugin_mercurial \ debugger/dumper.pro -contains(QT_CONFIG, declarative) { +SUPPORT_QT_QML = $$(QTCREATOR_WITH_QML) - SUBDIRS += plugin_qmlprojectmanager +!isEmpty(SUPPORT_QT_QML) { + message("Adding support for Qt/QML projects.") + DEFINES += QTCREATOR_WITH_QML - include(private_headers.pri) - exists($${QT_PRIVATE_HEADERS}/QtDeclarative/private/qdeclarativecontext_p.h) { - SUBDIRS += plugin_qmldesigner \ - plugin_qmlinspector - } else { - warning() - warning("QmlDesigner and QmlInspector plugins have been disabled") - warning("The plugins depend on on private headers from QtDeclarative module.") - warning("To enable them, pass 'QT_PRIVATE_HEADERS=$QTDIR/include' to qmake, where $QTDIR is the source directory of qt.") - warning() - } + contains(QT_CONFIG, declarative) { + + SUBDIRS += plugin_qmlprojectmanager + + include(private_headers.pri) + exists($${QT_PRIVATE_HEADERS}/QtDeclarative/private/qdeclarativecontext_p.h) { + SUBDIRS += plugin_qmldesigner \ + plugin_qmlinspector + } else { + warning() + warning("QmlDesigner and QmlInspector plugins have been disabled") + warning("The plugins depend on on private headers from QtDeclarative module.") + warning("To enable them, pass 'QT_PRIVATE_HEADERS=$QTDIR/include' to qmake, where $QTDIR is the source directory of qt.") + warning() + } + } } plugin_coreplugin.subdir = coreplugin diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp index 4e0f19c4b56..ee55ff4edd9 100644 --- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp @@ -314,7 +314,7 @@ void DragTool::move(QPointF scenePos) /* if (event->modifiers().testFlag(Qt::ControlModifier) != view()->isSnapButtonChecked()) useSnapping = MoveManipulator::UseSnapping;*/ - m_moveManipulator.update(scenePos, useSnapping); + m_moveManipulator.update(scenePos, useSnapping, MoveManipulator::UseBaseState); } diff --git a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp index 0237c40ded1..9385ef83b73 100644 --- a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp @@ -148,7 +148,7 @@ FormEditorItem* ItemCreatorTool::calculateContainer(const QPointF &point) QList list = scene()->items(point); foreach (QGraphicsItem *item, list) { FormEditorItem *formEditorItem = FormEditorItem::fromQGraphicsItem(item); - if (formEditorItem && formEditorItem->isContainer()) + if (formEditorItem) return formEditorItem; } return 0; diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp index 80449c8778d..b318a3037f2 100644 --- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp +++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp @@ -200,7 +200,7 @@ QList MoveManipulator::tanslatedBoundingRects(const QList &bound /* /brief updates the position of the items. */ -void MoveManipulator::update(const QPointF& updatePoint, Snapping useSnapping) +void MoveManipulator::update(const QPointF& updatePoint, Snapping useSnapping, State stateToBeManipulated) { deleteSnapLines(); //Since they position is changed and the item is moved the snapping lines are //are obsolete. The new updated snapping lines (color and visibility) will be @@ -226,36 +226,41 @@ void MoveManipulator::update(const QPointF& updatePoint, Snapping useSnapping) foreach (FormEditorItem* item, m_itemList) { QPointF positionInContainerSpace(m_beginPositionHash.value(item) + offsetVector); - QmlAnchors anchors(item->qmlItemNode().anchors()); - if (anchors.instanceHasAnchor(AnchorLine::Top)) { - anchors.setMargin(AnchorLine::Top, m_beginTopMarginHash.value(item) + offsetVector.y()); + // don't support anchors for base state because it is not needed by the droptool + if (stateToBeManipulated == UseActualState) { + QmlAnchors anchors(item->qmlItemNode().anchors()); + + if (anchors.instanceHasAnchor(AnchorLine::Top)) { + anchors.setMargin(AnchorLine::Top, m_beginTopMarginHash.value(item) + offsetVector.y()); + } + + if (anchors.instanceHasAnchor(AnchorLine::Left)) { + anchors.setMargin(AnchorLine::Left, m_beginLeftMarginHash.value(item) + offsetVector.x()); + } + + if (anchors.instanceHasAnchor(AnchorLine::Bottom)) { + anchors.setMargin(AnchorLine::Bottom, m_beginBottomMarginHash.value(item) - offsetVector.y()); + } + + if (anchors.instanceHasAnchor(AnchorLine::Right)) { + anchors.setMargin(AnchorLine::Right, m_beginRightMarginHash.value(item) - offsetVector.x()); + } + + if (anchors.instanceHasAnchor(AnchorLine::HorizontalCenter)) { + anchors.setMargin(AnchorLine::HorizontalCenter, m_beginHorizontalCenterHash.value(item) + offsetVector.x()); + } + + if (anchors.instanceHasAnchor(AnchorLine::VerticalCenter)) { + anchors.setMargin(AnchorLine::VerticalCenter, m_beginVerticalCenterHash.value(item) + offsetVector.y()); + } + + item->qmlItemNode().setPosition(positionInContainerSpace); + } else { + item->qmlItemNode().modelNode().variantProperty("x").setValue(qRound(positionInContainerSpace.x())); + item->qmlItemNode().modelNode().variantProperty("y").setValue(qRound(positionInContainerSpace.y())); } - - if (anchors.instanceHasAnchor(AnchorLine::Left)) { - anchors.setMargin(AnchorLine::Left, m_beginLeftMarginHash.value(item) + offsetVector.x()); - } - - if (anchors.instanceHasAnchor(AnchorLine::Bottom)) { - anchors.setMargin(AnchorLine::Bottom, m_beginBottomMarginHash.value(item) - offsetVector.y()); - } - - if (anchors.instanceHasAnchor(AnchorLine::Right)) { - anchors.setMargin(AnchorLine::Right, m_beginRightMarginHash.value(item) - offsetVector.x()); - } - - if (anchors.instanceHasAnchor(AnchorLine::HorizontalCenter)) { - anchors.setMargin(AnchorLine::HorizontalCenter, m_beginHorizontalCenterHash.value(item) + offsetVector.x()); - } - - if (anchors.instanceHasAnchor(AnchorLine::VerticalCenter)) { - anchors.setMargin(AnchorLine::VerticalCenter, m_beginVerticalCenterHash.value(item) + offsetVector.y()); - } - - item->qmlItemNode().setPosition(positionInContainerSpace); } - - } } diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.h b/src/plugins/qmldesigner/components/formeditor/movemanipulator.h index eb6fb221ea6..976a4e71ac0 100644 --- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.h +++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.h @@ -57,13 +57,18 @@ public: NoSnapping }; + enum State { + UseActualState, + UseBaseState + }; + MoveManipulator(LayerItem *layerItem, FormEditorView *view); ~MoveManipulator(); void setItems(const QList &itemList); void setItem(FormEditorItem* item); void begin(const QPointF& beginPoint); - void update(const QPointF& updatePoint, Snapping useSnapping); + void update(const QPointF& updatePoint, Snapping useSnapping, State stateToBeManipulated = UseActualState); void reparentTo(FormEditorItem *newParent); void end(const QPointF& endPoint); diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.cpp b/src/plugins/qmldesigner/components/formeditor/movetool.cpp index 653c53bd93a..5d2aef73b25 100644 --- a/src/plugins/qmldesigner/components/formeditor/movetool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/movetool.cpp @@ -90,12 +90,12 @@ void MoveTool::mouseMoveEvent(const QList &itemList, m_resizeIndicator.hide(); FormEditorItem *containerItem = containerFormEditorItem(itemList, m_movingItems); - if (containerItem && - containerItem != m_movingItems.first()->parentItem() && - view()->currentState().isBaseState() && - !event->modifiers().testFlag(Qt::ShiftModifier)) { - - m_moveManipulator.reparentTo(containerItem); + if (containerItem + && view()->currentState().isBaseState()) { + if (containerItem != m_movingItems.first()->parentItem() + && event->modifiers().testFlag(Qt::ShiftModifier)) { + m_moveManipulator.reparentTo(containerItem); + } } bool shouldSnapping = view()->widget()->snappingAction()->isChecked(); @@ -313,9 +313,7 @@ FormEditorItem* MoveTool::containerFormEditorItem(const QList &i if (formEditorItem && !selectedItemList.contains(formEditorItem) && isNotAncestorOfItemInList(formEditorItem, selectedItemList)) - if (formEditorItem->isContainer()) { return formEditorItem; - } } diff --git a/src/plugins/qmldesigner/designercore/include/model.h b/src/plugins/qmldesigner/designercore/include/model.h index cd206cf97e8..641c1cd5744 100644 --- a/src/plugins/qmldesigner/designercore/include/model.h +++ b/src/plugins/qmldesigner/designercore/include/model.h @@ -78,7 +78,7 @@ public: virtual ~Model(); - static Model *create(QString type, int major = 4, int minor = 6); + static Model *create(QString type, int major = 4, int minor = 7); Model *masterModel() const; void setMasterModel(Model *model); diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp index a16740cda0e..e370dd396d3 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp @@ -68,14 +68,16 @@ public: void clear(); void initialize(); + void loadPlugins(QDeclarativeEngine *engine); void parseQmlTypes(); void parseNonQmlTypes(); void parseValueTypes(); - void parseNonQmlClassRecursively(const QMetaObject *qMetaObject, int majorVersion, int minorVersion); + void parseNonQmlClassRecursively(const QMetaObject *qMetaObject); void parseProperties(NodeMetaInfo &nodeMetaInfo, const QMetaObject *qMetaObject) const; void parseClassInfo(NodeMetaInfo &nodeMetaInfo, const QMetaObject *qMetaObject) const; - QString typeName(const QMetaObject *qMetaObject) const; + QList qmlTypes(); + void typeInfo(const QMetaObject *qMetaObject, QString *typeName, int *majorVersion = 0, int *minorVersion = 0) const; void parseXmlFiles(); @@ -112,6 +114,7 @@ void MetaInfoPrivate::initialize() QDeclarativeEngine engine; Q_UNUSED(engine); + loadPlugins(&engine); parseQmlTypes(); parseNonQmlTypes(); parseXmlFiles(); @@ -120,7 +123,26 @@ void MetaInfoPrivate::initialize() m_isInitialized = true; } +void MetaInfoPrivate::loadPlugins(QDeclarativeEngine *engine) +{ + // hack to load plugins + QDeclarativeComponent pluginComponent(engine, 0); + QStringList pluginList; + pluginList += "import Qt 4.7"; + pluginList += "import org.webkit 1.0"; + + // load maybe useful plugins + pluginList += "import Qt.labs.folderlistmodel 1.0"; + pluginList += "import Qt.labs.gestures 1.0"; + pluginList += "import Qt.multimedia 4.7"; + pluginList += "import Qt.labs.particles 1.0"; + + QString componentString = QString("%1\n Item {}\n").arg(pluginList.join("\n")); + + + pluginComponent.setData(componentString.toLatin1(), QUrl()); +} void MetaInfoPrivate::parseProperties(NodeMetaInfo &nodeMetaInfo, const QMetaObject *qMetaObject) const { @@ -187,48 +209,83 @@ void MetaInfoPrivate::parseClassInfo(NodeMetaInfo &nodeMetaInfo, const QMetaObje } } -void MetaInfoPrivate::parseNonQmlClassRecursively(const QMetaObject *qMetaObject, int majorVersion, int minorVersion) +void MetaInfoPrivate::parseNonQmlClassRecursively(const QMetaObject *qMetaObject) { Q_ASSERT_X(qMetaObject, Q_FUNC_INFO, "invalid QMetaObject"); - const QString className = qMetaObject->className(); - if (className.isEmpty()) { + QString typeName; + int majorVersion = -1; + int minorVersion = -1; + typeInfo(qMetaObject, &typeName, &majorVersion, &minorVersion); + + if (typeName.isEmpty()) { qWarning() << "Meta type system: Registered class has no name."; return; } - if (!m_q->hasNodeMetaInfo(typeName(qMetaObject), majorVersion, minorVersion)) { - NodeMetaInfo nodeMetaInfo(*m_q); - nodeMetaInfo.setType(typeName(qMetaObject), majorVersion, minorVersion); - parseProperties(nodeMetaInfo, qMetaObject); - parseClassInfo(nodeMetaInfo, qMetaObject); - - if (debug) - qDebug() << "adding non qml type" << nodeMetaInfo.typeName() << nodeMetaInfo.majorVersion() << nodeMetaInfo.minorVersion() << ", parent type" << typeName(qMetaObject->superClass()); - if (qMetaObject->superClass()) - nodeMetaInfo.setSuperClass(typeName(qMetaObject->superClass())); - - m_q->addNodeInfo(nodeMetaInfo); + NodeMetaInfo existingInfo = m_q->nodeMetaInfo(typeName, majorVersion, minorVersion); + if (existingInfo.isValid() + && existingInfo.majorVersion() == majorVersion + && existingInfo.minorVersion() == minorVersion) { + return; } - if (const QMetaObject *superClass = qMetaObject->superClass()) { - parseNonQmlClassRecursively(superClass, majorVersion, minorVersion); + NodeMetaInfo nodeMetaInfo(*m_q); + nodeMetaInfo.setType(typeName, majorVersion, minorVersion); + parseProperties(nodeMetaInfo, qMetaObject); + parseClassInfo(nodeMetaInfo, qMetaObject); + + QString superTypeName; + int superTypeMajorVersion = -1; + int superTypeMinorVersion = -1; + + if (qMetaObject->superClass()) { + typeInfo(qMetaObject->superClass(), &superTypeName, &superTypeMajorVersion, &superTypeMinorVersion); + nodeMetaInfo.setSuperClass(superTypeName, superTypeMajorVersion, superTypeMinorVersion); } + if (debug) + qDebug() << "adding non qml type" << nodeMetaInfo.typeName() << nodeMetaInfo.majorVersion() << nodeMetaInfo.minorVersion() + << ", parent type" << superTypeName << superTypeMajorVersion << superTypeMinorVersion; + + m_q->addNodeInfo(nodeMetaInfo); + + if (const QMetaObject *superClass = qMetaObject->superClass()) + parseNonQmlClassRecursively(superClass); } - -QString MetaInfoPrivate::typeName(const QMetaObject *qMetaObject) const +QList MetaInfoPrivate::qmlTypes() { - if (!qMetaObject) - return QString(); - QString className = qMetaObject->className(); - if (QDeclarativeType *qmlType = QDeclarativeMetaType::qmlType(qMetaObject)) { - QString qmlClassName(qmlType->qmlTypeName()); - if (!qmlClassName.isEmpty()) - className = qmlType->qmlTypeName(); // Ensure that we always use the qml name, - // if available. + QList list; + foreach (QDeclarativeType *type, QDeclarativeMetaType::qmlTypes()) { + if (!type->qmlTypeName().startsWith("Bauhaus/") + && !type->qmlTypeName().startsWith("QmlProject/")) + list += type; } - return className; + return list; +} + +void MetaInfoPrivate::typeInfo(const QMetaObject *qMetaObject, QString *typeName, int *majorVersion, int *minorVersion) const +{ + Q_ASSERT(typeName); + + if (!qMetaObject) + return; + + *typeName = qMetaObject->className(); + int majVersion = -1; + int minVersion = -1; + QDeclarativeType *qmlType = QDeclarativeMetaType::qmlType(qMetaObject); + if (qmlType) { + if (!qmlType->qmlTypeName().isEmpty()) { + *typeName = qmlType->qmlTypeName(); + majVersion = qmlType->majorVersion(); + minVersion = qmlType->minorVersion(); + } + } + if (majorVersion) + *majorVersion = majVersion; + if (minorVersion) + *minorVersion = minVersion; } void MetaInfoPrivate::parseValueTypes() @@ -291,12 +348,12 @@ void MetaInfoPrivate::parseValueTypes() void MetaInfoPrivate::parseQmlTypes() { - foreach (QDeclarativeType *qmlType, QDeclarativeMetaType::qmlTypes()) { + foreach (QDeclarativeType *qmlType, qmlTypes()) { const QString qtTypeName(qmlType->typeName()); const QString qmlTypeName(qmlType->qmlTypeName()); m_QtTypesToQmlTypes.insert(qtTypeName, qmlTypeName); } - foreach (QDeclarativeType *qmlType, QDeclarativeMetaType::qmlTypes()) { + foreach (QDeclarativeType *qmlType, qmlTypes()) { const QMetaObject *qMetaObject = qmlType->metaObject(); // parseQmlTypes is called iteratively e.g. when plugins are loaded @@ -307,32 +364,42 @@ void MetaInfoPrivate::parseQmlTypes() nodeMetaInfo.setType(qmlType->qmlTypeName(), qmlType->majorVersion(), qmlType->minorVersion()); parseProperties(nodeMetaInfo, qMetaObject); - parseClassInfo(nodeMetaInfo, qMetaObject); - - QString superTypeName = typeName(qMetaObject->superClass()); if (qmlType->baseMetaObject() != qMetaObject) { // type is declared with Q_DECLARE_EXTENDED_TYPE - // also parse properties of original type parseProperties(nodeMetaInfo, qmlType->baseMetaObject()); - superTypeName = typeName(qmlType->baseMetaObject()->superClass()); } - nodeMetaInfo.setSuperClass(superTypeName); + parseClassInfo(nodeMetaInfo, qMetaObject); + + QString superTypeName; + int superTypeMajorVersion = -1; + int superTypeMinorVersion = -1; + if (const QMetaObject *superClassObject = qmlType->baseMetaObject()->superClass()) + typeInfo(superClassObject, &superTypeName, &superTypeMajorVersion, &superTypeMinorVersion); + + if (!superTypeName.isEmpty()) + nodeMetaInfo.setSuperClass(superTypeName, superTypeMajorVersion, superTypeMinorVersion); + + if (debug) { + qDebug() << "adding qml type" << nodeMetaInfo.typeName() << nodeMetaInfo.majorVersion() << nodeMetaInfo.minorVersion() + << ", super class" << superTypeName << superTypeMajorVersion << superTypeMinorVersion; + } - if (debug) - qDebug() << "adding qml type" << nodeMetaInfo.typeName() << nodeMetaInfo.majorVersion() << nodeMetaInfo.minorVersion() << "super class" << superTypeName; m_q->addNodeInfo(nodeMetaInfo); } } void MetaInfoPrivate::parseNonQmlTypes() { - foreach (QDeclarativeType *qmlType, QDeclarativeMetaType::qmlTypes()) { - if (!qmlType->qmlTypeName().contains("Bauhaus")) - parseNonQmlClassRecursively(qmlType->metaObject(), qmlType->majorVersion(), qmlType->minorVersion()); + foreach (QDeclarativeType *qmlType, qmlTypes()) { + if (qmlType->qmlTypeName().startsWith("Bauhaus/") + || qmlType->qmlTypeName().startsWith("QmlProject/")) + continue; + if (qmlType->metaObject()->superClass()) + parseNonQmlClassRecursively(qmlType->metaObject()->superClass()); } - parseNonQmlClassRecursively(&QDeclarativeAnchors::staticMetaObject, -1, -1); + parseNonQmlClassRecursively(&QDeclarativeAnchors::staticMetaObject); } @@ -417,12 +484,14 @@ MetaInfo& MetaInfo::operator=(const MetaInfo &other) bool MetaInfo::hasNodeMetaInfo(const QString &typeName, int majorVersion, int minorVersion) const { foreach (const NodeMetaInfo &info, m_p->m_nodeMetaInfoHash.values(typeName)) { - if (info.availableInVersion(majorVersion, minorVersion)) { + if (info.availableInVersion(majorVersion, minorVersion)) { { return true; } + } } if (!isGlobal()) return global().hasNodeMetaInfo(typeName); + return false; } @@ -431,16 +500,21 @@ bool MetaInfo::hasNodeMetaInfo(const QString &typeName, int majorVersion, int mi */ NodeMetaInfo MetaInfo::nodeMetaInfo(const QString &typeName, int majorVersion, int minorVersion) const { + NodeMetaInfo returnInfo; foreach (const NodeMetaInfo &info, m_p->m_nodeMetaInfoHash.values(typeName)) { - // todo: The order for different types for different versions is random here. if (info.availableInVersion(majorVersion, minorVersion)) { - return info; + if (!returnInfo.isValid() + || returnInfo.majorVersion() < info.majorVersion() + || (returnInfo.majorVersion() == info.minorVersion() + && returnInfo.minorVersion() < info.minorVersion())) + returnInfo = info; } } - if (!isGlobal()) + if (!returnInfo.isValid() + && !isGlobal()) return global().nodeMetaInfo(typeName); - return NodeMetaInfo(); + return returnInfo; } QString MetaInfo::fromQtTypes(const QString &type) const diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index d3590ce0258..cf5dd941500 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -210,12 +210,13 @@ public: int &minorVersion, QString &defaultPropertyName) { const Interpreter::ObjectValue *value = m_context->lookupType(m_doc.data(), astTypeNode); + defaultPropertyName = m_context->defaultPropertyName(value); + const Interpreter::QmlObjectValue * qmlValue = dynamic_cast(value); if (qmlValue) { typeName = qmlValue->packageName() + QLatin1String("/") + qmlValue->className(); majorVersion = qmlValue->majorVersion(); minorVersion = qmlValue->minorVersion(); - defaultPropertyName = qmlValue->defaultPropertyName(); } else if (value) { for (UiQualifiedId *iter = astTypeNode; iter; iter = iter->next) if (!iter->next && iter->name) diff --git a/src/plugins/qmlprojectmanager/fileformat/filesystemwatcher.cpp b/src/plugins/qmlprojectmanager/fileformat/filesystemwatcher.cpp index 1f898ff48f5..eb4b79f1a83 100644 --- a/src/plugins/qmlprojectmanager/fileformat/filesystemwatcher.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/filesystemwatcher.cpp @@ -72,6 +72,19 @@ void FileSystemWatcher::addFile(const QString &file) addFiles(QStringList(file)); } + +#ifdef Q_OS_MAC + +// Returns upper limit of file handles that can be opened by this process at once. Exceeding it will probably result in crashes! +static rlim_t getFileLimit() +{ + struct rlimit rl; + getrlimit(RLIMIT_NOFILE, &rl); + return rl.rlim_cur; +} + +#endif + void FileSystemWatcher::addFiles(const QStringList &files) { QStringList toAdd; @@ -84,6 +97,17 @@ void FileSystemWatcher::addFiles(const QStringList &files) qWarning() << "FileSystemWatcher: File" << file << "is already being watched"; continue; } + +#ifdef Q_OS_MAC + static rlim_t maxFileOpen = getFileLimit(); + // We're potentially watching a _lot_ of directories. This might crash qtcreator when we hit the upper limit. + // Heuristic is therefore: Don't use more than half of the file handles available in this watcher + if ((rlim_t)m_directories.size() + (rlim_t)m_files.size() > maxFileOpen / 2) { + qWarning() << "File" << file << "is not watched: Too many file handles are already open (max is" << maxFileOpen; + break; + } +#endif + m_files.append(file); const int count = ++m_fileCount[file]; @@ -149,6 +173,17 @@ void FileSystemWatcher::addDirectories(const QStringList &directories) qWarning() << "Directory" << directory << "is already being watched"; continue; } + +#ifdef Q_OS_MAC + static rlim_t maxFileOpen = getFileLimit(); + // We're potentially watching a _lot_ of directories. This might crash qtcreator when we hit the upper limit. + // Heuristic is therefore: Don't use more than half of the file handles available in this watcher + if ((rlim_t)m_directories.size() + (rlim_t)m_files.size() > maxFileOpen / 2) { + qWarning() << "Directory" << directory << "is not watched: Too many file handles are already open (max is" << maxFileOpen; + break; + } +#endif + m_directories.append(directory); const int count = ++m_directoryCount[directory]; diff --git a/src/plugins/qt4projectmanager/Qt4ProjectManager.mimetypes.xml b/src/plugins/qt4projectmanager/Qt4ProjectManager.mimetypes.xml index eb444a0e409..1730d1ffc0c 100644 --- a/src/plugins/qt4projectmanager/Qt4ProjectManager.mimetypes.xml +++ b/src/plugins/qt4projectmanager/Qt4ProjectManager.mimetypes.xml @@ -10,6 +10,11 @@ Qt Project include file + + + Qt Project feature file + + message catalog diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp index 58a25be5238..b08bb5ba392 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp @@ -66,16 +66,27 @@ GettingStartedWelcomePageWidget::GettingStartedWelcomePageWidget(QWidget *parent ui(new Ui::GettingStartedWelcomePageWidget) { ui->setupUi(this); + +#ifndef QTCREATOR_WITH_QML + ui->demosExamplesFrameQml->hide(); +#endif + ui->didYouKnowTextBrowser->viewport()->setAutoFillBackground(false); connect(ui->tutorialTreeWidget, SIGNAL(activated(QString)), SLOT(slotOpenHelpPage(const QString&))); ui->tutorialTreeWidget->addItem(tr("The Qt Creator User Interface"), QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-quick-tour.html")); + ui->tutorialTreeWidget->addItem(tr("Building and Running an Example"), + QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-build-example-application.html?view=split")); ui->tutorialTreeWidget->addItem(tr("Creating a Qt C++ Application"), QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-writing-program.html?view=split")); + ui->tutorialTreeWidget->addItem(tr("Creating a Mobile Application"), + QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-mobile-example?view=split")); +#ifdef QTCREATOR_WITH_QML ui->tutorialTreeWidget->addItem(tr("Creating a Qt Quick Application"), QLatin1String("qthelp://com.nokia.qtcreator/doc/creator-qml-application.html?view=split")); +#endif srand(QDateTime::currentDateTime().toTime_t()); QStringList tips = tipsOfTheDay(); @@ -175,8 +186,6 @@ void GettingStartedWelcomePageWidget::updateQmlExamples(const QString &examplePa const QString &sourcePath) { ui->qmlExamplesButton->setText(tr("Choose an example...")); - QMenu *menu = new QMenu(ui->qmlExamplesButton); - ui->qmlExamplesButton->setMenu(menu); QStringList roots; roots << (examplePath + QLatin1String("/declarative")) @@ -197,14 +206,20 @@ void GettingStartedWelcomePageWidget::updateQmlExamples(const QString &examplePa 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); + + if (!exampleProjects.isEmpty()) { + QMenu *menu = new QMenu(ui->qmlExamplesButton); + ui->qmlExamplesButton->setMenu(menu); + + 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()); @@ -380,15 +395,11 @@ QStringList GettingStartedWelcomePageWidget::tipsOfTheDay() tr("Ctrl", "Shortcut key"); #endif - - tips.append(tr("You can switch between Qt Creator's modes using Ctrl+number:
    " - "
  • 1 - Welcome
  • 2 - Edit
  • 3 - Debug
  • 4 - Projects
  • 5 - Help
")); //:%1 gets replaced by Alt (Win/Unix) or Cmd (Mac) tips.append(tr("You can show and hide the side bar using %1+0.").arg(altShortcut)); tips.append(tr("You can fine tune the Find function by selecting "Whole Words" " "or "Case Sensitive". Simply click on the icons on the right end of the line edit.")); - tips.append(tr("If you add external libraries, Qt Creator will automatically offer syntax highlighting " + tips.append(tr("If you add external libraries to your project, Qt Creator will automatically offer syntax highlighting " "and code completion.")); tips.append(tr("The code completion is CamelCase-aware. For example, to complete namespaceUri " "you can just type nU and hit Ctrl+Space.")); @@ -403,9 +414,9 @@ QStringList GettingStartedWelcomePageWidget::tipsOfTheDay() tips.append(tr("You can quickly search methods, classes, help and more using the " "Locator bar (%1+K).").arg(ctrlShortcut)); tips.append(tr("You can add custom build steps in the " - "build settings.")); + "build settings.")); tips.append(tr("Within a session, you can add " - "dependencies between projects.")); + "dependencies between projects.")); tips.append(tr("You can set the preferred editor encoding for every project in Projects -> Editor Settings -> Default Encoding.")); tips.append(tr("You can use Qt Creator with a number of " "revision control systems such as Subversion, Perforce, CVS and Git.")); diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui index 9f03d493557..833f644622a 100644 --- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui +++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.ui @@ -119,7 +119,7 @@ - + 0 @@ -137,7 +137,7 @@ - + Explore Qt Quick Examples diff --git a/src/plugins/qt4projectmanager/profileeditorfactory.cpp b/src/plugins/qt4projectmanager/profileeditorfactory.cpp index d4937b98318..0fabec8677b 100644 --- a/src/plugins/qt4projectmanager/profileeditorfactory.cpp +++ b/src/plugins/qt4projectmanager/profileeditorfactory.cpp @@ -47,7 +47,8 @@ using namespace Qt4ProjectManager::Internal; ProFileEditorFactory::ProFileEditorFactory(Qt4Manager *manager, TextEditor::TextEditorActionHandler *handler) : m_mimeTypes(QStringList() << QLatin1String(Qt4ProjectManager::Constants::PROFILE_MIMETYPE) - << QLatin1String(Qt4ProjectManager::Constants::PROINCLUDEFILE_MIMETYPE)), + << QLatin1String(Qt4ProjectManager::Constants::PROINCLUDEFILE_MIMETYPE) + << QLatin1String(Qt4ProjectManager::Constants::PROFEATUREFILE_MIMETYPE)), m_manager(manager), m_actionHandler(handler) { @@ -56,6 +57,8 @@ ProFileEditorFactory::ProFileEditorFactory(Qt4Manager *manager, TextEditor::Text QLatin1String("pro")); iconProvider->registerIconOverlayForSuffix(QIcon(":/qt4projectmanager/images/qt_project.png"), QLatin1String("pri")); + iconProvider->registerIconOverlayForSuffix(QIcon(":/qt4projectmanager/images/qt_project.png"), + QLatin1String("prf")); } ProFileEditorFactory::~ProFileEditorFactory() diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h index 6ad65dc56cb..ae4df4907de 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h +++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h @@ -48,6 +48,7 @@ const char * const PROFILE_EDITOR_ID = "Qt4.proFileEditor"; const char * const PROFILE_EDITOR_DISPLAY_NAME = QT_TRANSLATE_NOOP("OpenWith::Editors", ".pro File Editor"); const char * const PROFILE_MIMETYPE = "application/vnd.nokia.qt.qmakeprofile"; const char * const PROINCLUDEFILE_MIMETYPE = "application/vnd.nokia.qt.qmakeproincludefile"; +const char * const PROFEATUREFILE_MIMETYPE = "application/vnd.nokia.qt.qmakeprofeaturefile"; const char * const CPP_SOURCE_MIMETYPE = "text/x-c++src"; const char * const CPP_HEADER_MIMETYPE = "text/x-c++hdr"; const char * const FORM_MIMETYPE = "application/x-designer"; diff --git a/src/plugins/resourceeditor/resourceeditorw.cpp b/src/plugins/resourceeditor/resourceeditorw.cpp index 5ac8bd97e63..9977bd8660a 100644 --- a/src/plugins/resourceeditor/resourceeditorw.cpp +++ b/src/plugins/resourceeditor/resourceeditorw.cpp @@ -209,7 +209,9 @@ void ResourceEditorFile::reload(ReloadFlag flag, ChangeType type) if (type == TypePermissions) { emit changed(); } else { - m_parent->open(m_parent->m_resourceEditor->fileName()); + emit aboutToReload(); + if (m_parent->open(m_parent->m_resourceEditor->fileName())) + emit reloaded(); } } diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp index 25406e98e06..be2214d7fca 100644 --- a/src/plugins/texteditor/basetextdocument.cpp +++ b/src/plugins/texteditor/basetextdocument.cpp @@ -132,7 +132,7 @@ BaseTextDocument::BaseTextDocument() m_fileIsReadOnly = false; m_isBinaryData = false; m_codec = QTextCodec::codecForLocale(); - QSettings* settings = Core::ICore::instance()->settings(); + QSettings *settings = Core::ICore::instance()->settings(); if (QTextCodec *candidate = QTextCodec::codecForName( settings->value(QLatin1String("General/DefaultFileEncoding")).toByteArray())) m_codec = candidate; @@ -142,12 +142,8 @@ BaseTextDocument::BaseTextDocument() BaseTextDocument::~BaseTextDocument() { - QTextBlock block = m_document->begin(); - while (block.isValid()) { - if (TextBlockUserData *data = static_cast(block.userData())) - data->documentClosing(); - block = block.next(); - } + documentClosing(); + delete m_document; m_document = 0; } @@ -332,6 +328,8 @@ void BaseTextDocument::reload(QTextCodec *codec) void BaseTextDocument::reload() { emit aboutToReload(); + documentClosing(); // removes text marks non-permanently + if (open(m_fileName)) emit reloaded(); } @@ -381,9 +379,8 @@ void BaseTextDocument::cleanWhitespace(const QTextCursor &cursor) copyCursor.endEditBlock(); } -void BaseTextDocument::cleanWhitespace(QTextCursor& cursor, bool cleanIndentation, bool inEntireDocument) +void BaseTextDocument::cleanWhitespace(QTextCursor &cursor, bool cleanIndentation, bool inEntireDocument) { - BaseTextDocumentLayout *documentLayout = qobject_cast(m_document->documentLayout()); QTextBlock block = m_document->findBlock(cursor.selectionStart()); @@ -431,3 +428,13 @@ void BaseTextDocument::ensureFinalNewLine(QTextCursor& cursor) cursor.insertText(QLatin1String("\n")); } } + +void BaseTextDocument::documentClosing() +{ + QTextBlock block = m_document->begin(); + while (block.isValid()) { + if (TextBlockUserData *data = static_cast(block.userData())) + data->documentClosing(); + block = block.next(); + } +} diff --git a/src/plugins/texteditor/basetextdocument.h b/src/plugins/texteditor/basetextdocument.h index 07f32b7c25b..7447d8167d5 100644 --- a/src/plugins/texteditor/basetextdocument.h +++ b/src/plugins/texteditor/basetextdocument.h @@ -76,7 +76,7 @@ public: inline const StorageSettings &storageSettings() const { return m_storageSettings; } inline const TabSettings &tabSettings() const { return m_tabSettings; } - DocumentMarker *documentMarker() const {return m_documentMarker; } + DocumentMarker *documentMarker() const { return m_documentMarker; } //IFile virtual bool save(const QString &fileName = QString()); @@ -117,8 +117,6 @@ public: signals: void titleChanged(QString title); - void aboutToReload(); - void reloaded(); private: QString m_fileName; @@ -151,6 +149,7 @@ private: void cleanWhitespace(QTextCursor& cursor, bool cleanIndentation, bool inEntireDocument); void ensureFinalNewLine(QTextCursor& cursor); + void documentClosing(); }; } // namespace TextEditor diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 681653a6b5d..71a78dd3a8c 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -2015,8 +2015,8 @@ QTextBlock BaseTextEditor::foldedBlockAt(const QPoint &pos, QRect *box) const { QPointF offset(contentOffset()); QTextBlock block = firstVisibleBlock(); - int top = (int)blockBoundingGeometry(block).translated(offset).top(); - int bottom = top + (int)blockBoundingRect(block).height(); + qreal top = blockBoundingGeometry(block).translated(offset).top(); + qreal bottom = top + blockBoundingRect(block).height(); int viewportHeight = viewport()->height(); @@ -2050,7 +2050,7 @@ QTextBlock BaseTextEditor::foldedBlockAt(const QPoint &pos, QRect *box) const block = nextBlock; top = bottom; - bottom = top + (int)blockBoundingRect(block).height(); + bottom = top + blockBoundingRect(block).height(); } return QTextBlock(); } @@ -2283,8 +2283,6 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) QRect er = e->rect(); QRect viewportRect = viewport()->rect(); - const QColor baseColor = palette().base().color(); - qreal lineX = 0; if (d->m_visibleWrapColumn > 0) { @@ -2318,6 +2316,8 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) QAbstractTextDocumentLayout::PaintContext context = getPaintContext(); if (!d->m_highlightBlocksInfo.isEmpty()) { + const QColor baseColor = palette().base().color(); + // extra pass for the block highlight const int margin = 5; @@ -2345,7 +2345,6 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) int vi = i > 0 ? d->m_highlightBlocksInfo.visualIndent.at(i-1) : 0; painter.fillRect(rr.adjusted(vi, 0, -8*i, 0), calcBlendColor(baseColor, i, count)); } - } offsetFP.ry() += r.height(); @@ -2610,8 +2609,8 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) offset = contentOffset(); block = firstVisibleBlock(); - int top = (int)blockBoundingGeometry(block).translated(offset).top(); - int bottom = top + (int)blockBoundingRect(block).height(); + qreal top = blockBoundingGeometry(block).translated(offset).top(); + qreal bottom = top + blockBoundingRect(block).height(); QTextCursor cursor = textCursor(); bool hasSelection = cursor.hasSelection(); @@ -2642,8 +2641,9 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) QTextLine line = layout->lineAt(i); QRectF lineRect = line.naturalTextRect().translated(offset.x(), top); QChar visualArrow((ushort)0x21b5); - painter.drawText(static_cast(lineRect.right()), - static_cast(lineRect.top() + line.ascent()), visualArrow); + painter.drawText(QPointF(lineRect.right(), + lineRect.top() + line.ascent()), + visualArrow); } if (!nextBlock.isValid()) { // paint EOF symbol QTextLine line = layout->lineAt(lineCount-1); @@ -2724,55 +2724,7 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) block = nextVisibleBlock; top = bottom; - bottom = top + (int)blockBoundingRect(block).height(); - } - - if (visibleCollapsedBlock.isValid() ) { - int margin = doc->documentMargin(); - qreal maxWidth = 0; - qreal blockHeight = 0; - QTextBlock b = visibleCollapsedBlock; - - while (!b.isVisible()) { - b.setVisible(true); // make sure block bounding rect works - QRectF r = blockBoundingRect(b).translated(visibleCollapsedBlockOffset); - - QTextLayout *layout = b.layout(); - for (int i = layout->lineCount()-1; i >= 0; --i) - maxWidth = qMax(maxWidth, layout->lineAt(i).naturalTextWidth() + 2*margin); - - blockHeight += r.height(); - - b.setVisible(false); // restore previous state - b.setLineCount(0); // restore 0 line count for invisible block - b = b.next(); - } - - painter.save(); - painter.setRenderHint(QPainter::Antialiasing, true); - painter.translate(.5, .5); - QBrush brush = baseColor; - if (d->m_ifdefedOutFormat.hasProperty(QTextFormat::BackgroundBrush)) - brush = d->m_ifdefedOutFormat.background(); - painter.setBrush(brush); - painter.drawRoundedRect(QRectF(visibleCollapsedBlockOffset.x(), - visibleCollapsedBlockOffset.y(), - maxWidth, blockHeight).adjusted(0, 0, 0, 0), 3, 3); - painter.restore(); - - QTextBlock end = b; - b = visibleCollapsedBlock; - while (b != end) { - b.setVisible(true); // make sure block bounding rect works - QRectF r = blockBoundingRect(b).translated(visibleCollapsedBlockOffset); - QTextLayout *layout = b.layout(); - QVector selections; - layout->draw(&painter, visibleCollapsedBlockOffset, selections, er); - - b.setVisible(false); // restore previous state - visibleCollapsedBlockOffset.ry() += r.height(); - b = b.next(); - } + bottom = top + blockBoundingRect(block).height(); } if (d->m_animator && d->m_animator->isRunning()) { @@ -2798,6 +2750,64 @@ void BaseTextEditor::paintEvent(QPaintEvent *e) cursor_layout->drawCursor(&painter, cursor_offset, cursor_cpos, cursorWidth()); } + if (visibleCollapsedBlock.isValid()) { + drawCollapsedBlockPopup(painter, + visibleCollapsedBlock, + visibleCollapsedBlockOffset, + er); + } +} + +void BaseTextEditor::drawCollapsedBlockPopup(QPainter &painter, + const QTextBlock &block, + QPointF offset, + const QRect &clip) +{ + int margin = block.document()->documentMargin(); + qreal maxWidth = 0; + qreal blockHeight = 0; + QTextBlock b = block; + + while (!b.isVisible()) { + b.setVisible(true); // make sure block bounding rect works + QRectF r = blockBoundingRect(b).translated(offset); + + QTextLayout *layout = b.layout(); + for (int i = layout->lineCount()-1; i >= 0; --i) + maxWidth = qMax(maxWidth, layout->lineAt(i).naturalTextWidth() + 2*margin); + + blockHeight += r.height(); + + b.setVisible(false); // restore previous state + b.setLineCount(0); // restore 0 line count for invisible block + b = b.next(); + } + + painter.save(); + painter.setRenderHint(QPainter::Antialiasing, true); + painter.translate(.5, .5); + QBrush brush = palette().base(); + if (d->m_ifdefedOutFormat.hasProperty(QTextFormat::BackgroundBrush)) + brush = d->m_ifdefedOutFormat.background(); + painter.setBrush(brush); + painter.drawRoundedRect(QRectF(offset.x(), + offset.y(), + maxWidth, blockHeight).adjusted(0, 0, 0, 0), 3, 3); + painter.restore(); + + QTextBlock end = b; + b = block; + while (b != end) { + b.setVisible(true); // make sure block bounding rect works + QRectF r = blockBoundingRect(b).translated(offset); + QTextLayout *layout = b.layout(); + QVector selections; + layout->draw(&painter, offset, selections, clip); + + b.setVisible(false); // restore previous state + offset.ry() += r.height(); + b = b.next(); + } } QWidget *BaseTextEditor::extraArea() const @@ -2898,7 +2908,6 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e) int selStart = textCursor().selectionStart(); int selEnd = textCursor().selectionEnd(); - const QColor baseColor = palette().base().color(); QPalette pal = d->m_extraArea->palette(); pal.setCurrentColorGroup(QPalette::Active); QPainter painter(d->m_extraArea); @@ -2924,7 +2933,8 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e) while (block.isValid() && top <= e->rect().bottom()) { top = bottom; - bottom = top + blockBoundingRect(block).height(); + const qreal height = blockBoundingRect(block).height(); + bottom = top + height; QTextBlock nextBlock = block.next(); QTextBlock nextVisibleBlock = nextBlock; @@ -3056,7 +3066,7 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e) painter.setFont(f); painter.setPen(d->m_currentLineNumberFormat.foreground().color()); } - painter.drawText(markWidth, top, extraAreaWidth - markWidth - 4, fm.height(), Qt::AlignRight, number); + painter.drawText(QRectF(markWidth, top, extraAreaWidth - markWidth - 4, height), Qt::AlignRight, number); if (selected) painter.restore(); } @@ -3497,7 +3507,7 @@ void BaseTextEditor::extraAreaMouseEvent(QMouseEvent *e) toggleBlockVisible(c); d->moveCursorVisible(false); } - } else if (d->m_lineNumbersVisible && e->pos().x() > markWidth) { + } else if (e->pos().x() > markWidth) { QTextCursor selection = cursor; selection.setVisualNavigation(true); d->extraAreaSelectionAnchorBlockNumber = selection.blockNumber(); diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index 1f2afc97ab6..20a84836995 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -492,6 +492,11 @@ private: bool active, bool hovered) const; + void drawCollapsedBlockPopup(QPainter &painter, + const QTextBlock &block, + QPointF offset, + const QRect &clip); + void toggleBlockVisible(const QTextBlock &block); QRect foldBox(); diff --git a/src/plugins/texteditor/basetextmark.cpp b/src/plugins/texteditor/basetextmark.cpp index 17b238b6418..fb425cb8906 100644 --- a/src/plugins/texteditor/basetextmark.cpp +++ b/src/plugins/texteditor/basetextmark.cpp @@ -29,6 +29,8 @@ #include "basetextmark.h" +#include "basetextdocument.h" + #include #include @@ -37,18 +39,25 @@ using namespace TextEditor; using namespace TextEditor::Internal; -BaseTextMark::BaseTextMark() - : m_markableInterface(0), m_internalMark(0), m_init(false) -{ -} - BaseTextMark::BaseTextMark(const QString &filename, int line) - : m_markableInterface(0), m_internalMark(0), m_fileName(filename), m_line(line), m_init(false) + : m_markableInterface(0) + , m_internalMark(0) + , m_fileName(filename) + , m_line(line) + , m_init(false) { // Why is this? QTimer::singleShot(0, this, SLOT(init())); } +BaseTextMark::~BaseTextMark() +{ + // oha we are deleted + if (m_markableInterface) + m_markableInterface->removeMark(m_internalMark); + removeInternalMark(); +} + void BaseTextMark::init() { m_init = true; @@ -73,39 +82,49 @@ void BaseTextMark::editorOpened(Core::IEditor *editor) m_markableInterface = textEditor->markableInterface(); m_internalMark = new InternalMark(this); - if (!m_markableInterface->addMark(m_internalMark, m_line)) { - delete m_internalMark; - m_internalMark = 0; - m_markableInterface = 0; + if (m_markableInterface->addMark(m_internalMark, m_line)) { + // Handle reload of text documents, readding the mark as necessary + connect(textEditor->file(), SIGNAL(reloaded()), + this, SLOT(documentReloaded()), Qt::UniqueConnection); + } else { + removeInternalMark(); } } } } +void BaseTextMark::documentReloaded() +{ + if (m_markableInterface) + return; + + BaseTextDocument *doc = qobject_cast(sender()); + if (!doc) + return; + + m_markableInterface = doc->documentMarker(); + m_internalMark = new InternalMark(this); + + if (!m_markableInterface->addMark(m_internalMark, m_line)) + removeInternalMark(); +} + void BaseTextMark::childRemovedFromEditor(InternalMark *mark) { Q_UNUSED(mark) // m_internalMark was removed from the editor - delete m_internalMark; - m_markableInterface = 0; - m_internalMark = 0; + removeInternalMark(); removedFromEditor(); } void BaseTextMark::documentClosingFor(InternalMark *mark) { Q_UNUSED(mark) - // the document is closing - delete m_internalMark; - m_markableInterface = 0; - m_internalMark = 0; + removeInternalMark(); } -BaseTextMark::~BaseTextMark() +void BaseTextMark::removeInternalMark() { - // oha we are deleted - if (m_markableInterface) - m_markableInterface->removeMark(m_internalMark); delete m_internalMark; m_internalMark = 0; m_markableInterface = 0; @@ -128,13 +147,10 @@ void BaseTextMark::moveMark(const QString & /* filename */, int /* line */) m_init = true; } - if (m_markableInterface) m_markableInterface->removeMark(m_internalMark); - m_markableInterface = 0; - // This is only necessary since m_internalMark is created in ediorOpened - delete m_internalMark; - m_internalMark = 0; + // This is only necessary since m_internalMark is created in editorOpened + removeInternalMark(); foreach (Core::IEditor *editor, em->openedEditors()) editorOpened(editor); diff --git a/src/plugins/texteditor/basetextmark.h b/src/plugins/texteditor/basetextmark.h index 244dd0009d4..ad40b7571f5 100644 --- a/src/plugins/texteditor/basetextmark.h +++ b/src/plugins/texteditor/basetextmark.h @@ -45,8 +45,8 @@ class TEXTEDITOR_EXPORT BaseTextMark : public QObject { friend class Internal::InternalMark; Q_OBJECT + public: - BaseTextMark(); BaseTextMark(const QString &filename, int line); ~BaseTextMark(); @@ -69,12 +69,16 @@ public: int lineNumber() const { return m_line; } void moveMark(const QString &filename, int line); + private slots: - void editorOpened(Core::IEditor *editor); void init(); + void editorOpened(Core::IEditor *editor); + void documentReloaded(); + private: void childRemovedFromEditor(Internal::InternalMark *mark); void documentClosingFor(Internal::InternalMark *mark); + void removeInternalMark(); ITextMarkable *m_markableInterface; Internal::InternalMark *m_internalMark; diff --git a/src/plugins/texteditor/completionwidget.cpp b/src/plugins/texteditor/completionwidget.cpp index 031ddbe39c6..c8a6eae08a4 100644 --- a/src/plugins/texteditor/completionwidget.cpp +++ b/src/plugins/texteditor/completionwidget.cpp @@ -334,6 +334,8 @@ bool CompletionListView::event(QEvent *e) } #endif m_completionWidget->closeList(index); + if (m_infoFrame) + m_infoFrame->close(); return true; } else if (e->type() == QEvent::ShortcutOverride) { QKeyEvent *ke = static_cast(e); diff --git a/src/tools/qml/qmldump/main.cpp b/src/tools/qml/qmldump/main.cpp index a8d1fd6b1d0..4ff4114cf06 100644 --- a/src/tools/qml/qmldump/main.cpp +++ b/src/tools/qml/qmldump/main.cpp @@ -257,9 +257,9 @@ int main(int argc, char *argv[]) { QByteArray code; code += "import Qt 4.7;\n"; - code += "import Qt.widgets 4.7;\n"; - code += "import Qt.multimedia 1.0;\n"; code += "import Qt.labs.particles 4.7;\n"; + code += "import Qt.labs.gestures 4.7;\n"; + code += "import Qt.labs.folderlistmodel 4.7;\n"; code += "import org.webkit 1.0;\n"; code += "Item {}"; QDeclarativeComponent c(engine); @@ -313,9 +313,9 @@ int main(int argc, char *argv[]) QByteArray code; code += "import Qt 4.7;\n"; - code += "import Qt.widgets 4.7;\n"; - code += "import Qt.multimedia 1.0;\n"; code += "import Qt.labs.particles 4.7;\n"; + code += "import Qt.labs.gestures 4.7;\n"; + code += "import Qt.labs.folderlistmodel 4.7;\n"; code += "import org.webkit 1.0;\n"; code += tyName; code += " {}\n"; diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp index 3330097b206..e0ffeb88cf0 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp @@ -3343,35 +3343,6 @@ void TestCore::testSubComponentManager() QVERIFY(myButtonMetaInfo.property("border.width", true).isValid()); } -void TestCore::testComponentLoadingTabWidget() -{ - - QSKIP("TODO: fails", SkipAll); - - QString fileName = QString(QTCREATORDIR) + "/tests/auto/qml/qmldesigner/data/fx/tabs.qml"; - QFile file(fileName); - QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); - - QPlainTextEdit textEdit; - textEdit.setPlainText(file.readAll()); - NotIndentingTextEditModifier modifier(&textEdit); - - QScopedPointer model(Model::create("Qt/Item")); - model->setFileUrl(QUrl::fromLocalFile(fileName)); - QScopedPointer subComponentManager(new SubComponentManager(model->metaInfo(), 0)); - subComponentManager->update(QUrl::fromLocalFile(fileName), modifier.text().toUtf8()); - - QScopedPointer testRewriterView(new TestRewriterView()); - testRewriterView->setTextModifier(&modifier); - model->attachView(testRewriterView.data()); - - QVERIFY(testRewriterView->errors().isEmpty()); - QVERIFY(testRewriterView->rootModelNode().isValid()); - - ModelNode rootModelNode = testRewriterView->rootModelNode(); - QCOMPARE(rootModelNode.type(), QLatin1String("TabWidget")); -} - void TestCore::testAnchorsAndRewriting() { const QString qmlString("import Qt 4.7\n" @@ -3606,6 +3577,16 @@ void TestCore::testMetaInfo() { QScopedPointer model(Model::create("Qt/Item")); QVERIFY(model.data()); + + // test whether default type is registered + QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/Item", 4, 7)); + + // test whether types from plugins are registered + QVERIFY(model->metaInfo().hasNodeMetaInfo("org.webkit/WebView", 1, 0)); + + // test whether non-qml type is registered + QVERIFY(model->metaInfo().hasNodeMetaInfo("QGraphicsObject", 4, 7)); // Qt 4.7 namespace + QVERIFY(model->metaInfo().hasNodeMetaInfo("QGraphicsObject", 1, 0)); // webkit 1.0 namespace } void TestCore::testMetaInfoSimpleType() @@ -3619,11 +3600,11 @@ void TestCore::testMetaInfoSimpleType() QScopedPointer model(Model::create("Qt/Item")); QVERIFY(model.data()); - QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/Item")); + QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/Item", 4, 7)); QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/Item", 4, 7)); NodeMetaInfo itemMetaInfo = model->metaInfo().nodeMetaInfo("Qt/Item", 4, 7); - NodeMetaInfo itemMetaInfo2 = model->metaInfo().nodeMetaInfo("Qt/Item"); + NodeMetaInfo itemMetaInfo2 = model->metaInfo().nodeMetaInfo("Qt/Item", 4, 7); QCOMPARE(itemMetaInfo, itemMetaInfo2); QVERIFY(itemMetaInfo.isValid()); @@ -3635,12 +3616,12 @@ void TestCore::testMetaInfoSimpleType() NodeMetaInfo graphicsObjectInfo = itemMetaInfo.directSuperClass(); QVERIFY(graphicsObjectInfo.isValid()); QCOMPARE(graphicsObjectInfo.typeName(), QLatin1String("QGraphicsObject")); - QCOMPARE(graphicsObjectInfo.majorVersion(), 4); - QCOMPARE(graphicsObjectInfo.minorVersion(), 7); + QCOMPARE(graphicsObjectInfo.majorVersion(), -1); + QCOMPARE(graphicsObjectInfo.minorVersion(), -1); QCOMPARE(itemMetaInfo.superClasses().size(), 2); // QGraphicsObject, Qt/QtObject QVERIFY(itemMetaInfo.isSubclassOf("QGraphicsObject", 4, 7)); - QVERIFY(itemMetaInfo.isSubclassOf("Qt/QtObject", -1, -1)); + QVERIFY(itemMetaInfo.isSubclassOf("Qt/QtObject", 4, 7)); // availableInVersion QVERIFY(itemMetaInfo.availableInVersion(4, 7)); @@ -3698,8 +3679,8 @@ void TestCore::testMetaInfoExtendedType() NodeMetaInfo graphicsObjectTypeInfo = graphicsWidgetTypeInfo.directSuperClass(); QVERIFY(graphicsObjectTypeInfo.isValid()); QCOMPARE(graphicsObjectTypeInfo.typeName(), QLatin1String("QGraphicsObject")); - QCOMPARE(graphicsObjectTypeInfo.majorVersion(), 4); - QCOMPARE(graphicsObjectTypeInfo.minorVersion(), 7); + QCOMPARE(graphicsObjectTypeInfo.majorVersion(), -1); + QCOMPARE(graphicsObjectTypeInfo.minorVersion(), -1); QCOMPARE(graphicsWidgetTypeInfo.superClasses().size(), 2); } @@ -3730,8 +3711,8 @@ void TestCore::testMetaInfoCustomType() NodeMetaInfo stateOperationInfo = propertyChangesInfo.directSuperClass(); QVERIFY(stateOperationInfo.isValid()); QCOMPARE(stateOperationInfo.typeName(), QLatin1String("QDeclarativeStateOperation")); - QCOMPARE(stateOperationInfo.majorVersion(), 4); - QCOMPARE(stateOperationInfo.minorVersion(), 7); + QCOMPARE(stateOperationInfo.majorVersion(), -1); + QCOMPARE(stateOperationInfo.minorVersion(), -1); QCOMPARE(propertyChangesInfo.superClasses().size(), 2); // DeclarativePropertyChanges just has 3 properties