From 7aec3cbdd0386f84cd0f1eb98ff1a64f2476853d Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 26 Mar 2013 16:17:23 +0100 Subject: [PATCH 01/48] QmlDesigner: fixing memory leak The destructor has to be virtual of course. Change-Id: I8553946e81a7344caf1a963a4b41c6ee73f39283 Reviewed-by: Tobias Hunger --- src/plugins/qmldesigner/designercore/include/abstractview.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/include/abstractview.h b/src/plugins/qmldesigner/designercore/include/abstractview.h index bcce99a3779..cad3f5946a2 100644 --- a/src/plugins/qmldesigner/designercore/include/abstractview.h +++ b/src/plugins/qmldesigner/designercore/include/abstractview.h @@ -68,6 +68,9 @@ public: {} virtual QList createToolBarWidgets() = 0; + + virtual ~ToolBarWidgetFactoryInterface() + {} }; template From a4dda7bc8dfe13e0d0f16541634cefa9e888fd6a Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 28 Mar 2013 14:20:15 +0100 Subject: [PATCH 02/48] Squish: Raise snooze() time when using Mac filedialog Change-Id: I92b6a6a449e2df6a2ce92c277d9a1fa326b36606 Reviewed-by: Robert Loehning --- tests/system/shared/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/system/shared/utils.py b/tests/system/shared/utils.py index 169fc42fce6..572570b8553 100644 --- a/tests/system/shared/utils.py +++ b/tests/system/shared/utils.py @@ -238,7 +238,7 @@ def selectFromFileDialog(fileName, waitForFile=False): nativeType(fileName) snooze(1) nativeType("") - snooze(2) + snooze(3) nativeType("") snooze(1) else: From 7f0ff88c61bff14b9827e3a1190a1385359b410c Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 28 Mar 2013 15:53:35 +0100 Subject: [PATCH 03/48] Squish: Speed up removal of registered documentation Change-Id: I0a639ee608b0430a98840406ab14e224d1a64d49 Reviewed-by: Robert Loehning --- tests/system/shared/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/system/shared/utils.py b/tests/system/shared/utils.py index 572570b8553..49fb6b32c43 100644 --- a/tests/system/shared/utils.py +++ b/tests/system/shared/utils.py @@ -267,9 +267,10 @@ def addHelpDocumentationFromSDK(): clickTab(waitForObject(":Options.qt_tabwidget_tabbar_QTabBar"), "Documentation") # get rid of all docs already registered listWidget = waitForObject("{type='QListWidget' name='docsListWidget' visible='1'}") - for i in range(listWidget.count): + if listWidget.count > 0: rect = listWidget.visualItemRect(listWidget.item(0)) mouseClick(listWidget, rect.x+5, rect.y+5, 0, Qt.LeftButton) + type(listWidget, "") mouseClick(waitForObject("{type='QPushButton' name='removeButton' visible='1'}"), 5, 5, 0, Qt.LeftButton) clickButton(waitForObject("{type='QPushButton' name='addButton' visible='1' text='Add...'}")) selectFromFileDialog("%s/Documentation/qt.qch" % sdkPath) From 003821f93620b199aea0f8e8befdb6fdc32fc10a Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Thu, 28 Mar 2013 16:58:25 +0100 Subject: [PATCH 04/48] Squish: Prepare tst_CCOM01 for Qt5 Change-Id: Ic2806673cb65018000bcbe6ae66dad1b2f555e39 Reviewed-by: Christian Stenger --- tests/system/shared/editor_utils.py | 28 +++++++++++++++++++ tests/system/suite_CCOM/tst_CCOM01/test.py | 5 ++++ .../suite_editors/tst_rename_macros/test.py | 15 ---------- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py index ff4c8e284fc..8188af8da9e 100644 --- a/tests/system/shared/editor_utils.py +++ b/tests/system/shared/editor_utils.py @@ -311,3 +311,31 @@ def openDocument(treeElement): return True except: return False + +def earlyExit(details="No additional information"): + test.fail("Something went wrong running this test", details) + invokeMenuItem("File", "Save All") + invokeMenuItem("File", "Exit") + +def openDocumentPlaceCursor(doc, line, additionalFunction=None): + cppEditorStr = ":Qt Creator_CppEditor::Internal::CPPEditorWidget" + if openDocument(doc) and placeCursorToLine(cppEditorStr, line): + if additionalFunction: + additionalFunction() + return str(waitForObject(cppEditorStr).plainText) + else: + earlyExit("Open %s or placing cursor to line (%s) failed." % (doc, line)) + return None + +# Replaces a line in the editor with another +# param fileSpec a string specifying a file in Projects view +# param oldLine a string holding the line to be replaced +# param newLine a string holding the line to be inserted +def replaceLine(fileSpec, oldLine, newLine): + if openDocumentPlaceCursor(fileSpec, oldLine) == None: + return False + editor = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget") + for i in range(len(oldLine)): + type(editor, "") + type(editor, newLine) + return True diff --git a/tests/system/suite_CCOM/tst_CCOM01/test.py b/tests/system/suite_CCOM/tst_CCOM01/test.py index e8e4f7428d3..28290d7ea77 100755 --- a/tests/system/suite_CCOM/tst_CCOM01/test.py +++ b/tests/system/suite_CCOM/tst_CCOM01/test.py @@ -16,6 +16,11 @@ def main(): return # open example project checkedTargets = openQmakeProject(examplePath) + if not replaceLine("propertyanimation.Sources.main\\.cpp", + "#include ", + "#include "): + return + invokeMenuItem("File", "Save All") # build and wait until finished - on all build configurations availableConfigs = iterateBuildConfigs(len(checkedTargets)) if not availableConfigs: diff --git a/tests/system/suite_editors/tst_rename_macros/test.py b/tests/system/suite_editors/tst_rename_macros/test.py index f739b99aa8d..332189e6ce2 100644 --- a/tests/system/suite_editors/tst_rename_macros/test.py +++ b/tests/system/suite_editors/tst_rename_macros/test.py @@ -90,16 +90,6 @@ def testRenameMacroAfterSourceMoving(): revertChanges(formerTexts) return True -def openDocumentPlaceCursor(doc, line, additionalFunction=None): - global cppEditorStr - if openDocument(doc) and placeCursorToLine(cppEditorStr, line): - if additionalFunction: - additionalFunction() - return str(waitForObject(cppEditorStr).plainText) - else: - earlyExit("Open %s or placing cursor to line (%s) failed." % (simpleFileName(doc), line)) - return None - def performMacroRenaming(newMacroName): for i in range(10): type(cppEditorStr, "") @@ -150,8 +140,3 @@ def revertChanges(files): def simpleFileName(navigatorFileName): return ".".join(navigatorFileName.split(".")[-2:]).replace("\\","") - -def earlyExit(details="No additional information"): - test.fail("Something went wrong running this test", details) - invokeMenuItem("File", "Save All") - invokeMenuItem("File", "Exit") From e9dceef1bb7c6a06d299a74eb03ddf3f100b2683 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 27 Mar 2013 14:17:49 +0100 Subject: [PATCH 05/48] Android: Remove empty button on android device page Task-number: QTCREATORBUG-9017 Change-Id: Iba8900dd3d5a5ab380c361abd435b08857eb1fd2 Reviewed-by: BogDan Vatra Reviewed-by: Eike Ziller --- src/plugins/android/androiddevice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp index 7987d4eafa7..982d90eca1b 100644 --- a/src/plugins/android/androiddevice.cpp +++ b/src/plugins/android/androiddevice.cpp @@ -69,7 +69,7 @@ IDeviceWidget *AndroidDevice::createWidget() QList AndroidDevice::actionIds() const { - return QList()<(); } QString AndroidDevice::displayNameForActionId(Core::Id actionId) const From 3937aabdea4fadb81b09cbdce1002f0945e2b3c7 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 5 Mar 2013 17:57:08 +0100 Subject: [PATCH 06/48] QmlDesigner: Fix compile warning Change-Id: I32665d8a9aadb7c3dec7f839477abe084ec66287 Reviewed-by: Thomas Hartmann (cherry picked from commit b3c82d3afb5e53b35d6a1177f2c2dc6ac32bc185) Reviewed-by: Kai Koehne --- share/qtcreator/qml/qmlpuppet/interfaces/interfaces.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/qml/qmlpuppet/interfaces/interfaces.pri b/share/qtcreator/qml/qmlpuppet/interfaces/interfaces.pri index 76a778cc511..aeaf3a765e2 100644 --- a/share/qtcreator/qml/qmlpuppet/interfaces/interfaces.pri +++ b/share/qtcreator/qml/qmlpuppet/interfaces/interfaces.pri @@ -1,7 +1,7 @@ INCLUDEPATH += $$PWD/ HEADERS += $$PWD/nodeinstanceclientinterface.h -HEADERS += $$PWD/interfaces/nodeinstanceglobal.h +HEADERS += $$PWD/nodeinstanceglobal.h HEADERS += $$PWD/nodeinstanceserverinterface.h HEADERS += $$PWD/commondefines.h From 7e1a94e59a8a3d10e4a46cfda4e906828fa27016 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 28 Mar 2013 12:01:40 +0100 Subject: [PATCH 07/48] Remove unneeded typedefs Fix gcc 4.8.0 warnings like warning: typedef 'AvahiSimplePollSetFuncPtr' locally defined but not used [-Wunused-local-typedefs] Change-Id: I5cc2917958dc8e6a4c31031577ecc66575b8d328 Reviewed-by: Eike Ziller --- src/libs/zeroconf/avahiLib.cpp | 1 - src/plugins/coreplugin/dialogs/newdialog.cpp | 2 -- src/plugins/debugger/watchwindow.cpp | 1 - .../customwizard/customwizardscriptgenerator.cpp | 3 --- src/plugins/qmljseditor/qmljshighlighter.cpp | 2 -- 5 files changed, 9 deletions(-) diff --git a/src/libs/zeroconf/avahiLib.cpp b/src/libs/zeroconf/avahiLib.cpp index 5f79901e474..3d34d35222c 100644 --- a/src/libs/zeroconf/avahiLib.cpp +++ b/src/libs/zeroconf/avahiLib.cpp @@ -334,7 +334,6 @@ public: delete connection; return kDNSServiceErr_Unknown; } - typedef void (*AvahiSimplePollSetFuncPtr)(AvahiSimplePoll *s, AvahiPollFunc func, void *userdata); m_simplePollSetFunc(connection->simple_poll, &cAvahiPollFunction, mainConnection); /* Allocate a new client */ int error; diff --git a/src/plugins/coreplugin/dialogs/newdialog.cpp b/src/plugins/coreplugin/dialogs/newdialog.cpp index 260aa805250..860b71fb0b7 100644 --- a/src/plugins/coreplugin/dialogs/newdialog.cpp +++ b/src/plugins/coreplugin/dialogs/newdialog.cpp @@ -192,8 +192,6 @@ NewDialog::NewDialog(QWidget *parent) : m_ui(new Core::Internal::Ui::NewDialog), m_okButton(0) { - typedef QMap CategoryItemMap; - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); m_ui->setupUi(this); QPalette p = m_ui->frame->palette(); diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index daf45c319c4..0f7ff6ae837 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -405,7 +405,6 @@ static void addVariableMemoryView(DebuggerEngine *engine, bool separateView, static void addStackLayoutMemoryView(DebuggerEngine *engine, bool separateView, const QAbstractItemModel *m, const QPoint &p, QWidget *parent) { - typedef QPair RegisterValueNamePair; QTC_ASSERT(engine && m, return); // Determine suitable address range from locals. diff --git a/src/plugins/projectexplorer/customwizard/customwizardscriptgenerator.cpp b/src/plugins/projectexplorer/customwizard/customwizardscriptgenerator.cpp index 438a20d2045..eee76c3b2aa 100644 --- a/src/plugins/projectexplorer/customwizard/customwizardscriptgenerator.cpp +++ b/src/plugins/projectexplorer/customwizard/customwizardscriptgenerator.cpp @@ -88,9 +88,6 @@ static bool const QMap &fieldMap, QString *stdOut /* = 0 */, QString *errorMessage) { - typedef QSharedPointer TemporaryFilePtr; - typedef QList TemporaryFilePtrList; - QProcess process; const QString binary = script.front(); QStringList arguments; diff --git a/src/plugins/qmljseditor/qmljshighlighter.cpp b/src/plugins/qmljseditor/qmljshighlighter.cpp index 31f4e3cbc42..840f5839aed 100644 --- a/src/plugins/qmljseditor/qmljshighlighter.cpp +++ b/src/plugins/qmljseditor/qmljshighlighter.cpp @@ -296,8 +296,6 @@ int Highlighter::onBlockStart() void Highlighter::onBlockEnd(int state) { - typedef TextEditor::TextBlockUserData TextEditorBlockData; - setCurrentBlockState((m_braceDepth << 8) | state); TextEditor::BaseTextDocumentLayout::setParentheses(currentBlock(), m_currentBlockParentheses); TextEditor::BaseTextDocumentLayout::setFoldingIndent(currentBlock(), m_foldingIndent); From 6576716492849b14289f711ff086b183cd729315 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Thu, 21 Mar 2013 10:13:36 +0200 Subject: [PATCH 08/48] Debugger: Use working directory and environment for core and remote Source paths in debugging info can be relative Change-Id: Iff13aef9d779ae190cf91245430af16ed3556cb7 Reviewed-by: hjk --- src/plugins/debugger/gdb/attachgdbadapter.cpp | 6 ++++++ src/plugins/debugger/gdb/remotegdbserveradapter.cpp | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp index 9467471bd96..da002474201 100644 --- a/src/plugins/debugger/gdb/attachgdbadapter.cpp +++ b/src/plugins/debugger/gdb/attachgdbadapter.cpp @@ -59,6 +59,12 @@ void GdbAttachEngine::setupEngine() { QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); showMessage(_("TRYING TO START ADAPTER")); + + if (!startParameters().workingDirectory.isEmpty()) + m_gdbProc.setWorkingDirectory(startParameters().workingDirectory); + if (startParameters().environment.size()) + m_gdbProc.setEnvironment(startParameters().environment.toStringList()); + startGdb(); } diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index 733e7b5a9ee..a3780c8d207 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -95,6 +95,11 @@ void GdbRemoteServerEngine::setupEngine() m_uploadProc.start(_("/bin/sh ") + arglist); m_uploadProc.waitForStarted(); } + if (!startParameters().workingDirectory.isEmpty()) + m_gdbProc.setWorkingDirectory(startParameters().workingDirectory); + if (startParameters().environment.size()) + m_gdbProc.setEnvironment(startParameters().environment.toStringList()); + if (startParameters().remoteSetupNeeded) notifyEngineRequestRemoteSetup(); else From d5e41c08f54bc2ffaff73041290468eb8a4ea92c Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 27 Mar 2013 15:47:47 +0200 Subject: [PATCH 09/48] Tests: Add missing include for MSVC Change-Id: I95196a8d57a8bf8f09a52aa54fa1c8bbfe752168 Reviewed-by: Oswald Buddenhagen Reviewed-by: Friedemann Kleint (cherry picked from commit 1db74e381c662a11339d312993094110b2fdfe3b) --- tests/auto/debugger/tst_namedemangler.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/auto/debugger/tst_namedemangler.cpp b/tests/auto/debugger/tst_namedemangler.cpp index 7622b299769..7873812e834 100644 --- a/tests/auto/debugger/tst_namedemangler.cpp +++ b/tests/auto/debugger/tst_namedemangler.cpp @@ -32,6 +32,8 @@ #include #include +#include + #define TEST_CORRECTLY_MANGLED_NAME(mangled, expectedDemangled) \ do { \ QVERIFY2(demangler.demangle(QLatin1String(mangled)), qPrintable(demangler.errorString())); \ From bb1a76c0a475186103d2276667403dfe18d38788 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 2 Apr 2013 12:27:45 +0200 Subject: [PATCH 10/48] QmlDesigner.Model: Adding SignalHandlerProperty SignalHandlerProperty allows editing convenient editing of signal handlers like onMousePress in the model. The interface is analogous to BindingProperty. Since mos views do not care about SignalHandlerProperties and they should not be mixed up with BindingProperties they are different types. I also added the signalHandlerPropertiesChanged() notifier to AbstractView. Change-Id: I68bc7d2c5d3b991944e8f8d698212a1dfef218bf Reviewed-by: Marco Bubke --- .../components/debugview/debugview.cpp | 14 +++ .../components/debugview/debugview.h | 1 + .../components/formeditor/formeditorview.cpp | 4 + .../components/formeditor/formeditorview.h | 1 + .../components/integration/componentview.cpp | 1 + .../components/integration/componentview.h | 2 + .../integration/designdocumentview.cpp | 3 + .../integration/designdocumentview.h | 1 + .../itemlibrary/itemlibraryview.cpp | 4 + .../components/itemlibrary/itemlibraryview.h | 2 + .../components/navigator/navigatorview.cpp | 5 + .../components/navigator/navigatorview.h | 1 + .../propertyeditor/propertyeditor.cpp | 5 + .../propertyeditor/propertyeditor.h | 1 + .../stateseditor/stateseditorview.cpp | 6 ++ .../stateseditor/stateseditorview.h | 1 + .../designercore/designercore-lib.pri | 8 +- .../designercore/include/abstractproperty.h | 3 + .../designercore/include/abstractview.h | 1 + .../designercore/include/forwardview.h | 7 ++ .../designercore/include/modelnode.h | 2 + .../designercore/include/nodeinstanceview.h | 1 + .../designercore/include/qmlmodelview.h | 1 + .../designercore/include/rewriterview.h | 1 + .../include/signalhandlerproperty.h | 58 ++++++++++ .../instances/nodeinstanceview.cpp | 5 + .../designercore/model/abstractproperty.cpp | 27 +++++ .../designercore/model/internalnode.cpp | 15 +++ .../designercore/model/internalnode_p.h | 3 + .../designercore/model/internalproperty.cpp | 12 +++ .../designercore/model/internalproperty.h | 3 + .../model/internalsignalhandlerproperty.cpp | 71 ++++++++++++ .../model/internalsignalhandlerproperty.h | 62 +++++++++++ .../qmldesigner/designercore/model/model.cpp | 55 ++++++++++ .../qmldesigner/designercore/model/model_p.h | 4 + .../designercore/model/modelnode.cpp | 9 ++ .../designercore/model/modeltotextmerger.cpp | 2 +- .../designercore/model/qmlmodelview.cpp | 1 + .../designercore/model/qmltextgenerator.cpp | 3 + .../designercore/model/rewriterview.cpp | 17 +++ .../model/signalhandlerproperty.cpp | 102 ++++++++++++++++++ .../designercore/model/texttomodelmerger.cpp | 68 ++++++++++-- .../designercore/model/texttomodelmerger.h | 16 ++- .../designercore/model/viewlogger.cpp | 4 + .../designercore/model/viewlogger.h | 1 + 45 files changed, 604 insertions(+), 10 deletions(-) create mode 100644 src/plugins/qmldesigner/designercore/include/signalhandlerproperty.h create mode 100644 src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp create mode 100644 src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.h create mode 100644 src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp diff --git a/src/plugins/qmldesigner/components/debugview/debugview.cpp b/src/plugins/qmldesigner/components/debugview/debugview.cpp index a2ac1cd62b4..8c27ebaf63c 100644 --- a/src/plugins/qmldesigner/components/debugview/debugview.cpp +++ b/src/plugins/qmldesigner/components/debugview/debugview.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -185,6 +186,19 @@ void DebugView::bindingPropertiesChanged(const QList &propertyL } } +void DebugView::signalHandlerPropertiesChanged(const QVector &propertyList, AbstractView::PropertyChangeFlags propertyChange) +{ + if (isDebugViewEnabled()) { + QTextStream message; + QString string; + message.setString(&string); + foreach (const SignalHandlerProperty &property, propertyList) { + message << property; + } + log(tr("SignalHandlerProperties changed:"), string); + } +} + void DebugView::rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) { if (isDebugViewEnabled()) { diff --git a/src/plugins/qmldesigner/components/debugview/debugview.h b/src/plugins/qmldesigner/components/debugview/debugview.h index 92088f1a496..d0ca29c2d83 100644 --- a/src/plugins/qmldesigner/components/debugview/debugview.h +++ b/src/plugins/qmldesigner/components/debugview/debugview.h @@ -60,6 +60,7 @@ public: void propertiesAboutToBeRemoved(const QList& propertyList) QTC_OVERRIDE; void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) QTC_OVERRIDE; void selectedNodesChanged(const QList &selectedNodeList, diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index dfc6de76224..a3e3f2ba648 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -279,6 +279,10 @@ void FormEditorView::bindingPropertiesChanged(const QList& prop QmlModelView::bindingPropertiesChanged(propertyList, propertyChange); } +void FormEditorView::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, AbstractView::PropertyChangeFlags /*propertyChange*/) +{ +} + WidgetInfo FormEditorView::widgetInfo() { return createWidgetInfo(m_formEditorWidget.data(), 0, "FormEditor", WidgetInfo::CentralPane, 0, tr("Form Editor")); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.h b/src/plugins/qmldesigner/components/formeditor/formeditorview.h index deabbee8a4b..e89b6b7e4e8 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.h +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.h @@ -78,6 +78,7 @@ public: void propertiesAboutToBeRemoved(const QList& propertyList) QTC_OVERRIDE; void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) QTC_OVERRIDE; void selectedNodesChanged(const QList &selectedNodeList, diff --git a/src/plugins/qmldesigner/components/integration/componentview.cpp b/src/plugins/qmldesigner/components/integration/componentview.cpp index 465a10325bd..49fb7df80bb 100644 --- a/src/plugins/qmldesigner/components/integration/componentview.cpp +++ b/src/plugins/qmldesigner/components/integration/componentview.cpp @@ -188,6 +188,7 @@ void ComponentView::propertiesAboutToBeRemoved(const QList& /* void ComponentView::propertiesRemoved(const QList& /*propertyList*/) {} void ComponentView::variantPropertiesChanged(const QList& /*propertyList*/, PropertyChangeFlags /*propertyChange*/) {} void ComponentView::bindingPropertiesChanged(const QList& /*propertyList*/, PropertyChangeFlags /*propertyChange*/) {} +void ComponentView::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, AbstractView::PropertyChangeFlags /*propertyChange*/) {} void ComponentView::rootNodeTypeChanged(const QString &/*type*/, int /*majorVersion*/, int /*minorVersion*/) {} void ComponentView::scriptFunctionsChanged(const ModelNode &/*node*/, const QStringList &/*scriptFunctionList*/) {} void ComponentView::instancePropertyChange(const QList > &/*propertyList*/) {} diff --git a/src/plugins/qmldesigner/components/integration/componentview.h b/src/plugins/qmldesigner/components/integration/componentview.h index 43d7e9b1bd5..f3287940aab 100644 --- a/src/plugins/qmldesigner/components/integration/componentview.h +++ b/src/plugins/qmldesigner/components/integration/componentview.h @@ -78,6 +78,8 @@ public: PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList, + PropertyChangeFlags propertyChange) QTC_OVERRIDE; void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) QTC_OVERRIDE; void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList) QTC_OVERRIDE; void instancePropertyChange(const QList > &propertyList) QTC_OVERRIDE; diff --git a/src/plugins/qmldesigner/components/integration/designdocumentview.cpp b/src/plugins/qmldesigner/components/integration/designdocumentview.cpp index 7e152dd524b..4a34d31c1ef 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentview.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocumentview.cpp @@ -59,6 +59,9 @@ void DesignDocumentView::propertiesAboutToBeRemoved(const QList& /*propertyList*/) {} void DesignDocumentView::variantPropertiesChanged(const QList& /*propertyList*/, AbstractView::PropertyChangeFlags /*propertyChange*/) {} void DesignDocumentView::bindingPropertiesChanged(const QList& /*propertyList*/, AbstractView::PropertyChangeFlags /*propertyChange*/) {} +void DesignDocumentView::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, + AbstractView::PropertyChangeFlags /*propertyChange*/) +{} void DesignDocumentView::rootNodeTypeChanged(const QString & /*type*/, int /*majorVersion*/, int /*minorVersion*/) {} void DesignDocumentView::selectedNodesChanged(const QList & /*selectedNodeList*/, diff --git a/src/plugins/qmldesigner/components/integration/designdocumentview.h b/src/plugins/qmldesigner/components/integration/designdocumentview.h index 271f041a2f7..d2ef379fec6 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentview.h +++ b/src/plugins/qmldesigner/components/integration/designdocumentview.h @@ -58,6 +58,7 @@ public: virtual void propertiesRemoved(const QList& propertyList) QTC_OVERRIDE; virtual void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; virtual void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + virtual void signalHandlerPropertiesChanged(const QVector& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; virtual void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) QTC_OVERRIDE; virtual void selectedNodesChanged(const QList &selectedNodeList, diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp index f7dfb121c1c..82ea759fe29 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.cpp @@ -103,6 +103,10 @@ void ItemLibraryView::bindingPropertiesChanged(const QList &, P } +void ItemLibraryView::signalHandlerPropertiesChanged(const QVector &, AbstractView::PropertyChangeFlags) +{ +} + void ItemLibraryView::nodeAboutToBeRemoved(const ModelNode &) { diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h index 277dac312a8..dc156d61e23 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryview.h @@ -65,6 +65,8 @@ public: PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList &propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList, + PropertyChangeFlags propertyChange) QTC_OVERRIDE; void nodeAboutToBeRemoved(const ModelNode &removedNode) QTC_OVERRIDE; void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) QTC_OVERRIDE; diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index dbc1ae1bdde..b685e927159 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -162,6 +162,11 @@ void NavigatorView::bindingPropertiesChanged(const QList & /*pr { } +void NavigatorView::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, + AbstractView::PropertyChangeFlags /*propertyChange*/) +{ +} + void NavigatorView::nodeAboutToBeRemoved(const ModelNode &removedNode) { if (m_treeModel->isInTree(removedNode)) diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.h b/src/plugins/qmldesigner/components/navigator/navigatorview.h index 2a802d7a265..2aa159367f3 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.h +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.h @@ -70,6 +70,7 @@ public: void propertiesRemoved(const QList &propertyList) QTC_OVERRIDE; void variantPropertiesChanged(const QList &propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList &propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList,PropertyChangeFlags propertyChange) QTC_OVERRIDE; void nodeAboutToBeRemoved(const ModelNode &removedNode) QTC_OVERRIDE; void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) QTC_OVERRIDE; diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp index 07be74f0468..d4329cc6745 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp @@ -916,6 +916,11 @@ void PropertyEditor::bindingPropertiesChanged(const QList& prop } } +void PropertyEditor::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, + AbstractView::PropertyChangeFlags /*propertyChange*/) +{ +} + void PropertyEditor::instanceInformationsChange(const QMultiHash &informationChangeHash) { diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.h b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.h index a1d9be92bb9..2aa52ad07df 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.h +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.h @@ -100,6 +100,7 @@ public: void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList,PropertyChangeFlags propertyChange) QTC_OVERRIDE; void instanceInformationsChange(const QMultiHash &informationChangeHash) QTC_OVERRIDE; diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp index ffea5bfe2ec..58f52e9d8d1 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp @@ -342,6 +342,12 @@ void StatesEditorView::bindingPropertiesChanged(const QList &/* } +void StatesEditorView::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, + AbstractView::PropertyChangeFlags /*propertyChange*/) +{ + +} + void StatesEditorView::selectedNodesChanged(const QList &/*selectedNodeList*/, const QList &/*lastSelectedNodeList*/) { diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h index a218c71e580..369353f3e36 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h @@ -76,6 +76,7 @@ public: void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList) QTC_OVERRIDE; void nodeIdChanged(const ModelNode &node, const QString &newId, const QString &oldId) QTC_OVERRIDE; void bindingPropertiesChanged(const QList &propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList,PropertyChangeFlags propertyChange) QTC_OVERRIDE; void selectedNodesChanged(const QList &selectedNodeList, const QList &lastSelectedNodeList) QTC_OVERRIDE; void instancesPreviewImageChanged(const QVector &nodeList) QTC_OVERRIDE; diff --git a/src/plugins/qmldesigner/designercore/designercore-lib.pri b/src/plugins/qmldesigner/designercore/designercore-lib.pri index 96609f2ac60..edd64602c17 100644 --- a/src/plugins/qmldesigner/designercore/designercore-lib.pri +++ b/src/plugins/qmldesigner/designercore/designercore-lib.pri @@ -76,7 +76,9 @@ SOURCES += $$PWD/model/abstractview.cpp \ $$PWD/model/qmltextgenerator.cpp \ $$PWD/model/modelmerger.cpp \ $$PWD/exceptions/rewritingexception.cpp \ - $$PWD/model/viewmanager.cpp + $$PWD/model/viewmanager.cpp \ + $$PWD/model/signalhandlerproperty.cpp \ + $$PWD/model/internalsignalhandlerproperty.cpp HEADERS += $$PWD/include/qmldesignercorelib_global.h \ $$PWD/include/abstractview.h \ @@ -147,7 +149,9 @@ HEADERS += $$PWD/include/qmldesignercorelib_global.h \ $$PWD/include/mathutils.h \ $$PWD/include/customnotifications.h \ $$PWD/include/rewritingexception.h \ - $$PWD/include/viewmanager.h + $$PWD/include/viewmanager.h \ + $$PWD/include/signalhandlerproperty.h \ + $$PWD/model/internalsignalhandlerproperty.h contains(CONFIG, plugin) { # If core.pri has been included in the qmldesigner plugin diff --git a/src/plugins/qmldesigner/designercore/include/abstractproperty.h b/src/plugins/qmldesigner/designercore/include/abstractproperty.h index 36a993d538f..86e7381ce5d 100644 --- a/src/plugins/qmldesigner/designercore/include/abstractproperty.h +++ b/src/plugins/qmldesigner/designercore/include/abstractproperty.h @@ -57,6 +57,7 @@ class QMLDESIGNERCORE_EXPORT NodeListProperty; class QMLDESIGNERCORE_EXPORT NodeAbstractProperty; class QMLDESIGNERCORE_EXPORT BindingProperty; class QMLDESIGNERCORE_EXPORT NodeProperty; +class QMLDESIGNERCORE_EXPORT SignalHandlerProperty; class QmlObjectNode; @@ -93,12 +94,14 @@ public: NodeAbstractProperty toNodeAbstractProperty() const; BindingProperty toBindingProperty() const; NodeProperty toNodeProperty() const; + SignalHandlerProperty toSignalHandlerProperty() const; bool isVariantProperty() const; bool isNodeListProperty() const; bool isNodeAbstractProperty() const; bool isBindingProperty() const; bool isNodeProperty() const; + bool isSignalHandlerProperty() const; bool isDynamic() const; TypeName dynamicTypeName() const; diff --git a/src/plugins/qmldesigner/designercore/include/abstractview.h b/src/plugins/qmldesigner/designercore/include/abstractview.h index cad3f5946a2..13063fb7011 100644 --- a/src/plugins/qmldesigner/designercore/include/abstractview.h +++ b/src/plugins/qmldesigner/designercore/include/abstractview.h @@ -190,6 +190,7 @@ public: virtual void propertiesRemoved(const QList& propertyList) = 0; virtual void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) = 0; virtual void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) = 0; + virtual void signalHandlerPropertiesChanged(const QVector& propertyList, PropertyChangeFlags propertyChange) = 0; virtual void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) = 0; virtual void instancePropertyChange(const QList > &propertyList) = 0; diff --git a/src/plugins/qmldesigner/designercore/include/forwardview.h b/src/plugins/qmldesigner/designercore/include/forwardview.h index 82b4398aca0..7ebd6ca67d7 100644 --- a/src/plugins/qmldesigner/designercore/include/forwardview.h +++ b/src/plugins/qmldesigner/designercore/include/forwardview.h @@ -62,6 +62,7 @@ public: void propertiesRemoved(const QList& propertyList); void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange); void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange); + void signalHandlerPropertiesChanged(const QVector& propertyList,PropertyChangeFlags propertyChange); void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion); void selectedNodesChanged(const QList &selectedNodeList, @@ -185,6 +186,12 @@ void ForwardView::bindingPropertiesChanged(const QListbindingPropertiesChanged(adjustedList(propertyList, view.data()), propertyChange); } +void ForwardView::signalHandlerPropertiesChanged(const QVector &propertyList, AbstractView::PropertyChangeFlags propertyChange) +{ + foreach (const ViewTypePointer &view, m_targetViewList) + view->signalHandlerPropertiesChanged(adjustedList(propertyList, view.data()), propertyChange); +} + template void ForwardView::rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) { diff --git a/src/plugins/qmldesigner/designercore/include/modelnode.h b/src/plugins/qmldesigner/designercore/include/modelnode.h index ed322f49d92..baadebb6567 100644 --- a/src/plugins/qmldesigner/designercore/include/modelnode.h +++ b/src/plugins/qmldesigner/designercore/include/modelnode.h @@ -56,6 +56,7 @@ class NodeMetaInfo; class AbstractProperty; class BindingProperty; class VariantProperty; +class SignalHandlerProperty; class Model; class AbstractView; class NodeListProperty; @@ -120,6 +121,7 @@ public: AbstractProperty property(const PropertyName &name) const; VariantProperty variantProperty(const PropertyName &name) const; BindingProperty bindingProperty(const PropertyName &name) const; + SignalHandlerProperty signalHandlerProperty(const PropertyName &name) const; NodeListProperty nodeListProperty(const PropertyName &name) const; NodeProperty nodeProperty(const PropertyName &name) const; NodeAbstractProperty nodeAbstractProperty(const PropertyName &name) const; diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h index 734211c29f0..205355edd99 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h @@ -91,6 +91,7 @@ public: void propertiesRemoved(const QList& propertyList) QTC_OVERRIDE; void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector &propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void nodeAboutToBeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, diff --git a/src/plugins/qmldesigner/designercore/include/qmlmodelview.h b/src/plugins/qmldesigner/designercore/include/qmlmodelview.h index a24059b6011..8807f2cff4e 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlmodelview.h +++ b/src/plugins/qmldesigner/designercore/include/qmlmodelview.h @@ -118,6 +118,7 @@ public: void propertiesRemoved(const QList& propertyList) QTC_OVERRIDE; void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList,PropertyChangeFlags propertyChange) QTC_OVERRIDE; void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList) QTC_OVERRIDE; void selectedNodesChanged(const QList &selectedNodeList, const QList &lastSelectedNodeList) QTC_OVERRIDE; diff --git a/src/plugins/qmldesigner/designercore/include/rewriterview.h b/src/plugins/qmldesigner/designercore/include/rewriterview.h index 5ffdfef2b49..ff65fb09aca 100644 --- a/src/plugins/qmldesigner/designercore/include/rewriterview.h +++ b/src/plugins/qmldesigner/designercore/include/rewriterview.h @@ -127,6 +127,7 @@ public: void propertiesRemoved(const QList& propertyList) QTC_OVERRIDE; void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) QTC_OVERRIDE; + void signalHandlerPropertiesChanged(const QVector& propertyList,PropertyChangeFlags propertyChange) QTC_OVERRIDE; void nodeAboutToBeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) QTC_OVERRIDE; diff --git a/src/plugins/qmldesigner/designercore/include/signalhandlerproperty.h b/src/plugins/qmldesigner/designercore/include/signalhandlerproperty.h new file mode 100644 index 00000000000..649e9846fce --- /dev/null +++ b/src/plugins/qmldesigner/designercore/include/signalhandlerproperty.h @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef SIGNALHANDLERPROPERTY_H +#define SIGNALHANDLERPROPERTY_H + +#include "qmldesignercorelib_global.h" +#include "abstractproperty.h" + +namespace QmlDesigner { + +class QMLDESIGNERCORE_EXPORT SignalHandlerProperty : public QmlDesigner::AbstractProperty +{ + friend class QmlDesigner::ModelNode; + friend class QmlDesigner::Internal::ModelPrivate; + friend class QmlDesigner::AbstractProperty; + +public: + void setSource(const QString &source); + QString source() const; + SignalHandlerProperty& operator= (const QString &source); + + SignalHandlerProperty(); + SignalHandlerProperty(const SignalHandlerProperty &property, AbstractView *view); + +protected: + SignalHandlerProperty(const PropertyName &propertyName, const Internal::InternalNodePointer &internalNode, Model* model, AbstractView *view); +}; + +} // namespace QmlDesigner + +#endif // SIGNALHANDLERPROPERTY_H diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index 479e12db1bb..c1a3a3d124b 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -376,6 +376,11 @@ void NodeInstanceView::bindingPropertiesChanged(const QList& pr nodeInstanceServer()->changePropertyBindings(createChangeBindingCommand(propertyList)); } +void NodeInstanceView::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, + AbstractView::PropertyChangeFlags /*propertyChange*/) +{ +} + /*! \brief Notifing the view that a AbstractProperty value was changed to a ModelNode. The property will be set for the NodeInstance. diff --git a/src/plugins/qmldesigner/designercore/model/abstractproperty.cpp b/src/plugins/qmldesigner/designercore/model/abstractproperty.cpp index dd86adcb312..51cac9a4122 100644 --- a/src/plugins/qmldesigner/designercore/model/abstractproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/abstractproperty.cpp @@ -37,6 +37,7 @@ #include "invalidpropertyexception.h" #include "variantproperty.h" #include "bindingproperty.h" +#include "signalhandlerproperty.h" #include "nodeproperty.h" #include "nodeabstractproperty.h" #include "nodelistproperty.h" @@ -257,6 +258,19 @@ NodeProperty AbstractProperty::toNodeProperty() const return NodeProperty(); } +SignalHandlerProperty AbstractProperty::toSignalHandlerProperty() const +{ + if (!isValid()) + throw InvalidPropertyException(__LINE__, __FUNCTION__, __FILE__, m_propertyName); + + SignalHandlerProperty propertyNode(name(), internalNode(), model(), view()); + + if (propertyNode.isSignalHandlerProperty()) + return propertyNode; + + return SignalHandlerProperty(); +} + NodeListProperty AbstractProperty::toNodeListProperty() const { if (!isValid()) @@ -348,6 +362,19 @@ bool AbstractProperty::isNodeProperty() const return false; } +bool AbstractProperty::isSignalHandlerProperty() const +{ + if (!isValid()) + throw InvalidPropertyException(__LINE__, __FUNCTION__, __FILE__, m_propertyName); + + if (internalNode()->hasProperty(name())) { + Q_ASSERT(internalNode()->property(name())); + return internalNode()->property(name())->isSignalHandlerProperty(); + } + + return false; +} + bool AbstractProperty::isBindingProperty() const { diff --git a/src/plugins/qmldesigner/designercore/model/internalnode.cpp b/src/plugins/qmldesigner/designercore/model/internalnode.cpp index f73d210d8c4..8c452eb5231 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalnode.cpp @@ -200,6 +200,15 @@ InternalBindingProperty::Pointer InternalNode::bindingProperty(const PropertyNam return InternalBindingProperty::Pointer(); } +InternalSignalHandlerProperty::Pointer InternalNode::signalHandlerProperty(const PropertyName &name) const +{ + InternalProperty::Pointer property = m_namePropertyHash.value(name); + if (property->isSignalHandlerProperty()) + return property.staticCast(); + + return InternalSignalHandlerProperty::Pointer(); +} + InternalVariantProperty::Pointer InternalNode::variantProperty(const PropertyName &name) const { InternalProperty::Pointer property = m_namePropertyHash.value(name); @@ -215,6 +224,12 @@ void InternalNode::addBindingProperty(const PropertyName &name) m_namePropertyHash.insert(name, newProperty); } +void InternalNode::addSignalHandlerProperty(const PropertyName &name) +{ + InternalProperty::Pointer newProperty(InternalSignalHandlerProperty::create(name, internalPointer())); + m_namePropertyHash.insert(name, newProperty); +} + InternalNodeListProperty::Pointer InternalNode::nodeListProperty(const PropertyName &name) const { InternalProperty::Pointer property = m_namePropertyHash.value(name); diff --git a/src/plugins/qmldesigner/designercore/model/internalnode_p.h b/src/plugins/qmldesigner/designercore/model/internalnode_p.h index b1edde9d949..37c249f47b7 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode_p.h +++ b/src/plugins/qmldesigner/designercore/model/internalnode_p.h @@ -38,6 +38,7 @@ #include "internalproperty.h" #include "internalvariantproperty.h" #include "internalbindingproperty.h" +#include "internalsignalhandlerproperty.h" #include "internalnodelistproperty.h" #include "internalnodeproperty.h" #include "internalnodeabstractproperty.h" @@ -93,12 +94,14 @@ public: InternalProperty::Pointer property(const PropertyName &name) const; InternalBindingProperty::Pointer bindingProperty(const PropertyName &name) const; + InternalSignalHandlerProperty::Pointer signalHandlerProperty(const PropertyName &name) const; InternalVariantProperty::Pointer variantProperty(const PropertyName &name) const; InternalNodeListProperty::Pointer nodeListProperty(const PropertyName &name) const; InternalNodeAbstractProperty::Pointer nodeAbstractProperty(const PropertyName &name) const; InternalNodeProperty::Pointer nodeProperty(const PropertyName &name) const; void addBindingProperty(const PropertyName &name); + void addSignalHandlerProperty(const PropertyName &name); void addNodeListProperty(const PropertyName &name); void addVariantProperty(const PropertyName &name); void addNodeProperty(const PropertyName &name); diff --git a/src/plugins/qmldesigner/designercore/model/internalproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalproperty.cpp index c5fc9e3438b..2ae1307550f 100644 --- a/src/plugins/qmldesigner/designercore/model/internalproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalproperty.cpp @@ -32,6 +32,7 @@ #include "internalvariantproperty.h" #include "internalnodelistproperty.h" #include "internalnodeproperty.h" +#include "internalsignalhandlerproperty.h" #include "internalnode_p.h" #include #include @@ -116,6 +117,11 @@ bool InternalProperty::isNodeAbstractProperty() const return false; } +bool InternalProperty::isSignalHandlerProperty() const +{ + return false; +} + QSharedPointer InternalProperty::toVariantProperty() const { @@ -146,6 +152,12 @@ QSharedPointer InternalProperty::toNodeAbstractPro return internalPointer().staticCast(); } +QSharedPointer InternalProperty::toSignalHandlerProperty() const +{ + Q_ASSERT(internalPointer().dynamicCast()); + return internalPointer().staticCast(); +} + void InternalProperty::remove() { propertyOwner()->removeProperty(name()); diff --git a/src/plugins/qmldesigner/designercore/model/internalproperty.h b/src/plugins/qmldesigner/designercore/model/internalproperty.h index 8aabd3fe65b..14d72a68a59 100644 --- a/src/plugins/qmldesigner/designercore/model/internalproperty.h +++ b/src/plugins/qmldesigner/designercore/model/internalproperty.h @@ -46,6 +46,7 @@ namespace QmlDesigner { namespace Internal { class InternalBindingProperty; +class InternalSignalHandlerProperty; class InternalVariantProperty; class InternalNodeListProperty; class InternalNodeProperty; @@ -74,12 +75,14 @@ public: virtual bool isNodeListProperty() const; virtual bool isNodeProperty() const; virtual bool isNodeAbstractProperty() const; + virtual bool isSignalHandlerProperty() const; QSharedPointer toBindingProperty() const; QSharedPointer toVariantProperty() const; QSharedPointer toNodeListProperty() const; QSharedPointer toNodeProperty() const; QSharedPointer toNodeAbstractProperty() const; + QSharedPointer toSignalHandlerProperty() const; InternalNodePointer propertyOwner() const; diff --git a/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp new file mode 100644 index 00000000000..73fd1c399ca --- /dev/null +++ b/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "InternalSignalHandlerProperty.h" + +namespace QmlDesigner { +namespace Internal { + +InternalSignalHandlerProperty::InternalSignalHandlerProperty(const PropertyName &name, const InternalNodePointer &propertyOwner) + : InternalProperty(name, propertyOwner) +{ +} + + +InternalSignalHandlerProperty::Pointer InternalSignalHandlerProperty::create(const PropertyName &name, const InternalNodePointer &propertyOwner) +{ + InternalSignalHandlerProperty *newPointer(new InternalSignalHandlerProperty(name, propertyOwner)); + InternalSignalHandlerProperty::Pointer smartPointer(newPointer); + + newPointer->setInternalWeakPointer(smartPointer); + + return smartPointer; +} + +bool InternalSignalHandlerProperty::isValid() const +{ + return InternalProperty::isValid() && isSignalHandlerProperty(); +} + +QString InternalSignalHandlerProperty::source() const +{ + return m_source; +} +void InternalSignalHandlerProperty::setSource(const QString &source) +{ + m_source = source; +} + +bool InternalSignalHandlerProperty::isSignalHandlerProperty() const +{ + return true; +} + +} // namespace Internal +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.h b/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.h new file mode 100644 index 00000000000..335ceb8199d --- /dev/null +++ b/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.h @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef INTERNALSIGNALHANDLERPROPERTY_H +#define INTERNALSIGNALHANDLERPROPERTY_H + +#include "internalproperty.h" + +namespace QmlDesigner { +namespace Internal { + +class InternalSignalHandlerProperty : public InternalProperty +{ +public: + typedef QSharedPointer Pointer; + + static Pointer create(const PropertyName &name, const InternalNodePointer &propertyOwner); + + bool isValid() const; + + QString source() const; + void setSource(const QString &source); + + bool isSignalHandlerProperty() const; + +protected: + InternalSignalHandlerProperty(const PropertyName &name, const InternalNodePointer &propertyOwner); + +private: + QString m_source; +}; + +} // namespace Internal +} // namespace QmlDesigner + +#endif // INTERNALSIGNALHANDLERPROPERTY_H diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp index eb32bf1b904..23b71ef0faf 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -52,6 +52,7 @@ #include "subcomponentmanager.h" #include "internalproperty.h" #include "internalnodelistproperty.h" +#include "internalsignalhandlerproperty.h" #include "internalnodeabstractproperty.h" #include "invalidmodelnodeexception.h" #include "invalidmodelstateexception.h" @@ -60,6 +61,7 @@ #include "abstractproperty.h" #include "variantproperty.h" #include "bindingproperty.h" +#include "signalhandlerproperty.h" #include "nodeabstractproperty.h" #include "nodelistproperty.h" #include "rewritertransaction.h" @@ -1009,6 +1011,46 @@ void ModelPrivate::notifyBindingPropertiesChanged(const QList &internalPropertyList, AbstractView::PropertyChangeFlags propertyChange) +{ + bool resetModel = false; + QString description; + + try { + if (rewriterView()) { + QVector propertyList; + foreach (const InternalSignalHandlerPropertyPointer &signalHandlerProperty, internalPropertyList) { + propertyList.append(SignalHandlerProperty(signalHandlerProperty->name(), signalHandlerProperty->propertyOwner(), model(), rewriterView())); + } + rewriterView()->signalHandlerPropertiesChanged(propertyList, propertyChange); + } + } catch (RewritingException &e) { + description = e.description(); + resetModel = true; + } + + foreach (const QWeakPointer &view, m_viewList) { + Q_ASSERT(view != 0); + QVector propertyList; + foreach (const InternalSignalHandlerPropertyPointer &signalHandlerProperty, internalPropertyList) { + propertyList.append(SignalHandlerProperty(signalHandlerProperty->name(), signalHandlerProperty->propertyOwner(), model(), view.data())); + } + view->signalHandlerPropertiesChanged(propertyList, propertyChange); + + } + + if (nodeInstanceView()) { + QVector propertyList; + foreach (const InternalSignalHandlerPropertyPointer &signalHandlerProperty, internalPropertyList) { + propertyList.append(SignalHandlerProperty(signalHandlerProperty->name(), signalHandlerProperty->propertyOwner(), model(), nodeInstanceView())); + } + nodeInstanceView()->signalHandlerPropertiesChanged(propertyList, propertyChange); + } + + if (resetModel) + resetModelByRewriter(description); +} + void ModelPrivate::notifyScriptFunctionsChanged(const InternalNodePointer &internalNodePointer, const QStringList &scriptFunctionList) { bool resetModel = false; @@ -1392,6 +1434,19 @@ void ModelPrivate::setBindingProperty(const InternalNode::Pointer &internalNode, notifyBindingPropertiesChanged(QList() << bindingProperty, propertyChange); } +void ModelPrivate::setSignalHandlerProperty(const InternalNodePointer &internalNode, const PropertyName &name, const QString &source) +{ + AbstractView::PropertyChangeFlags propertyChange = AbstractView::NoAdditionalChanges; + if (!internalNode->hasProperty(name)) { + internalNode->addSignalHandlerProperty(name); + propertyChange = AbstractView::PropertiesAdded; + } + + InternalSignalHandlerProperty::Pointer signalHandlerProperty = internalNode->signalHandlerProperty(name); + signalHandlerProperty->setSource(source); + notifySignalHandlerPropertiesChanged(QVector() << signalHandlerProperty, propertyChange); +} + void ModelPrivate::setVariantProperty(const InternalNode::Pointer &internalNode, const PropertyName &name, const QVariant &value) { AbstractView::PropertyChangeFlags propertyChange = AbstractView::NoAdditionalChanges; diff --git a/src/plugins/qmldesigner/designercore/model/model_p.h b/src/plugins/qmldesigner/designercore/model/model_p.h index 57ff11e4da8..ae0f156eb56 100644 --- a/src/plugins/qmldesigner/designercore/model/model_p.h +++ b/src/plugins/qmldesigner/designercore/model/model_p.h @@ -56,6 +56,7 @@ namespace Internal { class InternalNode; class InternalProperty; class InternalBindingProperty; +class InternalSignalHandlerProperty; class InternalVariantProperty; class InternalNodeAbstractProperty; class InternalNodeListProperty; @@ -63,6 +64,7 @@ class InternalNodeListProperty; typedef QSharedPointer InternalNodePointer; typedef QSharedPointer InternalPropertyPointer; typedef QSharedPointer InternalBindingPropertyPointer; +typedef QSharedPointer InternalSignalHandlerPropertyPointer; typedef QSharedPointer InternalVariantPropertyPointer; typedef QSharedPointer InternalNodeAbstractPropertyPointer; typedef QSharedPointer InternalNodeListPropertyPointer; @@ -137,6 +139,7 @@ public: void notifyPropertiesRemoved(const QList &propertyList); void notifyPropertiesAboutToBeRemoved(const QList &propertyList); void notifyBindingPropertiesChanged(const QList &propertyList, AbstractView::PropertyChangeFlags propertyChange); + void notifySignalHandlerPropertiesChanged(const QVector &propertyList, AbstractView::PropertyChangeFlags propertyChange); void notifyVariantPropertiesChanged(const InternalNodePointer &internalNodePointer, const PropertyNameList &propertyNameList, AbstractView::PropertyChangeFlags propertyChange); void notifyScriptFunctionsChanged(const InternalNodePointer &internalNodePointer, const QStringList &scriptFunctionList); @@ -187,6 +190,7 @@ public: void removeProperty(const InternalPropertyPointer &property); void setBindingProperty(const InternalNodePointer &internalNode, const PropertyName &name, const QString &expression); + void setSignalHandlerProperty(const InternalNodePointer &internalNode, const PropertyName &name, const QString &source); void setVariantProperty(const InternalNodePointer &internalNode, const PropertyName &name, const QVariant &value); void setDynamicVariantProperty(const InternalNodePointer &internalNode, const PropertyName &name, const TypeName &propertyType, const QVariant &value); void setDynamicBindingProperty(const InternalNodePointer &internalNode, const PropertyName &name, const TypeName &dynamicPropertyType, const QString &expression); diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp index 1266241b124..b1752c3c7fd 100644 --- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp @@ -44,6 +44,7 @@ #include "model_p.h" #include "variantproperty.h" #include "bindingproperty.h" +#include "signalhandlerproperty.h" #include "nodeabstractproperty.h" #include "nodelistproperty.h" #include "nodeproperty.h" @@ -404,6 +405,14 @@ BindingProperty ModelNode::bindingProperty(const PropertyName &name) const return BindingProperty(name, m_internalNode, model(), view()); } +SignalHandlerProperty ModelNode::signalHandlerProperty(const PropertyName &name) const +{ + if (!isValid()) + throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); + + return SignalHandlerProperty(name, m_internalNode, model(), view()); +} + /*! \brief Returns a NodeProperty diff --git a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp index 511ea6c44e3..53d0bab0fb4 100644 --- a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp @@ -315,7 +315,7 @@ void ModelToTextMerger::schedule(RewriteAction *action) QmlDesigner::QmlRefactoring::PropertyType ModelToTextMerger::propertyType(const AbstractProperty &property, const QString &textValue) { - if (property.isBindingProperty()) { + if (property.isBindingProperty() || property.isSignalHandlerProperty()) { QString val = textValue.trimmed(); if (val.isEmpty()) return QmlDesigner::QmlRefactoring::ObjectBinding; diff --git a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp index 655b821d379..0b41ad18eeb 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp @@ -366,6 +366,7 @@ void QmlModelView::propertiesAboutToBeRemoved(const QList& /*p void QmlModelView::propertiesRemoved(const QList& /*propertyList*/) {} void QmlModelView::variantPropertiesChanged(const QList& /*propertyList*/, PropertyChangeFlags /*propertyChange*/) {} void QmlModelView::bindingPropertiesChanged(const QList& /*propertyList*/, PropertyChangeFlags /*propertyChange*/) {} +void QmlModelView::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, AbstractView::PropertyChangeFlags /*propertyChange*/) {} void QmlModelView::rootNodeTypeChanged(const QString &/*type*/, int, int /*minorVersion*/) {} void QmlModelView::scriptFunctionsChanged(const ModelNode &/*node*/, const QStringList &/*scriptFunctionList*/) {} void QmlModelView::selectedNodesChanged(const QList &/*selectedNodeList*/, const QList &/*lastSelectedNodeList*/) {} diff --git a/src/plugins/qmldesigner/designercore/model/qmltextgenerator.cpp b/src/plugins/qmldesigner/designercore/model/qmltextgenerator.cpp index ebd001a2922..1fe6d0e0272 100644 --- a/src/plugins/qmldesigner/designercore/model/qmltextgenerator.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmltextgenerator.cpp @@ -33,6 +33,7 @@ #include #include "bindingproperty.h" +#include "signalhandlerproperty.h" #include "nodeproperty.h" #include "nodelistproperty.h" #include "variantproperty.h" @@ -74,6 +75,8 @@ QString QmlTextGenerator::toQml(const AbstractProperty &property, int indentDept { if (property.isBindingProperty()) { return property.toBindingProperty().expression(); + } else if (property.isSignalHandlerProperty()) { + return property.toSignalHandlerProperty().source(); } else if (property.isNodeProperty()) { return toQml(property.toNodeProperty().modelNode(), indentDepth); } else if (property.isNodeListProperty()) { diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index 139c4c99ab9..1934399d448 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -43,6 +43,7 @@ #include "modeltotextmerger.h" #include "nodelistproperty.h" #include "nodeproperty.h" +#include "signalhandlerproperty.h" #include "invalidmodelnodeexception.h" @@ -264,6 +265,22 @@ void RewriterView::bindingPropertiesChanged(const QList& proper applyChanges(); } +void RewriterView::signalHandlerPropertiesChanged(const QVector &propertyList, AbstractView::PropertyChangeFlags propertyChange) +{ + Q_ASSERT(textModifier()); + if (textToModelMerger()->isActive()) + return; + + QList usefulPropertyList; + foreach (const SignalHandlerProperty &property, propertyList) + usefulPropertyList.append(property); + + modelToTextMerger()->propertiesChanged(usefulPropertyList, propertyChange); + + if (!isModificationGroupActive()) + applyChanges(); +} + void RewriterView::nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) { Q_ASSERT(textModifier()); diff --git a/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp b/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp new file mode 100644 index 00000000000..fd03f46848b --- /dev/null +++ b/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "SignalHandlerProperty.h" +#include "nodeabstractproperty.h" +#include "nodeproperty.h" +#include "internalproperty.h" +#include "internalSignalHandlerProperty.h" +#include "invalidmodelnodeexception.h" +#include "invalidpropertyexception.h" +#include "invalidargumentexception.h" +#include "internalnode_p.h" +#include "model.h" +#include "model_p.h" +namespace QmlDesigner { + +SignalHandlerProperty::SignalHandlerProperty() +{ +} + +SignalHandlerProperty::SignalHandlerProperty(const SignalHandlerProperty &property, AbstractView *view) + : AbstractProperty(property.name(), property.internalNode(), property.model(), view) +{ +} + + +SignalHandlerProperty::SignalHandlerProperty(const PropertyName &propertyName, const Internal::InternalNodePointer &internalNode, Model* model, AbstractView *view) + : AbstractProperty(propertyName, internalNode, model, view) +{ +} + + +void SignalHandlerProperty::setSource(const QString &source) +{ + Internal::WriteLocker locker(model()); + if (!isValid()) + throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); + + if (name() == "id") { // the ID for a node is independent of the state, so it has to be set with ModelNode::setId + throw InvalidPropertyException(__LINE__, __FUNCTION__, __FILE__, name()); + } + + if (source.isEmpty()) + throw InvalidArgumentException(__LINE__, __FUNCTION__, __FILE__, name()); + + if (internalNode()->hasProperty(name())) { //check if oldValue != value + Internal::InternalProperty::Pointer internalProperty = internalNode()->property(name()); + if (internalProperty->isSignalHandlerProperty() + && internalProperty->toSignalHandlerProperty()->source() == source) + + return; + } + + if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isSignalHandlerProperty()) + model()->d->removeProperty(internalNode()->property(name())); + + model()->d->setSignalHandlerProperty(internalNode(), name(), source); +} + +QString SignalHandlerProperty::source() const +{ + if (internalNode()->hasProperty(name()) + && internalNode()->property(name())->isSignalHandlerProperty()) + return internalNode()->signalHandlerProperty(name())->source(); + + return QString(); +} + +SignalHandlerProperty& SignalHandlerProperty::operator= (const QString &source) +{ + setSource(source); + + return *this; +} + +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index de6c4d75d8b..540e0d49a00 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -40,6 +40,7 @@ #include "textmodifier.h" #include "rewriterview.h" #include "variantproperty.h" +#include "signalhandlerproperty.h" #include "nodemetainfo.h" #include "qmldesignercorelib_global.h" @@ -263,6 +264,11 @@ static bool isPropertyChangesType(const QmlDesigner::TypeName &type) return type == "PropertyChanges" || type == "QtQuick.PropertyChanges" || type == "Qt.PropertyChanges"; } +static bool isConnectionsType(const QmlDesigner::TypeName &type) +{ + return type == "Connections" || type == "QtQuick.Connections" || type == "Qt.Connections"; +} + static bool propertyIsComponentType(const QmlDesigner::NodeAbstractProperty &property, const QmlDesigner::TypeName &type, QmlDesigner::Model *model) { if (model->metaInfo(type, -1, -1).isSubclassOf("QtQuick.Component", -1, -1) && !isComponentType(type)) @@ -916,7 +922,7 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, if (UiArrayBinding *array = cast(member)) { const QString astPropertyName = toString(array->qualifiedId); - if (isPropertyChangesType(typeName) || context->lookupProperty(QString(), array->qualifiedId)) { + if (isPropertyChangesType(typeName) || isConnectionsType(typeName) || context->lookupProperty(QString(), array->qualifiedId)) { AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); QList arrayMembers; for (UiArrayMemberList *iter = array->members; iter; iter = iter->next) @@ -950,7 +956,9 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, const Value *propertyType = 0; const ObjectValue *containingObject = 0; QString name; - if (context->lookupProperty(QString(), binding->qualifiedId, &propertyType, &containingObject, &name) || isPropertyChangesType(typeName)) { + if (context->lookupProperty(QString(), binding->qualifiedId, &propertyType, &containingObject, &name) + || isPropertyChangesType(typeName) + || isConnectionsType(typeName)) { AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); if (context->isArrayProperty(propertyType, containingObject, name)) syncArrayProperty(modelProperty, QList() << member, context, differenceHandler); @@ -1050,11 +1058,15 @@ QmlDesigner::PropertyName TextToModelMerger::syncScriptBinding(ModelNode &modelN return astPropertyName.toUtf8(); } - if (isSignalPropertyName(astPropertyName)) - return PropertyName(); + if (isSignalPropertyName(astPropertyName)) { + AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); + syncSignalHandler(modelProperty, astValue, differenceHandler); + return astPropertyName.toUtf8(); + } if (isLiteralValue(script)) { - if (isPropertyChangesType(modelNode.type())) { + if (isPropertyChangesType(modelNode.type()) + || isConnectionsType(modelNode.type())) { AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); const QVariant variantValue(deEscape(stripQuotes(astValue))); syncVariantProperty(modelProperty, variantValue, TypeName(), differenceHandler); @@ -1079,7 +1091,9 @@ QmlDesigner::PropertyName TextToModelMerger::syncScriptBinding(ModelNode &modelN syncVariantProperty(modelProperty, enumValue, TypeName(), differenceHandler); // TODO: parse type return astPropertyName.toUtf8(); } else { // Not an enum, so: - if (isPropertyChangesType(modelNode.type()) || context->lookupProperty(prefix, script->qualifiedId)) { + if (isPropertyChangesType(modelNode.type()) + || isConnectionsType(modelNode.type()) + || context->lookupProperty(prefix, script->qualifiedId)) { AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); syncExpressionProperty(modelProperty, astValue, TypeName(), differenceHandler); // TODO: parse type return astPropertyName.toUtf8(); @@ -1159,6 +1173,21 @@ void TextToModelMerger::syncExpressionProperty(AbstractProperty &modelProperty, } } +void TextToModelMerger::syncSignalHandler(AbstractProperty &modelProperty, + const QString &javascript, + DifferenceHandler &differenceHandler) +{ + if (modelProperty.isSignalHandlerProperty()) { + SignalHandlerProperty signalHandlerProperty = modelProperty.toSignalHandlerProperty(); + if (signalHandlerProperty.source() != javascript) { + differenceHandler.signalHandlerSourceDiffer(signalHandlerProperty, javascript); + } + } else { + differenceHandler.shouldBeSignalHandlerProperty(modelProperty, javascript); + } +} + + void TextToModelMerger::syncArrayProperty(AbstractProperty &modelProperty, const QList &arrayMembers, ReadingContext *context, @@ -1321,6 +1350,21 @@ void ModelValidator::shouldBeBindingProperty(AbstractProperty &modelProperty, Q_ASSERT(0); } +void ModelValidator::signalHandlerSourceDiffer(SignalHandlerProperty &modelProperty, const QString &javascript) +{ + Q_UNUSED(modelProperty) + Q_UNUSED(javascript) + Q_ASSERT(modelProperty.source() == javascript); + Q_ASSERT(0); +} + +void ModelValidator::shouldBeSignalHandlerProperty(AbstractProperty &modelProperty, const QString &javascript) +{ + Q_UNUSED(modelProperty) + Q_ASSERT(modelProperty.isSignalHandlerProperty()); + Q_ASSERT(0); +} + void ModelValidator::shouldBeNodeListProperty(AbstractProperty &modelProperty, const QList /*arrayMembers*/, ReadingContext * /*context*/) @@ -1450,6 +1494,18 @@ void ModelAmender::shouldBeBindingProperty(AbstractProperty &modelProperty, newModelProperty.setDynamicTypeNameAndExpression(astType, javascript); } +void ModelAmender::signalHandlerSourceDiffer(SignalHandlerProperty &modelProperty, const QString &javascript) +{ + modelProperty.setSource(javascript); +} + +void ModelAmender::shouldBeSignalHandlerProperty(AbstractProperty &modelProperty, const QString &javascript) +{ + ModelNode theNode = modelProperty.parentModelNode(); + SignalHandlerProperty newModelProperty = theNode.signalHandlerProperty(modelProperty.name()); + newModelProperty.setSource(javascript); +} + void ModelAmender::shouldBeNodeListProperty(AbstractProperty &modelProperty, const QList arrayMembers, ReadingContext *context) diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h index 81c4797d6f7..68e9a4778c2 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h @@ -94,6 +94,9 @@ public: const QString &javascript, const TypeName &astType, DifferenceHandler &differenceHandler); + void syncSignalHandler(AbstractProperty &modelProperty, + const QString &javascript, + DifferenceHandler &differenceHandler); void syncArrayProperty(AbstractProperty &modelProperty, const QList &arrayMembers, ReadingContext *context, @@ -123,7 +126,6 @@ public: void setupCustomParserNodeDelayed(const ModelNode &node, bool synchron); void delayedSetup(); - private: void setupCustomParserNode(const ModelNode &node); void setupComponent(const ModelNode &node); @@ -158,9 +160,13 @@ public: virtual void bindingExpressionsDiffer(BindingProperty &modelProperty, const QString &javascript, const TypeName &astType) = 0; + virtual void signalHandlerSourceDiffer(SignalHandlerProperty &modelProperty, + const QString &javascript) = 0; virtual void shouldBeBindingProperty(AbstractProperty &modelProperty, const QString &javascript, const TypeName &astType) = 0; + virtual void shouldBeSignalHandlerProperty(AbstractProperty &modelProperty, + const QString &javascript) = 0; virtual void shouldBeNodeListProperty(AbstractProperty &modelProperty, const QList arrayMembers, ReadingContext *context) = 0; @@ -208,6 +214,10 @@ public: virtual void shouldBeBindingProperty(AbstractProperty &modelProperty, const QString &javascript, const TypeName &astType); + virtual void signalHandlerSourceDiffer(SignalHandlerProperty &modelProperty, + const QString &javascript); + virtual void shouldBeSignalHandlerProperty(AbstractProperty &modelProperty, + const QString &javascript); virtual void shouldBeNodeListProperty(AbstractProperty &modelProperty, const QList arrayMembers, ReadingContext *context); @@ -252,6 +262,10 @@ public: virtual void shouldBeBindingProperty(AbstractProperty &modelProperty, const QString &javascript, const TypeName &astType); + virtual void signalHandlerSourceDiffer(SignalHandlerProperty &modelProperty, + const QString &javascript); + virtual void shouldBeSignalHandlerProperty(AbstractProperty &modelProperty, + const QString &javascript); virtual void shouldBeNodeListProperty(AbstractProperty &modelProperty, const QList arrayMembers, ReadingContext *context); diff --git a/src/plugins/qmldesigner/designercore/model/viewlogger.cpp b/src/plugins/qmldesigner/designercore/model/viewlogger.cpp index c0871e08c35..95c76f74177 100644 --- a/src/plugins/qmldesigner/designercore/model/viewlogger.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewlogger.cpp @@ -152,6 +152,10 @@ void ViewLogger::bindingPropertiesChanged(const QList& property m_output << time() << indent() << property << endl; } +void ViewLogger::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, AbstractView::PropertyChangeFlags /*propertyChange*/) +{ +} + void ViewLogger::rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) { m_output << time() << indent("rootNodeTypeChanged:") << rootModelNode() << type << majorVersion << minorVersion << endl; diff --git a/src/plugins/qmldesigner/designercore/model/viewlogger.h b/src/plugins/qmldesigner/designercore/model/viewlogger.h index 1c1f2444ffe..baa94550aca 100644 --- a/src/plugins/qmldesigner/designercore/model/viewlogger.h +++ b/src/plugins/qmldesigner/designercore/model/viewlogger.h @@ -57,6 +57,7 @@ public: void propertiesRemoved(const QList& propertyList); void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange); void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange); + void signalHandlerPropertiesChanged(const QVector &propertyList, PropertyChangeFlags propertyChange); void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion); void selectedNodesChanged(const QList &selectedNodeList, From b32b942698f114b34be2237ee23f96886eaa1bb2 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 27 Mar 2013 11:02:04 +0100 Subject: [PATCH 11/48] QmlDesigner.MetaInfo: adding NodeMetaInfo::signalNames() This allows us to access signal names. Change-Id: I37f15d689fde98c3a0101080cce012efcb555085 Reviewed-by: Marco Bubke --- .../designercore/include/nodemetainfo.h | 1 + .../designercore/metainfo/nodemetainfo.cpp | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h index 54f86ca67da..c2c4766bb0a 100644 --- a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h +++ b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h @@ -71,6 +71,7 @@ public: bool isFileComponent() const; bool hasProperty(const PropertyName &propertyName) const; PropertyNameList propertyNames() const; + PropertyNameList signalNames() const; PropertyNameList directPropertyNames() const; PropertyName defaultPropertyName() const; bool hasDefaultProperty() const; diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index fbfc3fce8d2..9a99ea08bdc 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -164,10 +164,19 @@ public: return true; } + virtual bool processSignal(const QString &name, const Value * /*value*/) + { + m_signals.append(name.toUtf8()); + return true; + } + QList properties() const { return m_properties; } + PropertyNameList signalList() const { return m_signals; } + private: QList m_properties; + PropertyNameList m_signals; const ContextPtr m_context; }; @@ -278,6 +287,32 @@ QList getQmlTypes(const CppComponentValue *objectValue, const Cont return propertyList; } +PropertyNameList getSignals(const ObjectValue *objectValue, const ContextPtr &context, bool local = false) +{ + PropertyNameList signalList; + + if (!objectValue) + return signalList; + if (objectValue->className().isEmpty()) + return signalList; + + PropertyMemberProcessor processor(context); + objectValue->processMembers(&processor); + + signalList.append(processor.signalList()); + + if (!local) { + const ObjectValue* prototype = objectValue->prototype(context); + + if (prototype == objectValue) + return signalList; + + signalList.append(getSignals(prototype, context)); + } + + return signalList; +} + QList getTypes(const ObjectValue *objectValue, const ContextPtr &context, bool local = false) { QList propertyList; @@ -334,6 +369,7 @@ public: bool isFileComponent() const; PropertyNameList properties() const; PropertyNameList localProperties() const; + PropertyNameList signalNames() const; PropertyName defaultPropertyName() const; TypeName propertyType(const PropertyName &propertyName) const; @@ -386,6 +422,7 @@ private: bool m_isValid; bool m_isFileComponent; PropertyNameList m_properties; + PropertyNameList m_signals; QList m_propertyTypes; PropertyNameList m_localProperties; PropertyName m_defaultPropertyName; @@ -418,6 +455,11 @@ PropertyNameList NodeMetaInfoPrivate::localProperties() const return m_localProperties; } +PropertyNameList NodeMetaInfoPrivate::signalNames() const +{ + return m_signals; +} + QSet &NodeMetaInfoPrivate::prototypeCachePositives() { return m_prototypeCachePositives; @@ -484,6 +526,7 @@ NodeMetaInfoPrivate::NodeMetaInfoPrivate(Model *model, TypeName type, int maj, i m_defaultPropertyName = objectValue->defaultPropertyName().toUtf8(); m_isValid = true; setupPrototypes(); + m_signals = getSignals(objectValue, context()); } else { const ObjectValue *objectValue = getObjectValue(); if (objectValue) { @@ -512,6 +555,7 @@ NodeMetaInfoPrivate::NodeMetaInfoPrivate(Model *model, TypeName type, int maj, i m_defaultPropertyName = context()->defaultPropertyName(objectValue).toUtf8(); m_isValid = true; setupPrototypes(); + m_signals = getSignals(objectValue, context()); } } } @@ -1045,6 +1089,11 @@ PropertyNameList NodeMetaInfo::propertyNames() const return m_privateData->properties(); } +PropertyNameList NodeMetaInfo::signalNames() const +{ + return m_privateData->signalNames(); +} + PropertyNameList NodeMetaInfo::directPropertyNames() const { return m_privateData->localProperties(); From f5a8fedbe4516615880b5c56caf8f6478037b950 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 27 Mar 2013 15:18:00 +0100 Subject: [PATCH 12/48] QmlDesigner: fixing memory leak The ResizeHandleItems were never deleted which means we were leaking quite a lot of memory, whenever the selection changed. Change-Id: Id9f0fd1361f25d8583922a66e1f90a2970e56ae3 Reviewed-by: Marco Bubke --- .../formeditor/resizecontroller.cpp | 51 +++++++++++++------ .../components/formeditor/resizecontroller.h | 25 +-------- 2 files changed, 36 insertions(+), 40 deletions(-) diff --git a/src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp b/src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp index 5072f8ca32a..34b0018ef40 100644 --- a/src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp +++ b/src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp @@ -38,8 +38,27 @@ namespace QmlDesigner { +class ResizeControllerData +{ +public: + ResizeControllerData(LayerItem *layerItem, + FormEditorItem *formEditorItem); + ResizeControllerData(const ResizeControllerData &other); + ~ResizeControllerData(); + QWeakPointer layerItem; + QWeakPointer formEditorItem; + QSharedPointer topLeftItem; + QSharedPointer topRightItem; + QSharedPointer bottomLeftItem; + QSharedPointer bottomRightItem; + QSharedPointer topItem; + QSharedPointer leftItem; + QSharedPointer rightItem; + QSharedPointer bottomItem; +}; + ResizeControllerData::ResizeControllerData(LayerItem *layerItem, FormEditorItem *formEditorItem) : layerItem(layerItem), formEditorItem(formEditorItem), @@ -71,14 +90,14 @@ ResizeControllerData::ResizeControllerData(const ResizeControllerData &other) ResizeControllerData::~ResizeControllerData() { if (layerItem) { - layerItem->scene()->removeItem(topLeftItem); - layerItem->scene()->removeItem(topRightItem); - layerItem->scene()->removeItem(bottomLeftItem); - layerItem->scene()->removeItem(bottomRightItem); - layerItem->scene()->removeItem(topItem); - layerItem->scene()->removeItem(leftItem); - layerItem->scene()->removeItem(rightItem); - layerItem->scene()->removeItem(bottomItem); + layerItem->scene()->removeItem(topLeftItem.data()); + layerItem->scene()->removeItem(topRightItem.data()); + layerItem->scene()->removeItem(bottomLeftItem.data()); + layerItem->scene()->removeItem(bottomRightItem.data()); + layerItem->scene()->removeItem(topItem.data()); + layerItem->scene()->removeItem(leftItem.data()); + layerItem->scene()->removeItem(rightItem.data()); + layerItem->scene()->removeItem(bottomItem.data()); } } @@ -98,35 +117,35 @@ ResizeController::ResizeController(const QSharedPointer &d ResizeController::ResizeController(LayerItem *layerItem, FormEditorItem *formEditorItem) : m_data(new ResizeControllerData(layerItem, formEditorItem)) { - m_data->topLeftItem = new ResizeHandleItem(layerItem, *this); + m_data->topLeftItem = QSharedPointer(new ResizeHandleItem(layerItem, *this)); m_data->topLeftItem->setZValue(302); m_data->topLeftItem->setCursor(Qt::SizeFDiagCursor); - m_data->topRightItem = new ResizeHandleItem(layerItem, *this); + m_data->topRightItem = QSharedPointer(new ResizeHandleItem(layerItem, *this)); m_data->topRightItem->setZValue(301); m_data->topRightItem->setCursor(Qt::SizeBDiagCursor); - m_data->bottomLeftItem = new ResizeHandleItem(layerItem, *this); + m_data->bottomLeftItem = QSharedPointer(new ResizeHandleItem(layerItem, *this)); m_data->bottomLeftItem->setZValue(301); m_data->bottomLeftItem->setCursor(Qt::SizeBDiagCursor); - m_data->bottomRightItem = new ResizeHandleItem(layerItem, *this); + m_data->bottomRightItem = QSharedPointer(new ResizeHandleItem(layerItem, *this)); m_data->bottomRightItem->setZValue(305); m_data->bottomRightItem->setCursor(Qt::SizeFDiagCursor); - m_data->topItem = new ResizeHandleItem(layerItem, *this); + m_data->topItem = QSharedPointer(new ResizeHandleItem(layerItem, *this)); m_data->topItem->setZValue(300); m_data->topItem->setCursor(Qt::SizeVerCursor); - m_data->leftItem = new ResizeHandleItem(layerItem, *this); + m_data->leftItem = QSharedPointer(new ResizeHandleItem(layerItem, *this)); m_data->leftItem->setZValue(300); m_data->leftItem->setCursor(Qt::SizeHorCursor); - m_data->rightItem = new ResizeHandleItem(layerItem, *this); + m_data->rightItem = QSharedPointer(new ResizeHandleItem(layerItem, *this)); m_data->rightItem->setZValue(300); m_data->rightItem->setCursor(Qt::SizeHorCursor); - m_data->bottomItem = new ResizeHandleItem(layerItem, *this); + m_data->bottomItem = QSharedPointer(new ResizeHandleItem(layerItem, *this)); m_data->bottomItem->setZValue(300); m_data->bottomItem->setCursor(Qt::SizeVerCursor); diff --git a/src/plugins/qmldesigner/components/formeditor/resizecontroller.h b/src/plugins/qmldesigner/components/formeditor/resizecontroller.h index 769975f5d74..d81ea62bd94 100644 --- a/src/plugins/qmldesigner/components/formeditor/resizecontroller.h +++ b/src/plugins/qmldesigner/components/formeditor/resizecontroller.h @@ -40,30 +40,7 @@ class FormEditorItem; class LayerItem; class ResizeHandleItem; - -class ResizeControllerData -{ -public: - ResizeControllerData(LayerItem *layerItem, - FormEditorItem *formEditorItem); - ResizeControllerData(const ResizeControllerData &other); - ~ResizeControllerData(); - - - QWeakPointer layerItem; - QWeakPointer formEditorItem; - ResizeHandleItem *topLeftItem; - ResizeHandleItem *topRightItem; - ResizeHandleItem *bottomLeftItem; - ResizeHandleItem *bottomRightItem; - ResizeHandleItem *topItem; - ResizeHandleItem *leftItem; - ResizeHandleItem *rightItem; - ResizeHandleItem *bottomItem; -}; - - - +class ResizeControllerData; class ResizeController { From e86f20a0a2a503b6f40cb487f33f8d471cd1164c Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 27 Mar 2013 15:33:05 +0100 Subject: [PATCH 13/48] QmlDesigner: fixing memory leak The method removeItem() does not delete the item. Change-Id: I3cca971c32687c6067243f5b217a9dd3df4277bc Reviewed-by: Marco Bubke --- .../qmldesigner/components/formeditor/selectionindicator.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/formeditor/selectionindicator.cpp b/src/plugins/qmldesigner/components/formeditor/selectionindicator.cpp index 00adadd3d71..53fd6767c45 100644 --- a/src/plugins/qmldesigner/components/formeditor/selectionindicator.cpp +++ b/src/plugins/qmldesigner/components/formeditor/selectionindicator.cpp @@ -63,8 +63,10 @@ void SelectionIndicator::hide() void SelectionIndicator::clear() { if (m_layerItem) { - foreach (QGraphicsItem *item, m_indicatorShapeHash.values()) + foreach (QGraphicsItem *item, m_indicatorShapeHash.values()) { m_layerItem->scene()->removeItem(item); + delete item; + } } m_indicatorShapeHash.clear(); } From a643fc75a7391e2dab91fb9ddefbe2a64b118425 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 27 Mar 2013 17:03:01 +0100 Subject: [PATCH 14/48] QmlDesigner: fixing warning Change-Id: Ia706ce30dee5fe2c4ac25f092bbdd41f2c4341de Reviewed-by: Marco Bubke --- .../qmldesigner/designercore/model/internalnodeproperty.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/qmldesigner/designercore/model/internalnodeproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalnodeproperty.cpp index 1e97caae010..0f80eee5503 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnodeproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalnodeproperty.cpp @@ -86,6 +86,7 @@ InternalNode::Pointer InternalNodeProperty::node() const void InternalNodeProperty::remove(const InternalNode::Pointer &node) { + Q_UNUSED(node) Q_ASSERT(m_node == node); m_node.clear(); From 4a81df97b9fc23de08a12ec18541c37feb693df9 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 28 Mar 2013 13:54:49 +0100 Subject: [PATCH 15/48] QmlDesigner: fixing warnings for GCC 4.8 A friend declaration for a class does not need the export macro. This triggered a warning on GCC 4.8. Change-Id: Ib5ac034cd56ed7bf52c7e254602fd80f62f6bd99 Reviewed-by: Marco Bubke --- src/plugins/qmldesigner/designercore/include/qmlitemnode.h | 2 +- src/plugins/qmldesigner/designercore/include/qmlmodelview.h | 4 ++-- src/plugins/qmldesigner/designercore/include/qmlstate.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h index 0411ba77c4b..f9c7e547665 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h @@ -46,7 +46,7 @@ class QmlAnchors; class QMLDESIGNERCORE_EXPORT QmlItemNode : public QmlObjectNode { - friend class QMLDESIGNERCORE_EXPORT QmlAnchors; + friend class QmlAnchors; public: QmlItemNode() : QmlObjectNode() {} QmlItemNode(const ModelNode &modelNode) : QmlObjectNode(modelNode) {} diff --git a/src/plugins/qmldesigner/designercore/include/qmlmodelview.h b/src/plugins/qmldesigner/designercore/include/qmlmodelview.h index 8807f2cff4e..9af0420fd28 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlmodelview.h +++ b/src/plugins/qmldesigner/designercore/include/qmlmodelview.h @@ -45,8 +45,8 @@ class ItemLibraryEntry; class QMLDESIGNERCORE_EXPORT QmlModelView : public AbstractView { Q_OBJECT - friend QMLDESIGNERCORE_EXPORT class QmlObjectNode; - friend QMLDESIGNERCORE_EXPORT class QmlModelNodeFacade; + friend class QmlObjectNode; + friend class QmlModelNodeFacade; public: QmlModelView(QObject *parent) ; diff --git a/src/plugins/qmldesigner/designercore/include/qmlstate.h b/src/plugins/qmldesigner/designercore/include/qmlstate.h index 2831011c42d..84e358b0426 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlstate.h +++ b/src/plugins/qmldesigner/designercore/include/qmlstate.h @@ -42,7 +42,7 @@ class QmlObjectNode; class QMLDESIGNERCORE_EXPORT QmlModelState : public QmlModelNodeFacade { - friend class QMLDESIGNERCORE_EXPORT QmlModelView; + friend class QmlModelView; public: QmlModelState(); From 2c1b369687dedba53b77a27be1222bd7a20b9aee Mon Sep 17 00:00:00 2001 From: hluk Date: Thu, 28 Mar 2013 16:53:40 +0100 Subject: [PATCH 16/48] FakeVim: Don't handle key code -1 as ASCII character Task-number: QTCREATORBUG-9010 Change-Id: I690afd4d5ca4ae95ae910eeb8d1c936cef9d70b2 Reviewed-by: hjk Reviewed-by: Eike Ziller --- src/plugins/fakevim/fakevimhandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 469326171c4..23159ea6a45 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -840,7 +840,7 @@ public: m_text.clear(); // Set text only if input is ascii key without control modifier. - if (m_text.isEmpty() && k <= 0x7f && (m & (HostOsInfo::controlModifier())) == 0) { + if (m_text.isEmpty() && k >= 0 && k <= 0x7f && (m & (HostOsInfo::controlModifier())) == 0) { QChar c = QChar::fromAscii(k); m_text = QString((m & ShiftModifier) != 0 ? c.toUpper() : c.toLower()); } From bbfbef37ee3774532b387ed887ff01e215ea17b2 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 27 Mar 2013 16:10:58 +0200 Subject: [PATCH 17/48] Enable WITH_TESTS when BUILD_TESTS is specified Change-Id: Ie871ea099caa08b2757303e81733acc5ed6294de Reviewed-by: Eike Ziller (cherry picked from commit 8ae9d61b3cf9af78f3814748db5d21156eaefc90) --- qtcreator.pri | 2 ++ 1 file changed, 2 insertions(+) diff --git a/qtcreator.pri b/qtcreator.pri index 044193ba6aa..219bbc0eeef 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -94,6 +94,8 @@ defineReplace(stripSrcDir) { } # qt5 +!isEmpty(BUILD_TESTS):TEST = 1 + isEmpty(TEST):CONFIG(debug, debug|release) { !debug_and_release|build_pass { TEST = 1 From f35f7b207f0d61681b037da67e92c61da36ea338 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 27 Mar 2013 16:03:15 +0200 Subject: [PATCH 18/48] Tests: Remove unneeded define It is unneeded for any Qt version since commit 3d629b1a2bec3c336cbb59fe8ed8aaf35b9b27cc Change-Id: Ib58795a53eb3f5614a722282439d26d3250f7d03 Reviewed-by: Eike Ziller Reviewed-by: Friedemann Kleint --- tests/auto/ioutils/ioutils.pro | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/auto/ioutils/ioutils.pro b/tests/auto/ioutils/ioutils.pro index 960183d79e3..a4b2b5787fa 100644 --- a/tests/auto/ioutils/ioutils.pro +++ b/tests/auto/ioutils/ioutils.pro @@ -1,6 +1,5 @@ include(../qttest.pri) -DEFINES += QT_BOOTSTRAPPED # for shellQuote(). hopefully without side effects ... INCLUDEPATH += $$IDE_SOURCE_TREE/src/shared SOURCES += tst_ioutils.cpp \ $$IDE_SOURCE_TREE/src/shared/proparser/ioutils.cpp From 71fab3f714bb305ab7bdeaa92811d322aa0e2f1e Mon Sep 17 00:00:00 2001 From: Pavel Fric Date: Wed, 20 Mar 2013 18:21:19 +0100 Subject: [PATCH 19/48] Update Czech translation Change-Id: Ic4357b7302266264fd5674085871819c25adb7bd Reviewed-by: Tomas Pospichal Reviewed-by: Oswald Buddenhagen --- share/qtcreator/translations/qtcreator_cs.ts | 5048 ++++++++++++++++-- 1 file changed, 4613 insertions(+), 435 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_cs.ts b/share/qtcreator/translations/qtcreator_cs.ts index 387ffcbf9b1..bf5bf20a236 100644 --- a/share/qtcreator/translations/qtcreator_cs.ts +++ b/share/qtcreator/translations/qtcreator_cs.ts @@ -244,6 +244,10 @@ Remove All Odstranit vše + + Edit Note + Upravit poznámku + &Remove Bookmark &Odstranit záložku @@ -311,6 +315,10 @@ Next Bookmark in Document Další záložka v dokumentu + + Edit Bookmark Note + Upravit poznámku k záložce + Previous Bookmark In Document Předchozí záložka v dokumentu @@ -371,6 +379,10 @@ Build directory: Adresář pro sestavování: + + CMake + CMake + CMakeProjectManager::Internal::CMakeOpenProjectWizard @@ -508,6 +520,10 @@ No generator selected. Nevybrán žádný generátor. + + No valid CMake executable specified. + Nebyl zadán žádný platný spustitelný soubor pro cmake. + CMake exited with errors. Please check CMake output. Cmake skončil s chybou. Prověřte, prosím, výstup cmake. @@ -546,7 +562,7 @@ No valid cmake executable specified. - Nebyl zadán žádný platný spustitelný soubor pro cmake. + Nebyl zadán žádný platný spustitelný soubor pro cmake. Qt Creator needs to run cmake in the new build directory. Some projects require command line arguments to the initial cmake call. @@ -594,9 +610,13 @@ CMakeProjectManager::MakeStepConfigWidget display name. Make + + <b>No build configuration found on this kit.</b> + <b>Při této sadě nenalezeno žádné nastavení sestavování.</b> + <b>No build configuration found on this target.</b> - <b>Při tomto cíli nenalezeno žádné nastavení sestavování.</b> + <b>Při tomto cíli nenalezeno žádné nastavení sestavování.</b> <b>Unknown tool chain</b> @@ -1148,9 +1168,17 @@ Chcete je nechat přepsat? Open in External Editor Otevřít ve vnějším editoru + + &Save + &Uložit + + + Save &As... + Uložit &jako... + Revert File to Saved - Vrátit se v souboru k uloženému stavu + Vrátit se k uloženému stavu souboru Ctrl+W @@ -1650,6 +1678,14 @@ Chcete je nechat přepsat? <System Language> <Jazyk systému> + + Reset warnings + Nastavit varování znovu + + + Done + Hotovo + Restart required Znovuspuštění vyžadováno @@ -1782,6 +1818,11 @@ Chcete je nechat přepsat? unit for minutes minut + + Reset warnings + Button text + Nastavit varování znovu + Core::Internal::MainWindow @@ -2500,6 +2541,14 @@ Chcete je nechat přepsat? Shift+F2 Shift+F2 + + Open Method Declaration/Definition in Next Split + Otevřít deklaraci/definici metody v dalším rozdělení + + + Ctrl+E, Shift+F2 + Ctrl+E, Shift+F2 + Find Usages Najít použití @@ -2690,12 +2739,16 @@ Chcete je nechat přepsat? Add leading asterisks when continuing comments on new lines - Přidat hvězdičky na začátku při pokračování poznámek na nových řádcích + Přidat hvězdičky na začátku při pokračování poznámek na nových řádcích Add leading asterisks Přidat hvězdičky na začátku + + Add leading asterisks when continuing Qt (/*!) and Java (/**) style comments on new lines + Přidat hvězdičky na začátku při pokračování poznámek stylu Qt (/*!) a Java (/**) na nových řádcích + CppTools::Internal::CppClassesFilter @@ -2716,7 +2769,11 @@ Chcete je nechat přepsat? Methods and Functions - Metody a funkce + Metody a funkce + + + C++ Methods and Functions + Metody a funkce C++ @@ -2727,7 +2784,7 @@ Chcete je nechat přepsat? Parsing - Syntaktický rozbor + Syntaktický rozbor unnamed @@ -2748,6 +2805,10 @@ Chcete je nechat přepsat? Switch Header/Source Přepnout mezi hlavičkou a zdrojem + + Open Corresponding Header/Source in Next Split + Otevřít odpovídající hlavičku/zdroj v dalším rozdělení + CppTools::Internal::FunctionArgumentWidget @@ -3668,15 +3729,15 @@ Qt Creator se k němu nemůže připojit. Debugger Paths - Cesty k ladicím programům + Cesty k ladicím programům &Symbol paths: - &Cesty k symbolům: + &Cesty k symbolům: S&ource paths: - Cesty ke &zdrojovému textu: + Cesty ke &zdrojovému textu: Break on: @@ -3702,6 +3763,34 @@ Qt Creator se k němu nemůže připojit. This is useful to catch runtime error messages, for example caused by assert(). Toto je užitečné na zachycení běhových chybových zpráv, způsobených například assert(). + + Symbol paths: %1 + Cesty k symbolům: %1 + + + <none> + <žádná> + + + Source paths: %1 + Cesty ke zdrojovému textu: %1 + + + Paths + Cesty + + + Edit... + Upravit... + + + Various + Různé + + + Ignore first chance access violations + + Debugger::Internal::CdbSymbolPathListEditor @@ -3959,11 +4048,11 @@ Qt Creator se k němu nemůže připojit. Show Application On Top - Ukázat program v popředí + Ukázat program v popředí Apply Changes on Save - Použít změny při uložení + Použít změny při uložení Watch Expression "%1" @@ -5110,6 +5199,34 @@ souboru .gdbinit při spuštění ladiče. <html><head/><body>Postpone reading debug information as long as possible. This can result in faster startup times at the price of not being able to set breakpoints by file and number.</body></html> <html><head/><body>Zaškrtnutí této volby odloží čtení informací o ladění na tak dlouho, jak jen to bude možné. To může mít za následek rychlejší časy spuštění za tu cenu, že body přerušení nejde nastavit podle souboru a čísla.</body></html> + + Debug all children + Ladit všechny potomky + + + <html><head/><body>Keep debugging all children after a fork.</body></html> + <html><head/><body>Pokračovat v ladění všech potomků po rozdvojení procesu.</body></html> + + + Use Intel style disassembly + + + + <html><head/><body>GDB shows by default AT&&T style disassembly.</body></html> + + + + <html><head/><body><p>GDB commands entered here will be executed after GDB has been started and the debugging helpers have been initialized.</p><p>You can add commands to load further debugging helpers here, or modify existing ones.</p><p>To execute simple Python commands, prefix them with "python".</p><p>To execute sequences of Python commands spanning multiple lines prepend the block with "python" on a separate line, and append "end" on a separate line.</p><p>To execute arbitrary Python scripts, use <i>python execfile('/path/to/script.py')</i>.</p></body></html> + + + + Additional Attach Commands + + + + <html><head/><body><p>GDB commands entered here will be executed after GDB has successfully attached to remote targets.</p><p>You can add commands to further set up the target here, such as "monitor reset" or "load".</body></html> + + This specifies whether the dynamic or the static type of objects will bedisplayed. Choosing the dynamic type might be slower. Udává, zda je zobrazen dynamický nebo statický typ objektu. Určení dynamického typu může trvat déle. @@ -5180,7 +5297,7 @@ informacemi o ladění. <html><head/><body><p>GDB commands entered here will be executed after GDB has been started and the debugging helpers have been initialized.</p><p>You can add commands to load further debugging helpers here, or modify existing ones.</p><p>To execute arbitrary Python scripts, use <i>python execfile('/path/to/script.py')</i>.</p></body></html> - <html><head/><body><p>Příkazy GDB zde zadané budou provedeny po spuštění GDB, a když byly pomocné ladicí programy inicializovány.</p><p>Příkazy pro nahrání dalších pomocných ladicích programů můžete zadat zde, anebo upravit stávající.</p><p>Ke spuštění libovolného Pythonského scriptu použijte <i>python execfile('/path/to/script.py')</i>.</p></body></html> + <html><head/><body><p>Příkazy GDB zde zadané budou provedeny po spuštění GDB, a když byly pomocné ladicí programy inicializovány.</p><p>Příkazy pro nahrání dalších pomocných ladicích programů můžete zadat zde, anebo upravit stávající.</p><p>Ke spuštění libovolného Pythonského scriptu použijte <i>python execfile('/path/to/script.py')</i>.</p></body></html> GDB @@ -5611,13 +5728,25 @@ informacemi o ladění. Sources for this frame are available.<br>Double-click on the file name to open an editor. Zdroje pro tento snímek jsou dostupné.<br>Dvojité klepnutí na název souboru pro otevření editoru. + + Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible. + Informace o ladění spustitelného souboru nejsou pro tento snímek přístupné. To buď znamená, že core nebyl sestaven s informacemi o ladění, nebo že informace o ladění nejsou přístupné. + + + Binary debug information is accessible for this frame. However, matching sources have not been found. + Informace o ladění spustitelného souboru jsou pro tento snímek přístupné. Nicméně odpovídající zdroje nebyly nalezeny. + + + Note that most distributions ship debug information in separate packages. + Uvědomte si, že většina distribucí vede informace o ladění v oddělených balíčcích. + Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible. Note that most distributions ship debug information in separate packages. - Informace o ladění spustitelného souboru nejsou pro tento snímek přístupné. To buď znamená, že core nebyl sestaven s informacemi o ladění, nebo že informace o ladění nejsou přístupné. Uvědomte si, že většina distribucí vede informace o ladění v oddělených balíčcích. + Informace o ladění spustitelného souboru nejsou pro tento snímek přístupné. To buď znamená, že core nebyl sestaven s informacemi o ladění, nebo že informace o ladění nejsou přístupné. Uvědomte si, že většina distribucí vede informace o ladění v oddělených balíčcích. Binary debug information is accessible for this frame. However, matching sources have not been found. Note that some distributions ship debug sources in separate packages. - Informace o ladění spustitelného souboru jsou pro tento snímek přístupné. Nicméně odpovídající zdroje nebyly nalezeny. Uvědomte si, že většina distribucí vede informace o ladění v oddělených balíčcích. + Informace o ladění spustitelného souboru jsou pro tento snímek přístupné. Nicméně odpovídající zdroje nebyly nalezeny. Uvědomte si, že většina distribucí vede informace o ladění v oddělených balíčcích. Level @@ -5895,6 +6024,10 @@ informacemi o ladění. Target&nbsp;id: ID cíle: + + Group&nbsp;id: + ID&nbsp;skupiny: + Name: Název: @@ -5947,6 +6080,10 @@ informacemi o ladění. Target ID ID cíle + + Details + Podrobnosti + Name Název @@ -6074,6 +6211,10 @@ informacemi o ladění. Tooltip Kontextová nápověda + + Debugger - Qt Creator + Ladič - Qt Creator + <empty> <prázdné> @@ -7224,7 +7365,7 @@ Důvod: %3 FakeVim::Internal::FakeVimHandler Not implemented in FakeVim - Neprovedeno v FakeVim + Neprovedeno v FakeVim E20: Mark '%1' not set @@ -7260,7 +7401,7 @@ Důvod: %3 %n lines filtered - + Jeden řádek přefiltrován %n řádky přefiltrovány %n řádky přefiltrovány @@ -7281,12 +7422,32 @@ Důvod: %3 Mark '%1' not set - Značka '%1' není určena + Značka '%1' není určena + + + Mark '%1' not set. + Značka '%1' není určena. + + + Not implemented in FakeVim. + Neprovedeno v FakeVim. Unknown option: Neznámá volba: + + Move lines into themselves. + Přesunout řádky do nich samotných. + + + %n lines moved. + + %n řádek přesunut. + %n řádky přesunuty. + %n řádků přesunuto. + + File "%1" exists (add ! to override) Soubor '%1' již existuje (Přidejte ! chcete-li jej přepsat) @@ -7295,13 +7456,74 @@ Důvod: %3 Cannot open file "%1" for writing Soubor '%1' nelze otevřít pro zápis + + "%1" %2 %3L, %4C written. + "%1" %2 %3L, %4C zapsáno. + Cannot open file "%1" for reading Soubor '%1' nelze otevřít pro čtení - %n lines %1ed %2 time + %n lines filtered. + %n řádek přefiltrován. + %n řádky přefiltrovány. + %n řádků přefiltrováno. + + + + Search hit BOTTOM, continuing at TOP. + Hledání dosáhlo na konec, pokračuje se na začátku. + + + Search hit TOP, continuing at BOTTOM. + Hledání dosáhlo na začátek, pokračuje se na konci. + + + Search hit BOTTOM without match for: %1 + Hledání dosáhlo na konec, aniž by se našla shoda pro: %1 + + + Search hit TOP without match for: %1 + Hledání dosáhlo na začátek, aniž by se našla shoda pro: %1 + + + %n lines indented. + + %n řádek odsazen. + %n řádky odsazeny. + %n řádků odsazeno. + + + + %n lines %1ed %2 time. + XXX: neověřeno za běhu + + Na %n řádek %2-krát provedeno %1. + Na %n řádky %2-krát provedeno %1. + Na %n řádků %2-krát provedeno %1. + + + + %n lines yanked. + + %n řádek zkopírován. + %n řádky zkopírovány. + %n řádků zkopírováno. + + + + Already at oldest change. + Dosažena nejstarší změna. + + + Already at newest change. + Dosažena poslední změna. + + + %n lines %1ed %2 time + Jeden řádek %1ed %2-krát %n řádky %1ed %2-krát %n řádků %1ed %2-krát @@ -7325,11 +7547,11 @@ Důvod: %3 search hit BOTTOM, continuing at TOP - Hledání dosáhlo na konec, pokračuje se na začátku + Hledání dosáhlo na konec, pokračuje se na začátku search hit TOP, continuing at BOTTOM - Hledání dosáhlo na začátek, pokračuje se na konci + Hledání dosáhlo na začátek, pokračuje se na konci Invalid regular expression: %1 @@ -7337,11 +7559,11 @@ Důvod: %3 Already at oldest change - Dosažena nejstarší změna + Dosažena nejstarší změna Already at newest change - Dosažena poslední změna + Dosažena poslední změna Unknown option: %1 @@ -7432,7 +7654,7 @@ Důvod: %3 Backspace: - + Zpětná klávesa: Keyword characters: @@ -7452,7 +7674,16 @@ Důvod: %3 Use smartcase - Použít smartcase + Použít smartcase + + + Use wrapscan + XXX: (příliš dlouhé?) Pokračovat hledání od opačného konce souboru; pokračovat od konce; znovu od konce + Použít wrapscan (pokračovat od opačného konce) + + + Show partial command + Ukázat částečný příkaz @@ -7873,6 +8104,10 @@ Přidat, upravit a odstranit dokumentové filtry, které v režimu nápovědy ur Use Regular Expressions Používat regulární výrazy + + Preserve Case when Replacing + Zachovat při nahrazování velikost + Find::Internal::FindWidget @@ -8384,15 +8619,15 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš &Add... - &Přidat... + Přid&at... &Remove - &Odstranit + Odst&ranit &Diff - &Rozdíly + Roz&díly &Log @@ -8402,6 +8637,15 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš &Checkout &Načíst (checkout) + + &Merge + &Sloučit + + + Re&base + XXX: klávesové zkratky upraveny, ale neověřeno za běhu + Přes&kládat (rebase) + Git::Internal::ChangeSelectionDialog @@ -8429,9 +8673,25 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Error Chyba + + Selected directory is not a Git repository. + Vybraný adresář není skladištěm Git. + + + Error: Unknown reference + Chyba: Neznámý odkaz + + + Error: Could not start Git. + Chyba: Nepodařilo se spustit Git. + + + Fetching commit data... + Natahují se data zápisu... + Selected directory is not a Git repository - Vybraný adresář není skladištěm Git + Vybraný adresář není skladištěm Git Working directory: @@ -8769,6 +9029,10 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Cannot retrieve branch of "%1": %2 Větev skladiště "%1" nelze určit: %2 + + Detached HEAD + Odpojená HEAD + Cannot retrieve top revision of "%1": %2 Současný stav skladiště "%1" nelze určit: %2 @@ -8820,6 +9084,30 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Cannot obtain status: %1 Stav se nepodařilo získat: %1 + + <Detached HEAD> + <Odpojená HEAD> + + + Conflicts detected + Zjištěny střety + + + Conflicts detected with commit %1 + U zápisu (commit) %1 zjištěny střety + + + Conflicts Detected + Zjištěny střety + + + Run &Merge Tool + Spustit nástroj na &slučování + + + &Skip + &Přeskočit + Cannot locate "%1". "%1" se nepodařilo najít. @@ -8866,7 +9154,7 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Revert - Vrátit změny + Vrátit změny (revert) The file has been changed. Do you want to revert it? @@ -8878,7 +9166,7 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš The command 'git pull --rebase' failed, aborting rebase. - Příkaz 'git pull --rebase' selhal. Přeskládání (rebase) se ruší. + Příkaz 'git pull --rebase' selhal. Přeskládání (rebase) se ruší. Git SVN Log @@ -8961,7 +9249,7 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Blame for "%1" - Vypsat anotace (blame) pro "%1" + Anotace (blame) pro "%1" Alt+G,Alt+B @@ -8975,6 +9263,10 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Meta+G,Meta+K Meta+G,Meta+K + + &Local Repository + &Místní skladiště + Diff Rozdíly @@ -8993,15 +9285,15 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Launch gitk - Spustit gitk + Spustit gitk Remotes... - Vzdálené... + Vzdálené... Patch - Záplaty + Záplaty Apply from Editor @@ -9059,7 +9351,7 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Blame Current File - Vypsat anotace pro nynější soubor (blame) + Vypsat anotace pro tento soubor (blame) Meta+G,Meta+B @@ -9069,6 +9361,10 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Diff of "%1" Rozdíly pro "%1" + + Current &File + &Nynější soubor + Meta+G,Meta+D Meta+G,Meta+D @@ -9121,6 +9417,10 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Meta+G,Meta+U Meta+G,Meta+U + + Current &Project + Nynější &projekt + Diff Current Project Rozdíly pro nynější projekt @@ -9215,7 +9515,7 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Pull - Přivést a začlenit (pull) + Přivést a sloučit (pull) Stash Pop @@ -9227,7 +9527,7 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Restores changes saved to the stash list using "Stash". - Přiloží změny které byly odloženy do seznamu odložených změn pomocí příkazu "Stash". + Přiloží změny, které byly odloženy do seznamu odložených změn pomocí příkazu "Stash". Commit... @@ -9251,7 +9551,7 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Launch repository browser - Spustit prohlížeč skladiště + Spustit prohlížeč skladiště Branches... @@ -9265,6 +9565,71 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Stashes... Odložené změny... + + Revert Single Commit... + Vrátit zpět zápis (revert)... + + + Cherry-Pick Commit... + XXX: ověřit za běhu (příliš dlouhé?) slovo zápis lze vypustit + Výběrově sloučit zápis (cherry-pick)... + + + &Patch + &Záplata + + + &Stash + &Odložit (stash) + + + &Remote Repository + &Vzdálené skladiště + + + &Subversion + &Subversion + + + Manage Remotes... + Spravovat vzdálená skladiště... + + + Git &Tools + &Nástroje Git + + + Gitk + Gitk + + + Gitk Current File + Gitk nynější soubor + + + Gitk of "%1" + Gitk "%1" + + + Gitk for folder of Current File + Gitk pro složku nynějšího souboru + + + Gitk for folder of "%1" + Gitk pro složku "%1" + + + Repository Browser + Prohlížeč skladiště + + + Merge Tool + Nástroj na slučování + + + Unsupported version of Git found. Git %1 or later required. + Nalezena nepodporovaná verze Git. Je požadován Git %1 nebo pozdější. + Amend %1 Pozměnit zápis %1 @@ -9315,7 +9680,7 @@ více času, než je nastaveno. V takovém případě by se měla hodnota zvýš Subversion - Subversion + Subversion Log @@ -10053,11 +10418,11 @@ Přidat, upravit a odstranit dokumentové filtry, které v režimu nápovědy ur <title>about:blank</title> - <title>about:blank</title> + <title>about:blank</title> <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Error 404...</title></head><body><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div></body> - <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Chyba 404...</title></head><body><div align="center"><br><br><h1>Stránku se nepodařilo najít</h1><br><h3>'%1'</h3></div></body> + <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Chyba 404...</title></head><body><div align="center"><br><br><h1>Stránku se nepodařilo najít</h1><br><h3>'%1'</h3></div></body> <title>Error 404...</title><div align="center"><br><br><h1>The page could not be found</h1><br><h3>'%1'</h3></div> @@ -10625,7 +10990,7 @@ ve svém .pro souboru. Annotate Current File - Opatřit nynější soubor anotacemi + Opatřit anotacemi tento soubor Annotate "%1" @@ -10637,7 +11002,7 @@ ve svém .pro souboru. Filelog Current File - Záznamy k souboru pro nynější soubor + Záznamy (filelog) k tomuto souboru Filelog "%1" @@ -11303,13 +11668,21 @@ ve svém .pro souboru. Build/Deployment canceled Sestavení/Nasazení bylo zrušeno + + Elapsed time: %1. + Uplynulý čas: %1. + Canceled build/deployment. Sestavení/Nasazení zrušeno. + + Error while building/deploying project %1 (kit: %2) + Chyba při sestavování/nasazování projektu %1 (sada: %2) + Error while building/deploying project %1 (target: %2) - Chyba při sestavování/nasazování projektu %1 (cíl: %2) + Chyba při sestavování/nasazování projektu %1 (cíl: %2) When executing step '%1' @@ -11864,9 +12237,13 @@ ve svém .pro souboru. Alt+Y Alt+Y + + Filter Files + Filtrovat soubory + Synchronize with Editor - Seřídit s editorem + Seřídit s editorem @@ -12666,7 +13043,7 @@ se projektu '%2' nepodařilo přidat. Quick Switch Target Selector - Rychlý výběr cíle + Rychlý výběr cíle Ctrl+T @@ -12684,6 +13061,30 @@ se projektu '%2' nepodařilo přidat. Full build path of the current project's active build configuration. Úplná cesta pro sestavení v nastavení činného sestavování nynějšího projektu. + + The current project's name. + Název nynějšího projektu. + + + The currently active kit's name. + Název nyní činné sady. + + + The currently active kit's name in a filesystem friendly version. + Název nyní činné sady v k souborovému systému přátelské verzi. + + + The currently active kit's id. + ID nyní činné sady. + + + The currently active build configuration's name. + Název nyní činného nastavení sestavování. + + + The currently active build configuration's type. + Typ nyní činného nastavení sestavování. + Failed to open project Nepodařilo se otevřít projekt @@ -12708,6 +13109,18 @@ se projektu '%2' nepodařilo přidat. Do you want to cancel the build process and unload the project anyway? Chcete zrušit sestavování a každopádně zrušit nahrání projektu? + + debug + Ladění + + + release + Vydání + + + unknown + Neznámý + Failed to Open Project Nepodařilo se otevřít projekt @@ -12730,10 +13143,19 @@ Do you want to ignore them? V současném úkolu byly nalezeny chyby při sestavování. Chcete je přehlížet? + + <b>Warning:</b> This file is outside the project directory. + <b>Varování:</b> Tento soubor je mimo adresář s projektem. + Always save files before build Vždy uložit soubory před sestavováním + + Build + Build step + Sestavení + The project %1 is not configured, skipping it. @@ -12765,11 +13187,11 @@ Chcete je přehlížet? The project '%1' has no active target. - Projekt '%1' nemá žádný činný cíl. + Projekt '%1' nemá žádný činný cíl. The target '%1' for the project '%2' has no active run configuration. - Cíl '%1' projektu '%2' nemá žádné činné nastavení pro spuštění. + Cíl '%1' projektu '%2' nemá žádné činné nastavení pro spuštění. Cannot run '%1'. @@ -12799,6 +13221,10 @@ Chcete je přehlížet? Open Build and Run Kit Selector... Otevřít volič pro sadu pro sestavování/spouštění... + + Quick Switch Kit Selector + Rychlý výběr sady + A build is in progress Právě probíhá sestavování @@ -12873,6 +13299,14 @@ Chcete je přehlížet? Delete File Smazat soubor + + The project '%1' has no active kit. + Projekt '%1' nemá žádnou činnou sadu. + + + The kit '%1' for the project '%2' has no active run configuration. + Sada '%1' projektu '%2' nemá žádné činné nastavení pro spuštění. + Delete %1 from file system? Má se smazat soubor %1 ze systému? @@ -13440,9 +13874,13 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná. Statically Linked Library Statická knihovna + + Qt Plugin + Přídavný modul Qt + Qt 4 Plugin - Přídavný modul Qt 4 + Přídavný modul Qt 4 Type @@ -13776,7 +14214,11 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná. This target cannot build this project since it does not define a Qt version. - Tento cíl nemůže sestavit tento projekt, protože nedefinuje verzi Qt. + Tento cíl nemůže sestavit tento projekt, protože nedefinuje verzi Qt. + + + This kit cannot build this project since it does not define a Qt version. + Tato sada nemůže sestavit tento projekt, protože nedefinuje verzi Qt. The Qt version %1 does not support shadow builds, building might fail. @@ -14018,6 +14460,14 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná. Run in terminal Spustit v terminálu + + Run on QVFb + Spustit na QVFb + + + Check this option to run the application on a Qt Virtual Framebuffer. + Zaškrtněte tuto volbu pro spuštění programu na Qt Virtual Framebuffer. + Base environment for this run configuration: Základní prostředí pro toto nastavení spuštění: @@ -14526,11 +14976,11 @@ p, li { white-space: pre-wrap; } Full path to the host bin directory of the current project's Qt version. - Úplná cesta k adresáři bin hostitele verze Qt nynějšího projektu. + Úplná cesta k adresáři bin hostitele verze Qt nynějšího projektu. Full path to the target bin directory of the current project's Qt version. You probably want %1 instead. - Úplná cesta k adresáři bin cíle verze Qt nynějšího projektu. Pravděpodobně místo toho chcete %1. + Úplná cesta k adresáři bin cíle verze Qt nynějšího projektu. Pravděpodobně místo toho chcete %1. Update of Generated Files @@ -14697,17 +15147,53 @@ Další podrobnosti hledejte v /etc/sysctl.d/10-ptrace.conf Core non-GUI classes used by other modules Základní třídy (ne pro GUI), které jsou používány dalšími moduly + + Base classes for graphical user interface (GUI) components. (Qt 4: Includes widgets. Qt 5: Includes OpenGL.) + + + + Classes to extend Qt GUI with C++ widgets (Qt 5) + + + + Qt Quick 1 classes + + + + Classes for QML and JavaScript languages (Qt 5) + + + + A declarative framework for building highly dynamic applications with custom user interfaces + + + + Print support classes (Qt 5) + + Additional Qt Script components Dodatečné součástky skriptu Qt + + WebKit1 and QWidget-based classes from Qt 4 (Qt 5) + + + + Multimedia framework classes (Qt 4 only) + + Classes for low-level multimedia functionality Třídy pro nízkoúrovňový multimediální rozsah funkcí + + Classes that ease porting from Qt 3 to Qt 4 (Qt 4 only) + + Graphical user interface components - Součástky grafického uživatelského rozhraní + Součástky grafického uživatelského rozhraní Classes for network programming @@ -14743,11 +15229,11 @@ Další podrobnosti hledejte v /etc/sysctl.d/10-ptrace.conf Multimedia framework classes - Třídy pro uspořádání multimédií + Třídy pro uspořádání multimédií Classes that ease porting from Qt 3 to Qt 4 - Třídy, které ulehčují přenos z Qt 3 na Qt 4 + Třídy, které ulehčují přenos z Qt 3 na Qt 4 Tool classes for unit testing @@ -16426,10 +16912,18 @@ Zdá se, že následující kódování odpovídají souboru: Follow Symbol Under Cursor Následovat symbol pod ukazovátkem + + Follow Symbol Under Cursor in Next Split + Následovat symbol pod ukazovátkem v dalším rozdělení + Jump To File Under Cursor Jít na soubor pod ukazovátkem + + Jump to File Under Cursor in Next Split + Jít na soubor pod ukazovátkem v dalším rozdělení + Go to Line Start Jít na začátek řádku @@ -16839,16 +17333,20 @@ Použito na text, pokud neodpovídají žádná jiná pravidla. Class' data members. - + Datové členy třídy. Enumeration Výčet - Applied to Enumeration Items. + Applied to enumeration items. Použito na položky výčtu. + + Applied to Enumeration Items. + Použito na položky výčtu. + Function Funkce @@ -16863,7 +17361,7 @@ Použito na text, pokud neodpovídají žádná jiná pravidla. QML root Object Property - Vlastnost kořenového objektu QML + Vlastnost kořenového objektu QML QML property of a parent item. @@ -16871,12 +17369,20 @@ Použito na text, pokud neodpovídají žádná jiná pravidla. QML scope Object Property - Vlastnost oborového objektu QML + Vlastnost oborového objektu QML Property of the same QML item. Vlastnost stejné položky QML. + + Operators. (For example operator++ operator-=) + Operátory. (Například operator++ operator-=) + + + Doxygen tags. + Klíčová slova Doxygen. + Location in the files where the difference is (in diff editor). Místo v souborech, kde je rozdíl (v editoru rozdílů). @@ -16907,11 +17413,11 @@ Použito na text, pokud neodpovídají žádná jiná pravidla. QML Root Object Property - Vlastnost kořenového objektu QML + Vlastnost kořenového objektu QML QML Scope Object Property - Vlastnost oborového objektu QML + Vlastnost oborového objektu QML QML State Name @@ -16983,7 +17489,7 @@ Použito na text, pokud neodpovídají žádná jiná pravidla. Operators. (for example operator++ operator-=) - Operátory. (například operator++ operator-=) + Operátory. (například operator++ operator-=) Preprocessor @@ -17023,7 +17529,7 @@ Použito na text, pokud neodpovídají žádná jiná pravidla. Doxygen tags - Klíčová slova Doxygen + Klíčová slova Doxygen Visual Whitespace @@ -17528,7 +18034,15 @@ p, li { white-space: pre-wrap; } Inherits QDeclarativeItem - Dědí ze třídy QDeclarativeItem + Dědí ze třídy QDeclarativeItem + + + Inherits QDeclarativeItem - Qt Quick 1 + Dědí ze třídy QDeclarativeItem - Qt Quick 1 + + + Inherits QQuickItem - Qt Quick 2 + Dědí ze třídy QQuickItem - Qt Quick 2 @@ -17574,7 +18088,7 @@ p, li { white-space: pre-wrap; } Utils::SubmitEditorWidget Subversion Submit - Odeslání Subversion + Odeslání Subversion Des&cription @@ -17582,11 +18096,11 @@ p, li { white-space: pre-wrap; } F&iles - &Soubory + &Soubory Descriptio&n - &Popis + &Popis Check &all @@ -17594,7 +18108,7 @@ p, li { white-space: pre-wrap; } %1 %2/%n File(s) - + %1 %2/%n soubor %1 %2/%n soubory %1 %2/%n souborů @@ -17602,21 +18116,21 @@ p, li { white-space: pre-wrap; } &Commit - &Zapsat či Odevzdat (commit) + &Zapsat či Odevzdat (commit) Check All Check all for submit - Označit vše + Označit vše Uncheck All Uncheck all for submit - Odstranit označení u všeho + Odstranit označení u všeho Check a&ll - Označit &vše + Označit &vše @@ -18167,6 +18681,10 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás Refresh interval: Doba mezi obnovami: + + Locator filters that do not update their cached data immediately, such as the custom directory filters, update it after this time interval. + Vyhledávací filtry, které své údaje neaktualizují okamžitě (např. vlastní filtry pro adresáře), se aktualizují po uplynutí této doby. + ProjectExplorer::Internal::ProjectExplorerSettingsPageUi @@ -18282,6 +18800,14 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás <i>jom</i> is a drop-in replacement for <i>nmake</i> which distributes the compilation process to multiple CPU cores. The latest binary is available at <a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a>. Disable it if you experience problems with your builds. <i>jom</i> je náhražka za <i>nmake</i>, která proces sestavování rozděluje mezi více jader CPU. Nejnovější binární soubor je dostupný na <a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a>. Zakažte jej narazíte-li při vytváření svých programů na potíže. + + Default build directory: + Výchozí adresář pro sestavování: + + + Reset + Nastavit znovu + ProjectExplorer::Internal::ProjectWelcomePageWidget @@ -19211,9 +19737,13 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás Cesta <b>%1</b> není soubor. - The path <b>%1</b> is not a executable file. + The path <b>%1</b> is not an executable file. Cesta <b>%1</b> není spustitelným souborem. + + The path <b>%1</b> is not a executable file. + Cesta <b>%1</b> není spustitelným souborem. + Full path: <b>%1</b> Úplná cesta: <b>%1</b> @@ -19460,7 +19990,11 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás Methods in Current Document - Metody v nynějším dokumentu + Metody v nynějším dokumentu + + + C++ Methods in Current Document + Metody C++ v nynějším dokumentu @@ -19529,7 +20063,11 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás CppTools::Internal::CppLocatorFilter Classes and Methods - Třídy a metody + Třídy a metody + + + C++ Classes and Methods + Třídy a metody C++ @@ -19629,7 +20167,7 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás Commit Current File - Odevzdat (commit) nynější soubor + Odevzdat (commit) tento soubor Commit "%1" @@ -19641,7 +20179,7 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás Filelog Current File - Záznamy k souboru pro nynější soubor + Záznamy k souboru pro tento soubor Cannot find repository for '%1' @@ -19657,7 +20195,7 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás Annotate Current File - Opatřit nynější soubor anotacemi + Opatřit anotacemi tento soubor Annotate "%1" @@ -19681,7 +20219,7 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávače, nás Revert... - Vrátit... + Vrátit (revert)... Revert "%1"... @@ -20676,11 +21214,11 @@ Chcete jej ukončit? Delete master branch - Smazat hlavní větev + Smazat hlavní větev Delete the master branch after checking out the repository. - Způsobuje, že hlavní větev je po načtení skladiště smazána. + Způsobuje, že hlavní větev je po načtení skladiště smazána. @@ -20859,15 +21397,15 @@ Chcete jej ukončit? Help Bookmarks - Záložky v nápovědě + Záložky v nápovědě Import... - Importovat... + Importovat... Export... - Exportovat... + Exportovat... Behaviour @@ -20885,6 +21423,14 @@ Chcete jej ukončit? Note: This setting takes effect only if the HTML file does not use a style sheet. Poznámka: Toto nastavení se projeví, jen když soubor HTML nepoužívá stylový list. + + Import Bookmarks... + Importovat záložky... + + + Export Bookmarks... + Exportovat záložky... + Help::Internal::XbelReader @@ -22138,19 +22684,19 @@ S60 emulator run configuration default display name, %1 is base pro-File name Ninja (%1) - Ninja (%1) + Ninja (%1) NMake Generator (%1) - Generátor NMake (%1) + Generátor NMake (%1) MinGW Generator (%1) - Generátor MinGW (%1) + Generátor MinGW (%1) Unix Generator (%1) - Generátor Unix (%1) + Generátor Unix (%1) @@ -22594,6 +23140,14 @@ S60 emulator run configuration default display name, %1 is base pro-File nameXPM image Soubor s obrázkem XPM + + Qt Build Suite file + Soubor projektu Qt Build Suite + + + Qt Creator Qt UI project file + Soubor projektu Qt Creator Qt UI + JSON file Soubor JSON @@ -23664,6 +24218,26 @@ Můžete si vybrat mezi odložením změn nebo jejich vyhozením. Height Výška + + Warnings + Varování + + + Warn about QML features which are not properly supported by the Qt Quick Designer + + + + Warn about unsupported features in the Qt Quick Designer + + + + Also warn in the code editor about QML features which are not properly supported by the Qt Quick Designer + + + + Warn about unsupported features of Qt Quick Designer in the code editor + + StartExternalQmlDialog @@ -24182,10 +24756,11 @@ a předpokladem je, že vzdálený spustitelný soubor bude v adresáři zmiňov %n bytes, last modified %1 + XXX: ověřit v GUI (rod pro %1?) - %1 byt, naposledy změněno %2 - %1 byty, naposledy změněno %2 - %1 bytů, naposledy změněno %2 + %n byte, naposledy změněno %1 + %n byty, naposledy změněno %1 + %n bytů, naposledy změněno %1 @@ -25363,7 +25938,11 @@ Desetinná hodnota se znaménkem (velký endian): %4 CMakeProjectManager::Internal::CMakeRunConfiguration Run CMake target - CMake-Ziel ausführen + CMake-Ziel ausführen + + + Run CMake kit + Provést sadu cmake Clean Environment @@ -25790,6 +26369,14 @@ heslem, jež můžete zadat níže. Switch with Next Parameter Vyměnit s dalším parametrem + + Reformat to "%1" + Zformátovat na "%1" + + + Reformat Pointers or References + Zformátovat ukazatele nebo odkazy + Use Fast String Concatenation with % Použít účinné zřetězení řetězce za použití operátoru % @@ -25927,7 +26514,7 @@ heslem, jež můžete zadat níže. ClearCase Check In Editor - + Editor zápisů (check in) pro ClearCase ClearCase Command Log Editor @@ -26226,6 +26813,14 @@ Proces Pdb po určité době od úspěšného spuštění spadl. FakeVim::Internal::FakeVimHandler::Private + + Recursive mapping + Rekurzivní přiřazení + + + Type Alt-V, Alt-V to quit FakeVim mode. + Napište Alt-V, Alt-V pro ukončení režimu FakeVim. + [New] [Nový] @@ -26340,11 +26935,24 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Git::Internal::GitEditor Blame %1 - Vinit (blame) %1 + Anotace (blame) pro %1 + + + Blame Parent Revision %1 + Vypsat anotace nadřazené revize "%1" + + + Cherry-Pick Change %1 + XXX: začlenit (zní lépe než sloučit) + Výběrově sloučit změnu %1 + + + Revert Change %1 + Vrátit zpět (revert) změnu %1 Blame parent revision %1 - Vinit (blame) nadřazenou revizi %1 + Vinit (blame) nadřazenou revizi %1 @@ -26356,6 +26964,14 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Help::Internal::HelpViewer + + <title>about:blank</title> + <title>about:blank</title> + + + <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Error 404...</title></head><body><div align="center"><br/><br/><h1>The page could not be found</h1><br/><h3>'%1'</h3></div></body></html> + <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Error 404...</title></head><body><div align="center"><br/><br/><h1>Stránku se nepodařilo najít</h1><br/><h3>'%1'</h3></div></body></html> + Open Link Otevřít adresu odkazu @@ -26858,7 +27474,7 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Custom QML Extension Plugin - Vlastní přídavný modul pro rozšíření QML + Vlastní přídavný modul pro rozšíření QML QML Extension Plugin @@ -26922,27 +27538,27 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Creates an experimental Qt5 Gui application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices. - Vytvoří pokusný program s rozhraním v Qt5 pro BlackBerry 10. Potřebujete vlastní sestavení Qt5 pro BlackBerry 10, protože Qt5 není v nynějším BlackBerry 10 NDK poskytováno a není zahrnuto v zařízeních DevAlpha. + Vytvoří pokusný program s rozhraním v Qt5 pro BlackBerry 10. Potřebujete vlastní sestavení Qt5 pro BlackBerry 10, protože Qt5 není v nynějším BlackBerry 10 NDK poskytováno a není zahrnuto v zařízeních DevAlpha. BlackBerry Qt5 Gui Application - Program s uživatelským rozhraním v Qt5 pro BlackBerry + Program s uživatelským rozhraním v Qt5 pro BlackBerry Creates an experimental Qt Quick 2 application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices. - Vytvoří pokusný program Qt Quick 2 pro BlackBerry 10. Potřebujete vlastní sestavení Qt5 pro BlackBerry 10, protože Qt5 není v nynějším BlackBerry 10 NDK poskytováno a není zahrnuto v zařízeních DevAlpha. + Vytvoří pokusný program Qt Quick 2 pro BlackBerry 10. Potřebujete vlastní sestavení Qt5 pro BlackBerry 10, protože Qt5 není v nynějším BlackBerry 10 NDK poskytováno a není zahrnuto v zařízeních DevAlpha. BlackBerry Qt Quick 2 Application - Program Qt Quick 2 pro BlackBerry + Program Qt Quick 2 pro BlackBerry Creates a Qt Quick application for BlackBerry. - Vytvoří program Qt Quick pro BlackBerry. + Vytvoří program Qt Quick pro BlackBerry. BlackBerry Qt Quick Application - Program Qt Quick pro BlackBerry + Program Qt Quick pro BlackBerry Creates a plain C project using qmake, not using the Qt library. @@ -26988,6 +27604,62 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Qt Creator Plugin Přídavný modul pro Qt Creator + + Creates a Cascades application for BlackBerry 10. + Vytvoří program Cascades pro BlackBerry 10. + + + BlackBerry Cascades Application + Program Cascades pro BlackBerry + + + Creates an experimental Qt 5 GUI application for BlackBerry 10. You need to provide your own build of Qt 5 for BlackBerry 10 since Qt 5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices. + Vytvoří pokusný program Qt 5 GUI pro BlackBerry 10. Potřebujete vlastní sestavení Qt 5 pro BlackBerry 10, protože Qt 5 není v nynějším BlackBerry 10 NDK poskytováno a není zahrnuto v zařízeních DevAlpha. + + + BlackBerry Qt 5 GUI Application + Program s uživatelským rozhraním v Qt 5 pro BlackBerry + + + Creates a qmake-based test project for which a code snippet can be entered. + Vytvoří na qmake založený zkušební projekt, do nějž lze vložit úryvek kódu. + + + Code Snippet + Úryvek kódu + + + Other Projects + Jiné projekty + + + Snippet Parameters + Parametry úryvku + + + Code: + Kód: + + + Type: + Typ: + + + Console application + Konzolová aplikace + + + Application bundle (Mac) + Balík aplikací (Mac) + + + Headless (QtCore) + Program bez uživatelského rozhraní (QtCore) + + + Gui application (QtCore, QtGui, QtWidgets) + Program s uživatelským rozhraním (QtCore, QtGui, QtWidgets) + Plugin Information Informace o přídavném modulu @@ -27028,6 +27700,18 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Local user settings Místní uživatelská nastavení + + Qt Quick 1 Extension Plugin + Přídavný modul pro rozšíření Qt Quick 1 + + + Creates a C++ plugin that makes it possible to offer extensions that can be loaded dynamically into applications using the QQmlEngine class. + Vytvoří přídavný modul C++ pro rozšíření, která mohou být do programů nahrávána dynamicky s použitím třídy QQmlEngine. + + + Qt Quick 2 Extension Plugin + Přídavný modul pro rozšíření Qt Quick 2 + Url: Adresa (URL): @@ -27144,6 +27828,14 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Open Terminal here... Otevřít terminál zde... + + Show Hidden Files + Ukázat skryté soubory + + + Synchronize with Editor + Seřídit s editorem + Open Parent Folder Otevřít rodičovskou složku @@ -27268,7 +27960,15 @@ Proces Pdb po určité době od úspěšného spuštění spadl. <b>Target:</b> %1 - <b>Cíl:</b> %1 + <b>Cíl:</b> %1 + + + <b>Path:</b> %1 + <b>Cesta:</b> %1 + + + <b>Kit:</b> %1 + <b>Sada:</b> %1 <b>Build:</b> %1 @@ -27390,7 +28090,7 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Qt Application - Program Qt + Program Qt @@ -27454,6 +28154,36 @@ Proces Pdb po určité době od úspěšného spuštění spadl. No kit defined in this project. V tomto projektu není stanovena sada. + + Incompatible Kit + Neslučitelná sada + + + Kit %1 is incompatible with kit %2. + Sada %1 je neslučitelná se sadou %2. + + + Build configurations: + + Nastavení sestavování: + + + Deploy configurations: + + Nastavení nasazení: + + + Run configurations + Nastavení spuštění + + + Partially Incompatible Kit + Částečně neslučitelná sada + + + Some configurations could not be copied. + Některá nastavení se nepodařilo zkopírovat. + Cancel Build && Remove Kit Zrušit sestavování a odstranit sadu @@ -27471,9 +28201,25 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Sada <b>%1</b> se nyní sestavuje. - Do you want to cancel the build process and remove the Kit anyway? + Do you want to cancel the build process and remove the kit anyway? Chcete zrušit proces sestavování a v každém případě odstranit sadu? + + Change Kit + Změnit sadu + + + Copy to Kit + Kopírovat do sady + + + Remove Kit + Odstranit sadu + + + Do you want to cancel the build process and remove the Kit anyway? + Chcete zrušit proces sestavování a v každém případě odstranit sadu? + Do you really want to remove the "%1" kit? @@ -27596,7 +28342,7 @@ Proces Pdb po určité době od úspěšného spuštění spadl. QmlDesigner::FormEditorWidget Snap to guides (E) - Umístit na vodítka (E) + Umístit na vodítka (E) Show bounding rectangles (A) @@ -27604,49 +28350,81 @@ Proces Pdb po určité době od úspěšného spuštění spadl. Show bounding rectangles and stripes for empty items (Press Key A) - Ukázat rámy a šrafování pro prázdné prvky (stisknout klávesu A) + Ukázat rámy a šrafování pro prázdné prvky (stisknout klávesu A) Only select items with content (S) - Vybrat pouze prvky s obsahem (S) + Vybrat pouze prvky s obsahem (S) width - Šířka + Šířka height - Výška + Výška Reset view (R) - Nastavit pohled znovu (R) + Nastavit pohled znovu (R) + + + Transform Tool (Q). + Nástroj na proměnu (Q). + + + Snap to guides (E). + Umístit na vodítka (E). + + + Toggle snapping and anchoring (R). + Přepnout přichytávání a kotvení (R). + + + Show bounding rectangles and stripes for empty items (A). + Ukázat rámy a šrafování pro prázdné prvky (stisknout klávesu A). + + + Only select items with content (S). + Vybrat pouze prvky s obsahem (S). + + + Width + Šířka + + + Height + Výška + + + Reset view (R). + Nastavit pohled znovu (R). QmlDesigner::ComponentView whole document - celý dokument + celý dokument QmlDesigner::DesignDocumentController -New Form- - -Nový formulář- + -Nový formulář- Cannot save to file "%1": permission denied. - Soubor "%1" se nepodařilo kvůli nepostačujícím oprávněním zapsat. + Soubor "%1" se nepodařilo kvůli nepostačujícím oprávněním zapsat. Parent folder "%1" for file "%2" does not exist. - Nadřazený adresář "%1" souboru %2" neexistuje. + Nadřazený adresář "%1" souboru %2" neexistuje. Error - Chyba + Chyba Cannot write file: "%1". @@ -28041,6 +28819,10 @@ ID musí začínat malým písmenem. QmlDesigner::Internal::DocumentWarningWidget + + Placeholder + Zástupný znak + <a href="goToError">Go to error</a> <a href="goToError">Jít na chybu</a> @@ -28058,71 +28840,71 @@ ID musí začínat malým písmenem. QmlDesigner::Internal::DesignModeWidget &Undo - &Zpět + &Zpět &Redo - &Znovu + &Znovu Delete - Smazat + Smazat Delete "%1" - Smazat "%1" + Smazat "%1" Cu&t - Vyj&mout + Vyj&mout Cut "%1" - Vyjmout "%1" + Vyjmout "%1" &Copy - &Kopírovat + &Kopírovat Copy "%1" - Kopírovat "%1" + Kopírovat "%1" &Paste - &Vložit + &Vložit Paste "%1" - Vložit "%1" + Vložit "%1" Select &All - Vybrat &vše + Vybrat &vše Select All "%1" - Vybrat vše "%1" + Vybrat vše "%1" Toggle Full Screen - Přepnout zobrazení na celou obrazovku + Přepnout zobrazení na celou obrazovku &Restore Default View - &Obnovit výchozí pohled + &Obnovit výchozí pohled &Go into Component - &Jít na součástku + &Jít na součástku Toggle &Left Sidebar - Přepnout &levý postranní panel + Přepnout &levý postranní panel Toggle &Right Sidebar - Přepnout &pravý postranní panel + Přepnout &pravý postranní panel Projects @@ -28145,31 +28927,31 @@ ID musí začínat malým písmenem. QmlDesigner::Internal::BauhausPlugin Switch Text/Design - Přepnout Text/Návrh + Přepnout Text/Návrh Save %1 As... - Uložit '%1' jako... + Uložit '%1' jako... &Save %1 - &Uložit %1 + &Uložit %1 Revert %1 to Saved - Vrátit %1 k uloženému + Vrátit %1 k uloženému Close %1 - Zavřít %1 + Zavřít %1 Close All Except %1 - Zavřít vše mimo %1 + Zavřít vše mimo %1 Close Others - Zavřít jiné + Zavřít jiné @@ -28551,11 +29333,11 @@ Ověřte, prosím, nastavení svého projektu. Creates a QML file. - Vytvoří soubor QML. + Vytvoří soubor QML. QML File - Soubor QML + Soubor QML Creates a JavaScript file. @@ -28569,6 +29351,22 @@ Ověřte, prosím, nastavení svého projektu. Follow Symbol Under Cursor Následovat symbol pod ukazovátkem + + Creates a QML file with boilerplate code, starting with "import QtQuick 1.1". + Vytvoří soubor QML se standardizovaným kódem začínajícím "import QtQuick 1.1". + + + QML File (Qt Quick 1) + Soubor QML (Qt Quick 1) + + + Creates a QML file with boilerplate code, starting with "import QtQuick 2.0". + Vytvoří soubor QML se standardizovaným kódem začínajícím "import QtQuick 2.0". + + + QML File (Qt Quick 2) + Soubor QML (Qt Quick 2) + Find Usages Najít použití @@ -28619,6 +29417,10 @@ Ověřte, prosím, nastavení svého projektu. QmlJSEditor::Internal::QmlJSPreviewRunner + + No file specified. + Nebyl zadán žádný soubor. + Failed to preview Qt Quick file Soubor Qt Quick se ukázat nepodařilo @@ -28648,9 +29450,13 @@ Ověřte, prosím, nastavení svého projektu. Warning while loading project file %1. Varování při nahrávání projektového souboru %1. + + Qt version is too old. + Verze Qt je příliš stará. + File '%1' does not exist or is not readable. - Soubor '%1' neexistuje nebo není čitelný. + Soubor '%1' neexistuje nebo není čitelný. Device type is not desktop. @@ -28673,11 +29479,11 @@ Ověřte, prosím, nastavení svého projektu. New Qt Quick UI Project - Nový projekt Qt Quick UI + Nový projekt Qt Quick UI This wizard generates a Qt Quick UI project. - Tento průvodce vytvoří projekt Qt Quick UI. + Tento průvodce vytvoří projekt Qt Quick UI. @@ -28700,7 +29506,7 @@ Ověřte, prosím, nastavení svého projektu. Qt Quick UI - Qt Quick UI + Qt Quick UI Creates a Qt Quick UI project with a single QML file that contains the main view. @@ -28708,7 +29514,7 @@ Ověřte, prosím, nastavení svého projektu. You can review Qt Quick UI projects in the QML Viewer and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of projects. Requires <b>Qt 4.7.4</b> or newer. - Vytvoří projekt Qt Quick UI s jediným souborem QML, který obsahuje hlavní pohled. + Vytvoří projekt Qt Quick UI s jediným souborem QML, který obsahuje hlavní pohled. Projekty Qt Quick UI není potřeba je sestavovat a lze je spouštět přímo v prohlížeči QML. K vytvoření a ke spuštění tohoto typu projektů není potřeba, aby bylo ve vašem počítači nainstalováno vývojářské prostředí. @@ -29631,6 +30437,22 @@ Spustil jste Qemu? Non-installed -prefix build - for internal development only. Non-installed -prefix build - pouze pro vnitřní vývoj. + + Cannot start '%1': %2 + Nelze spustit '%1': %2 + + + Timeout running '%1' (%2 ms). + Překročení času při spuštění '%1' (%2 ms). + + + '%1' crashed. + '%1' spadl. + + + qmake '%1' is not an executable. + qmake '%1' není spustitelným souborem. + The Qt Version has no toolchain. Tato verze Qt nemá přiřazen žádný řetěz nástrojů. @@ -30881,6 +31703,52 @@ if (a && </pre> </body></html> + + Pointers and References + Ukazatelé a odkazy + + + Bind '*' and '&&' in types/declarations to + Svázat '*' a '&&' v typech/deklaracích do + + + <html><head/><body>This does not apply to the star and reference symbol in pointer/reference to functions and arrays, e.g.: +<pre> int (&rf)() = ...; + int (*pf)() = ...; + + int (&ra)[2] = ...; + int (*pa)[2] = ...; + +</pre></body></html> + <html><head/><body>Toto se netýká symbolu hvězdičky a odkazu v ukazateli/odkazu u funkcí a polí, např..: +<pre> int (&rf)() = ...; + int (*pf)() = ...; + + int (&ra)[2] = ...; + int (*pa)[2] = ...; + +</pre></body></html> + + + Identifier + Identifikátor + + + Type name + Název typu + + + Left const/volatile + Levá const/volatile + + + This does not apply to references. + Toto se netýká odkazů. + + + Right const/volatile + Pravá const/volatile + Debugger::Internal::BreakCondition @@ -31356,6 +32224,10 @@ Při GDB může být zadána posloupnost příkazů oddělená oddělovačem &ap text text + Text + + + Text Text @@ -31363,13 +32235,21 @@ Při GDB může být zadána posloupnost příkazů oddělená oddělovačem &ap textedit text edit - text edit + text edit + + + Text Edit + Upravit text textinput text + Text + + + Text Text @@ -33720,6 +34600,146 @@ Při plné simulaci mezipaměti budou zapnuta další počítadla událostí: Varování při nahrávání qmltypes z %1: %2 + + Could not parse document. + Nepodařilo se zpracovat dokument. + + + Expected a single import. + Očekáváno jednoduché importování. + + + Expected import of QtQuick.tooling. + Očekáváno importování QtQuick.tooling. + + + Expected version 1.1 or lower. + Očekávána verze 1.1 nebo nižší. + + + Expected document to contain a single object definition. + Očekáván dokument obsahující definici jednoho objektu. + + + Expected document to contain a Module {} member. + Očekáván dokument obsahující člena Module {}. + + + Expected only Component and ModuleApi object definitions. + + + + Expected only Property, Method, Signal and Enum object definitions. + + + + Expected only name, prototype, defaultProperty, attachedType, exports and exportMetaObjectRevisions script bindings. + + + + Expected only script bindings and object definitions. + + + + Component definition is missing a name binding. + + + + Expected only uri, version and name script bindings. + + + + Expected only script bindings. + + + + ModuleApi definition has no or invalid version binding. + + + + Expected only Parameter object definitions. + + + + Expected only name and type script bindings. + + + + Method or signal is missing a name script binding. + + + + Expected script binding. + + + + Expected only type, name, revision, isPointer, isReadonly and isList script bindings. + + + + Property object is missing a name or type script binding. + + + + Expected only name and values script bindings. + + + + Expected string after colon. + + + + Expected boolean after colon. + + + + Expected true or false after colon. + + + + Expected numeric literal after colon. + + + + Expected integer after colon. + + + + Expected array of strings after colon. + + + + Expected array literal with only string literal members. + + + + Expected string literal to contain 'Package/Name major.minor' or 'Name major.minor'. + + + + Expected array of numbers after colon. + + + + Expected array literal with only number literal members. + + + + Meta object revision without matching export. + + + + Expected integer. + Očekáváno celé číslo. + + + Expected object literal after colon. + + + + Expected object literal to contain only 'string: number' elements. + + ProjectExplorer::BuildableHelperLibrary @@ -34341,7 +35361,8 @@ Server: %2. Revert Current File... - Vrátit zpět změny v nynějším souboru... + XXX: pův. Vrátit zpět změny v nynějším souboru... + Vrátit zpět tento soubor (revert)... Revert "%1"... @@ -34647,6 +35668,10 @@ Chcete je nechat přepsat? Core::InfoBarDisplay + + Do not show again + Neukazovat znovu + Close Zavřít @@ -34886,7 +35911,7 @@ správy verzí (%2) CheckUndefinedSymbols Expected a namespace-name - Požadováno zadání jmenného prostoru + Požadováno zadání jmenného prostoru @@ -35143,6 +36168,18 @@ Příznaky: %3 Debugger Error Chyba v ladicím programu + + Normal + Normální + + + Separate Window + Rozdělit okno + + + Image + Obrázek + There is no CDB executable specified. Nebyl zadán žádný spustitelný soubor pro CDB. @@ -35929,6 +36966,14 @@ Qt Creator se k němu nemůže připojit. F9 F9 + + Apply Changes on Save + Použít změny při uložení + + + Show Application on Top + Ukázat program v popředí + Threads: Vlákna: @@ -35957,6 +37002,22 @@ Qt Creator se k němu nemůže připojit. Symbols in "%1" Symboly v "%1" + + From + Od + + + To + Do + + + Flags + Příznaky + + + Sections in "%1" + Výběry v "%1" + Debugger::DebuggerRunControl @@ -36196,6 +37257,10 @@ Nastavení bodů přerušení podle názvů souborů a čísel řádků může s Save Contents Uložit obsah + + Reload Debugging Helpers + Nahrát pomocné ladicí programy znovu + Debugger::Internal::InputPane @@ -37126,11 +38191,11 @@ když bude zavolán mimo git bash. &Copy Name of the action triggering the copytaskhandler - &Kopírovat + &Kopírovat Copy task to clipboard - Kopírovat hodnotu do schránky + Kopírovat hodnotu do schránky @@ -37311,7 +38376,11 @@ když bude zavolán mimo git bash. ProjectExplorer::Internal::ShowInEditorTaskHandler &Show in Editor - &Ukázat v editoru + &Ukázat v editoru + + + Show in Editor + Ukázat v editoru Show task location in an editor. @@ -37328,6 +38397,10 @@ když bude zavolán mimo git bash. Show output generating this issue. Ukázat výstup vytvářející tento problém. + + O + O - Výstup + ProjectExplorer::ToolChain @@ -37523,6 +38596,22 @@ Chcete přesto soubor s nastavením nahrát? Library search input hint text <Filtr> + + I + I - Vstup + + + Manage imports for components + Spravovat importování pro součástky + + + Basic Qt Quick only + Pouze základní Qt Quick + + + Meego Components + Součástky Meego + QmlDesigner::StatesEditorModel @@ -37565,111 +38654,123 @@ Chcete přesto soubor s nastavením nahrát? Cannot Find QML Puppet Executable Nepodařilo se najít spustitelný soubor QML Puppet + + The executable of the QML Puppet process (<code>%1</code>) cannot be found. Check your installation. QML Puppet is a process which runs in the background to render the items. + Spustitelný soubor procesu QML Puppet (<code>%1</code>) se nepodařilo najít. Prověřte, prosím, svou instalaci. QML Puppet je proces, který běží na pozadí, aby dělal prvky. + + + You can build <code>qml2puppet</code> yourself with Qt 5.0.1 or higher. The source can be found in <code>%1</code>. + Můžete <code>qml2puppet</code> sestavit sám s Qt 5.0.1 nebo vyšším. Zdroj lze nalézt v <code>%1</code>. + + + <code>qml2puppet</code> will be installed to the <code>bin</code> directory of your Qt version. Qt Quick Designer will check the <code>bin</code> directory of the currently active Qt version of your project. + <code>qml2puppet</code> bude nainstalován do adresáře <code>bin</code> directory vaší verze Qt. Qt Quick Designer prověří adresář <code>bin</code> nyní činné verze Qt vašeho projektu. + The executable of the QML Puppet process (%1) cannot be found. Please check your installation. QML Puppet is a process which runs in the background to render the items. - Spustitelný soubor procesu QML Puppet (%1) se nepodařilo najít. Prověřte, prosím, svou instalaci. QML Puppet je proces, který běží na pozadí, aby dělal prvky. + Spustitelný soubor procesu QML Puppet (%1) se nepodařilo najít. Prověřte, prosím, svou instalaci. QML Puppet je proces, který běží na pozadí, aby dělal prvky. QmlDesigner::ModelNodeContextMenu Selection - Výběr + Výběr Select parent: %1 - Vybrat nadřazený (rodičovský) prvek: %1 + Vybrat nadřazený (rodičovský) prvek: %1 Select: %1 - Výběr: %1 + Výběr: %1 Stack (z) - Zásobník (z) + Zásobník (z) To Front - Dopředu + Dopředu To Back - Dozadu + Dozadu Raise - Dát do popředí + Dát do popředí Lower - Dát do pozadí + Dát do pozadí Reset z property - Nastavit hodnotu z znovu + Nastavit hodnotu z znovu Edit - Upravit + Upravit Reset Position - Nastavit polohu znovu + Nastavit polohu znovu Reset Size - Nastavit velikost znovu + Nastavit velikost znovu Visibility - Viditelnost + Viditelnost Anchors - Kotvy + Kotvy Fill - Vyplnit + Vyplnit Reset - Nastavit znovu + Nastavit znovu Layout - Rozvržení + Rozvržení Layout in Row - Rozvržení v řádku + Rozvržení v řádku Layout in Column - Rozvržení ve sloupci + Rozvržení ve sloupci Layout in Grid - Rozvržení v mřížce + Rozvržení v mřížce Layout in Flow - Rozvržení v proudu + Rozvržení v proudu Go into Component - Jít na součástku + Jít na součástku QmlDesigner::TextToModelMerger error message No import statements found - Nepodařilo se najít žádný příkaz k importování + Nepodařilo se najít žádný příkaz k importování Unsupported QtQuick version - Nepodporovaná verze Qt Quick + Nepodporovaná verze Qt Quick @@ -37978,7 +39079,11 @@ a vlastností součástek QML přímo. Methods and Functions - Metody a funkce + Metody a funkce + + + QML Methods and Functions + Metody a funkce QML @@ -40026,19 +41131,19 @@ Vybere verze Qt pro Simulator a mobilní cíle, pokud jsou dostupné.Qt4ProjectManager::Internal::QtQuickApp The QML import path '%1' cannot be found. - Cestu pro importování QML '%1 se nepodařilo najít. + Cestu pro importování QML '%1 se nepodařilo najít. The QML module '%1' cannot be found. - Modul QML '%1 se nepodařilo najít. + Modul QML '%1 se nepodařilo najít. Invalid '%1' entry in '%2' of module '%3'. - Neplatný záznam '%1' v '%2' modulu '%3'. + Neplatný záznam '%1' v '%2' modulu '%3'. No .pro file for plugin '%1' can be found. - Pro přídavný modul '%1' se nepodařilo najít žádný soubor .pro. + Pro přídavný modul '%1' se nepodařilo najít žádný soubor .pro. No .pro file for plugin '%1' cannot be found. @@ -40090,7 +41195,7 @@ Můžete tuto aplikaci sestavit a nasadit jak na stolním počítači tak na mob Creates a Qt Quick application project that can contain both QML and C++ code and includes a QDeclarativeView. - Vytvoří projekt programu Qt Quick, který může obsahovat jak kód QML tak C++ a zahrnuje QDeclarativeView. + Vytvoří projekt programu Qt Quick, který může obsahovat jak kód QML tak C++ a zahrnuje QDeclarativeView. @@ -40117,6 +41222,14 @@ Requires <b>Qt 4.7.4</b> or newer, and the component set installed f Součástky Qt Quick pro Symbian jsou souborem předpřipravených součástek, který jsou navrženy s původním vzhledem pro Symbian. Vyžaduje <b>Qt 4.7.4</b> nebo novější a soubor součástek nainstalovaný pro tuto verzi Qt. + + + Creates a Qt Quick 1 application project that can contain both QML and C++ code and includes a QDeclarativeView. + + + Vytvoří projekt programu Qt Quick 1, který může obsahovat jak kód QML tak C++ a zahrnuje QDeclarativeView. + + Qt Quick 1 Application (Built-in Elements) @@ -40134,13 +41247,45 @@ Vyžaduje <b>Qt 4.7.0</b> nebo novější. Qt Quick 2 Application (Built-in Elements) Program Qt Quick 2 (jen vestavěné prvky) + + Creates a Qt Quick 2 application project that can contain both QML and C++ code and includes a QQuickView. + +The built-in elements in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel. + +Requires <b>Qt 5.0</b> or newer. + Vytvoří projekt programu Qt Quick 2, který může obsahovat jak kód QML tak C++ a zahrnuje QQuickView. + +Vestavěné prvky ve jmenném prostoru QtQuick 2 dovolují psát víceplatformní programy s uživatelsky stanoveným vzhledem. + +Vyžaduje <b>Qt 5.0</b> nebo novější. + + + Qt Quick 1 Application for MeeGo Harmattan + Program Qt Quick 1 pro Meego Harmattan + + + Qt Quick 1 Application (from Existing QML File) + Program Qt Quick 1 (ze stávajícího souboru QML) + + + Qt Quick 2 Application (from Existing QML File) + Program Qt Quick 2 (ze stávajícího souboru QML) + + + Creates a deployable Qt Quick application from existing QML files. All files and directories that reside in the same directory as the main .qml file are deployed. You can modify the contents of the directory any time before deploying. + +Requires <b>Qt 5.0</b> or newer. + Vytvoří nasaditelný program Qt Quick ze stávajících souborů QML. Všechny soubory a adresáře ležící ve stejném adresáři jako hlavní soubor .qml budou nasazeny. Obsah adresáře můžete měnit kdykoli před nasazením. + +Vyžaduje <b>Qt 5.0</b> nebo novější. + Creates a Qt Quick application project that can contain both QML and C++ code and includes a QQuickView. The built-in elements in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel. Requires <b>Qt 5.0</b> or newer. - Vytvoří projekt programu Qt Quick, který může obsahovat jak kód QML tak C++ a zahrnuje QQuickView. + Vytvoří projekt programu Qt Quick, který může obsahovat jak kód QML tak C++ a zahrnuje QQuickView. Vestavěné prvky ve jmenném prostoru QtQuick 2 dovolují psát víceplatformní programy s uživatelsky stanoveným vzhledem. @@ -40148,7 +41293,7 @@ Vyžaduje <b>Qt 5.0</b> nebo novější. Qt Quick Application for MeeGo Harmattan - Program Qt Quick pro Meego Harmattan + Program Qt Quick pro Meego Harmattan The Qt Quick Components for MeeGo Harmattan are a set of ready-made components that are designed with specific native appearance for the MeeGo Harmattan platform. @@ -40160,7 +41305,7 @@ Vyžaduje <b>Qt 4.7.4</b> nebo novější, a soubor součástek nain Qt Quick Application (from Existing QML File) - Program Qt Quick (ze stávajícího souboru QML) + Program Qt Quick (ze stávajícího souboru QML) Creates a deployable Qt Quick application from existing QML files. All files and directories that reside in the same directory as the main .qml file are deployed. You can modify the contents of the directory any time before deploying. @@ -40276,6 +41421,10 @@ Vyžaduje <b>Qt 4.7.0</b> nebo novější. The compiler '%1' (%2) cannot produce code for the Qt version '%3' (%4). Překladač '%1' (%2) nemůže vytvořit kód pro Qt ve verzi '%3' (%4). + + The compiler '%1' (%2) may not produce code compatible with the Qt version '%3' (%4). + Překladači '%1' (%2) není dovoleno vytvořit kód slučitelný s Qt ve verzi '%3' (%4). + Name: Název: @@ -40510,10 +41659,30 @@ Důvod: %2 Debugging Helper Build Log for '%1' Záznam o sestavení pomocného ladicího programu pro '%1' + + Select a qmake Executable + Vyberte spustitelný soubor qmake + + + Qt Version Already Known + Verze Qt již známa + + + Qmake Not Executable + Nespustitelný soubor QMake + + + The qmake executable %1 could not be added: %2 + Spustitelný soubor qmake %1 se nepodařilo přidat: %2 + Select a qmake executable Vyberte spustitelný soubor qmake + + The Qt version selected must match the device type. + Vybraná verze Qt se musí shodovat s typem zařízení. + Qt versions incompatible Neslučitelné verze Qt @@ -40536,7 +41705,7 @@ Důvod: %2 Qt known - Qt známo + Qt známo This Qt version was already registered as "%1". @@ -40548,7 +41717,7 @@ Důvod: %2 The Qt version selected must be for the same target. - Vybraná verze Qt musí být pro stejný cíl. + Vybraná verze Qt musí být pro stejný cíl. Helpers: None available @@ -40641,11 +41810,11 @@ Důvod: %2 Local File Path - Místní souborová cesta + Místní souborová cesta Remote Directory - Vzdálený adresář + Vzdálený adresář @@ -42246,11 +43415,11 @@ Chcete je přidat do projektu?</html> The .pro file '%1' is being parsed. - Soubor .pro '%1' se právě zpracovává. + Soubor .pro '%1' se právě zpracovává. No active build configuration. - Není žádné činné nastavení sestavování. + Není žádné činné nastavení sestavování. Don't know what to run. @@ -42361,6 +43530,14 @@ Chcete je přidat do projektu?</html> System Environment Prostředí systému + + Unknown + Neznámý + + + Remote path not set + Vzdálená cesta nenastavena + Cancel Fetch Operation Zrušit operaci natažení prostředí @@ -43014,6 +44191,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Unpausing instrumentation... Pokračuje se v dohledu... + + An error occurred while trying to run %1: %2 + Při pokusu o spuštění %1 se vyskytla chyba: %2 + Callgrind dumped profiling info Callgrind vypsal informace o profilování @@ -43071,7 +44252,7 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. %1 - %1 + %1 (%1%) @@ -43373,6 +44554,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Command-line arguments: %1 + Argumenty příkazového řádku: %1 + + + Commandline arguments: %1 Argumenty příkazového řádku: %1 @@ -43401,7 +44586,7 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Application Output - Výstup programu + Výstup programu @@ -43452,6 +44637,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Describe change %1 + Ukázat podrobnosti ke změně %1 + + + Describe Change %1 Ukázat podrobnosti ke změně %1 @@ -43466,6 +44655,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Revert Chunk... Vrátit tuto změnu... + + Failed to retrieve data. + Nepodařilo se obdržet data. + Unable to Paste Chyba při poslání CodePaster @@ -43641,18 +44834,30 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Text Text + + Runs the current QML file with qmlscene. This requires Qt 5. + Spustí nynější soubor QML s qmlscene. To vyžaduje Qt 5. + + + Qt Quick 2 Preview (qmlscene) + Náhled na Qt Quick 2 (qmlscene) + Runs the current QML file with qmlviewer Spustí nynější soubor QML s qmlviewer Preview (qmlviewer) - Náhled (qmlviewer) + Náhled (qmlviewer) Qt Quick Qt Quick + + Qt Quick 1 Preview (qmlviewer) + Náhled na Qt Quick 1 (qmlviewer) + Sorts the selected text Roztřídí vybraný text @@ -44097,7 +45302,7 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. ExtensionSystem::Internal::PluginErrorOverviewPrivate Continue - Pokračovat + Pokračovat @@ -44461,6 +45666,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Regular expressions Regulární výrazy + + Preserve case + Zachovat velikost písmen + Flags: %1 Příznaky: %1 @@ -44504,13 +45713,17 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Replace Nahradit + + Preserve case + Zachovat velikost písmen + This change cannot be undone. Tuto změnu nelze vrátit zpět. Do not warn again - Nevarovat znovu + Nevarovat znovu The search resulted in more than %n items, do you still want to continue? @@ -44698,7 +45911,11 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Missing build configuration. - Chybí nastavení sestavování. + Chybí nastavení sestavování. + + + Missing target. + Chybí cíl. @@ -44737,43 +45954,43 @@ Prověřte, prosím, oprávnění pro přístup k adresáři. Madde::Internal::MaemoDeployConfigurationWidget Project File Update Failed - Chyba při aktualizaci projektového souboru + Chyba při aktualizaci projektového souboru Could not update the project file. - Projektový soubor se nepodařilo zaktualizovat. + Projektový soubor se nepodařilo zaktualizovat. Choose Icon (will be scaled to %1x%1 pixels, if necessary) - Vyberte ikonu (její velikost bude změněna na %1x%1 pixelů, pokud to bude potřeba) + Vyberte ikonu (její velikost bude změněna na %1x%1 pixelů, pokud to bude potřeba) Invalid Icon - Neplatná ikona + Neplatná ikona Unable to read image - Soubor s obrázkem se nepodařilo přečíst + Soubor s obrázkem se nepodařilo přečíst Failed to Save Icon - Ikonu se nepodařilo uložit + Ikonu se nepodařilo uložit Could not save icon to '%1'. - Ikonu se nepodařilo uložit pod '%1'. + Ikonu se nepodařilo uložit pod '%1'. Form - Formulář + Formulář Add Desktop File - Přidat soubor pro desktop + Přidat soubor pro desktop Add Launcher Icon... - Přidat ikonu spouštěče... + Přidat ikonu spouštěče... @@ -45085,6 +46302,14 @@ ale přesto se pokračuje dál. Madde::Internal::MaemoMakeInstallToSysrootStep + + Cannot deploy: No active build configuration. + Nelze nasadit. Není žádné činné nastavení sestavování. + + + Cannot deploy: Unusable build configuration. + Nelze nasadit. Nepoužitelné nastavení sestavování. + Copy files to sysroot Kopírovat soubory na sysroot @@ -45576,6 +46801,10 @@ Dojde k pokusu o vytvoření balíčku, mohou se ale vyskytnout potíže. Madde::Internal::MaemoQemuManager + + MeeGo Emulator + Emulátor MeeGo + Start MeeGo Emulator Spustit emulátor Maemo @@ -45936,7 +47165,7 @@ Chcete je přidat do projektu?</html> ProjectExplorer::SettingsAccessor Using Old Project Settings File - Používá se soubor s nastavením projektu nějaké starší verze + Používá se soubor s nastavením projektu nějaké starší verze <html><head/><body><p>A versioned backup of the .user settings file will be used, because the non-versioned file was created by an incompatible newer version of Qt Creator.</p><p>Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p></body></html> @@ -45944,7 +47173,15 @@ Chcete je přidat do projektu?</html> Project Settings File from a different Environment? - Soubor s nastavením projektu z jiného prostředí? + Soubor s nastavením projektu z jiného prostředí? + + + Using Old Settings File for '%1' + Používá se soubor se starým nastavením pro '%1' + + + Settings File for '%1' from a different Environment? + Soubor s nastavením pro '%1' z jiného prostředí? Qt Creator has found a .user settings file which was created for another development setup, maybe originating from another machine. @@ -45962,13 +47199,21 @@ Chcete přesto soubor s nastavením nahrát? Unsupported Shared Settings File Nepodporovaný .shared soubor s nastavením + + The version of your .shared file is not supported by this Qt Creator version. Only settings that are still compatible will be taken into account. + +Do you want to try loading it? + Verze vašeho souboru .shared ještě není touto verzí Qt Creatoru podporována. Budou se používat pouze slučitelná nastavení. + +Chcete se pokusit o jeho nahrání? + The version of your .shared file is not yet supported by this Qt Creator version. Only settings that are still compatible will be taken into account. Do you want to continue? If you choose not to continue Qt Creator will not try to load the .shared file. - Verze vašeho souboru .shared ještě není touto verzí Qt Creatoru podporována. Budou se používat pouze slučitelná nastavení. + Verze vašeho souboru .shared ještě není touto verzí Qt Creatoru podporována. Budou se používat pouze slučitelná nastavení. Chcete pokračovat? @@ -46308,6 +47553,10 @@ Je zařízení připojeno a nastaveno pro síťový přístup? Connecting to host... Připojuje se k hostitelskému počítači... + + Checking kernel version... + Ověření verze jádra... + SSH connection failure: %1 @@ -46335,6 +47584,11 @@ Je zařízení připojeno a nastaveno pro síťový přístup? Chyba při ověřování portů: %1 + + All specified ports are available. + + Všechny zadané porty jsou dostupné. + The following specified ports are currently in use: %1 @@ -46360,6 +47614,10 @@ Je zařízení připojeno a nastaveno pro síťový přístup? Package upload failed: Could not open file. Chyba při nahrávání balíčku: Soubor se nepodařilo otevřít. + + Starting upload... + Spouští se nahrávání... + Failed to upload package: %2 Chyba při nahrávání balíčku: %2 @@ -46369,23 +47627,23 @@ Je zařízení připojeno a nastaveno pro síťový přístup? RemoteLinux::Internal::ProFilesUpdateDialog Updateable Project Files - Aktualizovatelné projektové soubory + Aktualizovatelné projektové soubory Maemo Deployment Issue - Problém s nasazením Maemo + Problém s nasazením Maemo The project files listed below do not contain deployment information, which means the respective targets cannot be deployed to and/or run on a device. Qt Creator will add the missing information to these files if you check the respective rows below. - Níže uvedené projektové soubory neobsahují požadované informace o nasazení, což znamená, že pro příslušné cíle nelze provést žádné nasazení a/nebo je nelze spustit na nějakém mobilním zařízení. Vyberte, prosím, příslušné projekty, do nichž má Qt Creator přidat chybějící informace. + Níže uvedené projektové soubory neobsahují požadované informace o nasazení, což znamená, že pro příslušné cíle nelze provést žádné nasazení a/nebo je nelze spustit na nějakém mobilním zařízení. Vyberte, prosím, příslušné projekty, do nichž má Qt Creator přidat chybějící informace. &Check all - Označit &vše + Označit &vše &Uncheck All - Odstranit označení u vš&eho + Odstranit označení u vš&eho @@ -47260,6 +48518,10 @@ Tato volba je užitečná, když chcete svůj program vyzkoušet na zařízeníc Choose APK Vybrat APK + + Clean Libs on Device + Uklidit knihovny na zařízení + AndroidPackageCreationWidget @@ -48048,7 +49310,7 @@ p, li { white-space: pre-wrap; } <center>Prebundled libraries</center> <p align="justify">Please be aware that the order is very important: If library <i>A</i> depends on library <i>B</i>, <i>B</i> <b>must</b> go before <i>A</i>.</p> - <center>Prebundled knihovny</center> + <center>Přibalené knihovny</center> <p align="justify">Uvědomte si, prosím, dobře, že pořadí je velmi důležité: Jestliže knihovna <i>A</i> závisí na knihovně <i>B</i>, <i>B</i> <b>musí</b> jít před <i>A</i>.</p> @@ -48088,7 +49350,7 @@ p, li { white-space: pre-wrap; } x86 GDB location: - Umístění GDB x86: + Umístění GDB x86: x86 GDBserver location: @@ -48128,19 +49390,23 @@ p, li { white-space: pre-wrap; } Android NDK tool chain version: - Verze sady nástrojů NDK pro Android: + Verze sady nástrojů NDK pro Android: ARM GDB location: - Umístění GDB ARM: + Umístění GDB ARM: ARM GDB server location: - Umístění serveru GDB ARM: + Umístění serveru GDB ARM: x86 GDB server location: - Umístění serveru GDB x86: + Umístění serveru GDB x86: + + + Automatically create kits for Android tool chains + Automaticky vytvořit sady pro sady nástrojů @@ -48429,75 +49695,75 @@ p, li { white-space: pre-wrap; } Debugger::Internal::CommonOptionsPage Behavior - Chování + Chování Use alternating row colors in debug views - V pohledech na ladění užít střídavých barev řádků + V pohledech na ladění užít střídavých barev řádků Change the font size in the debugger views when the font size in the main editor changes. - Změnit velikost písma v oknech pro ladění, když se velikost písma změní v hlavním editoru. + Změnit velikost písma v oknech pro ladění, když se velikost písma změní v hlavním editoru. Debugger font size follows main editor - Velikost písma ladiče následuje hlavní editor + Velikost písma ladiče následuje hlavní editor Use tooltips in main editor while debugging - Při ladění použít vysvětlivky v hlavním editoru + Při ladění použít vysvětlivky v hlavním editoru Populate the source file view automatically. This might slow down debugger startup considerably. - Aktualizovat pohled na zdrojový soubor automaticky. Toto může spuštění ladiče výrazně zpomalit. + Aktualizovat pohled na zdrojový soubor automaticky. Toto může spuštění ladiče výrazně zpomalit. Populate source file view automatically - Aktualizovat pohled na zdrojový soubor automaticky + Aktualizovat pohled na zdrojový soubor automaticky Close temporary buffers on debugger exit - Při ukončení ladění zavřít editory + Při ukončení ladění zavřít editory Switch to previous mode on debugger exit - Režim činný na začátku při ukončení ladění obnovit + Režim činný na začátku při ukončení ladění obnovit Maximum stack depth: - Největší hloubka zásobníku: + Největší hloubka zásobníku: <unlimited> - <neomezená> + <neomezená> Register Qt Creator for debugging crashed applications. - Přihlásit Qt Creator pro ladění spadlých programů. + Přihlásit Qt Creator pro ladění spadlých programů. Use Qt Creator for post-mortem debugging - Použít Qt Creator pro ladění - následný rozbor + Použít Qt Creator pro ladění - následný rozbor Bring Qt Creator to foreground when application interrupts - Přivést Qt Creator do popředí, když dojde k přerušení programu + Přivést Qt Creator do popředí, když dojde k přerušení programu Show QML object tree in Locals & Expressions when connected and not stepping. - Ukázat strom objektu QML v místních proměnných a výrazech, když je připojen a nezasahuje. + Ukázat strom objektu QML v místních proměnných a výrazech, když je připojen a nezasahuje. Show QML object tree - Ukázat strom objektu QML + Ukázat strom objektu QML Enable a full file path in breakpoints by default also for the GDB - Povolit úplnou souborovou cestu k bodu přerušení ve výchozím nastavení i pro GDB + Povolit úplnou souborovou cestu k bodu přerušení ve výchozím nastavení i pro GDB Breakpoints full path by default - Úplná cesta k bodu přerušení jako výchozí + Úplná cesta k bodu přerušení jako výchozí Stop when %1() is called @@ -49106,11 +50372,15 @@ p, li { white-space: pre-wrap; } These show the INSTALLS settings from the project file(s). - Ukáže nastavení INSTALLS z projektového souboru. + Ukáže nastavení INSTALLS z projektového souboru. Files to install for subproject: - Soubory k instalaci pro dílčí projekt: + Soubory k instalaci pro dílčí projekt: + + + Files to deploy: + Soubory pro nasazení: @@ -49421,6 +50691,14 @@ Určuje, jak se chová zpětná klávesa (backspace) co se týče odsazování. Display right &margin at column: Zobrazit pravý &okraj sloupce: + + &Highlight matching parentheses + &Zvýraznit odpovídající závorky + + + Always open links in another split + Vždy otevřít odkazy v jiném rozdělení + TextEditor::Internal::HighlighterSettingsPage @@ -49452,7 +50730,7 @@ Určuje, jak se chová zpětná klávesa (backspace) co se týče odsazování. Alert when a highlight definition is not found - Zobrazit upozornění, pokud se nepodařilo najít žádný soubor s definicí + Zobrazit upozornění, pokud se nepodařilo najít žádný soubor s definicí Ignored file patterns: @@ -49956,259 +51234,259 @@ should a repository require SSH-authentication (see documentation on SSH and the StaticAnalysisMessages do not use '%1' as a constructor - '%1' se nesmí používat jako konstruktor + '%1' se nesmí používat jako konstruktor invalid value for enum - Neplatná hodnota pro 'enum' + Neplatná hodnota pro 'enum' enum value must be a string or a number - Hodnota 'enum' musí být řetězcem nebo číslem + Hodnota 'enum' musí být řetězcem nebo číslem number value expected - Očekávána číselná hodnota + Očekávána číselná hodnota boolean value expected - Očekávána logická hodnota + Očekávána logická hodnota string value expected - Očekáván řetězec + Očekáván řetězec invalid URL - Neplatná adresa (URL) + Neplatná adresa (URL) file or directory does not exist - Soubor nebo adresář neexistuje + Soubor nebo adresář neexistuje invalid color - Neplatná barva + Neplatná barva anchor line expected - Očekáván kotevní řádek + Očekáván kotevní řádek duplicate property binding - Dvojitá vazba vlastnosti + Dvojitá vazba vlastnosti id expected - Očekáváno ID + Očekáváno ID invalid id - Neplatné ID + Neplatné ID duplicate id - Zdvojené ID + Zdvojené ID invalid property name '%1' - Neplatný název vlastnosti '%1' + Neplatný název vlastnosti '%1' '%1' does not have members - ' %1' nemá členy + ' %1' nemá členy '%1' is not a member of '%2' - ' %1' nepatří k '%2' + ' %1' nepatří k '%2' assignment in condition - Přiřazení v podmínce + Přiřazení v podmínce unterminated non-empty case block - Neprázdný 'case' blok není ukončen + Neprázdný 'case' blok není ukončen do not use 'eval' - Nepoužívat 'eval' + Nepoužívat 'eval' unreachable - Nedosažitelná + Nedosažitelná do not use 'with' - Nepoužívat 'with' + Nepoužívat 'with' do not use comma expressions - Nepoužívat výrazy s čárkou + Nepoužívat výrazy s čárkou '%1' is already a formal parameter - '%1' už je formálním parametrem + '%1' už je formálním parametrem unnecessary message suppression - Zbytečné potlačení zprávy + Zbytečné potlačení zprávy '%1' is already a function - '%1' už je funkcí + '%1' už je funkcí var '%1' is used before its declaration - Proměnná '%1' se používá před její deklarací + Proměnná '%1' se používá před její deklarací '%1' is already a var - '%1' už je proměnnou + '%1' už je proměnnou '%1' is declared more than once - '%1' má víc než jednu deklaraci + '%1' má víc než jednu deklaraci function '%1' is used before its declaration - Funkce '%1' se používá před její deklarací + Funkce '%1' se používá před její deklarací the 'function' keyword and the opening parenthesis should be separated by a single space - Klíčové slovo 'function' a úvodní závorka mají být odděleny jednou mezerou + Klíčové slovo 'function' a úvodní závorka mají být odděleny jednou mezerou do not use stand-alone blocks - Nepoužívat samostatné bloky + Nepoužívat samostatné bloky do not use void expressions - Nepoužívat prázdné výrazy + Nepoužívat prázdné výrazy confusing pluses - Matoucí plusy + Matoucí plusy confusing minuses - Matoucí minusy + Matoucí minusy declare all function vars on a single line - Prohlásit všechny proměnné funkce na jednom řádku + Prohlásit všechny proměnné funkce na jednom řádku unnecessary parentheses - Zbytečné závorky + Zbytečné závorky == and != may perform type coercion, use === or !== to avoid - == a != může vynutit převod typu, čemuž se vyhnete použitím === nebo !== + == a != může vynutit převod typu, čemuž se vyhnete použitím === nebo !== expression statements should be assignments, calls or delete expressions only - Příkazy s výrazy by měly být jen přiřazení, volání funkcí nebo výrazy 'delete' + Příkazy s výrazy by měly být jen přiřazení, volání funkcí nebo výrazy 'delete' var declarations should be at the start of a function - Deklarace proměnných mají stát na začátku funkce + Deklarace proměnných mají stát na začátku funkce only use one statement per line - Použít pouze jeden příkaz na řádek + Použít pouze jeden příkaz na řádek unknown component - Neznámá součástka + Neznámá součástka could not resolve the prototype '%1' of '%2' - Prototyp '%1' z '%2' se nepodařilo vyřešit + Prototyp '%1' z '%2' se nepodařilo vyřešit could not resolve the prototype '%1' - Prototyp '%1' se nepodařilo vyřešit + Prototyp '%1' se nepodařilo vyřešit prototype cycle, the last non-repeated component is '%1' - Prototypová smyčka, poslední neopakovaná část je %1 + Prototypová smyčka, poslední neopakovaná část je %1 invalid property type '%1' - Neplatný typ vlastnosti '%1' + Neplatný typ vlastnosti '%1' == and != perform type coercion, use === or !== to avoid - == a != vynutí převod typu, čemuž se vyhnete použitím === nebo !== + == a != vynutí převod typu, čemuž se vyhnete použitím === nebo !== calls of functions that start with an uppercase letter should use 'new' - Funkce začínající velkým písmenem by se měly volat s 'new' + Funkce začínající velkým písmenem by se měly volat s 'new' 'new' should only be used with functions that start with an uppercase letter - 'new' by se měl používat jen s funkcemi, které začínají velkým písmenem + 'new' by se měl používat jen s funkcemi, které začínají velkým písmenem use spaces around binary operators - Užívat mezery okolo binárních operátorů + Užívat mezery okolo binárních operátorů unintentional empty block, use ({}) for empty object literal - Nezamýšlený prázdný blok, použijte '({})' jako symbol prázdného objektu + Nezamýšlený prázdný blok, použijte '({})' jako symbol prázdného objektu use %1 instead of 'var' or 'variant' to improve performance - Použít %1 namísto 'var' nebo 'variant' pro lepší výkon + Použít %1 namísto 'var' nebo 'variant' pro lepší výkon missing property '%1' - Chybí vlastnost '%1' + Chybí vlastnost '%1' object value expected - Očekávána hodnota objektu + Očekávána hodnota objektu array value expected - Očekávána hodnota pole + Očekávána hodnota pole %1 value expected - Očekávána hodnota %1 + Očekávána hodnota %1 maximum number value is %1 - Největší hodnota čísla je %1 + Největší hodnota čísla je %1 minimum number value is %1 - Nejmenší hodnota čísla je %1 + Nejmenší hodnota čísla je %1 maximum number value is exclusive - Největší hodnota čísla je vyloučena + Největší hodnota čísla je vyloučena minimum number value is exclusive - Nejmenší hodnota čísla je vyloučena + Nejmenší hodnota čísla je vyloučena string value does not match required pattern - Hodnota řetězce neodpovídá požadovanému vzoru + Hodnota řetězce neodpovídá požadovanému vzoru minimum string value length is %1 - Nejmenší délka hodnoty řetězce je %1 + Nejmenší délka hodnoty řetězce je %1 maximum string value length is %1 - Největší délka hodnoty řetězce je %1 + Největší délka hodnoty řetězce je %1 %1 elements expected in array value - Pole potřebuje %1 hodnot + Pole potřebuje %1 hodnot @@ -50420,15 +51698,15 @@ should a repository require SSH-authentication (see documentation on SSH and the could not load native library - Nepodařilo se nahrát nativní knihovnu + Nepodařilo se nahrát nativní knihovnu skipping over avahi compatibility lib (or obsolete mdnsd) - Přeskakuje knihovnu kompatibility avahi (nebo zastaralé mdnsd) + Přeskakuje knihovnu kompatibility avahi (nebo zastaralé mdnsd) *WARNING* detected an obsolete version of Apple Bonjour, either disable/uninstall it or upgrade it, otherwise zeroconf will fail - *VAROVÁNÍ* Zjištěna zastaralá verze Apple Bonjour. Buď ji zakažte/odinstalujte, nebo ji aktualizujte na verzi vyšší. Jinak zeroconf spadne + *VAROVÁNÍ* Zjištěna zastaralá verze Apple Bonjour. Buď ji zakažte/odinstalujte, nebo ji aktualizujte na verzi vyšší. Jinak zeroconf spadne Zeroconf could not load a valid library, failing. @@ -50489,11 +51767,23 @@ should a repository require SSH-authentication (see documentation on SSH and the Zeroconf for [%1] accumulated %n consecutive errors, aborting. - Zeroconf pro [%1] nahromadilo %2 po sobě jdoucích chyb, přerušení. - - + Zeroconf pro [%1] nahromadilo %n po sobě jdoucí chybu, přerušení. + Zeroconf pro [%1] nahromadilo %n po sobě jdoucí chyby, přerušení. + Zeroconf pro [%1] nahromadilo %n po sobě jdoucích chyb, přerušení. + + Could not load native library. + Nepodařilo se nahrát nativní knihovnu. + + + Skipping over Avahi compatibility lib (or obsolete mdnsd). + Přeskakuje knihovnu kompatibility avahi (nebo zastaralé mdnsd). + + + Warning: Detected an obsolete version of Apple Bonjour. Disable, uninstall, or upgrade it, or zeroconf will fail. + Varování: Zjištěna zastaralá verze Apple Bonjour. Buď ji zakažte/odinstalujte, nebo ji aktualizujte na verzi vyšší. Jinak zeroconf spadne. + Analyzer::Internal::AnalyzerToolDetailWidget @@ -50553,6 +51843,10 @@ Please install an SDK of at least API version %1. Nelze vytvořit nové AVD. Není dostupné dostačně nedávné SDK pro Android. Nainstalujte, prosím, jedno SDK s API verze alespoň %1. + + Android for %1 (GCC %2, Qt %3) + Android pro %1 (GCC %2, Qt %3) + Android @@ -50652,6 +51946,18 @@ Nainstalujte, prosím, jedno SDK s API verze alespoň %1. Cannot deploy: no devices or emulators found for your package. Nelze nasadit: Pro váš balíček nebyla nalezena žádná zařízení nebo emulátory. + + No Android toolchain selected. + Nevybrána žádná sada nástrojů pro Android. + + + Could not run adb. No device found. + Nepodařilo se spustit adb. Nenalezeno žádné zařízení. + + + adb finished with exit code %1. + adb ukončeno. Vrácená hodnota %1. + Package deploy: Running command '%1 %2'. Nasazení balíčku: Spouští se příkaz '%1 %2'. @@ -50674,7 +51980,7 @@ Nainstalujte, prosím, jedno SDK s API verze alespoň %1. Clean old Qt libraries - Pročistit staré knihovny qt + Pročistit staré knihovny qt Deploy Qt libraries. This may take some time, please wait. @@ -51047,7 +52353,7 @@ Vyberte, prosím, platný název balíčku pro váš program (např. "org.e '%1' killed. - + '%1' ukončen. @@ -51096,6 +52402,26 @@ Vyberte, prosím, platný název balíčku pro váš program (např. "org.e "%1" does not seem to be an Android NDK top folder. "%1" se nezdá být hlavní složkou NDK pro Android. + + Found %n toolchains for this NDK. + + Nalezena %n sada nástrojů pro toto NDK. + Nalezeny %n sady nástrojů pro toto NDK. + Nalezeno %n sad nástrojů pro toto NDK. + + + + Qt version for architecture %1 is missing. + To add the Qt version, select Options > Build & Run > Qt Versions. + Verze Qt pro architekturu %1 chybí. + Pro přidání verze Qt vyberte Volby -> Sestavení a spuštění -> Verze Qt. + + + Qt versions for architectures %1 are missing. + To add the Qt versions, select Options > Build & Run > Qt Versions. + Verze Qt pro architektury %1 chybí. + Pro přidání verzí Qt vyberte Volby -> Sestavení a spuštění -> Verze Qt. + Select Android SDK folder Vybrat složku SDK pro Android @@ -51110,11 +52436,11 @@ Vyberte, prosím, platný název balíčku pro váš program (např. "org.e Select GDB Executable - Vybrat spustitelný soubor GDB + Vybrat spustitelný soubor GDB Select GDB Server Android Executable - Vybrat spustitelný soubor Android Server GDB + Vybrat spustitelný soubor Android Server GDB Select OpenJDK Path @@ -51189,7 +52515,7 @@ Nainstalujte, prosím, alespoň jedno SDK. Android GCC for %1 - GCC Android pro %1 + GCC Android pro %1 Android Gcc for %1 @@ -51197,7 +52523,7 @@ Nainstalujte, prosím, alespoň jedno SDK. Android GCC (%1-%2) - GCC Android (%1-%2) + GCC Android (%1-%2) @@ -51294,6 +52620,10 @@ Nainstalujte, prosím, alespoň jedno SDK. Build directory: Adresář pro sestavování: + + Autotools Manager + Správce Autotools + Tool chain: Sada nástrojů: @@ -51547,7 +52877,11 @@ Nainstalujte, prosím, alespoň jedno SDK. CppTools::CppClassesFilter Classes - Třídy + Třídy + + + C++ Classes + Třídy C++ @@ -51650,6 +52984,10 @@ Nainstalujte, prosím, alespoň jedno SDK. Debugger Test Zkouška ladění + + Debugger Runtime + Doba ladění + Debugger::Internal::DebuggerRunConfigWidget @@ -51723,6 +53061,10 @@ Nainstalujte, prosím, alespoň jedno SDK. Show Symbols Ukázat symboly + + Show Sections + Ukázat sekce + Show Dependencies Ukázat závislosti @@ -51739,6 +53081,10 @@ Nainstalujte, prosím, alespoň jedno SDK. Show Symbols in File "%1" Ukázat symboly v souboru "%1" + + Show Sections in File "%1" + Ukázat sekce v souboru "%1" + Show Dependencies of "%1" Ukázat závislosti "%1" @@ -51759,69 +53105,69 @@ Nainstalujte, prosím, alespoň jedno SDK. Debugger::Internal::QtMessageLogEditor Cu&t - Vyj&mout + Vyj&mout &Copy - &Kopírovat + &Kopírovat &Paste - &Vložit + &Vložit Select &All - Vybrat &vše + Vybrat &vše C&lear - Sma&zat + Sma&zat Debugger::Internal::QtMessageLogView &Copy - &Kopírovat + &Kopírovat &Show in Editor - &Ukázat v editoru + &Ukázat v editoru C&lear - Sma&zat + Sma&zat Debugger::Internal::QtMessageLogWindow Log - Záznamy + Záznamy Show debug, log, and info messages. - Ukázat ladění, záznamy a informační zprávy. + Ukázat ladění, záznamy a informační zprávy. Warning - Varování + Varování Show warning messages. - Ukázat varovné zprávy. + Ukázat varovné zprávy. Error - Chyba + Chyba Show error and fatal messages. - Ukázat chybové a kritické zprávy. + Ukázat chybové a kritické zprávy. Clear Console - Smazat konzoli + Smazat konzoli @@ -52247,9 +53593,21 @@ Nainstalujte, prosím, alespoň jedno SDK. copied zkopírováno + + by both + od obou + + + by us + od nás + + + by them + od nich + updated - aktualizováno + aktualizováno @@ -52298,6 +53656,10 @@ Nainstalujte, prosím, alespoň jedno SDK. Refresh Obnovit + + Fetching "%1"... + Natahuje se "%1"... + Gerrit::Internal::GerritModel @@ -52384,6 +53746,26 @@ Schválení: %12 %1 returned %2. %1 vrátil %2. + + Timeout + Časové omezení + + + The gerrit process has not responded within %1s. +Most likely this is caused by problems with SSH authentication. +Would you like to terminate it? + Proces gerrit neodpověděl během %1s. +Nejpravděpodobněji je to zaviněno potížemi s autentizací SSH. +Chcete jej ukončit? + + + Terminate + Ukončit + + + Keep Running + Pokračovat + Gerrit::Internal::GerritOptionsPage @@ -52529,6 +53911,20 @@ Například "status:staged,status:integrating" lze použít pro ukáz Reset to: Nastavit znovu na: + + Reset type: + XXX: neověřeno za běhu + Druh znovunastavení: + + + Hard Reset + XXX: Včetně pracovního stromu (lepší, ale asi moc dlouhé?); Napevno (hard) + I pracovní strom (hard) + + + Soft Reset + Pouze HEAD (soft) + Undo Changes to %1 Změny pro %1 vrátit zpět @@ -52760,7 +54156,11 @@ Má se to zkusit ještě jednou? QmlProfiler::Internal::QmlProfilerDataModel Source code not available - Není dostupný žádný zdrojový kód + Není dostupný žádný zdrojový kód + + + Source code not available. + Není dostupný žádný zdrojový kód. <bytecode> @@ -52782,25 +54182,53 @@ Má se to zkusit ještě jednou? Main Program Hlavní program + + %1 animations at %2 FPS. + %1 animace při %2 FPS. + + + Unexpected complete signal in data model. + Neočekávaný signál v datovém modelu. + + + No data to save. + Nejsou přítomna žádná data k uložení. + + + Could not open %1 for writing. + Soubor '%1' se nepodařilo otevřít pro zápis. + + + Could not open %1 for reading. + Soubor %1 se nepodařilo otevřít pro čtení. + + + Error while parsing %1. + Chyba při zpracování %1. + + + Trying to set unknown state in events list. + Pokus o nastavení neznámého stavu v seznamu událostí. + %1 animations at %2 FPS - %1 animace při %2 FPS + %1 animace při %2 FPS No data to save - Nejsou přítomna žádná data k uložení + Nejsou přítomna žádná data k uložení Could not open %1 for writing - Soubor '%1' se nepodařilo otevřít pro zápis + Soubor '%1' se nepodařilo otevřít pro zápis Could not open %1 for reading - Soubor '%1' se nepodařilo otevřít pro čtení + Soubor '%1' se nepodařilo otevřít pro čtení Error while parsing %1 - Chyba při zpracování %1 + Chyba při zpracování %1 Invalid version of QML Trace file. @@ -53210,6 +54638,10 @@ reference k prvkům v jiných souborech, smyčkách atd.) Configure Project Nastavit projekt + + Cancel + Zrušit + The project <b>%1</b> is not yet configured.<br/>Qt Creator cannot parse the project, because no kit has been set up. <p>Projekt <b>%1</b> ještě není nastaven.</p><p>Qt Creator projekt nemůže zpracovat, protože nebyla nastavena žádná sada. @@ -53350,7 +54782,7 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a RemoteLinux::RemoteLinuxDeployConfigurationWidget Double-click to edit the project file - Dvojité klepnutí pro úpravu souboru s projektem + Dvojité klepnutí pro úpravu souboru s projektem @@ -53567,19 +54999,19 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a ClearCase::Internal::CheckOutDialog Check Out - Načíst (checkout) + Získat (checkout) &Checkout comment: - Poznámka k &načtenému: + Poznámka k &získanému: &Reserved - + Vyh&razeno &Unreserved if already reserved - + &Nevyhrazeno bylo-li již vyhrazeno &Preserve file modification time @@ -53588,7 +55020,7 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a Use &Hijacked file Hijack: Unset read-only flag without check-out. This is used for local changes which the user does not want to commit. - + Použít pro místní úpravy (&hijack) @@ -53623,7 +55055,8 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a &History count: - Počet &historie: + XXX: nebo je to Pořadí? (pův. Počet historie:) + Velikost &historie: &Timeout: @@ -53635,19 +55068,19 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a &Automatically check out files on edit - &Automaticky načíst soubory při úpravách + &Automaticky získat soubory při úpravách (check out) Check this if you have a trigger that renames the activity automatically. You will not be prompted for activity name - + Zaškrtněte, máte-li spoušť, která činnost automaticky přejmenuje. Nebudete pak muset zadávat název činnosti. Aut&o assign activity names - + Aut&omaticky přiřazovat názvy činností &Prompt on check-in - + &Ptát se na potvrzení zápisu Di&sable indexer @@ -53711,7 +55144,7 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a <html><head/><body><p><b>NOTE: You will not be able to check in this file without merging the changes (not supported by the plugin)</b></p></body></html> - <html><head/><body><p><b>POZNÁMKA: Nebudete moci tento soubor check in bez sloučení změn (přídavným modulem není podporováno)</b></p></body></html> + <html><head/><body><p><b>POZNÁMKA: Nebudete moci tento soubor zapsat (check in) bez sloučení změn (přídavným modulem není podporováno)</b></p></body></html> @@ -53737,47 +55170,47 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a Qnx::Internal::BarDescriptorFileImageWizardPage WizardPage - WizardPage + WizardPage Icon: - Ikona: + Ikona: Splash screens - Uvítací obrazovka + Uvítací obrazovka Landscape: - Formát na šířku: + Formát na šířku: Portrait: - Formát na výšku: + Formát na výšku: Images - Obrázky + Obrázky Images (*.jpg *.png) - Obrázky (*.jpg *.png) + Obrázky (*.jpg *.png) <font color="red">Could not open '%1' for reading.</font> - <font color="red">Nepodařilo se otevřít '%1' pro čtení.</font> + <font color="red">Nepodařilo se otevřít '%1' pro čtení.</font> <font color="red">Incorrect icon size (%1x%2). The maximum size is %3x%4 pixels.</font> - <font color="red">Nesprávná velikost ikony (%1x%2). Největší velikost je %3x%4 pixelů.</font> + <font color="red">Nesprávná velikost ikony (%1x%2). Největší velikost je %3x%4 pixelů.</font> <font color="red">Incorrect landscape splash screen size (%1x%2). The maximum size is %3x%4 pixels.</font> - <font color="red">Nesprávná velikost uvítací obrazovky na šířku (%1x%2). Největší velikost je %3x%4 pixelů.</font> + <font color="red">Nesprávná velikost uvítací obrazovky na šířku (%1x%2). Největší velikost je %3x%4 pixelů.</font> <font color="red">Incorrect portrait splash screen size (%1x%2). The maximum size is %3x%4 pixels.</font> - <font color="red">Nesprávná velikost uvítací obrazovky na výšku (%1x%2). Největší velikost je %3x%4 pixelů.</font> + <font color="red">Nesprávná velikost uvítací obrazovky na výšku (%1x%2). Největší velikost je %3x%4 pixelů.</font> @@ -53813,6 +55246,70 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a Private key file: Soubor se soukromým klíčem: + + Request + Požadavek + + + Upload + Nahrát + + + Failed to upload debug token: + Chyba při nahrávání symbolu pro ladění: + + + Qt Creator + Qt Creator + + + Debug token successfully uploaded. + Symbol pro ladění úspěšně nahrán. + + + No route to host. + Žádná cesta k hostiteli. + + + Authentication failed. + Ověření pravosti selhalo. + + + Development mode is disabled on the device. + Vývojářský režim je na zařízení zakázán. + + + Failed to start inferior process. + Nepodařilo se spustit podřízený proces. + + + Inferior processes timed out. + Došlo k překročení časového omezení u podřízeného procesu. + + + Inferior process has crashed. + Podřízený proces spadl. + + + Failed to communicate with the inferior process. + S podřízeným procesem se nepodařilo spojit. + + + An unknwon error has happened. + Vyskytla se neznámá chyba. + + + Error + Chyba + + + Operation in Progress + Operace probíhá + + + Uploading debug token + Nahrává se symbol pro ladění + Qnx::Internal::BlackBerryDeviceConfigurationWizardSetupPage @@ -53856,6 +55353,10 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a BlackBerry Device Zařízení BlackBerry + + Request + Požadavek + Qnx::Internal::BlackBerryDeviceConfigurationWizardSshKeyPage @@ -54066,7 +55567,7 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a Server identification string is invalid (missing carriage return). - Řetězec pro identifikaci serveru je neplatný (chybí carriage return). + Řetězec pro identifikaci serveru je neplatný (chybí carriage return). Server reports protocol version 1.99, but sends data before the identification string, which is not allowed. @@ -54151,23 +55652,23 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a odd cpu architecture - + neobvyklá architektura procesoru - odd endianess - + odd endianness + neobvyklé uspořádání bytů (endianness) unexpected e_shsize - Neočekávaná e_shsize + neočekávaná e_shsize unexpected e_shentsize - Neočekávaná e_shentsize + neočekávaná e_shentsize announced %n sections, each %1 bytes, exceed file size - + oznámena %n sekce, každá %1 bytů, překročena velikost souboru oznámeny %n sekce, každá %1 bytů, překročena velikost souboru oznámeno %n sekcí, každá %1 bytů, překročena velikost souboru @@ -54175,11 +55676,11 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a string table seems to be at 0x%1 - tabulka řetězce se zdá být na 0x%1 + tabulka řetězců se zdá být na 0x%1 section name %1 of %2 behind end of file - název sekce %1 z %2 za koncem souboru + název sekce %1 z %2 za koncem souboru @@ -54323,7 +55824,7 @@ Nainstalujte, prosím, alespoň jedno SDK. &Hijack - + Upravit místně (&hijack) @@ -54341,11 +55842,11 @@ Nainstalujte, prosím, alespoň jedno SDK. Check Out... - Načíst (checkout)... + Získat (checkout)... Check &Out "%1"... - &Načíst (checkout) "%1"... + Získat (check &out) "%1"... Meta+L,Meta+O @@ -54357,11 +55858,11 @@ Nainstalujte, prosím, alespoň jedno SDK. Check &In... - &Zapsat (SVN)... + &Zapsat-odevzdat (check in)... Check &In "%1"... - &Zapsat (SVN) "%1"... + &Zapsat-odevzdat (check in) "%1"... Meta+L,Meta+I @@ -54373,11 +55874,11 @@ Nainstalujte, prosím, alespoň jedno SDK. Undo Check Out - Zpět Načíst (checkout) + Zpět (vrátit check out) &Undo Check Out "%1" - &Zpět Načíst (checkout) "%1" + &Zpět (vrátit check out) "%1" Meta+L,Meta+U @@ -54389,11 +55890,11 @@ Nainstalujte, prosím, alespoň jedno SDK. Undo Hijack - + Zpět (vrátit hijack) Undo Hi&jack "%1" - + Zpět (vrátit hi&jack) "%1" Meta+L,Meta+R @@ -54437,11 +55938,11 @@ Nainstalujte, prosím, alespoň jedno SDK. Annotate Current File - Opatřit nynější soubor anotacemi + Opatřit anotacemi tento soubor &Annotate "%1" - Opatřit &anotacemi "%1" + Opatřit &anotacemi "%1" Meta+L,Meta+A @@ -54461,15 +55962,16 @@ Nainstalujte, prosím, alespoň jedno SDK. Diff A&ctivity... - Rozdíly pro č&innost... + Rozdíly pro č&innost... Ch&eck In Activity - + &Zapsat-odevzdat činnost (check in) Chec&k In Activity "%1"... - + XXX: příliš dlouhé? (činnost lze vypustit) + Zapsat-odevzdat činnost (chec&k in) "%1"... Update Index @@ -54485,7 +55987,7 @@ Nainstalujte, prosím, alespoň jedno SDK. Check In All &Files... - + Za&psat-odevzdat vše (check in)... Meta+L,Meta+F @@ -54497,7 +55999,7 @@ Nainstalujte, prosím, alespoň jedno SDK. View &Status - Zobrazit &stav + Zobrazit &stav Meta+L,Meta+S @@ -54509,7 +56011,7 @@ Nainstalujte, prosím, alespoň jedno SDK. Check In - + Zapsat-odevzdat (check in) Diff Selected Files @@ -54525,35 +56027,35 @@ Nainstalujte, prosím, alespoň jedno SDK. Closing ClearCase Editor - Zavření editoru ClearCase + Zavírá se editor ClearCase Do you want to check in the files? - Chcete zapsat soubory? + Chcete zapsat-odevzdat soubory (check in)? The comment check failed. Do you want to check in the files? - + Ověření popisu zápisu-odevzdání se nezdařilo. Skutečně chcete tyto soubory odevzdat? Do you want to undo the check out of '%1'? - + Chcete vrátit zpět získání (check out) "%1"? Undo Hijack File - + Zpět (vrátit hijack) Do you want to undo hijack of '%1'? - + Chcete vrátit zpět místní zápis (hijack) "%1"? External diff is required to compare multiple files. - + Pro porovnání více souborů je nutné použít vnější nástroj. Enter Activity - + Vložte činnost Activity Name @@ -54561,11 +56063,11 @@ Nainstalujte, prosím, alespoň jedno SDK. Check In Activity - + Zapsat-odevzdat činnost Another check in is currently being executed. - Jiný zápis je nyní prováděn. + Jiný zápis je nyní prováděn. There are no modified files. @@ -54573,119 +56075,149 @@ Nainstalujte, prosím, alespoň jedno SDK. No ClearCase executable specified. - Nebyl zadán žádný spustitelný soubor ClearCase. + Nebyl zadán žádný spustitelný soubor ClearCase. ClearCase Checkout - Načtení ClearCase + Získání z ClearCase (checkout) File is already checked out. - Soubor je již načten. + Soubor již byl získán. Set current activity failed: %1 - Nastavení nynější činnosti se nezdařilo: %1 + Nastavení nynější činnosti se nezdařilo: %1 Enter &comment: - Zadejte &poznámku: + Zadejte &poznámku: ClearCase Add File %1 - Přidat soubor %1 ClearCase + Přidat soubor %1 ClearCase ClearCase Remove Element %1 - Odstranit prvek %1 ClearCase + Odstranit prvek %1 ClearCase This operation is irreversible. Are you sure? - Tato operace se nedá vrátit zpět. Jste si jistý? + Tuto operaci nelze vrátit zpět. Opravdu chcete pokračovat? ClearCase Remove File %1 - Odstranit soubor %1 ClearCase + Odstranit soubor %1 ClearCase ClearCase Rename File %1 -> %2 - Přejmenovat soubor %1 -> %2 ClearCase + Přejmenovat soubor %1 -> %2 ClearCase Activity Headline - Titulek činnosti + Titulek činnosti Enter activity headline - Zadejte titulek činnosti + Zadejte titulek činnosti CC Indexing - Rejstříkování CC + XXX: příliš dlouhé? + Rejstříkování ClearCase ClearCase::Internal::ClearCaseSubmitEditor ClearCase Check In - + Zápis-odevzdání do ClearCase ClearCase::Internal::ClearCaseSubmitEditorWidget Chec&k in even if identical to previous version - + Zapsat-&odevzdat i v případě shody s předchozí verzí &Preserve file modification time - + &Zachovat čas změny souboru &Check In - + XXX: příliš dlouhé? + &Zapsat-odevzdat (check in) ClearCase::Internal::SettingsPageWidget ClearCase Command - + Příkaz pro ClearCase In order to use External diff, 'diff' command needs to be accessible. - + Chcete-li použít vnější nástroj pro rozdíly, příkaz 'diff' musí být k dispozici. DiffUtils is available for free download <a href="http://gnuwin32.sourceforge.net/packages/diffutils.htm">here</a>. Please extract it to a directory in your PATH. - + Nástroj DiffUtils je možno <a href="http://gnuwin32.sourceforge.net/packages/diffutils.htm">zdarma stáhnout</a>. Měl by být rozbalen v adresáři dostupném z proměnné PATH. CMakeProjectManager::Internal::ChooseCMakePage Choose Cmake Executable - Vybrat spustitelný soubor Cmake + Vybrat spustitelný soubor Cmake The cmake executable is valid. - Spustitelný soubor cmake je platný. + Spustitelný soubor cmake je platný. Please specify the path to the cmake executable. No cmake executable was found in the path. - Zadejte, prosím, cestu ke spustitelnému souboru cmake. V cestě nebyl nalezen žádný spustitelný soubor cmake. + Zadejte, prosím, cestu ke spustitelnému souboru cmake. V cestě nebyl nalezen žádný spustitelný soubor cmake. The cmake executable (%1) does not exist. - Spustitelný soubor cmake (%1) neexistuje. + Spustitelný soubor cmake (%1) neexistuje. The path %1 is not a executable. - Cesta '%1' není spustitelným souborem. + Cesta '%1' není spustitelným souborem. The path %1 is not a valid cmake. - Cesta '%1' není platným cmake. + Cesta '%1' není platným cmake. + + + CMake Executable: + Spustitelný soubor CMake: + + + Choose CMake Executable + Vybrat spustitelný soubor CMake + + + The CMake executable is valid. + Spustitelný soubor CMake je platný. + + + Specify the path to the CMake executable. No CMake executable was found in the path. + Zadejte, prosím, cestu ke spustitelnému souboru CMake. V cestě nebyl nalezen žádný spustitelný soubor CMake. + + + The CMake executable (%1) does not exist. + Spustitelný soubor CMake (%1) neexistuje. + + + The path %1 is not an executable. + Cesta %1 není spustitelným souborem. + + + The path %1 is not a valid CMake executable. + Cesta %1 není platným spustitelným souborem CMake. @@ -54761,7 +56293,7 @@ Nainstalujte, prosím, alespoň jedno SDK. Base path for external debug information and debug sources. If empty, $SYSROOT/usr/lib/debug will be chosen. - Základní cesta pro vnější informace o ladění a zdroje ladění. V případě, že je prázdná, vybere se $SYSROOT/usr/lib/debug. + Základní cesta pro vnější informace o ladění a zdroje ladění. V případě, že je prázdná, vybere se $SYSROOT/usr/lib/debug. &Kit: @@ -54800,7 +56332,7 @@ Nainstalujte, prosím, alespoň jedno SDK. Debugger::Internal::DebuggerKitConfigWidget Manage... - Spravovat... + Spravovat... The debugger to use for this kit. @@ -55406,7 +56938,7 @@ Chcete je přidat do projektu?</html> &Hijack - + Upravit místně (&hijack) @@ -55533,15 +57065,15 @@ Vzdálený chybový výstup byl: %1 Error: Process listing command failed to start: %1 - + Chyba: Příkaz pro výpis procesů se nepodařilo spustit: %1 Error: Process listing command crashed: %1 - + Chyba: Příkaz pro výpis procesů spadl: %1 Process listing command failed with exit code %1. - + Příkaz pro výpis procesů selhal. Vrácená hodnota %1. Error: Kill process failed to start: %1 @@ -55626,6 +57158,10 @@ Vzdálený chybový výstup byl: '%1' No Device set. + Není nastaveno žádné zařízení. + + + No device set. Není nastaveno žádné zařízení. @@ -55680,13 +57216,17 @@ Vzdálený chybový výstup byl: '%1' ProjectExplorer::Internal::DeviceInformationConfigWidget + + Manage + Spravovat + The device to run the applications on. Zařízení pro spuštění programů. Manage... - Spravovat... + Spravovat... Device: @@ -55895,6 +57435,27 @@ o pravděpodobném URI. Deploy to BlackBerry Device Nasadit na zařízení BlackBerry + + Cannot Set up Application Descriptor File + Nelze nastavit soubor s popisem programu + + + Reading the bar descriptor template failed. + + + + Writing the bar descriptor file failed. + + + + Add bar-descriptor.xml File to Project + + + + Qt Creator has set up a bar descriptor file to enable packaging. +Do you want to add it to the project? + + Qnx::Internal::BlackBerryDeployConfigurationFactory @@ -56481,4 +58042,2621 @@ nelze najít v cestě. Všechny soubory (*) + + Git::Internal::BranchCheckoutDialog + + Dialog + Dialog + + + Local Changes Found. Choose Action: + Nalezeny místní změny. Vyberte úkon: + + + RadioButton + Rádiové tlačítko + + + Discard Local Changes + Vyhodit místní změny + + + CheckBox + Zaškrtávací políčko + + + Checkout branch "%1" + Načíst větev "%1" + + + Move Local Changes to "%1" + Přesunout místní změny do "%1" + + + Pop Stash of "%1" + Přiložit "%1" (stash pop) + + + Create Branch Stash for "%1" + XXX: ověřit za běhu (Je to opravdu stash branch?) + Přiložit na novou větev "%1" (stash branch) + + + Create Branch Stash for Current Branch + XXX: ověřit za běhu (Je to opravdu stash branch?) + Přiložit na nynější větev (stash branch) + + + + QbsProjectManager::Internal::QbsBuildStepConfigWidget + + Dry run + Spustit na zkoušku + + + Keep Going + Nechat běžet + + + jobs + Úkoly + + + Debug + Ladění + + + Release + Vydání + + + Build variant: + Varianta sestavení: + + + <b>Qbs:</b> %1 + <b>Qbs:</b> %1 + + + + QbsProjectManager::Internal::QbsCleanStepConfigWidget + + Clean all artifacts + Pročistit všechny výtvory + + + Dry run + Spustit na zkoušku + + + Keep Going + Nechat běžet + + + jobs + Úkoly + + + <b>Qbs:</b> %1 + <b>Qbs:</b> %1 + + + + QbsProjectManager::Internal::QbsStepConfigWidget + + Dry run + Spustit na zkoušku + + + Keep Going + Nechat běžet + + + jobs + Úkoly + + + <b>Qbs:</b> %1 + <b>Qbs:</b> %1 + + + + ButtonSpecifics + + Button + Tlačítko + + + Text + Text + + + The text shown on the button + Text zobrazený na tlačítku + + + Checked + Zaškrtnuto + + + The state of the button + Stav tlačítka + + + Checkable + Zaškrtnutelné + + + Determines whether the button is checkable or not. + Určuje, zda je tlačítko zaškrtnutelné či ne. + + + Default button + Výchozí tlačítko + + + Sets the button as the default button in a dialog. + Nastaví tlačítko v dialogu jako výchozí tlačítko. + + + Tool tip + Nástrojová rada + + + The tool tip shown for the button. + Nástrojová rada, která se zobrazuje pro tlačítko. + + + Text color + Barva textu + + + Focus on press + Zaměření při stisknutí + + + Icon source + Zdroj ikony + + + The URL of an icon resource. + Adresa (URL) prostředku ikony. + + + + CheckBoxSpecifics + + Text + Text + + + The text label for the check box + Textový štítek pro zaškrtnutelné políčko + + + Checked + Zaškrtnuto + + + Determines whether the check box is checkable or not. + Určuje, zda je zaškrtnutelné políčko zaškrtnutelné či ne. + + + Focus on press + Zaměření při stisknutí + + + + ComboBoxSpecifics + + Text + Text + + + The text shown on the combobox + Text zobrazený na rozbalovacím seznamu + + + Tool tip + Nástrojová rada + + + The tool tip shown for the combobox. + Nástrojová rada, která se zobrazuje pro rozbalovací seznam. + + + Focus on press + Zaměření při stisknutí + + + + RadioButtonSpecifics + + Text + Text + + + The text label for the radio button + Textový štítek pro radiové tlačítko + + + Checked + Zaškrtnuto + + + Determines whether the radio button is checkable or not. + Určuje, zda je radiové tlačítko zaškrtnutelné či ne. + + + Focus on press + Zaměření při stisknutí + + + + TextAreaSpecifics + + Text + Text + + + The text of the text area + Text v textové oblasti + + + Read only + Pouze pro čtení + + + Determines whether the text area is read only. + Určuje, zda je textová oblast pouze pro čtení. + + + Color + Barva + + + The color of the text + Barva textu + + + Document margins + Okraje dokumentu + + + The margins of the text area + Okraje textové oblasti + + + Frame + Rámeček + + + Determines whether the text area has a frame. + Určuje, zda má textová oblast rámeček. + + + Frame width + Šířka rámečku + + + The width of the frame + Šířka rámečku + + + Contents frame + Obsah rámečku + + + Determines whether the frame around contents is shown. + Určuje, zda se okolo obsahu zobrazuje rámeček. + + + Focus Handling + Zacházení se zaměřením + + + Highlight on focus + Zvýraznit při zaměření + + + Determines whether the text area is highlighted on focus. + Určuje, zda je textová oblast při zaměření zvýrazněna. + + + Tab changes focus + Karta mění zaměření + + + Determines whether tab changes the focus of the text area. + Určuje, zda karta mění zaměření textové oblasti. + + + Focus on press + Zaměření při stisknutí + + + Determines whether the text area gets focus if pressed. + Určuje, zda je textová oblast při stisknutí zaměřena. + + + + TextFieldSpecifics + + Text Field + Textové pole + + + Text + Text + + + The text shown on the text field + Text zobrazený v textovém poli + + + Placeholder text + Text zástupného symbolu + + + The placeholder text + Text zástupného symbolu + + + Read only + Pouze pro čtení + + + Determines whether the text field is read only. + Určuje, zda je textové pole pouze pro čtení. + + + Password mode + Režim hesla + + + Determines whether the text field is in password mode. + Určuje, zda je textové pole v režimu hesla. + + + Input mask + Zadávací maska + + + Restricts the valid text in the text field. + Omezuje platný text v textovém poli. + + + Echo mode + Režim ozvěny + + + Specifies how the text is displayed in the text field. + Určuje, jak je textzobrazován v textovém poli. + + + + QmlWarningDialog + + Warning + Varování + + + This QML file contains features which are not supported by Qt Quick Designer + + + + Warn about unsupported features + + + + + texteditv2 + + Text Edit + Upravit text + + + + textinputv2 + + Text + Text + + + + textv2 + + Text + Text + + + + Qnx::Internal::BarDescriptorEditorWidget + + StackedWidget + + + + Package Information + + + + Package ID: + + + + Package version: + Verze balíčku: + + + Package build ID: + + + + Author Information + + + + Author: + Autor: + + + Author ID: + + + + Entry-Point Text and Images + + + + Clear + Smazat + + + Splash screens: + + + + Add... + Přidat... + + + Remove + Odstranit + + + Icon: + Ikona: + + + Description: + Popis: + + + Name: + Název: + + + General + Obecné + + + Orientation: + Natočení: + + + Chrome: + + + + Transparent main window + Průhledné hlavní okno + + + Application Arguments: + Argumenty pro program: + + + Permissions + Oprávnění + + + Select All + Vybrat vše + + + Deselect All + Odznačit vše + + + Environment + Prostředí + + + Default + Výchozí + + + Auto-orient + Automatické natočení + + + Landscape + Na šířku + + + Portrait + Na výšku + + + Standard + Obvyklé + + + None + Žádné + + + Device Environment + Prostředí zařízení + + + Images (*.jpg *.png) + Obrázky (*.jpg *.png) + + + Path + Cesta + + + Destination + Cíl + + + Entry-Point + + + + Select Splash Screen + Vybrat uvítací obrazovku + + + Select File to Add + Vybrat soubor k přidání + + + + Qnx::Internal::BlackBerryCreateCertificateDialog + + Create Certificate + Vytvořit certifikát + + + Path: + Cesta: + + + Author: + Autor: + + + Password: + Heslo: + + + Confirm password: + Potvrdit heslo: + + + Show password + Ukázat heslo + + + Status + Stav + + + PKCS 12 archives (*.p12) + Archivy PKCS 12 (*.p12) + + + Base directory does not exist. + Základní adresář neexistuje. + + + The entered passwords do not match. + Zadaná hesla se neshodují. + + + Are you sure? + Jste si jistý? + + + The file '%1' will be overwritten. Do you want to proceed? + Soubor '%1' bude přepsán. Chcete pokračovat? + + + Error + Chyba + + + An unknown error occurred while creating the certificate. + Při vytváření certifikátu se vyskytla neznámá chyba. + + + Please be patient... + Buďte, prosím, trpěliví... + + + + Qnx::Internal::BlackBerryDebugTokenRequestDialog + + Request Debug Token + Požádat o symbol pro ladění + + + Debug token path: + Cesta k symbolu pro ladění: + + + Keystore: + Úložiště pro klíč: + + + Keystore password: + Heslo pro úložiště klíče: + + + CSK password: + Heslo CSK: + + + Device PIN: + PIN zařízení: + + + Show password + Ukázat heslo + + + Status + Stav + + + BAR Files (*.bar) + Soubory BAR (*.bar) + + + Base directory does not exist. + Základní adresář neexistuje. + + + Are you sure? + Jste si jistý? + + + The file '%1' will be overwritten. Do you want to proceed? + Soubor '%1' bude přepsán. Chcete pokračovat? + + + Failed to request debug token: + Nepodařilo se požádat o symbol pro ladění: + + + Wrong CSK password. + Nesprávné heslo CSK. + + + Wrong keystore password. + Nesprávné heslo pro úložiště klíče. + + + Network unreachable. + Síť nedosažitelná. + + + Illegal device PIN. + Neplatný PIN zařízení. + + + Failed to start inferior process. + Nepodařilo se spustit podřízený proces. + + + Inferior processes timed out. + Došlo k překročení časového omezení u podřízeného procesu. + + + Inferior process has crashed. + Podřízený proces spadl. + + + Failed to communicate with the inferior process. + S podřízeným procesem se nepodařilo spojit. + + + An unknwon error has occurred. + Vyskytla se neznámá chyba. + + + Error + Chyba + + + Requesting debug token... + Požaduje se symbol pro ladění + + + + Qnx::Internal::BlackBerryImportCertificateDialog + + Import Certificate + Importovat certifikát + + + Path: + Cesta: + + + Password: + Heslo: + + + PKCS 12 Archives (*.p12) + Archivy PKCS 12 (*.p12) + + + Error + Chyba + + + The keystore password is invalid. + Heslo pro úložiště klíče je neplatné. + + + An unknown error has occurred. + Vyskytla se neznámá chyba. + + + + Qnx::Internal::BlackBerryKeysWidget + + Form + Formulář + + + BlackBerry Signing Authority + + + + Registered: Yes + + + + Register + + + + Unregister + + + + Developer Certificate + + + + Create + Vytvořit + + + Import + Importovat + + + Delete + Smazat + + + Error + Chyba + + + Could not insert default certificate. + Nepodařilo se vložit výchozí certifikát. + + + Unregister Key + + + + Do you really want to unregister your key? This action cannot be undone. + + + + Error storing certificate. + + + + This certificate already exists. + + + + Delete Certificate + + + + Are you sure you want to delete this certificate? + + + + Registered: No + + + + + Qnx::Internal::BlackBerryNDKSettingsWidget + + Form + Formulář + + + BlackBerry NDK Path + Cesta NDK BlackBerry + + + Remove + Odstranit + + + Clean BlackBerry 10 Configuration + Smazat nastavení BlackBerry 10 + + + Are you sure you want to remove the current BlackBerry configuration? + Opravdu chcete odstranit nynější nastavení BlackBerry? + + + + Qnx::Internal::BlackBerryRegisterKeyDialog + + Create Key + + + + <html><head/><body><p><span style=" font-weight:600;">Obtaining keys</span></p><p>You will need to order a pair of CSJ files from BlackBerry, by <a href="https://www.blackberry.com/SignedKeys/codesigning.html"><span style=" text-decoration: underline; color:#004f69;">visiting this page.</span></a></p></body></html> + + + + PBDT CSJ file: + + + + RDK CSJ file: + + + + CSJ PIN: + + + + CSK PIN: + + + + Confirm CSK PIN: + + + + Keystore password: + Heslo pro úložiště klíče: + + + Confirm password: + + + + Generate developer certificate automatically + + + + Show + Ukázat + + + This is the PIN you entered when you requested the CSJ files. + + + + Status + Stav + + + CSK PINs do not match. + + + + Keystore password does not match. + + + + Error + Chyba + + + Error creating developer certificate. + + + + Browse CSJ File + Procházet soubor CSJ + + + CSJ files (*.csj) + Soubory CSJ (*.csj) + + + + VcsBase::SubmitEditorWidget + + Subversion Submit + Odeslání Subversion + + + Descriptio&n + &Popis + + + F&iles + &Soubory + + + Check a&ll + Označit &vše + + + %1 %2/%n File(s) + + %1 %2/%n soubor + %1 %2/%n soubory + %1 %2/%n souborů + + + + &Commit + &Zapsat či Odevzdat (commit) + + + Check All + Check all for submit + Označit vše + + + Uncheck All + Uncheck all for submit + Odstranit označení u všeho + + + + ColorLineEdit + + Translate this string + Přeložit tento řetězec + + + + ExtensionSystem::PluginErrorOverview + + Continue + Pokračovat + + + + QmlJS::SimpleAbstractStreamReader + + Cannot find file %1. + Nelze najít soubor %1. + + + Could not parse document. + Nepodařilo se zpracovat dokument. + + + Expected document to contain a single object definition. + Očekáván dokument obsahující definici jednoho objektu. + + + Expected expression statement after colon. + + + + Expected expression statement to be a literal. + + + + + QmlJS::SimpleReader + + Property is defined twice. + + + + + QmlJS::StaticAnalysisMessages + + Do not use '%1' as a constructor. + '%1' se nesmí používat jako konstruktor. + + + Invalid value for enum. + Neplatná hodnota pro 'enum'. + + + Enum value must be a string or a number. + Hodnota 'enum' musí být řetězcem nebo číslem. + + + Number value expected. + Očekávána číselná hodnota. + + + Boolean value expected. + Očekávána booleánská hodnota. + + + String value expected. + Očekáván řetězec. + + + Invalid URL. + Neplatná adresa (URL). + + + File or directory does not exist. + Soubor nebo adresář neexistuje. + + + Invalid color. + Neplatná barva. + + + Anchor line expected. + Očekáván kotevní řádek. + + + Duplicate property binding. + Dvojitá vazba vlastnosti. + + + Id expected. + Očekáváno ID. + + + Invalid id. + Neplatné ID. + + + Duplicate id. + Zdvojené ID. + + + Invalid property name '%1'. + Neplatný název vlastnosti '%1'. + + + '%1' does not have members. + ' %1' nemá členy. + + + '%1' is not a member of '%2'. + ' %1' nepatří k '%2'. + + + Assignment in condition. + Přiřazení v podmínce. + + + Unterminated non-empty case block. + Neprázdný 'case' blok není ukončen. + + + Do not use 'eval'. + Nepoužívat 'eval'. + + + Unreachable. + Nedosažitelné. + + + Do not use 'with'. + Nepoužívat 'with'. + + + Do not use comma expressions. + Nepoužívat výrazy s čárkou. + + + '%1' already is a formal parameter. + '%1' už je formálním parametrem. + + + Unnecessary message suppression. + Zbytečné potlačení zprávy. + + + '%1' already is a function. + '%1' už je funkcí. + + + var '%1' is used before its declaration. + Proměnná '%1' se používá před její deklarací. + + + '%1' already is a var. + '%1' už je proměnnou. + + + '%1' is declared more than once. + '%1' má víc než jednu deklaraci. + + + Function '%1' is used before its declaration. + Funkce '%1' se používá před její deklarací. + + + The 'function' keyword and the opening parenthesis should be separated by a single space. + Klíčové slovo 'function' a úvodní závorka mají být odděleny jednou mezerou. + + + Do not use stand-alone blocks. + Nepoužívat samostatné bloky. + + + Do not use void expressions. + Nepoužívat prázdné výrazy. + + + Confusing pluses. + Matoucí plusy. + + + Confusing minuses. + Matoucí minusy. + + + Declare all function vars on a single line. + Deklarovat všechny proměnné funkce na jednom řádku. + + + Unnecessary parentheses. + Zbytečné závorky. + + + == and != may perform type coercion, use === or !== to avoid it. + == a != může vynutit převod typu, čemuž se vyhnete použitím === nebo !==. + + + Expression statements should be assignments, calls or delete expressions only. + Příkazy s výrazy by měly být jen přiřazení, volání funkcí nebo výrazy delete. + + + Place var declarations at the start of a function. + Umístit deklarace proměnných na začátku funkce. + + + Use only one statement per line. + Použít pouze jeden příkaz na řádek. + + + Unknown component. + Neznámá součástka. + + + Could not resolve the prototype '%1' of '%2'. + Prototyp '%1' z '%2' se nepodařilo vyřešit. + + + Could not resolve the prototype '%1'. + Prototyp '%1' se nepodařilo vyřešit. + + + Prototype cycle, the last non-repeated component is '%1'. + Prototypová smyčka, poslední neopakovaná část je %1. + + + Invalid property type '%1'. + Neplatný typ vlastnosti '%1'. + + + == and != perform type coercion, use === or !== to avoid it. + == a != může vynutit převod typu, čemuž se vyhnete použitím === nebo !==. + + + Calls of functions that start with an uppercase letter should use 'new'. + Funkce, které začínají velkým písmenem, by se měly volat s 'new'. + + + Use 'new' only with functions that start with an uppercase letter. + Používejte 'new' jen s funkcemi, které začínají velkým písmenem. + + + Use spaces around binary operators. + Používejte mezery okolo binárních operátorů. + + + Unintentional empty block, use ({}) for empty object literal. + Nezamýšlený prázdný blok, použijte '({})' jako symbol prázdného objektu. + + + Use %1 instead of 'var' or 'variant' to improve performance. + Používejte %1 namísto 'var' nebo 'variant' pro lepší výkon. + + + Missing property '%1'. + Chybí vlastnost '%1'. + + + Object value expected. + Očekávána hodnota objektu. + + + Array value expected. + Očekávána hodnota pole. + + + %1 value expected. + Očekávána hodnota %1. + + + Maximum number value is %1. + Největší hodnota čísla je %1. + + + Minimum number value is %1. + Nejmenší hodnota čísla je %1. + + + Maximum number value is exclusive. + Největší hodnota čísla je výhradní. + + + Minimum number value is exclusive. + Nejmenší hodnota čísla je výhradní. + + + String value does not match required pattern. + Hodnota řetězce neodpovídá požadovanému vzoru. + + + Minimum string value length is %1. + Nejmenší délka hodnoty řetězce je %1. + + + Maximum string value length is %1. + Největší délka hodnoty řetězce je %1. + + + %1 elements expected in array value. + Pole potřebuje %1 hodnot. + + + Imperative code is not supported in the Qt Quick Designer. + + + + This type is not supported in the Qt Quick Designer. + + + + Reference to parent item cannot be resolved correctly by the Qt Quick Designer. + + + + This visual property binding cannot be evaluated in the local context and might not show up in Qt Quick Designer as expected. + + + + Qt Quick Designer only supports states in the root item. + + + + + Android::Internal::AndroidGdbServerKitInformation + + GDB server + Server GDB: + + + + Android::Internal::AndroidGdbServerKitInformationWidget + + Manage... + Spravovat... + + + Auto-detect + Zjistit automaticky + + + Edit... + Upravit... + + + Android GDB server + Server GDB pro Android + + + The GDB server to use for this kit. + Server GDB, který se použije pro tuto sadu. + + + &Binary: + &Spustitelný soubor: + + + GDB Server for "%1" + Server GDB pro "%1" + + + + Bookmarks::Internal::BookmarkManager + + Edit Note + Upravit poznámku + + + Note text: + Text poznámky: + + + + CMakeProjectManager::Internal::GeneratorInfo + + Ninja (%1) + Ninja (%1) + + + NMake Generator (%1) + Generátor NMake (%1) + + + MinGW Generator (%1) + Generátor MinGW (%1) + + + Unix Generator (%1) + Generátor Unix (%1) + + + + CMakeProjectManager::Internal::NoKitPage + + Show Options + Ukázat volby + + + Check Kits + Prověřit sady + + + There are compatible kits. + Jsou tu slučitelné sady. + + + Qt Creator has no kits that are suitable for CMake projects. Please configure a kit. + Qt Creator nemá žádné sady vhodné pro CMake. Nastavte, prosím, sadu. + + + + TextEditor::QuickFixFactory + + Create Getter and Setter Member Functions + + + + + CppTools::Internal::BuiltinIndexingSupport + + Parsing + Syntaktický rozbor + + + + CPlusplus::CheckSymbols + + Only virtual methods can be marked 'override' + + + + + CPlusPlus::CheckSymbols + + Only virtual methods can be marked 'final' + + + + Expected a namespace-name + Požadováno zadání jmenného prostoru + + + Too many arguments + + + + + CplusPlus::CheckSymbols + + Too few arguments + + + + + Debugger::Internal::CdbPathDialog + + CDB Symbol Paths + Cesty k symbolům CDB + + + CDB Source Paths + Cesty ke zdroji CDB + + + + Debugger::Internal::CommonOptionsPageWidget + + Behavior + Chování + + + Use alternating row colors in debug views + V pohledech na ladění užít střídavých barev řádků + + + Change the font size in the debugger views when the font size in the main editor changes. + Změnit velikost písma v oknech pro ladění, když se velikost písma změní v hlavním editoru. + + + Debugger font size follows main editor + Velikost písma ladiče následuje hlavní editor + + + Use tooltips in main editor while debugging + Při ladění použít vysvětlivky v hlavním editoru + + + Populate the source file view automatically. This might slow down debugger startup considerably. + Aktualizovat pohled na zdrojový soubor automaticky. Toto může spuštění ladiče výrazně zpomalit. + + + Populate source file view automatically + Aktualizovat pohled na zdrojový soubor automaticky + + + Close temporary buffers on debugger exit + Při ukončení ladění zavřít editory + + + Switch to previous mode on debugger exit + Režim činný na začátku při ukončení ladění obnovit + + + Bring Qt Creator to foreground when application interrupts + Přivést Qt Creator do popředí, když dojde k přerušení programu + + + Show QML object tree in Locals & Expressions when connected and not stepping. + Ukázat strom objektu QML v místních proměnných a výrazech, když je připojen a nezasahuje. + + + Show QML object tree + Ukázat strom objektu QML + + + Enable a full file path in breakpoints by default also for GDB. + + + + Set breakpoints using a full absolute path + + + + Register Qt Creator for debugging crashed applications. + Přihlásit Qt Creator pro ladění spadlých programů. + + + Use Qt Creator for post-mortem debugging + Použít Qt Creator pro ladění - následný rozbor + + + Maximum stack depth: + Největší hloubka zásobníku: + + + <unlimited> + <neomezená> + + + Maximum string length: + Největší délka řetězce: + + + + ImageViewer + + Color at %1,%2: red: %3 green: %4 blue: %5 alpha: %6 + + + + Size: %1x%2, %3 byte, format: %4, depth: %5 + + + + <Click to display color> + + + + Copy Image + Kopírovat obrázek + + + Open Image Viewer + Otevřít prohlížeč obrázků + + + + DiffEditor + + Diff Editor + Editor rozdílů + + + + DiffEditor::Internal::DiffEditorEditable + + Ignore Whitespaces + Nevšímat si prázdných míst + + + Context Lines: + + + + + DiffEditor::Internal::DiffEditorPlugin + + Diff... + Rozdíly... + + + Select First File for Diff + Vybrat první soubor pro Diff + + + Select Second File for Diff + Vybrat druhý soubor pro Diff + + + Diff "%1", "%2" + Editor title + Rozdíly u "%1", "%2" + + + + DiffEditor::DiffViewEditorWidget + + Skipped %n lines... + + Přeskočen %n řádek... + Přeskočeny %n řádky... + Přeskočeno %n řádků... + + + + + Git::Internal::MergeTool + + Error + Chyba + + + File input for the merge tool requires Git 1.7.8, or later. + XXX: ověřit? + Vstup ze souboru pro slučovací nástroj vyžaduje Git 1.7.8 či novější. + + + Normal + Normální + + + Submodule + Podmodul + + + Deleted + Smazáno + + + Symbolic link + Symbolický odkaz + + + Modified + Změněno + + + Created + Vytvořeno + + + Submodule commit %1 + Zápis %1 podmodulu + + + Symbolic link -> %1 + Symbolický odkaz -> %1 + + + Merge Conflict + Střet při slučování + + + %1 merge conflict for '%2' +Local: %3 +Remote: %4 + %1 střet při slučování u '%2' +Místní: %3 +Vzdálený: %4 + + + &Local + &Místní + + + &Remote + &Vzdálený + + + &Created + XXX: rod? + &Vytvořen + + + &Modified + &Změněn + + + &Deleted + S&mazáno + + + Continue Merging + Pokračovat ve slučování + + + Continue merging other unresolved paths? + Pokračovat ve slučování dalších nevyřešených cest? + + + No changes found. + Beze změn. + + + Skip + Přeskočit + + + Merge tool process finished successully. + Nástroj pro slučování doběhl úspěšně. + + + Continue Rebase + Pokračovat v přeskládání + + + Continue rebase? + Pokračovat v přeskládání? + + + Continue + Pokračovat + + + Continue Revert + Pokračovat ve vracení změn + + + You need to commit changes to finish revert. +Commit now? + Pro dokončení vrácení změn je nutno provést zápis. Chcete nyní zapsat? + + + Commit + Zapsat (commit) + + + Continue Cherry-Picking + Pokračovat ve výběrovém slučování + + + You need to commit changes to finish cherry-picking. +Commit now? + Pro dokončení výběrového slučování je nutno provést zápis. Chcete nyní zapsat? + + + Merge tool process terminated with exit code %1 + Proces slučovacího nástroje ukončen, vrácená hodnota %1 + + + + ProjectExplorer::Internal::CustomToolChainFactory + + Custom + Vlastní + + + + ProjectExplorer::Internal::TextEditDetailsWidget + + %n entries + + %n záznam + %n záznamy + %n záznamů + + + + Empty + Prázdný + + + + ProjectExplorer::Internal::CustomToolChainConfigWidget + + Each line defines a macro. Format is MACRO[=VALUE] + + + + Each line adds a global header lookup path. + + + + Comma-separated list of flags that turn on C++11 support. + + + + Comma-separated list of mkspecs. + + + + &Compiler path: + Cesta k &překladači: + + + &Make path: + + + + &ABI: + &ABI: + + + &Predefined macros: + + + + &Header paths: + + + + C++11 &flags: + + + + &Qt mkspecs: + + + + + ProjectExplorer::GccToolChain + + %1 (%2 %3 in %4) + %1 (%2 %3 v %4) + + + + ProjectExplorer::Internal::RemoveTaskHandler + + Remove + Name of the action triggering the removetaskhandler + Odstranit + + + Remove task from the task list + Odstranit úkol ze seznamu úkolů + + + + QbsProjectManager::Internal::QbsBuildConfiguration + + Parsing the Qbs project. + Vyhodnocuje se projekt Qbs. + + + Parsing of Qbs project has failed. + Vyhodnocení projektu Qbs se nezdařilo. + + + + QbsProjectManager::Internal::QbsBuildConfigurationFactory + + Qbs based build + Sestavení založené na Qbs + + + New Configuration + Nové nastavení + + + New configuration name: + Název nového nastavení: + + + %1 Debug + Debug build configuration. We recommend not translating it. + %1 ladění + + + %1 Release + Release build configuration. We recommend not translating it. + %1 vydání + + + + QbsProjectManager::Internal::QbsBuildConfigurationWidget + + Build directory: + Adresář pro sestavování: + + + + QbsProjectManager::Internal::QbsBuildStep + + Qbs build + Sestavení Qbs + + + + QbsProjectManager::Internal::QbsBuildStepFactory + + Qbs + Qbs + + + + QbsProjectManager::Internal::QbsCleanStep + + Qbs clean + Pročištění Qbs + + + + QbsProjectManager::Internal::QbsCleanStepFactory + + Qbs + Qbs + + + + QbsProjectManager::Internal::QbsProject + + Evaluating + Vyhodnocení + + + + QbsProjectManager::Internal::QbsProjectManagerPlugin + + Reparse Qbs + Zpracovat Qbs znovu + + + Build + Sestavení + + + + QmlDesignerContextMenu + + Selection + Výběr + + + Stack (z) + Zásobník (z) + + + Edit + Úpravy + + + Anchors + Kotvy + + + Layout + Rozvržení + + + Select Parent: %1 + Vybrat nadřazený (rodičovský) prvek: %1 + + + Select: %1 + Výběr: %1 + + + Deselect: + Zrušit výběr: + + + Cut + Vyjmout + + + Copy + Kopírovat + + + Paste + Vložit + + + Delete Selection + Smazat výběr + + + To Front + Dopředu + + + To Back + Dozadu + + + Raise + Dát do popředí + + + Lower + Dát do pozadí + + + Undo + Zpět + + + Redo + Znovu + + + Visibility + Viditelnost + + + Reset Size + Nastavit velikost znovu + + + Reset Position + Nastavit polohu znovu + + + Go into Component + Jít na součástku + + + Set Id + Nastavit ID + + + Reset z Property + Nastavit hodnotu z znovu + + + Fill + Vyplnit + + + Reset + Nastavit znovu + + + Layout in Column + Rozvržení ve sloupci + + + Layout in Row + Rozvržení v řádku + + + Layout in Grid + Rozvržení v mřížce + + + Layout in Flow + Rozvržení v proudu + + + Select parent: %1 + Vybrat nadřazený (rodičovský) prvek: %1 + + + + QmlDesigner::DesignDocument + + Error + Chyba + + + + QmlDesigner::ResetWidget + + Reset All Properties + Nastavit znovu všechny vlastnosti + + + + QmlDesigner::Internal::MetaInfoPrivate + + Invalid meta info + Neplatné meta informace + + + + QmlDesigner::Internal::MetaInfoReader + + Illegal state while parsing + Neplatný stav při zpracování + + + No property definition allowed + Nepovolena žádná definice vlastnosti + + + Invalid type %1 + Neplatný typ %1 + + + Unknown property for Type %1 + Neznámá vlastnost pro Type %1 + + + Unknown property for ItemLibraryEntry %1 + Neznámá vlastnost pro ItemLibraryEntry %1 + + + Unknown property for Property %1 + Neznámá vlastnost pro Property %1 + + + Unknown property for QmlSource %1 + Neznámá vlastnost pro QmlSource %1 + + + Invalid or duplicate item library entry %1 + Neplatný nebo zdvojený záznam knihovny prvku %1 + + + + SubComponentManager::parseDirectory + + Invalid meta info + Neplatné meta informace + + + + QmlDesigner::TextToModelMerger + + No import statements found + Nepodařilo se najít žádný příkaz k importování + + + Unsupported QtQuick version + Nepodporovaná verze Qt Quick + + + This .qml file contains features which are not supported by Qt Quick Designer + Tento soubor .qml obsahuje funkce nepodporované Qt Quick Designer + + + + QmlDesigner::QmlDesignerPlugin + + Switch Text/Design + Přepnout Text/Návrh + + + + QmlDesigner::ShortCutManager + + &Undo + &Zpět + + + &Redo + &Znovu + + + Delete + Smazat + + + Delete "%1" + Smazat "%1" + + + Cu&t + Vyj&mout + + + Cut "%1" + Vyjmout "%1" + + + &Copy + &Kopírovat + + + Copy "%1" + Kopírovat "%1" + + + &Paste + &Vložit + + + Paste "%1" + Vložit "%1" + + + Select &All + Vybrat &vše + + + Select All "%1" + Vybrat vše "%1" + + + Toggle Full Screen + Přepnout zobrazení na celou obrazovku + + + &Restore Default View + &Obnovit výchozí pohled + + + Toggle &Left Sidebar + Přepnout &levý postranní panel + + + Toggle &Right Sidebar + Přepnout &pravý postranní panel + + + &Go into Component + &Jít na součástku + + + Save %1 As... + Uložit '%1' jako... + + + &Save %1 + &Uložit %1 + + + Revert %1 to Saved + Vrátit %1 k uloženému + + + Close %1 + Zavřít %1 + + + Close All Except %1 + Zavřít vše kromě %1 + + + Close Others + Zavřít jiné + + + + QmlJSTools::Internal::QmlConsoleEdit + + Cu&t + Vyj&mout + + + &Copy + &Kopírovat + + + &Paste + &Vložit + + + Select &All + Vybrat &vše + + + C&lear + Sma&zat + + + + QmlJSTools::Internal::QmlConsoleModel + + Can only evaluate during a QML debug session. + Vyhodnocovat lze jen během sezení ladění QML. + + + + QmlJSTools::Internal::QmlConsolePane + + Show debug, log, and info messages. + Ukázat ladění, záznamy a informační zprávy. + + + QML/JS Console + Konzole QML/JS + + + + QmlJSTools::Internal::QmlConsoleView + + &Copy + &Kopírovat + + + &Show in Editor + &Ukázat v editoru + + + C&lear + Sma&zat + + + + QmlApplicationWizard + + Failed to read %1 template. + Nepodařilo přečíst předlohu %1. + + + Failed to read file %1. + Nepodařilo přečíst soubor %1. + + + + QmlProjectManager::Internal::QmlApplicationWizardDialog + + New Qt Quick UI Project + Nový projekt Qt Quick UI + + + This wizard generates a Qt Quick UI project. + Tento průvodce vytvoří projekt Qt Quick UI. + + + + QmlProjectManager::Internal::QmlApplicationWizard + + Qt Quick Application + Program Qt Quick + + + Creates a Qt Quick application project. + Vytvoří projekt programu Qt Quick. + + + + Qnx::Internal::BarDescriptorDocument + + %1 does not appear to be a valid application descriptor file + %1 nevypadá na to, že jde o platný soubor s popisem programu + + + + Qnx::Internal::BarDescriptorEditor + + General + Obecné + + + Application + Program + + + Assets + + + + XML Source + Zdroj XML + + + Bar Descriptor + + + + + Qnx::Internal::BarDescriptorEditorFactory + + Bar descriptor editor + + + + + Qnx::Internal::BarDescriptorPermissionsModel + + Permission + Oprávnění + + + Files + Soubory + + + Read and write files that are shared between all applications run by the current user. + Číst a zapisovat soubory sdílené mezi všemi programy spouštěnými nynějším uživatelem. + + + Microphone + Mikrofon + + + Access the audio stream from the microphone. + Přistupovat ke zvukovéhmu proudu z mikrofonu. + + + GPS Location + Poloha GPS + + + Read the current location of the device. + Číst současné umístění zařízení. + + + Camera + Kamera + + + Capture images and video using the cameras. + Zachytávejte obrázky a videa pomocí kamer. + + + Internet + Internet + + + Use a Wi-Fi, wired, or other connection to a destination that is not local. + + + + Play Sounds + Přehrávat zvuky + + + Play an audio stream. + Přehrávat zvukový proud. + + + Post Notifications + Umístit oznámení + + + Post a notification to the notifications area of the screen. + Dát na obrazovce oznámení do oblasti s oznámeními. + + + Set Audio Volume + + + + Change the volume of an audio stream being played. + + + + Device Identifying Information + + + + Access unique device identifying information (e.g. PIN). + + + + + Qnx::Internal::BlackBerryCertificateModel + + Path + Cesta + + + Author + Autor + + + Active + Činný + + + + Qnx::Internal::BlackBerryConfiguration + + The following errors occurred while setting up BB10 Configuration: + + + + - No Qt version found. + + + + - No GCC compiler found. + + + + - No GDB debugger found for BB10 Device. + + + + - No GDB debugger found for BB10 Simulator. + + + + Cannot Setup BB10 Configuration + + + + Qt Version Already Known + + + + This Qt version was already registered + Tato verze Qt již byla přihlášena + + + Invalid Qt version + Neplatná verze Qt + + + Unable to add BlackBerry Qt version + + + + Compiler Already Known + + + + This Compiler was already registered + + + + Kit Already Known + + + + This Kit was already registered + + + + BlackBerry 10 (%1) - Simulator + + + + BlackBerry 10 (%1) + + + + + Qnx::Internal::BlackBerryCsjRegistrar + + Failed to start blackberry-signer process. + + + + Process timed out. + + + + Child process has crashed. + + + + Process I/O error. + + + + Unknown process error. + + + + + Qnx::Internal::BlackBerryKeysPage + + Keys + Klíče + + + + Qnx::Internal::BlackBerryNDKSettingsPage + + NDK + NDK + + + + BlackBerry + + BlackBerry + BlackBerry + + + + Qnx::Internal::QNXPlugin + + Bar descriptor file (BlackBerry) + + + + Could not add mime-type for bar-descriptor.xml editor + + + + + QtSupport::Internal::QtVersionsModel + + All Versions + Všechny verze + + + + QtSupport::Internal::QtSupportPlugin + + Full path to the host bin directory of the current project's Qt version. + Úplná cesta k adresáři bin hostitele verze Qt nynějšího projektu. + + + Full path to the target bin directory of the current project's Qt version. You probably want %1 instead. + Úplná cesta k adresáři bin cíle verze Qt nynějšího projektu. Pravděpodobně místo toho chcete %1. + + + + QtSupport::QtVersionFactory + + No factory found for qmake: '%1' + Pro QMake nebyla nalezena žádná továrna: '%1' + + + + RemoteLinux::RemoteLinuxDeploymentDataModel + + Local File Path + Místní souborová cesta + + + Remote Directory + Vzdálený adresář + + + + TextEditor::BehaviorSettingsWidget + + Display context-sensitive help or type information on mouseover. + + + + Display context-sensitive help or type information on Shift+Mouseover. + + + From 221dabf5439d89c95ca74689934658ddfa887733 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 2 Apr 2013 14:57:20 +0200 Subject: [PATCH 20/48] QmlDesigner: fix warning Change-Id: I78ccdcc43bf9d34a4b3549a6aad59e6164f2d166 Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/components/debugview/debugview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/debugview/debugview.cpp b/src/plugins/qmldesigner/components/debugview/debugview.cpp index 8c27ebaf63c..b4b5906ef53 100644 --- a/src/plugins/qmldesigner/components/debugview/debugview.cpp +++ b/src/plugins/qmldesigner/components/debugview/debugview.cpp @@ -186,7 +186,7 @@ void DebugView::bindingPropertiesChanged(const QList &propertyL } } -void DebugView::signalHandlerPropertiesChanged(const QVector &propertyList, AbstractView::PropertyChangeFlags propertyChange) +void DebugView::signalHandlerPropertiesChanged(const QVector &propertyList, AbstractView::PropertyChangeFlags /*propertyChange*/) { if (isDebugViewEnabled()) { QTextStream message; From fccd8f910e77c4698b108912dc3874158717a92f Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 2 Apr 2013 14:46:35 +0200 Subject: [PATCH 21/48] QmlDesigner: remove ViewLogger We now have the DebugView Change-Id: I3b1cc313a9158469b51c1fd9926c29369471503e Reviewed-by: Thomas Hartmann --- .../components/integration/designdocument.h | 1 - .../designercore/designercore-lib.pri | 2 - .../designercore/include/viewmanager.h | 2 - .../designercore/model/viewlogger.cpp | 295 ------------------ .../designercore/model/viewlogger.h | 102 ------ .../designercore/model/viewmanager.cpp | 8 - src/plugins/qmldesigner/qmldesigner.qbs | 2 - 7 files changed, 412 deletions(-) delete mode 100644 src/plugins/qmldesigner/designercore/model/viewlogger.cpp delete mode 100644 src/plugins/qmldesigner/designercore/model/viewlogger.h diff --git a/src/plugins/qmldesigner/components/integration/designdocument.h b/src/plugins/qmldesigner/components/integration/designdocument.h index 9689c9872de..69ede61ee43 100644 --- a/src/plugins/qmldesigner/components/integration/designdocument.h +++ b/src/plugins/qmldesigner/components/integration/designdocument.h @@ -35,7 +35,6 @@ #include #include #include -#include #include #include diff --git a/src/plugins/qmldesigner/designercore/designercore-lib.pri b/src/plugins/qmldesigner/designercore/designercore-lib.pri index edd64602c17..41f7d009821 100644 --- a/src/plugins/qmldesigner/designercore/designercore-lib.pri +++ b/src/plugins/qmldesigner/designercore/designercore-lib.pri @@ -44,7 +44,6 @@ SOURCES += $$PWD/model/abstractview.cpp \ $$PWD/exceptions/invalidslideindexexception.cpp \ $$PWD/model/import.cpp \ $$PWD/exceptions/invalidqmlsourceexception.cpp \ - $$PWD/model/viewlogger.cpp \ $$PWD/model/internalvariantproperty.cpp \ $$PWD/model/internalnodelistproperty.cpp \ $$PWD/model/variantproperty.cpp \ @@ -114,7 +113,6 @@ HEADERS += $$PWD/include/qmldesignercorelib_global.h \ $$PWD/include/invalidslideindexexception.h \ $$PWD/include/import.h \ $$PWD/include/invalidqmlsourceexception.h \ - $$PWD/model/viewlogger.h \ $$PWD/model/internalvariantproperty.h \ $$PWD/model/internalnodelistproperty.h \ $$PWD/include/variantproperty.h \ diff --git a/src/plugins/qmldesigner/designercore/include/viewmanager.h b/src/plugins/qmldesigner/designercore/include/viewmanager.h index 47c6edbb7c5..a238692594d 100644 --- a/src/plugins/qmldesigner/designercore/include/viewmanager.h +++ b/src/plugins/qmldesigner/designercore/include/viewmanager.h @@ -41,7 +41,6 @@ #include #include #include -#include namespace QmlDesigner { @@ -105,7 +104,6 @@ private: // functions private: // variables QmlModelState m_savedState; - Internal::ViewLogger m_viewLogger; Internal::DebugView m_debugView; ComponentView m_componentView; FormEditorView m_formEditorView; diff --git a/src/plugins/qmldesigner/designercore/model/viewlogger.cpp b/src/plugins/qmldesigner/designercore/model/viewlogger.cpp deleted file mode 100644 index 95c76f74177..00000000000 --- a/src/plugins/qmldesigner/designercore/model/viewlogger.cpp +++ /dev/null @@ -1,295 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#include "viewlogger.h" -#include -#include -#include -#include -#include -#include -#include -#include - -namespace QmlDesigner { -namespace Internal { - -static QString serialize(AbstractView::PropertyChangeFlags change) -{ - QStringList tokenList; - - if (change.testFlag(AbstractView::PropertiesAdded)) - tokenList.append(QLatin1String("PropertiesAdded")); - - if (change.testFlag(AbstractView::EmptyPropertiesRemoved)) - tokenList.append(QLatin1String("EmptyPropertiesRemoved")); - - return tokenList.join(" "); -} - -static QString indent(const QString &name = QString()) { - return name.leftJustified(30, ' '); -} - -QString ViewLogger::time() const -{ - return QString::number(m_timer.elapsed()).leftJustified(7, ' '); -} - -ViewLogger::ViewLogger(QObject *parent) - : AbstractView(parent) -{ - m_timer.start(); -} - -void ViewLogger::modelAttached(Model *model) -{ - static const QString path = QDir::tempPath() + QString("/qmldesigner-logger-%1-XXXXXX.txt"). - arg(QDateTime::currentDateTime().toString(Qt::ISODate). - replace(':', '-')); - static QTemporaryFile *temporaryFile = new QTemporaryFile(path, this); - temporaryFile->setAutoRemove(false); - static bool fileOpen = temporaryFile->open(); - if (fileOpen) { - qDebug() << "QmlDesigner: Log file is:" << temporaryFile->fileName(); - m_output.setDevice(temporaryFile); - } else { - qDebug() << "QmlDesigner: failed to open:" << temporaryFile->fileName(); - } - - m_output << time() << indent("modelAttached:") << model << endl; - AbstractView::modelAttached(model); -} - -void ViewLogger::modelAboutToBeDetached(Model *model) -{ - m_output << time() << indent("modelAboutToBeDetached:") << model << endl; - AbstractView::modelAboutToBeDetached(model); -} - -void ViewLogger::nodeCreated(const ModelNode &createdNode) -{ - m_output << time() << indent("nodeCreated:") << createdNode << endl; -} - -void ViewLogger::nodeAboutToBeRemoved(const ModelNode &removedNode) -{ - m_output << time() << indent("nodeAboutToBeRemoved:") << removedNode << endl; -} - -void ViewLogger::nodeRemoved(const ModelNode &removedNode, const NodeAbstractProperty &parentProperty, PropertyChangeFlags propertyChange) -{ - m_output << time() << indent("nodeRemoved:") << removedNode << parentProperty << serialize(propertyChange) << endl; -} - -void ViewLogger::nodeAboutToBeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) -{ - m_output << time() << indent("nodeAboutToBeReparented:") << node << "\t" << newPropertyParent << "\t" << oldPropertyParent << "\t" << serialize(propertyChange) << endl; -} - - -void ViewLogger::nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) -{ - m_output << time() << indent("nodeReparented:") << node << "\t" << newPropertyParent << "\t" << oldPropertyParent << "\t" << serialize(propertyChange) << endl; -} - -void ViewLogger::nodeIdChanged(const ModelNode& node, const QString& newId, const QString& oldId) -{ - m_output << time() << indent("nodeIdChanged:") << node << "\t" << newId << "\t" << oldId << endl; -} - -void ViewLogger::propertiesAboutToBeRemoved(const QList& propertyList) -{ - m_output << time() << indent("propertiesAboutToBeRemoved:") << endl; - foreach (const AbstractProperty &property, propertyList) - m_output << time() << indent() << property << endl; -} - -void ViewLogger::propertiesRemoved(const QList &propertyList) -{ - m_output << time() << indent("propertiesRemoved:") << endl; - foreach (const AbstractProperty &property, propertyList) - m_output << time() << indent() << property << endl; -} - -void ViewLogger::variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) -{ - m_output << time() << indent("variantPropertiesChanged:") << serialize(propertyChange) << endl; - foreach (const VariantProperty &property, propertyList) - m_output << time() << indent() << property << endl; -} - -void ViewLogger::bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange) -{ - m_output << time() << indent("bindingPropertiesChanged:") << serialize(propertyChange) << endl; - foreach (const BindingProperty &property, propertyList) - m_output << time() << indent() << property << endl; -} - -void ViewLogger::signalHandlerPropertiesChanged(const QVector & /*propertyList*/, AbstractView::PropertyChangeFlags /*propertyChange*/) -{ -} - -void ViewLogger::rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion) -{ - m_output << time() << indent("rootNodeTypeChanged:") << rootModelNode() << type << majorVersion << minorVersion << endl; -} - -void ViewLogger::selectedNodesChanged(const QList &selectedNodeList, - const QList &lastSelectedNodeList) -{ - m_output << time() << indent("selectedNodesChanged:") << endl; - foreach (const ModelNode &node, selectedNodeList) - m_output << time() << indent("new: ") << node << endl; - foreach (const ModelNode &node, lastSelectedNodeList) - m_output << time() << indent("old: ") << node << endl; -} - -void ViewLogger::fileUrlChanged(const QUrl &oldUrl, const QUrl &newUrl) -{ - m_output << time() << indent("fileUrlChanged:") << oldUrl.toString() << "\t" << newUrl.toString() << endl; -} - -void ViewLogger::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex) -{ - m_output << time() << indent("nodeOrderChanged:") << listProperty << movedNode << oldIndex << endl; -} - -void ViewLogger::auxiliaryDataChanged(const ModelNode &node, const PropertyName &name, const QVariant &data) -{ - m_output << time() << indent("auxiliaryDataChanged:") << node << "\t" << name << "\t" << data.toString() << endl; -} - -void ViewLogger::importsChanged(const QList &addedImports, const QList &removedImports) -{ - m_output << time() << indent("importsChanged:") << endl; - foreach (const Import &import, addedImports) - m_output << time() << indent("import added: ") << import.toString() << endl; - foreach (const Import &import, removedImports) - m_output << time() << indent("import removed: ") << import.toString() << endl; -} - -void ViewLogger::customNotification(const AbstractView *view, const QString &identifier, const QList &nodeList, const QList &data) -{ - m_output << time() << indent("customNotification:") << view << identifier << endl; - foreach (const ModelNode &node, nodeList) - m_output << time() << indent("node: ") << node << endl; - foreach (const QVariant &variant, data) - m_output << time() << indent("data: ") << variant.toString() << endl; -} - -void ViewLogger::scriptFunctionsChanged(const ModelNode &node, const QStringList &/*scriptFunctionList*/) -{ - m_output << time() << indent("function scripts changed:") << node << endl; -} - -void ViewLogger::instancePropertyChange(const QList > &propertyList) -{ - typedef QPair PropertyPair; - m_output << time() << indent("instancePropertyChange:") << endl; - - foreach (const PropertyPair &propertyPair, propertyList) - m_output << time() << indent("property: ") << propertyPair.first << propertyPair.second << endl; -} - -void ViewLogger::instancesCompleted(const QVector &completedNodeList) -{ - m_output << time() << indent("instancesCompleted:") << endl; - - foreach (const ModelNode &node, completedNodeList) - m_output << time() << indent("node: ") << node << endl; - -} - -void ViewLogger::instanceInformationsChange(const QMultiHash &informationChangeHash) -{ - m_output << time() << indent("instanceInformationsChange:") << endl; - - QHashIterator informationChangeHashIterator(informationChangeHash); - - while (informationChangeHashIterator.hasNext()) { - informationChangeHashIterator.next(); - m_output << time() << indent("node: ") << informationChangeHashIterator.key() << "\tinformation: " << informationChangeHashIterator.value() << endl; - } -} - -void ViewLogger::instancesRenderImageChanged(const QVector &nodeList) -{ - m_output << time() << indent("instancesRenderImageChanged:") << endl; - - foreach (const ModelNode &node, nodeList) - m_output << time() << indent("node: ") << node << endl; -} - -void ViewLogger::instancesPreviewImageChanged(const QVector &nodeList) -{ - m_output << time() << indent("instancesPreviewImageChanged:") << endl; - - foreach (const ModelNode &node, nodeList) - m_output << time() << indent("node: ") << node << endl; -} - -void ViewLogger::instancesChildrenChanged(const QVector &nodeList) -{ - m_output << time() << indent("instancesChildrenChanged:") << endl; - - foreach (const ModelNode &node, nodeList) - m_output << time() << indent("node: ") << node << endl; -} - -void ViewLogger::instancesToken(const QString &tokenName, int tokenNumber, const QVector &nodeVector) -{ - m_output << time() << indent("instancesToken:") << tokenName << tokenNumber << endl; - foreach (const ModelNode &node, nodeVector) - m_output << time() << indent("node: ") << node << endl; -} - -void ViewLogger::nodeSourceChanged(const ModelNode &node, const QString & /*newNodeSource*/) -{ - m_output << time() << indent("nodeSourceChanged:") << endl; - m_output << time() << indent("node: ") << node << endl; -} - -void ViewLogger::rewriterBeginTransaction() -{ - m_output << time() << indent("rewriterBeginTransaction:") << endl; -} - -void ViewLogger::rewriterEndTransaction() -{ - m_output << time() << indent("rewriterEndTransaction:") << endl; -} - -void ViewLogger::actualStateChanged(const ModelNode &node) -{ - m_output << time() << indent("actualStateChanged:") << node << endl; -} - -} // namespace Internal -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/model/viewlogger.h b/src/plugins/qmldesigner/designercore/model/viewlogger.h deleted file mode 100644 index baa94550aca..00000000000 --- a/src/plugins/qmldesigner/designercore/model/viewlogger.h +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#ifndef VIEWLOGGER_H -#define VIEWLOGGER_H - -#include "abstractview.h" - -#include -#include - -namespace QmlDesigner { -namespace Internal { - -class ViewLogger : public QmlDesigner::AbstractView -{ - Q_OBJECT -public: - ViewLogger(QObject *parent = 0); - - void modelAttached(Model *model); - void modelAboutToBeDetached(Model *model); - - void nodeCreated(const ModelNode &createdNode); - void nodeAboutToBeRemoved(const ModelNode &removedNode); - void nodeRemoved(const ModelNode &removedNode, const NodeAbstractProperty &parentProperty, PropertyChangeFlags propertyChange); - void nodeAboutToBeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange); - void nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange); - void nodeIdChanged(const ModelNode& node, const QString& newId, const QString& oldId); - void propertiesAboutToBeRemoved(const QList& propertyList); - void propertiesRemoved(const QList& propertyList); - void variantPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange); - void bindingPropertiesChanged(const QList& propertyList, PropertyChangeFlags propertyChange); - void signalHandlerPropertiesChanged(const QVector &propertyList, PropertyChangeFlags propertyChange); - void rootNodeTypeChanged(const QString &type, int majorVersion, int minorVersion); - - void selectedNodesChanged(const QList &selectedNodeList, - const QList &lastSelectedNodeList); - - void fileUrlChanged(const QUrl &oldUrl, const QUrl &newUrl); - - void nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex); - - void importsChanged(const QList &addedImports, const QList &removedImports); - - void auxiliaryDataChanged(const ModelNode &node, const PropertyName &name, const QVariant &data); - - void customNotification(const AbstractView *view, const QString &identifier, const QList &nodeList, const QList &data); - void scriptFunctionsChanged(const ModelNode &node, const QStringList &scriptFunctionList); - void instancePropertyChange(const QList > &propertyList); - void instancesCompleted(const QVector &completedNodeList); - void instanceInformationsChange(const QMultiHash &informationChangeHash); - void instancesRenderImageChanged(const QVector &nodeList); - void instancesPreviewImageChanged(const QVector &nodeList); - void instancesChildrenChanged(const QVector &nodeList); - void instancesToken(const QString &tokenName, int tokenNumber, const QVector &nodeVector); - - void nodeSourceChanged(const ModelNode &modelNode, const QString &newNodeSource); - - void rewriterBeginTransaction(); - void rewriterEndTransaction(); - - void actualStateChanged(const ModelNode &node); - -protected: - QString time() const; - -private: - QTextStream m_output; - QTime m_timer; -}; - -} // namespace Internal -} // namespace QmlDesigner - -#endif // VIEWLOGGER_H diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index fd70c264bf9..a5dcc37d580 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -112,10 +112,6 @@ void ViewManager::detachViewsExceptRewriterAndComponetView() if (m_debugView.isAttached()) currentModel()->detachView(&m_debugView); currentModel()->setNodeInstanceView(0); - - static bool enableViewLogger = !qgetenv("QTC_ENABLE_QMLDESIGNER_LOGGER").isEmpty(); - if (enableViewLogger) - currentModel()->detachView(&m_viewLogger); } void ViewManager::attachItemLibraryView() @@ -150,10 +146,6 @@ void ViewManager::detachComponentView() void ViewManager::attachViewsExceptRewriterAndComponetView() { - static bool enableViewLogger = !qgetenv("QTC_ENABLE_QMLDESIGNER_LOGGER").isEmpty(); - if (enableViewLogger) - currentModel()->attachView(&m_viewLogger); - if (QmlDesignerPlugin::instance()->settings().enableDebugView) currentModel()->attachView(&m_debugView); attachNodeInstanceView(); diff --git a/src/plugins/qmldesigner/qmldesigner.qbs b/src/plugins/qmldesigner/qmldesigner.qbs index 7d709d37a59..21000dade97 100644 --- a/src/plugins/qmldesigner/qmldesigner.qbs +++ b/src/plugins/qmldesigner/qmldesigner.qbs @@ -280,8 +280,6 @@ QtcPlugin { "model/texttomodelmerger.cpp", "model/texttomodelmerger.h", "model/variantproperty.cpp", - "model/viewlogger.cpp", - "model/viewlogger.h", "pluginmanager/widgetpluginmanager.cpp", "pluginmanager/widgetpluginmanager.h", "pluginmanager/widgetpluginpath.cpp", From 43e221f395412de8ab6e0fb09fe0d483c27f0a51 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 2 Apr 2013 16:19:24 +0200 Subject: [PATCH 22/48] QmlDesigner: compile fix Includes are case sensitive on most operating systems. Change-Id: I37b290d41abd17a4be3ef26d29d73a61a7a46252 Reviewed-by: Kai Koehne --- .../qmldesigner/designercore/model/signalhandlerproperty.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp b/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp index fd03f46848b..b02d550ee3e 100644 --- a/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp @@ -27,7 +27,7 @@ ** ****************************************************************************/ -#include "SignalHandlerProperty.h" +#include "signalhandlerproperty.h" #include "nodeabstractproperty.h" #include "nodeproperty.h" #include "internalproperty.h" From bdba46586d552f8ed9deb36a1c875a5ca67af227 Mon Sep 17 00:00:00 2001 From: El Mehdi Fekari Date: Thu, 21 Mar 2013 11:20:41 +0100 Subject: [PATCH 23/48] Qnx: Fix the generated file descriptor to deploy Qt5 apps Task-number: QTCREATORBUG-8989 Change-Id: I727f7c5d1db5dcea10bf06e42ab0d063fbbd51b2 Reviewed-by: Eike Ziller Reviewed-by: Tobias Hunger --- .../wizards/bb-qt5-bardescriptor/bar-descriptor.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/templates/wizards/bb-qt5-bardescriptor/bar-descriptor.xml b/share/qtcreator/templates/wizards/bb-qt5-bardescriptor/bar-descriptor.xml index a8c1c24488a..ebb8b18bd5c 100644 --- a/share/qtcreator/templates/wizards/bb-qt5-bardescriptor/bar-descriptor.xml +++ b/share/qtcreator/templates/wizards/bb-qt5-bardescriptor/bar-descriptor.xml @@ -17,8 +17,9 @@ - -style - qnxlight + + -platform + qnx run_native From 68f7c2181ee2748f530eff9bbf18716c54f233e9 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Tue, 2 Apr 2013 18:41:19 +0200 Subject: [PATCH 24/48] Compile fix Change-Id: I0ece2000861b07cec31090505c4c4022d523fe36 Reviewed-by: Robert Loehning --- .../designercore/model/internalsignalhandlerproperty.cpp | 2 +- .../qmldesigner/designercore/model/signalhandlerproperty.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp index 73fd1c399ca..a9e523e660a 100644 --- a/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp @@ -27,7 +27,7 @@ ** ****************************************************************************/ -#include "InternalSignalHandlerProperty.h" +#include "internalsignalhandlerproperty.h" namespace QmlDesigner { namespace Internal { diff --git a/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp b/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp index b02d550ee3e..3ee9f2e3a1e 100644 --- a/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/signalhandlerproperty.cpp @@ -31,7 +31,7 @@ #include "nodeabstractproperty.h" #include "nodeproperty.h" #include "internalproperty.h" -#include "internalSignalHandlerProperty.h" +#include "internalsignalhandlerproperty.h" #include "invalidmodelnodeexception.h" #include "invalidpropertyexception.h" #include "invalidargumentexception.h" From f172818588e117da10365d1f23b463b159739951 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 27 Mar 2013 15:42:16 +0200 Subject: [PATCH 25/48] Tests: Export plugins in PluginManager Without this, lib file is not created using MSVC, and the build of dependents fails Change-Id: I37ca02d8e1c6b99fdf901679ccee932f1ed55450 Reviewed-by: Oswald Buddenhagen Reviewed-by: Eike Ziller (cherry picked from commit d59651cb390474425984cb7581dde1113d3ee664) --- .../pluginmanager/circularplugins/plugin1/plugin1.h | 9 ++++++++- .../pluginmanager/circularplugins/plugin1/plugin1.pro | 1 + .../pluginmanager/circularplugins/plugin2/plugin2.h | 9 ++++++++- .../pluginmanager/circularplugins/plugin2/plugin2.pro | 1 + .../pluginmanager/circularplugins/plugin3/plugin3.h | 9 ++++++++- .../pluginmanager/circularplugins/plugin3/plugin3.pro | 1 + .../pluginmanager/correctplugins1/plugin1/plugin1.h | 9 ++++++++- .../pluginmanager/correctplugins1/plugin1/plugin1.pro | 1 + .../pluginmanager/correctplugins1/plugin2/plugin2.h | 9 ++++++++- .../pluginmanager/correctplugins1/plugin2/plugin2.pro | 1 + .../pluginmanager/correctplugins1/plugin3/plugin3.h | 9 ++++++++- .../pluginmanager/correctplugins1/plugin3/plugin3.pro | 1 + 12 files changed, 54 insertions(+), 6 deletions(-) diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.h b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.h index e0c3244feec..8f55c8df5cb 100644 --- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.h +++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.h @@ -33,10 +33,17 @@ #include #include +#include + +#if defined(PLUGIN1_LIBRARY) +# define PLUGIN1_EXPORT Q_DECL_EXPORT +#else +# define PLUGIN1_EXPORT Q_DECL_IMPORT +#endif namespace Plugin1 { -class MyPlugin1 : public ExtensionSystem::IPlugin +class PLUGIN1_EXPORT MyPlugin1 : public ExtensionSystem::IPlugin { Q_OBJECT diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.pro b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.pro index 83a6ce845af..3cf7cd4286c 100644 --- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.pro +++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin1/plugin1.pro @@ -2,6 +2,7 @@ TEMPLATE = lib SOURCES += plugin1.cpp HEADERS += plugin1.h +DEFINES += PLUGIN1_LIBRARY OTHER_FILES = $$PWD/plugin.xml diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.h b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.h index ef8bf9449f8..7f7c7e18a47 100644 --- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.h +++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.h @@ -33,10 +33,17 @@ #include #include +#include + +#if defined(PLUGIN2_LIBRARY) +# define PLUGIN2_EXPORT Q_DECL_EXPORT +#else +# define PLUGIN2_EXPORT Q_DECL_IMPORT +#endif namespace Plugin2 { -class MyPlugin2 : public ExtensionSystem::IPlugin +class PLUGIN2_EXPORT MyPlugin2 : public ExtensionSystem::IPlugin { Q_OBJECT diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.pro b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.pro index 1584db8b9ec..9a53b2ccfbe 100644 --- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.pro +++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin2/plugin2.pro @@ -2,6 +2,7 @@ TEMPLATE = lib SOURCES += plugin2.cpp HEADERS += plugin2.h +DEFINES += PLUGIN2_LIBRARY OTHER_FILES = $$PWD/plugin.xml diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.h b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.h index 62db1c550eb..5b47ebec9f7 100644 --- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.h +++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.h @@ -33,10 +33,17 @@ #include #include +#include + +#if defined(PLUGIN3_LIBRARY) +# define PLUGIN3_EXPORT Q_DECL_EXPORT +#else +# define PLUGIN3_EXPORT Q_DECL_IMPORT +#endif namespace Plugin3 { -class MyPlugin3 : public ExtensionSystem::IPlugin +class PLUGIN3_EXPORT MyPlugin3 : public ExtensionSystem::IPlugin { Q_OBJECT diff --git a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.pro b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.pro index 36fa1612674..7739e7475ef 100644 --- a/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.pro +++ b/tests/auto/extensionsystem/pluginmanager/circularplugins/plugin3/plugin3.pro @@ -2,6 +2,7 @@ TEMPLATE = lib SOURCES += plugin3.cpp HEADERS += plugin3.h +DEFINES += PLUGIN3_LIBRARY OTHER_FILES = $$PWD/plugin.xml diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.h b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.h index c4d08bc9fb9..aa337fd2096 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.h +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.h @@ -33,10 +33,17 @@ #include #include +#include + +#if defined(PLUGIN1_LIBRARY) +# define PLUGIN1_EXPORT Q_DECL_EXPORT +#else +# define PLUGIN1_EXPORT Q_DECL_IMPORT +#endif namespace Plugin1 { -class MyPlugin1 : public ExtensionSystem::IPlugin +class PLUGIN1_EXPORT MyPlugin1 : public ExtensionSystem::IPlugin { Q_OBJECT diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.pro b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.pro index 7b18c767020..aa16fb809bb 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.pro +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.pro @@ -2,6 +2,7 @@ TEMPLATE = lib SOURCES += plugin1.cpp HEADERS += plugin1.h +DEFINES += PLUGIN1_LIBRARY OTHER_FILES = $$PWD/plugin.spec diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.h b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.h index cb297f14289..da65f75d099 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.h +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.h @@ -33,10 +33,17 @@ #include #include +#include + +#if defined(PLUGIN2_LIBRARY) +# define PLUGIN2_EXPORT Q_DECL_EXPORT +#else +# define PLUGIN2_EXPORT Q_DECL_IMPORT +#endif namespace Plugin2 { -class MyPlugin2 : public ExtensionSystem::IPlugin +class PLUGIN2_EXPORT MyPlugin2 : public ExtensionSystem::IPlugin { Q_OBJECT diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.pro b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.pro index 62ff154e415..9a398e95c17 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.pro +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.pro @@ -2,6 +2,7 @@ TEMPLATE = lib SOURCES += plugin2.cpp HEADERS += plugin2.h +DEFINES += PLUGIN2_LIBRARY OTHER_FILES = $$PWD/plugin.spec diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.h b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.h index 70ba3ebf0a9..5bafe2d41ec 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.h +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.h @@ -32,10 +32,17 @@ #include #include +#include + +#if defined(PLUGIN3_LIBRARY) +# define PLUGIN3_EXPORT Q_DECL_EXPORT +#else +# define PLUGIN3_EXPORT Q_DECL_IMPORT +#endif namespace Plugin3 { -class MyPlugin3 : public ExtensionSystem::IPlugin +class PLUGIN3_EXPORT MyPlugin3 : public ExtensionSystem::IPlugin { Q_OBJECT diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.pro b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.pro index 914f98a76fb..05f938f8591 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.pro +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.pro @@ -2,6 +2,7 @@ TEMPLATE = lib SOURCES += plugin3.cpp HEADERS += plugin3.h +DEFINES += PLUGIN3_LIBRARY OTHER_FILES = $$PWD/plugin.spec From 91fe5f84d94ff52c311664d37c55bdee04497952 Mon Sep 17 00:00:00 2001 From: Knut Petter Svendsen Date: Tue, 2 Apr 2013 13:10:07 +0200 Subject: [PATCH 26/48] ClearCase: Fix: Status actions was not correct for unix A set view on unix will get / as topLevel. The output of "cleartool -ls" with / as topLevel listed files with absolute path, while with relative path for the the other cases (working directory view and on windows). Root as topLevel is not 100% correct and should be fixed in another patch. However, this patch fixes an annoying bug for unix. (Before this patch multiple entries for the same file was inserted in the status map - one with relative path and one with absolute. Resulting in wrong lookup in updateStatusActions and thus wrong status on the active file. Change-Id: I178bafd21d712a445aca8e60ae3346549b55faaf Reviewed-by: Orgad Shaneh --- src/plugins/clearcase/clearcasesync.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/plugins/clearcase/clearcasesync.cpp b/src/plugins/clearcase/clearcasesync.cpp index a65dfd6b72f..a9b97ea4735 100644 --- a/src/plugins/clearcase/clearcasesync.cpp +++ b/src/plugins/clearcase/clearcasesync.cpp @@ -114,21 +114,21 @@ void ClearCaseSync::run(QFutureInterface &future, const QString &topLevel, if (atatpos != -1) { // probably managed file // find first whitespace. anything before that is not interesting int wspos = buffer.indexOf(QRegExp(QLatin1String("\\s"))); - const QString file = QDir::fromNativeSeparators(buffer.left(atatpos)); + const QString relFile = topLevelDir.relativeFilePath(QDir::fromNativeSeparators(buffer.left(atatpos))); QString ccState; QRegExp reState(QLatin1String("^\\s*\\[[^\\]]*\\]")); // [hijacked]; [loaded but missing] if (reState.indexIn(buffer, wspos + 1, QRegExp::CaretAtOffset) != -1) { ccState = reState.cap(); if (ccState.indexOf(QLatin1String("hijacked")) != -1) - m_plugin->setStatus(file, FileStatus::Hijacked, true); + m_plugin->setStatus(relFile, FileStatus::Hijacked, true); else if (ccState.indexOf(QLatin1String("loaded but missing")) != -1) - m_plugin->setStatus(file, FileStatus::Missing, false); + m_plugin->setStatus(relFile, FileStatus::Missing, false); } else if (buffer.lastIndexOf(QLatin1String("CHECKEDOUT"), wspos) != -1) - m_plugin->setStatus(file, FileStatus::CheckedOut, true); + m_plugin->setStatus(relFile, FileStatus::CheckedOut, true); // don't care about checked-in files not listed in project - else if (m_statusMap->contains(file)) - m_plugin->setStatus(file, FileStatus::CheckedIn, true); + else if (m_statusMap->contains(relFile)) + m_plugin->setStatus(relFile, FileStatus::CheckedIn, true); } buffer.clear(); future.setProgressValue(qMin(total, ++processed)); From 6f26a46e7a5625e53a9a8cf3d39961c11236f38d Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 3 Apr 2013 08:34:36 +0300 Subject: [PATCH 27/48] GitIgnore gzip files in dist/gdb Products of the Makefile Change-Id: I75cf3b2e0b72f1ede32edaec72d2e656c7bc3d42 Reviewed-by: Oswald Buddenhagen Reviewed-by: Eike Ziller --- .gitignore | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5527c86eca6..4b58289b76f 100644 --- a/.gitignore +++ b/.gitignore @@ -92,14 +92,15 @@ release/ /doc/api/html/ /doc/pluginhowto/html/ /dist/gdb/python/ +/dist/gdb/qtcreator-*/ +/dist/gdb/source/ +/dist/gdb/staging/ +/dist/gdb/*.gz .moc/ .obj/ .pch/ .rcc/ .uic/ -/dist/gdb/qtcreator-*/ -/dist/gdb/source/ -/dist/gdb/staging/ ipch/ tmp/ # ignore both a directory as well as a symlink From eb872d3204039489544b5e14efba899a55d6eae4 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 28 Mar 2013 17:44:09 +0100 Subject: [PATCH 28/48] Fix potential quoting problem in .qmake.cache on Windows. Unlike mingw makefiles, system() actually always uses the real host shell, so use the host OS instead of the makefiles' path separator as the discriminator. Change-Id: Iaba6fc76f469e75fadd9d07e0c9e1ac07016338c Reviewed-by: Oswald Buddenhagen --- qtcreator.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qtcreator.pro b/qtcreator.pro index 532053369d0..091b6937991 100644 --- a/qtcreator.pro +++ b/qtcreator.pro @@ -21,7 +21,7 @@ OTHER_FILES += dist/copyright_template.txt \ qbs/pluginspec/pluginspec.qbs qmake_cache = $$targetPath($$IDE_BUILD_TREE/.qmake.cache) -equals(QMAKE_DIR_SEP, /): { +!equals(QMAKE_HOST.os, Windows) { maybe_quote = "\"" maybe_backslash = "\\" } From f694b04b68c143f9f99368598e11ad358c6aa7db Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Tue, 2 Apr 2013 20:03:33 +0200 Subject: [PATCH 29/48] Squish: Replaced duplicate bugreport Change-Id: I73bc3a633e47ddd0580976dd355da323e2426b4f Reviewed-by: Christian Stenger --- tests/system/shared/editor_utils.py | 2 +- tests/system/shared/workarounds.py | 2 +- tests/system/suite_editors/tst_basic_cpp_support/test.py | 2 +- tests/system/suite_editors/tst_delete_externally/test.py | 2 +- tests/system/suite_editors/tst_revert_changes/test.py | 2 +- tests/system/suite_editors/tst_select_all/test.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py index 8188af8da9e..294093314fb 100644 --- a/tests/system/shared/editor_utils.py +++ b/tests/system/shared/editor_utils.py @@ -64,7 +64,7 @@ def widgetContainsPoint(widget, point): def openContextMenuOnTextCursorPosition(editor): rect = editor.cursorRect(editor.textCursor()) if platform.system() == 'Darwin': - JIRA.performWorkaroundIfStillOpen(6918, JIRA.Bug.CREATOR, editor) + JIRA.performWorkaroundIfStillOpen(8735, JIRA.Bug.CREATOR, editor) openContextMenu(editor, rect.x+rect.width/2, rect.y+rect.height/2, 0) menuInList = [None] waitFor("menuVisibleAtEditor(editor, menuInList)", 5000) diff --git a/tests/system/shared/workarounds.py b/tests/system/shared/workarounds.py index 2e5d16f544b..f0ce4c348cc 100644 --- a/tests/system/shared/workarounds.py +++ b/tests/system/shared/workarounds.py @@ -201,7 +201,7 @@ class JIRA: def __initBugDict__(self): self.__bugs__= { 'QTCREATORBUG-6853':self._workaroundCreator6853_, - 'QTCREATORBUG-6918':self._workaroundCreator_MacEditorFocus_ + 'QTCREATORBUG-8735':self._workaroundCreator_MacEditorFocus_ } # helper function - will be called if no workaround for the requested bug is deposited def _exitFatal_(self, bugType, number): diff --git a/tests/system/suite_editors/tst_basic_cpp_support/test.py b/tests/system/suite_editors/tst_basic_cpp_support/test.py index e79148072e4..8837eca8c43 100644 --- a/tests/system/suite_editors/tst_basic_cpp_support/test.py +++ b/tests/system/suite_editors/tst_basic_cpp_support/test.py @@ -39,7 +39,7 @@ def main(): # Creator will show you the declaration of the variable. if platform.system() == "Darwin": - JIRA.performWorkaroundIfStillOpen(6918, JIRA.Bug.CREATOR, cppwindow) + JIRA.performWorkaroundIfStillOpen(8735, JIRA.Bug.CREATOR, cppwindow) type(cppwindow, "") type(waitForObject(":*Qt Creator.findEdit_Utils::FilterLineEdit"), " xi") diff --git a/tests/system/suite_editors/tst_delete_externally/test.py b/tests/system/suite_editors/tst_delete_externally/test.py index abbd7d7ca1a..21bfaf3318c 100644 --- a/tests/system/suite_editors/tst_delete_externally/test.py +++ b/tests/system/suite_editors/tst_delete_externally/test.py @@ -39,7 +39,7 @@ def main(): continue if platform.system() == 'Darwin': - JIRA.performWorkaroundIfStillOpen(6918, JIRA.Bug.CREATOR, editor) + JIRA.performWorkaroundIfStillOpen(8735, JIRA.Bug.CREATOR, editor) contentBefore = readFile(currentFile) popupText = "The file %s was removed. Do you want to save it under a different name, or close the editor?" os.remove(currentFile) diff --git a/tests/system/suite_editors/tst_revert_changes/test.py b/tests/system/suite_editors/tst_revert_changes/test.py index 8f5f5b5d20d..159396c75c4 100644 --- a/tests/system/suite_editors/tst_revert_changes/test.py +++ b/tests/system/suite_editors/tst_revert_changes/test.py @@ -63,7 +63,7 @@ def __modifyProFile__(): def __modifyHeader__(): global cppEditorStr, homeShortCut, endShortCut if platform.system() == "Darwin": - JIRA.performWorkaroundIfStillOpen(6918, JIRA.Bug.CREATOR, waitForObject(cppEditorStr, 1000)) + JIRA.performWorkaroundIfStillOpen(8735, JIRA.Bug.CREATOR, waitForObject(cppEditorStr, 1000)) if placeCursorToLine(cppEditorStr, "class.+", True): type(cppEditorStr, homeShortCut) markText(cppEditorStr, "Down", 5) diff --git a/tests/system/suite_editors/tst_select_all/test.py b/tests/system/suite_editors/tst_select_all/test.py index 045adfe15bd..9bdf546eeb7 100644 --- a/tests/system/suite_editors/tst_select_all/test.py +++ b/tests/system/suite_editors/tst_select_all/test.py @@ -30,7 +30,7 @@ def main(): "Skipping this file for now.") continue if platform.system() == 'Darwin': - JIRA.performWorkaroundIfStillOpen(6918, JIRA.Bug.CREATOR, editor) + JIRA.performWorkaroundIfStillOpen(8735, JIRA.Bug.CREATOR, editor) for key in ["", "", "", ""]: test.log("Selecting everything") invokeMenuItem("Edit", "Select All") From 286240af0e092ff386ec94559099c2109a0adf48 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Wed, 3 Apr 2013 13:19:06 +0200 Subject: [PATCH 30/48] Squish: Removed pointless lines Change-Id: I867acd4e00531d6d50553710a00b1cadfc0c3cee Reviewed-by: Christian Stenger --- tests/system/suite_debugger/tst_simple_analyze/test.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/system/suite_debugger/tst_simple_analyze/test.py b/tests/system/suite_debugger/tst_simple_analyze/test.py index fad0b813296..1565bcf1592 100644 --- a/tests/system/suite_debugger/tst_simple_analyze/test.py +++ b/tests/system/suite_debugger/tst_simple_analyze/test.py @@ -5,9 +5,6 @@ workingDir = None def main(): global workingDir startApplication("qtcreator" + SettingsPath) - targets = [QtQuickConstants.Targets.DESKTOP_474_GCC] - if platform.system() in ('Windows', 'Microsoft'): - targets.append(QtQuickConstants.Targets.DESKTOP_474_MSVC2008) # using a temporary directory won't mess up a potentially existing workingDir = tempDir() checkedTargets, projectName = createNewQtQuickApplication(workingDir) From 4319b64c62040c007f2ad22f85bc1dc758e842f2 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Wed, 3 Apr 2013 13:56:10 +0200 Subject: [PATCH 31/48] Squish: Fixed typo in getQtInformationForBuildSettings() Change-Id: Ice68ff84354fa35da7d1217abc3e40acc3783691 Reviewed-by: Christian Stenger --- tests/system/shared/project_explorer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/system/shared/project_explorer.py b/tests/system/shared/project_explorer.py index d35aa2dd9f3..2c23ef8c33a 100644 --- a/tests/system/shared/project_explorer.py +++ b/tests/system/shared/project_explorer.py @@ -139,7 +139,7 @@ def getQtInformationForBuildSettings(kitCount, alreadyOnProjectsBuildSettings=Fa qtLibPath = getQtInformationByQMakeCall(qtDir, QtInformation.QT_LIBPATH) qtBinPath = getQtInformationByQMakeCall(qtDir, QtInformation.QT_BINPATH) if afterSwitchTo: - if ViewConstants.WELCOME <= afterSwitchTo <= ViewConstans.LAST_AVAILABLE: + if ViewConstants.WELCOME <= afterSwitchTo <= ViewConstants.LAST_AVAILABLE: switchViewTo(afterSwitchTo) else: test.warning("Don't know where you trying to switch to (%s)" % afterSwitchTo) From d3b68556faac6704addadaa2efffec6de2362180 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Wed, 3 Apr 2013 13:57:02 +0200 Subject: [PATCH 32/48] Squish: Let iterateBuildConfigs() give information about kit Change-Id: I283fbc773c0490c4c9cb5558e9aedfdb94ba5366 Reviewed-by: Christian Stenger --- tests/system/shared/build_utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/system/shared/build_utils.py b/tests/system/shared/build_utils.py index c858333fdea..491c4bb7df2 100644 --- a/tests/system/shared/build_utils.py +++ b/tests/system/shared/build_utils.py @@ -158,13 +158,14 @@ def iterateBuildConfigs(kitCount, filter = ""): # param targetCount specifies the number of targets currently defined (must be correct!) # param currentTarget specifies the target for which to switch into the specified settings (zero based index) # param configName is the name of the configuration that should be selected +# returns information about the selected kit, see getQtInformationForBuildSettings def selectBuildConfig(targetCount, currentTarget, configName): switchViewTo(ViewConstants.PROJECTS) switchToBuildOrRunSettingsFor(targetCount, currentTarget, ProjectSettings.BUILD) if selectFromCombo(":scrollArea.Edit build configuration:_QComboBox", configName): waitForSignal("{type='CppTools::Internal::CppModelManager' unnamed='1'}", "sourceFilesRefreshed(QStringList)") - switchViewTo(ViewConstants.EDIT) + return getQtInformationForBuildSettings(targetCount, True, ViewConstants.EDIT) # This will not trigger a rebuild. If needed, caller has to do this. def verifyBuildConfig(targetCount, currentTarget, shouldBeDebug=False, enableShadowBuild=False, enableQmlDebug=False): From 62743e8e46ae13a38092e3a44e8de55fe0c2f66e Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 4 Apr 2013 10:34:18 +0200 Subject: [PATCH 33/48] Kits: Fix uncorrect warning about missing Qt version. The warning that a kit doesn't have a valid Qt version was also printed for kits that explicitly had Qt version set to "none"/ Change-Id: I7aabb4c339f7c0b4236d5dbb8d6a9817f5bd3c73 Reviewed-by: Tobias Hunger --- src/plugins/qtsupport/qtkitinformation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qtsupport/qtkitinformation.cpp b/src/plugins/qtsupport/qtkitinformation.cpp index 77cee8d9161..db7a570d3ce 100644 --- a/src/plugins/qtsupport/qtkitinformation.cpp +++ b/src/plugins/qtsupport/qtkitinformation.cpp @@ -100,7 +100,7 @@ void QtKitInformation::fix(ProjectExplorer::Kit *k) { QTC_ASSERT(QtVersionManager::instance()->isLoaded(), return); BaseQtVersion *version = qtVersion(k); - if (!version) { + if (!version && qtVersionId(k) >= 0) { qWarning("Qt version is no longer known, removing from kit \"%s\".", qPrintable(k->displayName())); setQtVersionId(k, -1); } From 64f373e6cc135249e3d253b5d8ecb1acbb61dd5d Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 27 Mar 2013 13:27:02 +0100 Subject: [PATCH 34/48] Android: Create directory for gdbserver Task-number: QTCREATORBUG-9035 Change-Id: I2b22bebe7340105155b6efd3cb070f1a839a6d3c Reviewed-by: Eskil Abrahamsen Blomfeldt Reviewed-by: Eike Ziller --- src/plugins/android/androidpackagecreationstep.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/android/androidpackagecreationstep.cpp b/src/plugins/android/androidpackagecreationstep.cpp index d52d0952655..1bc2da7712d 100644 --- a/src/plugins/android/androidpackagecreationstep.cpp +++ b/src/plugins/android/androidpackagecreationstep.cpp @@ -440,6 +440,8 @@ bool AndroidPackageCreationStep::createPackage() QFile::remove(m_gdbServerDestination.toString()); if (m_debugBuild || !m_certificateAlias.length()) { build << QLatin1String("debug"); + QDir dir; + dir.mkpath(m_gdbServerDestination.toFileInfo().absolutePath()); if (!QFile::copy(m_gdbServerSource.toString(), m_gdbServerDestination.toString())) { raiseError(tr("Can't copy gdbserver from '%1' to '%2'").arg(m_gdbServerSource.toUserOutput()) .arg(m_gdbServerDestination.toUserOutput())); From 12f4bf02a9b5eea46aaea9a0b623b65f6d5de824 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 3 Apr 2013 11:48:09 +0200 Subject: [PATCH 35/48] QmlDesigner.FormEditor: crash fix Change-Id: If5b5b2d4f4bacda7381400a09a971f116e8c4eab Reviewed-by: Thomas Hartmann --- .../qmldesigner/components/formeditor/selectiontool.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp b/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp index 62b685df4f6..e7d88725bd2 100644 --- a/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/selectiontool.cpp @@ -138,8 +138,10 @@ void SelectionTool::hoverMoveEvent(const QList &itemList, return; } - if (topSelectedItemIsMovable(itemList)) + if (topSelectedItemIsMovable(itemList)) { view()->changeToMoveTool(); + return; + } } FormEditorItem *topSelectableItem = 0; From 3c24824b0fc079b98795fddf671d3d86a0174703 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Thu, 4 Apr 2013 13:19:23 +0200 Subject: [PATCH 36/48] Squish: Explicitly restricting tst_build_speedcrunch to Qt 4.7 Change-Id: Ib28f77d1da9573c4124e5db8e7e972bbabf6ac6a Reviewed-by: Christian Stenger --- tests/system/suite_general/tst_build_speedcrunch/test.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/system/suite_general/tst_build_speedcrunch/test.py b/tests/system/suite_general/tst_build_speedcrunch/test.py index 0412c20e486..392c798808a 100644 --- a/tests/system/suite_general/tst_build_speedcrunch/test.py +++ b/tests/system/suite_general/tst_build_speedcrunch/test.py @@ -17,7 +17,10 @@ def main(): startApplication("qtcreator" + SettingsPath) if not startedWithoutPluginError(): return - checkedTargets = openQmakeProject(SpeedCrunchPath) + suitableKits = QtQuickConstants.Targets.DESKTOP_474_GCC + if platform.system() in ('Windows', 'Microsoft'): + suitableKits |= QtQuickConstants.Targets.DESKTOP_474_MSVC2008 + checkedTargets = openQmakeProject(SpeedCrunchPath, suitableKits) waitForSignal("{type='CppTools::Internal::CppModelManager' unnamed='1'}", "sourceFilesRefreshed(QStringList)") fancyToolButton = waitForObject(":*Qt Creator_Core::Internal::FancyToolButton") From 0d79eda51762630ef336329f86bce7253939f7da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20N=C3=A4tterlund?= Date: Fri, 5 Apr 2013 10:29:18 +0200 Subject: [PATCH 37/48] ProjectExplorer: Fixed kit sometimes not being marked dirty Occassionally, the kit would not be marked for saving when changing the device, due to an uninitialized bool member. Task-number: QTCREATORBUG-9000 Change-Id: I85059cfd4b7e3106d7d353ba5884e6b93c480231 Reviewed-by: Tobias Hunger --- src/plugins/projectexplorer/kitinformationconfigwidget.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp index 5ee3f6483b9..25f5a167ad1 100644 --- a/src/plugins/projectexplorer/kitinformationconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitinformationconfigwidget.cpp @@ -292,6 +292,7 @@ void DeviceTypeInformationConfigWidget::currentTypeChanged(int idx) DeviceInformationConfigWidget::DeviceInformationConfigWidget(Kit *workingCopy) : KitConfigWidget(workingCopy), m_isReadOnly(false), + m_ignoreChange(false), m_comboBox(new QComboBox), m_model(new DeviceManagerModel(DeviceManager::instance())) { From 3a51290fb9fa6f4803c2ece6ec55bbc947d48735 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 5 Apr 2013 10:55:53 +0200 Subject: [PATCH 38/48] Doc: fix misleading information about indentation Intentation is set separately for text files that contain C++ or QML code and other text files. Change-Id: I5106d794ad516f745b07b0ebbb94bd4a652060d8 Reviewed-by: David Schulz --- doc/src/editors/creator-editors-options.qdoc | 4 +- .../editors/creator-editors-writing-code.qdoc | 6 +- doc/src/editors/creator-editors.qdoc | 62 +++++++++---------- .../creator-projects-settings-code-style.qdoc | 2 +- .../creator-projects-settings-editor.qdoc | 2 +- doc/src/qtcreator.qdoc | 2 +- 6 files changed, 38 insertions(+), 40 deletions(-) diff --git a/doc/src/editors/creator-editors-options.qdoc b/doc/src/editors/creator-editors-options.qdoc index 113997b9a42..18fd9ed1496 100644 --- a/doc/src/editors/creator-editors-options.qdoc +++ b/doc/src/editors/creator-editors-options.qdoc @@ -40,7 +40,7 @@ You can also specify indentation settings separately for C++ and QML files either globally or for the open project. For more information, see - \l{Indenting Code}. + \l{Indenting Text or Code}. You can perform the following configuration actions: @@ -53,7 +53,7 @@ {definition files for syntax highlighting} for other types of files than C++ or QML in \gui{Generic Highlighter}. - \li Set \l{Indenting Code}{tabs, indentation, the handling of + \li Set \l{Indenting Text or Code}{tabs, indentation, the handling of whitespace, and mouse operations} in \gui Behavior. \li Set various display properties, for example, diff --git a/doc/src/editors/creator-editors-writing-code.qdoc b/doc/src/editors/creator-editors-writing-code.qdoc index e40eda8ca21..b3536fdd068 100644 --- a/doc/src/editors/creator-editors-writing-code.qdoc +++ b/doc/src/editors/creator-editors-writing-code.qdoc @@ -63,10 +63,10 @@ \QC anticipates what you are going to write and completes code and code snippets for elements, properties, and IDs. - \li \l{Indenting Code} + \li \l{Indenting Text or Code} - \QC indents code according to rules that you specify either - globally for all files or separately for text, C++, or QML files. + \QC indents text and code according to rules that you specify separately for + files that contain C++ or QML code and for other text files. \li \l{Using Qt Quick Toolbars} diff --git a/doc/src/editors/creator-editors.qdoc b/doc/src/editors/creator-editors.qdoc index 783251af258..00bd159263c 100644 --- a/doc/src/editors/creator-editors.qdoc +++ b/doc/src/editors/creator-editors.qdoc @@ -1004,44 +1004,29 @@ \page creator-indenting-code.html \nextpage qt-quick-toolbars.html - \title Indenting Code + \title Indenting Text or Code - When you type code, it is indented automatically according to the selected - text editor and code style options. Select a block to indent it when you + When you type text or code, it is indented automatically according to the selected + text editor or code style options. Select a block to indent it when you press \key Tab. Press \key {Shift+Tab} to decrease the indentation. You can disable automatic indentation. - You can specify indentation either globally for all files or separately - for: + You can specify indentation for: \list - \li Text files - \li C++ files \li QML files + \li Other text files + \endlist You can also specify indentation separately for each project. You can specify several sets of code style settings and easily switch between them. In addition, you can import and export code style settings. - \section1 Indenting Text Files - - To specify global indentation settings for the text editor, select - \gui {Tools > Options > Text Editor > Behavior}. You can also use these - settings globally for all editors and files. - - \image qtcreator-indentation.png "Text Editor Behavior options" - - To specify settings for a particular project, select \gui {Projects > - Editor Settings}. - - You can specify how to interpret the \key Tab and \key Backspace key - presses and how to align continuation lines. - \section1 Indenting C++ Files To specify indentation settings for the C++ editor: @@ -1082,12 +1067,12 @@ You can use the live preview to see how the options change the indentation. - To specify the settings for a particular project, select \gui {Projects > + To specify different settings for a particular project, select \gui {Projects > Code Style Settings}. \section1 Indenting QML Files - To specify global settings for the Qt Quick editor: + To specify settings for the Qt Quick editor: \list 1 @@ -1109,26 +1094,39 @@ You can specify how to interpret the \key Tab key presses and how to align continuation lines. - To specify the settings for a particular project, select \gui {Projects > + To specify different settings for a particular project, select \gui {Projects > Code Style Settings}. + \section1 Indenting Other Text Files + + To specify indentation settings for text files that do not contain C++ or QML code (such + as Python code files), select \gui {Tools > Options > Text Editor > Behavior}. + + \image qtcreator-indentation.png "Text Editor Behavior options" + + To specify different settings for a particular project, select \gui {Projects > + Editor Settings}. + + You can specify how to interpret the \key Tab and \key Backspace key + presses and how to align continuation lines. + \section1 Specifying Tab Settings You can specify tab settings at the following levels: \list - \li Global settings for all files + \li For all C++ files - \li Global C++ settings for C++ files + \li For all QML files - \li Global Qt Quick settings for QML files + \li For all other text files - \li Project specific settings for all editors of files in the project + \li For C++ files in a project - \li Project specific settings for C++ files in the project + \li For QML files in a project - \li Project specific settings for QML files in the project + \li For other text files in a project \endlist @@ -1150,8 +1148,8 @@ \section2 Speficying Typing Options - When you type code, it is indented automatically according to the selected - text editor and code style options. Specify typing options in the + When you type text or code, it is indented automatically according to the selected + text editor or code style options. Specify typing options in the \gui Typing group. To disable automatic indentation, deselect the \gui {Enable automatic indentation} check box. diff --git a/doc/src/projects/creator-projects-settings-code-style.qdoc b/doc/src/projects/creator-projects-settings-code-style.qdoc index 8949691eaca..604554f219b 100644 --- a/doc/src/projects/creator-projects-settings-code-style.qdoc +++ b/doc/src/projects/creator-projects-settings-code-style.qdoc @@ -70,6 +70,6 @@ \endlist - For more information about the settings, see \l{Indenting Code}. + For more information about the settings, see \l{Indenting Text or Code}. */ diff --git a/doc/src/projects/creator-projects-settings-editor.qdoc b/doc/src/projects/creator-projects-settings-editor.qdoc index 40098f0abf1..513dcb29451 100644 --- a/doc/src/projects/creator-projects-settings-editor.qdoc +++ b/doc/src/projects/creator-projects-settings-editor.qdoc @@ -59,7 +59,7 @@ \list - \li \l{Indenting Code} + \li \l{Indenting Text or Code} \li \l{File Encoding} diff --git a/doc/src/qtcreator.qdoc b/doc/src/qtcreator.qdoc index 1853a432180..962f86606d6 100644 --- a/doc/src/qtcreator.qdoc +++ b/doc/src/qtcreator.qdoc @@ -209,7 +209,7 @@ \li \l{Semantic Highlighting} \li \l{Checking Code Syntax} \li \l{Completing Code} - \li \l{Indenting Code} + \li \l{Indenting Text or Code} \li \l{Using Qt Quick Toolbars} \li \l{Pasting and Fetching Code Snippets} \li \l{Using Text Editing Macros} From b8773c9a7ddbf917491b2a659686dd3e1b654523 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 5 Apr 2013 13:35:13 +0200 Subject: [PATCH 39/48] Squish: Prepare tst_simple_analyze for Qt5 Change-Id: I91caa064e002cc2ab409ec9b1c30ec57c1adb5a9 Reviewed-by: Christian Stenger --- tests/system/shared/suites_qtta.py | 7 --- tests/system/shared/utils.py | 12 +++++ tests/system/suite_HELP/tst_HELP04/test.py | 5 --- .../suite_debugger/tst_simple_analyze/test.py | 45 ++++++++++++++----- .../testdata/events_qt47.tsv | 3 ++ .../testdata/events_qt50.tsv | 7 +++ 6 files changed, 55 insertions(+), 24 deletions(-) create mode 100644 tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt47.tsv create mode 100644 tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt50.tsv diff --git a/tests/system/shared/suites_qtta.py b/tests/system/shared/suites_qtta.py index 452f1eef29f..2d3aa92dac3 100755 --- a/tests/system/shared/suites_qtta.py +++ b/tests/system/shared/suites_qtta.py @@ -33,13 +33,6 @@ def checkSyntaxError(issuesView, expectedTextsArray, warnIfMoreIssues = True): return True return False -# wait and verify if object exists/not exists -def checkIfObjectExists(name, shouldExist = True, timeout = 3000, verboseOnFail = False): - result = waitFor("object.exists(name) == shouldExist", timeout) - if verboseOnFail and not result: - test.log("checkIfObjectExists() failed for '%s'" % name) - return result - # change autocomplete options to manual def changeAutocompleteToManual(): invokeMenuItem("Tools", "Options...") diff --git a/tests/system/shared/utils.py b/tests/system/shared/utils.py index 49fb6b32c43..d6d216f4d5b 100644 --- a/tests/system/shared/utils.py +++ b/tests/system/shared/utils.py @@ -601,3 +601,15 @@ def writeTestResults(folder): for cat in categories: resultFile.write("%s:%d\n" % (cat, test.resultCount(cat))) resultFile.close() + +# wait and verify if object exists/not exists +def checkIfObjectExists(name, shouldExist = True, timeout = 3000, verboseOnFail = False): + result = waitFor("object.exists(name) == shouldExist", timeout) + if verboseOnFail and not result: + test.log("checkIfObjectExists() failed for '%s'" % name) + return result + +# wait for progress bar(s) to appear and disappear +def progressBarWait(): + checkIfObjectExists("{type='Core::Internal::ProgressBar' unnamed='1'}", True, 2000) + checkIfObjectExists("{type='Core::Internal::ProgressBar' unnamed='1'}", False, 60000) diff --git a/tests/system/suite_HELP/tst_HELP04/test.py b/tests/system/suite_HELP/tst_HELP04/test.py index 25383a9255d..49b20dfce38 100755 --- a/tests/system/suite_HELP/tst_HELP04/test.py +++ b/tests/system/suite_HELP/tst_HELP04/test.py @@ -34,11 +34,6 @@ def getHighlightsInHtml(htmlCode): test.log(res) return res -# wait for indexing progress bar to appear and disappear -def progressBarWait(): - checkIfObjectExists("{type='Core::Internal::ProgressBar' unnamed='1'}", True, 2000) - checkIfObjectExists("{type='Core::Internal::ProgressBar' unnamed='1'}", False, 60000) - def main(): global textHasChanged noMatch = "Your search did not match any documents." diff --git a/tests/system/suite_debugger/tst_simple_analyze/test.py b/tests/system/suite_debugger/tst_simple_analyze/test.py index 1565bcf1592..293fe1b05b3 100644 --- a/tests/system/suite_debugger/tst_simple_analyze/test.py +++ b/tests/system/suite_debugger/tst_simple_analyze/test.py @@ -26,8 +26,9 @@ def main(): if not availableConfigs: test.fatal("Haven't found a suitable Qt version (need Qt 4.7.4) - leaving without debugging.") for kit, config in availableConfigs: - test.log("Selecting '%s' as build config" % config) - selectBuildConfig(len(checkedTargets), kit, config) + qtVersion = selectBuildConfig(len(checkedTargets), kit, config)[0] + test.log("Selected kit using Qt %s" % qtVersion) + progressBarWait() # progress bars move buttons verifyBuildConfig(len(checkedTargets), kit, True, enableQmlDebug=True) # explicitly build before start debugging for adding the executable as allowed program to WinFW invokeMenuItem("Build", "Rebuild All") @@ -53,21 +54,41 @@ def main(): if safeClickTab("Events"): model = waitForObject(":Events.QmlProfilerEventsTable_QmlProfiler::" "Internal::QmlProfilerEventsMainView").model() - test.compare(model.rowCount(), 2) # Only two lines with Qt 4.7, more with Qt 4.8 - test.compare(dumpItems(model, column=0), ['', 'main.qml:14']) - test.compare(dumpItems(model, column=1), ['Binding', 'Signal']) - test.compare(dumpItems(model, column=2), ['100.00 %', '100.00 %']) - test.compare(dumpItems(model, column=4), ['1', '2']) - test.compare(dumpItems(model, column=9), ['Main Program', 'triggered(): { var i; for (i = 1; i < 2500; ++i) ' - '{ var j = i * i; console.log(j); } }']) + if qtVersion.startswith("5."): + compareEventsTab(model, "events_qt50.tsv") + else: + compareEventsTab(model, "events_qt47.tsv") + test.verify(str(model.index(0, 8).data()).endswith(' ms')) + test.xverify(str(model.index(1, 8).data()).endswith(' ms')) # QTCREATORBUG-8996 + test.compare(dumpItems(model, column=2)[0], '100.00 %') for i in [3, 5, 6, 7]: - for item in dumpItems(model, column=i): + for item in dumpItems(model, column=i)[:4]: test.verify(item.endswith(' ms')) - test.verify(str(model.index(0, 8).data()).endswith(' ms')) - test.xverify(str(model.index(1, 8).data()).endswith(' ms')) # QTCREATORBUG-8996 deleteAppFromWinFW(workingDir, projectName, False) invokeMenuItem("File", "Exit") +def compareEventsTab(model, file): + significantColumns = [0, 1, 4, 9] + + expectedTable = [] + for record in testData.dataset(file): + expectedTable.append([testData.field(record, str(col)) for col in significantColumns]) + foundTable = [] + for row in range(model.rowCount()): + foundTable.append([str(model.index(row, col).data()) for col in significantColumns]) + + test.compare(model.rowCount(), len(expectedTable), + "Checking number of rows in Events table") + if not test.verify(containsOnce(expectedTable, foundTable), + "Verifying that Events table matches expected values"): + test.log("Events displayed by Creator: %s" % foundTable) + +def containsOnce(tuple, items): + for item in items: + if tuple.count(item) != 1: + return False + return True + def safeClickTab(tab): for bar in [":*Qt Creator.JavaScript_QTabBar", ":*Qt Creator.Events_QTabBar"]: diff --git a/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt47.tsv b/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt47.tsv new file mode 100644 index 00000000000..ab9b1a25ba2 --- /dev/null +++ b/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt47.tsv @@ -0,0 +1,3 @@ +"0" "1" "4" "9" +"" "Binding" "1" "Main Program" +"main.qml:14" "Signal" "2" "triggered(): { var i; for (i = 1; i < 2500; ++i) { var j = i * i; console.log(j); } }" diff --git a/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt50.tsv b/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt50.tsv new file mode 100644 index 00000000000..ce81e2d6ae3 --- /dev/null +++ b/tests/system/suite_debugger/tst_simple_analyze/testdata/events_qt50.tsv @@ -0,0 +1,7 @@ +"0" "1" "4" "9" +"" "Binding" "1" "Main Program" +"main.qml:1" "Create" "1" "main.qml" +"main.qml:14" "Signal" "2" "triggered(): { var i; for (i = 1; i < 2500; ++i) { var j = i * i; console.log(j); } }" +"main.qml:1" "Compile" "1" "main.qml" +"main.qml:7" "Binding" "1" "text: qsTr(""Hello World"")" +"" "Binding" "2" "Source code not available." From 970b55b12582d22c1fcaa66bd0c85814ae6d7b8a Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 5 Apr 2013 12:02:22 +0200 Subject: [PATCH 40/48] Squish: Added Qt5 to default desktop kits Change-Id: Iefb0db16224c5b044ea0019be7d2914cc4b4892e Reviewed-by: Christian Stenger --- tests/system/shared/classes.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/system/shared/classes.py b/tests/system/shared/classes.py index e9ca05051ad..be4d94bfa86 100644 --- a/tests/system/shared/classes.py +++ b/tests/system/shared/classes.py @@ -16,7 +16,8 @@ class QtQuickConstants: @staticmethod def desktopTargetClasses(): - desktopTargets = QtQuickConstants.Targets.DESKTOP_474_GCC + desktopTargets = QtQuickConstants.Targets.DESKTOP_474_GCC \ + | QtQuickConstants.Targets.DESKTOP_501_DEFAULT if platform.system() in ('Windows', 'Microsoft'): desktopTargets |= QtQuickConstants.Targets.DESKTOP_474_MSVC2008 return desktopTargets From f4eddb96ea0ee085dfc673f2eac1250268226c9a Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 5 Apr 2013 16:25:32 +0200 Subject: [PATCH 41/48] Squish: Using default installation of Qt5 on Windows Change-Id: Ib1ec62fce66487591cadb8c0bec0d378721ebbb0 Reviewed-by: Christian Stenger --- tests/system/README | 2 +- tests/system/settings/windows/QtProject/qtcreator/qtversion.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/system/README b/tests/system/README index 203c9212b29..a2797a5e893 100644 --- a/tests/system/README +++ b/tests/system/README @@ -12,7 +12,7 @@ After installing the QtSDK you should use the package manager of the QtSDK (SDKM You'll need at least Desktop Qt versions 4.7.4, 4.8.0, Harmattan stuff (except QEmu), Maemo Toolchain, Qt Examples, Simulator, Documentation files. Third - some of the test suites/test cases expect Qt 5.0.1 installed in its default location. -On Linux/Mac this is ~/Qt5.0.1, and on Windows this is C:\Qt\5.0.1. +On Linux/Mac this is ~/Qt5.0.1, and on Windows this is C:\Qt\Qt5.0.1. Fourth - you'll have to provide some additional repositories (and for the hooking into subprocesses even some more Squish bundles, see below). These additional repositories are located inside ~/QtSDK/src or C:\QtSDK\src (depending on the OS you're on). diff --git a/tests/system/settings/windows/QtProject/qtcreator/qtversion.xml b/tests/system/settings/windows/QtProject/qtcreator/qtversion.xml index 128df0933e5..8c47f59d402 100644 --- a/tests/system/settings/windows/QtProject/qtcreator/qtversion.xml +++ b/tests/system/settings/windows/QtProject/qtcreator/qtversion.xml @@ -97,7 +97,7 @@ 18 Desktop Qt 5.0.1 (msvc2010) - C:/Qt/5.0.1/5.0.1/msvc2010/bin/qmake.exe + C:/Qt/Qt5.0.1/5.0.1/msvc2010/bin/qmake.exe Qt4ProjectManager.QtVersion.Desktop false From b8acad5365e2b665d23b4ce4210770210a454b23 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 5 Apr 2013 14:09:31 +0200 Subject: [PATCH 42/48] Doc: VCS information is visible in the Projects pane If available, the name of the branch from which the project was opened is displayed in brackets after the project name in the Projects view in the sidebar the Edit mode. Change-Id: Iffec0c8b1a822605f3bbd9d94a1d84aba0cda2e2 Reviewed-by: Orgad Shaneh Reviewed-by: Tobias Hunger --- doc/src/howto/creator-ui.qdoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/src/howto/creator-ui.qdoc b/doc/src/howto/creator-ui.qdoc index 3462ea48cca..220244da404 100644 --- a/doc/src/howto/creator-ui.qdoc +++ b/doc/src/howto/creator-ui.qdoc @@ -160,6 +160,9 @@ a list of all projects open in the current session. The files for each project are grouped according to their file type. + If the project is under version control, information from the version control system + might be displayed in brackets after the project name. This is currently implemented for + Git (the branch name or a tag is displayed) and ClearCase (the view name is displayed). You can use the project tree in the following ways: From 376a90e028c82577ac084974e98465934bbc6866 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 5 Apr 2013 18:33:10 +0200 Subject: [PATCH 43/48] Added second button to message box Change-Id: I59ec1c5000afcdd2c91ed55c32aaae11b95b620a Reviewed-by: Orgad Shaneh --- src/plugins/git/mergetool.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/git/mergetool.cpp b/src/plugins/git/mergetool.cpp index c44bbfe4f97..88bde7e96c6 100644 --- a/src/plugins/git/mergetool.cpp +++ b/src/plugins/git/mergetool.cpp @@ -246,7 +246,7 @@ void MergeTool::readData() } else if (m_merging && line.startsWith("Continue merging")) { if (QMessageBox::question(0, tr("Continue Merging"), tr("Continue merging other unresolved paths?"), - QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) { + QMessageBox::Yes|QMessageBox::No, QMessageBox::No) == QMessageBox::Yes) { m_process->write("y\n"); } else { m_process->write("n\n"); From 2d500117163811a7059a3165a9b80f046a292b18 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Tue, 5 Mar 2013 09:56:08 +0100 Subject: [PATCH 44/48] C++: pre-allocate the output buffer. This prevents a whole lot of re-allocations when the output byte array needs to grow. It also prevents some heap fragmentation for big files. Because the preprocessed output is short lived (it will be parsed immediately after, and then discarded), it is not squeezed to the minimal size. This would result in another allocation. Change-Id: I4974be5144f88cdfc4ddc9d8330200725aa90803 Reviewed-by: hjk Reviewed-by: Eike Ziller --- src/libs/cplusplus/pp-engine.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp index 1c45e61e2a8..980f59c0a26 100644 --- a/src/libs/cplusplus/pp-engine.cpp +++ b/src/libs/cplusplus/pp-engine.cpp @@ -702,6 +702,7 @@ QByteArray Preprocessor::run(const QString &fileName, m_scratchBuffer.clear(); QByteArray preprocessed, includeGuardMacroName; + preprocessed.reserve(source.size() * 2); // multiply by 2 because we insert #gen lines. preprocess(fileName, source, &preprocessed, &includeGuardMacroName, noLines, markGeneratedTokens, false); if (!includeGuardMacroName.isEmpty()) From 63f3a5106086f6a2af494b168a7686d70a04de5f Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 2 Apr 2013 16:23:37 +0200 Subject: [PATCH 45/48] QmlDesigner: for new code use QPointer instead of QWeakPointer QWeakPointer is deprecated for tracking QObjects in Qt 5. Change-Id: I3e9089b25f43b42a478aa4cd4073cbdfd0da3823 Reviewed-by: Christian Kandeler --- src/plugins/qmldesigner/components/debugview/debugview.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/debugview/debugview.h b/src/plugins/qmldesigner/components/debugview/debugview.h index d0ca29c2d83..12687fab8f4 100644 --- a/src/plugins/qmldesigner/components/debugview/debugview.h +++ b/src/plugins/qmldesigner/components/debugview/debugview.h @@ -31,6 +31,7 @@ #define DEBUGVIEW_H #include +#include namespace QmlDesigner { @@ -91,7 +92,7 @@ protected: void logInstance(const QString &title, const QString &message, bool highlight = false); private: //variables - QWeakPointer m_debugViewWidget; + QPointer m_debugViewWidget; }; } // namespace Internal From 066efcd6a601e75fa0a1b748ad6d341712507dcc Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 27 Feb 2013 15:12:36 +0100 Subject: [PATCH 46/48] Debugging on Android This implements the host side of https://codereview.qt-project.org/#change,50290 Change-Id: I13c7df29534a2a85202c2b295b139896443b0120 Reviewed-by: Eskil Abrahamsen Blomfeldt Reviewed-by: Daniel Teske Reviewed-by: BogDan Vatra Reviewed-by: hjk --- src/plugins/android/androiddebugsupport.cpp | 9 + src/plugins/android/androiddebugsupport.h | 3 +- src/plugins/android/androidrunner.cpp | 349 +++++++++++------- src/plugins/android/androidrunner.h | 26 +- src/plugins/debugger/debuggerengine.cpp | 5 + src/plugins/debugger/debuggerengine.h | 1 + src/plugins/debugger/gdb/gdbengine.cpp | 3 +- .../debugger/gdb/remotegdbserveradapter.cpp | 92 ++++- .../debugger/gdb/remotegdbserveradapter.h | 14 +- 9 files changed, 328 insertions(+), 174 deletions(-) diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index c5eb00bdf6f..92fab2c66a5 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -135,7 +135,11 @@ AndroidDebugSupport::AndroidDebugSupport(AndroidRunConfiguration *runConfig, m_runner, SLOT(start())); connect(m_runControl, SIGNAL(finished()), m_runner, SLOT(stop())); + connect(m_runControl->engine(), SIGNAL(aboutToNotifyInferiorSetupOk()), + m_runner, SLOT(handleGdbRunning())); + connect(m_runner, SIGNAL(remoteServerRunning(QByteArray,int)), + SLOT(handleRemoteServerRunning(QByteArray,int))); connect(m_runner, SIGNAL(remoteProcessStarted(int,int)), SLOT(handleRemoteProcessStarted(int,int))); connect(m_runner, SIGNAL(remoteProcessFinished(QString)), @@ -147,6 +151,11 @@ AndroidDebugSupport::AndroidDebugSupport(AndroidRunConfiguration *runConfig, SLOT(handleRemoteOutput(QByteArray))); } +void AndroidDebugSupport::handleRemoteServerRunning(const QByteArray &serverChannel, int pid) +{ + m_runControl->engine()->notifyEngineRemoteServerRunning(serverChannel, pid); +} + void AndroidDebugSupport::handleRemoteProcessStarted(int gdbServerPort, int qmlPort) { disconnect(m_runner, SIGNAL(remoteProcessStarted(int,int)), diff --git a/src/plugins/android/androiddebugsupport.h b/src/plugins/android/androiddebugsupport.h index 788e51b95d4..90a6324fd5e 100644 --- a/src/plugins/android/androiddebugsupport.h +++ b/src/plugins/android/androiddebugsupport.h @@ -53,7 +53,8 @@ public: Debugger::DebuggerRunControl *runControl); private slots: - void handleRemoteProcessStarted(int gdbServerPort = -1, int qmlPort = -1); + void handleRemoteServerRunning(const QByteArray &serverChannel, int pid); + void handleRemoteProcessStarted(int gdbServerPort, int qmlPort); void handleRemoteProcessFinished(const QString &errorMsg); void handleRemoteOutput(const QByteArray &output); diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 7b7d9633437..f820a738355 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -36,19 +36,27 @@ #include "androidmanager.h" #include +#include #include #include +#include namespace Android { namespace Internal { +typedef QLatin1String _; + AndroidRunner::AndroidRunner(QObject *parent, AndroidRunConfiguration *runConfig, bool debuggingMode) : QThread(parent) { + m_wasStarted = false; m_useCppDebugger = debuggingMode && runConfig->debuggerAspect()->useCppDebugger(); m_useQmlDebugger = debuggingMode && runConfig->debuggerAspect()->useQmlDebugger(); - m_remoteGdbChannel = runConfig->remoteChannel(); + QString channel = runConfig->remoteChannel(); + QTC_CHECK(channel.startsWith(QLatin1Char(':'))); + m_localGdbServerPort = channel.mid(1).toUShort(); + QTC_CHECK(m_localGdbServerPort); m_qmlPort = runConfig->debuggerAspect()->qmlDebugServerPort(); ProjectExplorer::Target *target = runConfig->target(); AndroidDeployStep *ds = runConfig->deployStep(); @@ -61,204 +69,258 @@ AndroidRunner::AndroidRunner(QObject *parent, AndroidRunConfiguration *runConfig m_packageName = m_intentName.left(m_intentName.indexOf(QLatin1Char('/'))); m_deviceSerialNumber = ds->deviceSerialNumber(); m_processPID = -1; - m_gdbserverPID = -1; - connect(&m_checkPIDTimer, SIGNAL(timeout()), SLOT(checkPID())); + m_adb = AndroidConfigurations::instance().adbToolPath().toString(); + m_selector = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber); + + QString packageDir = _("/data/data/") + m_packageName; + m_pingFile = packageDir + _("/debug-ping"); + m_pongFile = _("/data/local/tmp/qt/debug-pong-") + m_packageName; + m_gdbserverSocket = packageDir + _("/debug-socket"); + m_gdbserverPath = packageDir + _("/lib/gdbserver"); + m_gdbserverCommand = m_gdbserverPath + _(" --multi +") + m_gdbserverSocket; + + // Detect busybox, as we need to pass -w to ps to get wide output. + QProcess psProc; + psProc.start(m_adb, selector() << _("shell") << _("readlink") << _("$(which ps)")); + psProc.waitForFinished(); + QByteArray which = psProc.readAll(); + m_isBusyBox = which.startsWith("busybox"); + connect(&m_adbLogcatProcess, SIGNAL(readyReadStandardOutput()), SLOT(logcatReadStandardOutput())); - connect(&m_adbLogcatProcess, SIGNAL(readyReadStandardError()) , SLOT(logcatReadStandardError())); + connect(&m_adbLogcatProcess, SIGNAL(readyReadStandardError()), SLOT(logcatReadStandardError())); + connect(&m_checkPIDTimer, SIGNAL(timeout()), SLOT(checkPID())); } AndroidRunner::~AndroidRunner() { - stop(); + //stop(); +} + +static int extractPidFromChunk(const QByteArray &chunk, int from) +{ + int pos1 = chunk.indexOf(' ', from); + if (pos1 == -1) + return -1; + while (chunk[pos1] == ' ') + ++pos1; + int pos3 = chunk.indexOf(' ', pos1); + int pid = chunk.mid(pos1, pos3 - pos1).toInt(); + return pid; +} + +static int extractPid(const QString &exeName, const QByteArray &psOutput) +{ + const QByteArray needle = exeName.toUtf8() + '\r'; + const int to = psOutput.indexOf(needle); + if (to == -1) + return -1; + const int from = psOutput.lastIndexOf('\n', to); + if (from == -1) + return -1; + return extractPidFromChunk(psOutput, from); +} + +QByteArray AndroidRunner::runPs() +{ + QProcess psProc; + QStringList args = m_selector; + args << _("shell") << _("ps"); + if (m_isBusyBox) + args << _("-w"); + + psProc.start(m_adb, args); + psProc.waitForFinished(); + return psProc.readAll(); } void AndroidRunner::checkPID() { - QProcess psProc; - QLatin1String psCmd = QLatin1String("ps"); - QLatin1String psPidRx = QLatin1String("\\d+\\s+(\\d+)"); - - // Detect busybox, as we need to pass -w to it to get wide output. - psProc.start(AndroidConfigurations::instance().adbToolPath().toString(), - AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) - << QLatin1String("shell") << QLatin1String("readlink") << QLatin1String("$(which ps)")); - if (!psProc.waitForFinished(-1)) { - psProc.kill(); + if (!m_wasStarted) return; - } - QByteArray which = psProc.readAll(); - if (which.startsWith("busybox")) { - psCmd = QLatin1String("ps -w"); - psPidRx = QLatin1String("(\\d+)"); - } - - psProc.start(AndroidConfigurations::instance().adbToolPath().toString(), - AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) - << QLatin1String("shell") << psCmd); - if (!psProc.waitForFinished(-1)) { - psProc.kill(); - return; - } - QRegExp rx(psPidRx); - qint64 pid = -1; - QList procs = psProc.readAll().split('\n'); - foreach (const QByteArray &proc, procs) { - if (proc.trimmed().endsWith(m_packageName.toLatin1())) { - if (rx.indexIn(QLatin1String(proc)) > -1) { - pid = rx.cap(1).toLongLong(); - break; - } - } - } - - if (-1 != m_processPID && pid == -1) { - m_processPID = -1; + QByteArray psOut = runPs(); + m_processPID = extractPid(m_packageName, psOut); + if (m_processPID == -1) emit remoteProcessFinished(tr("\n\n'%1' died.").arg(m_packageName)); - return; - } - m_processPID = pid; +} - if (!m_useCppDebugger) - return; - m_gdbserverPID = -1; - foreach (const QByteArray &proc, procs) { - if (proc.trimmed().endsWith("gdbserver")) { - if (rx.indexIn(QLatin1String(proc)) > -1) { - m_gdbserverPID = rx.cap(1).toLongLong(); - break; - } - } - } +void AndroidRunner::forceStop() +{ + QProcess proc; + proc.start(m_adb, selector() << _("shell") << _("am") << _("force-stop")); + proc.waitForFinished(); } void AndroidRunner::killPID() { - checkPID(); //updates m_processPID and m_gdbserverPID - for (int tries = 0; tries < 10 && (m_processPID != -1 || m_gdbserverPID != -1); ++tries) { - if (m_processPID != -1) { - adbKill(m_processPID, m_deviceSerialNumber, 2000); - adbKill(m_processPID, m_deviceSerialNumber, 2000, m_packageName); + const QByteArray out = runPs(); + int from = 0; + while (1) { + const int to = out.indexOf('\n', from); + if (to == -1) + break; + QString line = QString::fromUtf8(out.data() + from, to - from - 1); + if (line.endsWith(m_packageName) || line.endsWith(m_gdbserverPath)) { + int pid = extractPidFromChunk(out, from); + adbKill(pid); } - - if (m_gdbserverPID != -1) { - adbKill(m_gdbserverPID, m_deviceSerialNumber, 2000); - adbKill(m_gdbserverPID, m_deviceSerialNumber, 2000, m_packageName); - } - checkPID(); + from = to + 1; } } void AndroidRunner::start() { - QtConcurrent::run(this,&AndroidRunner::asyncStart); + m_adbLogcatProcess.start(m_adb, selector() << _("logcat")); + m_wasStarted = false; + m_checkPIDTimer.start(1000); // check if the application is alive every 1 seconds + QtConcurrent::run(this, &AndroidRunner::asyncStart); } void AndroidRunner::asyncStart() { QMutexLocker locker(&m_mutex); - m_processPID = -1; - killPID(); // kill any process with this name - QString extraParams; - QProcess adbStarProc; + forceStop(); + killPID(); + if (m_useCppDebugger) { - QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber); - arguments << QLatin1String("forward") << QString::fromLatin1("tcp%1").arg(m_remoteGdbChannel) - << QString::fromLatin1("localfilesystem:/data/data/%1/debug-socket").arg(m_packageName); - adbStarProc.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments); - if (!adbStarProc.waitForStarted()) { - emit remoteProcessFinished(tr("Failed to forward C++ debugging ports. Reason: %1.").arg(adbStarProc.errorString())); + // Remove pong file. + QProcess adb; + adb.start(m_adb, selector() << _("shell") << _("rm") << m_pongFile); + adb.waitForFinished(); + } + + QStringList args = selector(); + args << _("shell") << _("am") << _("start") << _("-n") << m_intentName; + + if (m_useCppDebugger) { + QProcess adb; + adb.start(m_adb, selector() << _("forward") + << QString::fromLatin1("tcp:%1").arg(m_localGdbServerPort) + << _("localfilesystem:") + m_gdbserverSocket); + if (!adb.waitForStarted()) { + emit remoteProcessFinished(tr("Failed to forward C++ debugging ports. Reason: %1.").arg(adb.errorString())); return; } - if (!adbStarProc.waitForFinished(-1)) { + if (!adb.waitForFinished(-1)) { emit remoteProcessFinished(tr("Failed to forward C++ debugging ports.")); return; } - extraParams = QLatin1String("-e native_debug true -e gdbserver_socket +debug-socket"); + + args << _("-e") << _("debug_ping") << _("true"); + args << _("-e") << _("ping_file") << m_pingFile; + args << _("-e") << _("pong_file") << m_pongFile; + args << _("-e") << _("gdbserver_command") << m_gdbserverCommand; + args << _("-e") << _("gdbserver_socket") << m_gdbserverSocket; } if (m_useQmlDebugger) { - QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber); + // currently forward to same port on device and host QString port = QString::fromLatin1("tcp:%1").arg(m_qmlPort); - arguments << QLatin1String("forward") << port << port; // currently forward to same port on device and host - adbStarProc.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments); - if (!adbStarProc.waitForStarted()) { - emit remoteProcessFinished(tr("Failed to forward QML debugging ports. Reason: %1.").arg(adbStarProc.errorString())); + QProcess adb; + adb.start(m_adb, selector() << _("forward") << port << port); + if (!adb.waitForStarted()) { + emit remoteProcessFinished(tr("Failed to forward QML debugging ports. Reason: %1.").arg(adb.errorString())); return; } - if (!adbStarProc.waitForFinished(-1)) { + if (!adb.waitForFinished()) { emit remoteProcessFinished(tr("Failed to forward QML debugging ports.")); return; } - extraParams+=QString::fromLatin1(" -e qml_debug true -e qmljsdebugger port:%1") - .arg(m_qmlPort); + args << _("-e") << _("qml_debug") << _("true"); + args << _("-e") << _("qmljsdebugger") << QString::fromLatin1("port:%1").arg(m_qmlPort); } if (m_useLocalQtLibs) { - extraParams += QLatin1String(" -e use_local_qt_libs true"); - extraParams += QLatin1String(" -e libs_prefix /data/local/tmp/qt/"); - extraParams += QLatin1String(" -e load_local_libs ") + m_localLibs; - extraParams += QLatin1String(" -e load_local_jars ") + m_localJars; + args << _("-e") << _("use_local_qt_libs") << _("true"); + args << _("-e") << _("libs_prefix") << _("/data/local/tmp/qt/"); + args << _("-e") << _("load_local_libs") << m_localLibs; + args << _("-e") << _("load_local_jars") << m_localJars; if (!m_localJarsInitClasses.isEmpty()) - extraParams += QLatin1String(" -e static_init_classes ") + m_localJarsInitClasses; + args << _("-e") << _("static_init_classes") << m_localJarsInitClasses; } - extraParams = extraParams.trimmed(); - QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber); - arguments << QLatin1String("shell") << QLatin1String("am") - << QLatin1String("start") << QLatin1String("-n") << m_intentName; - - if (extraParams.length()) - arguments << extraParams.split(QLatin1Char(' ')); - - adbStarProc.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments); - if (!adbStarProc.waitForStarted()) { - emit remoteProcessFinished(tr("Failed to start the activity. Reason: %1.").arg(adbStarProc.errorString())); + QProcess adb; + adb.start(m_adb, args); + if (!adb.waitForStarted()) { + emit remoteProcessFinished(tr("Failed to start the activity. Reason: %1.").arg(adb.errorString())); return; } - if (!adbStarProc.waitForFinished(-1)) { - adbStarProc.terminate(); + if (!adb.waitForFinished(-1)) { + adb.terminate(); emit remoteProcessFinished(tr("Unable to start '%1'.").arg(m_packageName)); return; } - QTime startTime = QTime::currentTime(); - while (m_processPID == -1 && startTime.secsTo(QTime::currentTime()) < 10) { // wait up to 10 seconds for application to start - checkPID(); + + if (m_useCppDebugger || m_useQmlDebugger) { + + // Handling ping. + for (int i = 0; ; ++i) { + QTemporaryFile tmp(_("pingpong")); + tmp.open(); + tmp.close(); + + QProcess process; + process.start(m_adb, selector() << _("pull") << m_pingFile << tmp.fileName()); + process.waitForFinished(); + + QFile res(tmp.fileName()); + const bool doBreak = res.size(); + res.remove(); + if (doBreak) + break; + + if (i == 20) { + emit remoteProcessFinished(tr("Unable to start '%1'.").arg(m_packageName)); + return; + } + qDebug() << "WAITING FOR " << tmp.fileName(); + QThread::msleep(500); + } + } + + QByteArray psOut = runPs(); + m_processPID = extractPid(m_packageName, psOut); + if (m_processPID == -1) { - emit remoteProcessFinished(tr("Cannot find %1 process.").arg(m_packageName)); + emit remoteProcessFinished(tr("Unable to start '%1'.").arg(m_packageName)); return; } - if (m_useCppDebugger) { - startTime = QTime::currentTime(); - while (m_gdbserverPID == -1 && startTime.secsTo(QTime::currentTime()) < 25) { // wait up to 25 seconds to connect - checkPID(); - } - msleep(200); // give gdbserver more time to start + m_wasStarted = true; + if (m_useCppDebugger || m_useQmlDebugger) { + // This will be funneled to the engine to actually start and attach + // gdb. Afterwards this ends up in handleGdbRunning() below. + QByteArray serverChannel = ':' + QByteArray::number(m_localGdbServerPort); + emit remoteServerRunning(serverChannel, m_processPID); + } else { + // Start without debugging. + emit remoteProcessStarted(-1, -1); } - - QMetaObject::invokeMethod(this, "startLogcat", Qt::QueuedConnection); } -void AndroidRunner::startLogcat() +void AndroidRunner::handleGdbRunning() { - m_checkPIDTimer.start(1000); // check if the application is alive every 1 seconds - m_adbLogcatProcess.start(AndroidConfigurations::instance().adbToolPath().toString(), - AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) - << QLatin1String("logcat")); - emit remoteProcessStarted(5039); + QTemporaryFile tmp(_("pingpong")); + tmp.open(); + + QProcess process; + process.start(m_adb, selector() << _("push") << tmp.fileName() << m_pongFile); + process.waitForFinished(); + + QTC_CHECK(m_processPID != -1); + emit remoteProcessStarted(m_localGdbServerPort, -1); } void AndroidRunner::stop() { QMutexLocker locker(&m_mutex); m_checkPIDTimer.stop(); - if (m_processPID == -1) { - m_adbLogcatProcess.kill(); - return; // don't emit another signal + if (m_processPID != -1) { + killPID(); + emit remoteProcessFinished(tr("\n\n'%1' terminated.").arg(m_packageName)); } - killPID(); + //QObject::disconnect(&m_adbLogcatProcess, 0, this, 0); m_adbLogcatProcess.kill(); - m_adbLogcatProcess.waitForFinished(-1); + m_adbLogcatProcess.waitForFinished(); } void AndroidRunner::logcatReadStandardError() @@ -288,20 +350,21 @@ void AndroidRunner::logcatReadStandardOutput() m_logcat = line; } -void AndroidRunner::adbKill(qint64 pid, const QString &device, int timeout, const QString &runAsPackageName) +void AndroidRunner::adbKill(qint64 pid) { - QProcess process; - QStringList arguments = AndroidDeviceInfo::adbSelector(device); - - arguments << QLatin1String("shell"); - if (runAsPackageName.size()) - arguments << QLatin1String("run-as") << runAsPackageName; - arguments << QLatin1String("kill") << QLatin1String("-9"); - arguments << QString::number(pid); - - process.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments); - if (!process.waitForFinished(timeout)) - process.kill(); + { + QProcess process; + process.start(m_adb, selector() << _("shell") + << _("kill") << QLatin1String("-9") << QString::number(pid)); + process.waitForFinished(); + } + { + QProcess process; + process.start(m_adb, selector() << _("shell") + << _("run-as") << m_packageName + << _("kill") << QLatin1String("-9") << QString::number(pid)); + process.waitForFinished(); + } } QString AndroidRunner::displayName() const diff --git a/src/plugins/android/androidrunner.h b/src/plugins/android/androidrunner.h index 9bb654dd8b8..24e4f8ded74 100644 --- a/src/plugins/android/androidrunner.h +++ b/src/plugins/android/androidrunner.h @@ -56,9 +56,11 @@ public: public slots: void start(); void stop(); + void handleGdbRunning(); signals: - void remoteProcessStarted(int gdbServerPort = -1, int qmlPort = -1); + void remoteServerRunning(const QByteArray &serverChannel, int pid); + void remoteProcessStarted(int gdbServerPort, int qmlPort); void remoteProcessFinished(const QString &errString = QString()); void remoteOutput(const QByteArray &output); @@ -69,29 +71,41 @@ private slots: void checkPID(); void logcatReadStandardError(); void logcatReadStandardOutput(); - void startLogcat(); void asyncStart(); private: - void adbKill(qint64 pid, const QString &device, int timeout = 2000, const QString &runAsPackageName = QString()); + void adbKill(qint64 pid); + QStringList selector() const { return m_selector; } + void forceStop(); + QByteArray runPs(); + void findPs(); private: QProcess m_adbLogcatProcess; + QTimer m_checkPIDTimer; + bool m_wasStarted; + QByteArray m_logcat; QString m_intentName; QString m_packageName; QString m_deviceSerialNumber; qint64 m_processPID; - qint64 m_gdbserverPID; - QTimer m_checkPIDTimer; bool m_useCppDebugger; bool m_useQmlDebugger; - QString m_remoteGdbChannel; + ushort m_localGdbServerPort; // Local end of forwarded debug socket. uint m_qmlPort; bool m_useLocalQtLibs; + QString m_pingFile; + QString m_pongFile; + QString m_gdbserverPath; + QString m_gdbserverCommand; + QString m_gdbserverSocket; QString m_localLibs; QString m_localJars; QString m_localJarsInitClasses; + QString m_adb; + bool m_isBusyBox; + QStringList m_selector; QMutex m_mutex; }; diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index e962e949410..d5dea2905ec 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -879,6 +879,11 @@ void DebuggerEngine::notifyEngineRequestRemoteSetup() emit requestRemoteSetup(); } +void DebuggerEngine::notifyEngineRemoteServerRunning(const QByteArray &, int /*pid*/) +{ + showMessage(_("NOTE: REMOTE SERVER RUNNING IN MULTIMODE")); +} + void DebuggerEngine::notifyEngineRemoteSetupDone(int gdbServerPort, int qmlPort) { showMessage(_("NOTE: REMOTE SETUP DONE: GDB SERVER PORT: %1 QML PORT %2") diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h index 64ec1ef9e6a..85144158368 100644 --- a/src/plugins/debugger/debuggerengine.h +++ b/src/plugins/debugger/debuggerengine.h @@ -299,6 +299,7 @@ protected: virtual void notifyEngineRequestRemoteSetup(); public: + virtual void notifyEngineRemoteServerRunning(const QByteArray &, int pid); virtual void notifyEngineRemoteSetupDone(int gdbServerPort, int qmlPort); virtual void notifyEngineRemoteSetupFailed(const QString &message); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 9f561fc09e3..72311188975 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1267,6 +1267,7 @@ void GdbEngine::handleResultRecord(GdbResponse *response) bool GdbEngine::acceptsDebuggerCommands() const { + return true; return state() == InferiorStopOk || state() == InferiorUnrunnable; } @@ -3740,7 +3741,7 @@ void GdbEngine::handleThreadInfo(const GdbResponse &response) selectThread(other); } updateViews(); // Adjust Threads combobox. - if (m_hasInferiorThreadList && debuggerCore()->boolSetting(ShowThreadNames)) { + if (false && m_hasInferiorThreadList && debuggerCore()->boolSetting(ShowThreadNames)) { postCommand("threadnames " + debuggerCore()->action(MaximalStackDepth)->value().toByteArray(), Discardable, CB(handleThreadNames)); diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index a3780c8d207..70285fea1b6 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -60,6 +60,8 @@ namespace Internal { GdbRemoteServerEngine::GdbRemoteServerEngine(const DebuggerStartParameters &startParameters) : GdbEngine(startParameters) { + m_isMulti = false; + m_targetPid = -1; connect(&m_uploadProc, SIGNAL(error(QProcess::ProcessError)), SLOT(uploadProcError(QProcess::ProcessError))); connect(&m_uploadProc, SIGNAL(readyReadStandardOutput()), @@ -261,13 +263,8 @@ void GdbRemoteServerEngine::handleFileExecAndSymbols(const GdbResponse &response void GdbRemoteServerEngine::callTargetRemote() { - //m_breakHandler->clearBreakMarkers(); - - // "target remote" does three things: - // (1) connects to the gdb server - // (2) starts the remote application - // (3) stops the remote application (early, e.g. in the dynamic linker) - QByteArray channel = startParameters().remoteChannel.toLatin1(); + QByteArray rawChannel = startParameters().remoteChannel.toLatin1(); + QByteArray channel = rawChannel; // Don't touch channels with explicitly set protocols. if (!channel.startsWith("tcp:") && !channel.startsWith("udp:") @@ -283,14 +280,16 @@ void GdbRemoteServerEngine::callTargetRemote() if (m_isQnxGdb) postCommand("target qnx " + channel, CB(handleTargetQnx)); + else if (m_isMulti) + postCommand("target extended-remote " + m_serverChannel, CB(handleTargetExtendedRemote)); else - postCommand("target remote " + channel, CB(handleTargetRemote)); + postCommand("target remote " + channel, CB(handleTargetRemote), 10); } -void GdbRemoteServerEngine::handleTargetRemote(const GdbResponse &record) +void GdbRemoteServerEngine::handleTargetRemote(const GdbResponse &response) { QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state()); - if (record.resultClass == GdbResultDone) { + if (response.resultClass == GdbResultDone) { // gdb server will stop the remote application itself. showMessage(_("INFERIOR STARTED")); showMessage(msgAttachedToStoppedInferior(), StatusBar); @@ -303,11 +302,50 @@ void GdbRemoteServerEngine::handleTargetRemote(const GdbResponse &record) } else { // 16^error,msg="hd:5555: Connection timed out." QString msg = msgConnectRemoteServerFailed( - QString::fromLocal8Bit(record.data.findChild("msg").data())); + QString::fromLocal8Bit(response.data.findChild("msg").data())); notifyInferiorSetupFailed(msg); } } +void GdbRemoteServerEngine::handleTargetExtendedRemote(const GdbResponse &response) +{ + QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state()); + if (response.resultClass == GdbResultDone) { + // gdb server will stop the remote application itself. + showMessage(_("ATTACHED TO GDB SERVER STARTED")); + showMessage(msgAttachedToStoppedInferior(), StatusBar); + QString postAttachCommands = debuggerCore()->stringSetting(GdbPostAttachCommands); + if (!postAttachCommands.isEmpty()) { + foreach (const QString &cmd, postAttachCommands.split(QLatin1Char('\n'))) + postCommand(cmd.toLatin1()); + } + postCommand("attach " + QByteArray::number(m_targetPid), CB(handleTargetExtendedAttach)); + } else { + QString msg = msgConnectRemoteServerFailed( + QString::fromLocal8Bit(response.data.findChild("msg").data())); + notifyInferiorSetupFailed(msg); + } +} + +void GdbRemoteServerEngine::handleTargetExtendedAttach(const GdbResponse &response) +{ + QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state()); + if (response.resultClass == GdbResultDone) { + // gdb server will stop the remote application itself. + handleInferiorPrepared(); + } else { + QString msg = msgConnectRemoteServerFailed( + QString::fromLocal8Bit(response.data.findChild("msg").data())); + notifyInferiorSetupFailed(msg); + } +} + +void GdbRemoteServerEngine::notifyInferiorSetupOk() +{ + emit aboutToNotifyInferiorSetupOk(); + GdbEngine::notifyInferiorSetupOk(); +} + void GdbRemoteServerEngine::handleTargetQnx(const GdbResponse &response) { QTC_ASSERT(m_isQnxGdb, qDebug() << m_isQnxGdb); @@ -417,22 +455,36 @@ void GdbRemoteServerEngine::shutdownEngine() notifyAdapterShutdownOk(); } +void GdbRemoteServerEngine::notifyEngineRemoteServerRunning + (const QByteArray &serverChannel, int inferiorPid) +{ + showMessage(_("NOTE: REMOTE SERVER RUNNING IN MULTIMODE")); + m_isMulti = true; + m_targetPid = inferiorPid; + m_serverChannel = serverChannel; + startGdb(); +} + void GdbRemoteServerEngine::notifyEngineRemoteSetupDone(int gdbServerPort, int qmlPort) { QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); DebuggerEngine::notifyEngineRemoteSetupDone(gdbServerPort, qmlPort); - if (qmlPort != -1) - startParameters().qmlServerPort = qmlPort; - if (gdbServerPort != -1) { - QString &rc = startParameters().remoteChannel; - const int sepIndex = rc.lastIndexOf(QLatin1Char(':')); - if (sepIndex != -1) { - rc.replace(sepIndex + 1, rc.count() - sepIndex - 1, - QString::number(gdbServerPort)); + if (m_isMulti) { + // Has been done in notifyEngineRemoteServerRunning + } else { + if (qmlPort != -1) + startParameters().qmlServerPort = qmlPort; + if (gdbServerPort != -1) { + QString &rc = startParameters().remoteChannel; + const int sepIndex = rc.lastIndexOf(QLatin1Char(':')); + if (sepIndex != -1) { + rc.replace(sepIndex + 1, rc.count() - sepIndex - 1, + QString::number(gdbServerPort)); + } } + startGdb(); } - startGdb(); } void GdbRemoteServerEngine::notifyEngineRemoteSetupFailed(const QString &reason) diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.h b/src/plugins/debugger/gdb/remotegdbserveradapter.h index d0d4094028c..769c440dc89 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.h +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.h @@ -70,20 +70,25 @@ signals: * a server start script should be used, but none is given. */ void requestSetup(); + void aboutToNotifyInferiorSetupOk(); private: Q_SLOT void readUploadStandardOutput(); Q_SLOT void readUploadStandardError(); Q_SLOT void uploadProcError(QProcess::ProcessError error); Q_SLOT void uploadProcFinished(); + Q_SLOT void callTargetRemote(); - virtual void notifyEngineRemoteSetupDone(int gdbServerPort, int qmlPort); - virtual void notifyEngineRemoteSetupFailed(const QString &reason); + void notifyEngineRemoteSetupDone(int gdbServerPort, int qmlPort); + void notifyEngineRemoteSetupFailed(const QString &reason); + void notifyEngineRemoteServerRunning(const QByteArray &serverChannel, int inferiorPid); + void notifyInferiorSetupOk(); void handleSetTargetAsync(const GdbResponse &response); void handleFileExecAndSymbols(const GdbResponse &response); - void callTargetRemote(); void handleTargetRemote(const GdbResponse &response); + void handleTargetExtendedRemote(const GdbResponse &response); + void handleTargetExtendedAttach(const GdbResponse &response); void handleTargetQnx(const GdbResponse &response); void handleAttach(const GdbResponse &response); void handleInterruptInferior(const GdbResponse &response); @@ -91,6 +96,9 @@ private: QProcess m_uploadProc; LocalGdbProcess m_gdbProc; + bool m_isMulti; + int m_targetPid; + QByteArray m_serverChannel; }; } // namespace Internal From 7107fd15913fc81568e77e173bbb098e19fe148f Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 21 Mar 2013 18:46:12 +0100 Subject: [PATCH 47/48] Debugger: Pass output from plain gdb pretty printers hex-encoded This takes care of "unusual" contents. Change-Id: I5e9ce2066281d169e88a58e85e6d4dd590760e2a Reviewed-by: Eike Ziller Reviewed-by: hjk --- share/qtcreator/dumper/dumper.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py index 25c09a34f6a..f0b03c10d5d 100644 --- a/share/qtcreator/dumper/dumper.py +++ b/share/qtcreator/dumper/dumper.py @@ -1979,6 +1979,8 @@ class PlainDumper: lister = getattr(printer, "children", None) children = [] if lister is None else list(lister()) d.putType(self.printer.name) + val = printer.to_string().encode("hex") + d.putValue(val, Hex2EncodedLatin1) d.putValue(printer.to_string()) d.putNumChild(len(children)) if d.isExpanded(): From bb13b8d65e8a0748750ba03a04e411c1474cfe91 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 8 Apr 2013 12:25:22 +0200 Subject: [PATCH 48/48] QmlDesigner: Fix memory leak because of template magic Be careful if you use a private smart pointer. Change-Id: Ia78583b080c8d936d98517c55d3294d3040f8cdb Reviewed-by: Thomas Hartmann --- .../components/formeditor/resizecontroller.cpp | 15 +++++++++++++++ .../components/formeditor/resizecontroller.h | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp b/src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp index 34b0018ef40..36b526f8579 100644 --- a/src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp +++ b/src/plugins/qmldesigner/components/formeditor/resizecontroller.cpp @@ -152,6 +152,21 @@ ResizeController::ResizeController(LayerItem *layerItem, FormEditorItem *formEdi updatePosition(); } +ResizeController::ResizeController(const ResizeController &other) + : m_data(other.m_data) +{ + +} + +ResizeController::~ResizeController() +{ +} + +ResizeController &ResizeController::operator =(const ResizeController &other) +{ + m_data = other.m_data; +} + bool ResizeController::isValid() const { diff --git a/src/plugins/qmldesigner/components/formeditor/resizecontroller.h b/src/plugins/qmldesigner/components/formeditor/resizecontroller.h index d81ea62bd94..d0d53bef5f3 100644 --- a/src/plugins/qmldesigner/components/formeditor/resizecontroller.h +++ b/src/plugins/qmldesigner/components/formeditor/resizecontroller.h @@ -49,6 +49,10 @@ public: ResizeController(); ResizeController(LayerItem *layerItem, FormEditorItem *formEditorItem); + ResizeController(const ResizeController &resizeController); + ~ResizeController(); + + ResizeController& operator=(const ResizeController &other); void show(); void hide();