summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dist/changes-2.0.016
-rw-r--r--share/qtcreator/translations/qtcreator_de.ts974
-rw-r--r--src/libs/qmljs/qmljsdocument.cpp10
-rw-r--r--src/libs/utils/pathchooser.cpp4
-rw-r--r--src/libs/utils/pathlisteditor.cpp2
-rw-r--r--src/plugins/bookmarks/bookmarksplugin.cpp4
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp2
-rw-r--r--src/plugins/coreplugin/coreconstants.h1
-rw-r--r--src/plugins/coreplugin/dialogs/settingsdialog.cpp1
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp16
-rw-r--r--src/plugins/coreplugin/generalsettings.ui6
-rw-r--r--src/plugins/cpaster/fileshareprotocolsettingspage.cpp5
-rw-r--r--src/plugins/cpaster/pastebindotcomsettings.ui7
-rw-r--r--src/plugins/cpaster/pasteview.ui2
-rw-r--r--src/plugins/cpaster/settingspage.ui4
-rw-r--r--src/plugins/cppeditor/cppplugin.cpp2
-rw-r--r--src/plugins/cppeditor/cppquickfix.cpp27
-rw-r--r--src/plugins/cpptools/completionsettingspage.ui2
-rw-r--r--src/plugins/cpptools/cppfilesettingspage.cpp2
-rw-r--r--src/plugins/cvs/checkoutwizard.cpp2
-rw-r--r--src/plugins/cvs/settingspage.ui2
-rw-r--r--src/plugins/debugger/attachexternaldialog.ui2
-rw-r--r--src/plugins/debugger/cdb/cdboptionspagewidget.ui6
-rw-r--r--src/plugins/debugger/commonoptionspage.ui4
-rw-r--r--src/plugins/debugger/dumperoptionpage.ui2
-rw-r--r--src/plugins/debugger/gdb/gdboptionspage.ui2
-rw-r--r--src/plugins/designer/cpp/cppsettingspagewidget.ui2
-rw-r--r--src/plugins/designer/formeditorw.cpp8
-rw-r--r--src/plugins/fakevim/fakevimactions.cpp2
-rw-r--r--src/plugins/fakevim/fakevimoptions.ui6
-rw-r--r--src/plugins/genericprojectmanager/genericprojectmanager.cpp20
-rw-r--r--src/plugins/genericprojectmanager/genericprojectmanager.h2
-rw-r--r--src/plugins/git/branchdialog.ui2
-rw-r--r--src/plugins/git/changeselectiondialog.cpp4
-rw-r--r--src/plugins/git/changeselectiondialog.ui2
-rw-r--r--src/plugins/git/clonewizard.cpp2
-rw-r--r--src/plugins/git/gitclient.cpp2
-rw-r--r--src/plugins/git/gitorious/gitoriousclonewizard.cpp2
-rw-r--r--src/plugins/git/gitplugin.cpp2
-rw-r--r--src/plugins/git/settingspage.ui4
-rw-r--r--src/plugins/help/generalsettingspage.cpp2
-rw-r--r--src/plugins/help/generalsettingspage.ui12
-rw-r--r--src/plugins/locator/directoryfilter.cpp4
-rw-r--r--src/plugins/locator/directoryfilter.ui2
-rw-r--r--src/plugins/locator/settingspage.cpp2
-rw-r--r--src/plugins/mercurial/optionspage.ui2
-rw-r--r--src/plugins/perforce/settingspage.ui2
-rw-r--r--src/plugins/projectexplorer/buildsettingspropertiespage.cpp4
-rw-r--r--src/plugins/projectexplorer/buildstepspage.cpp2
-rw-r--r--src/plugins/projectexplorer/processstep.ui6
-rw-r--r--src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp2
-rw-r--r--src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp2
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp22
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h4
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp15
-rw-r--r--src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h5
-rw-r--r--src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp8
-rw-r--r--src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp16
-rw-r--r--src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp13
-rw-r--r--src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp3
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/exception.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp11
-rw-r--r--src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h44
-rw-r--r--src/plugins/qmldesigner/designercore/include/metainfo.h20
-rw-r--r--src/plugins/qmldesigner/designercore/include/metainfoparser.h1
-rw-r--r--src/plugins/qmldesigner/designercore/include/nodemetainfo.h17
-rw-r--r--src/plugins/qmldesigner/designercore/include/rewriterview.h1
-rw-r--r--src/plugins/qmldesigner/designercore/include/rewritingexception.h6
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp1
-rw-r--r--src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp14
-rw-r--r--src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/instances/qmlpropertychangesnodeinstance.cpp22
-rw-r--r--src/plugins/qmldesigner/designercore/instances/qmlstatenodeinstance.cpp3
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp129
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp185
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp26
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp157
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp17
-rw-r--r--src/plugins/qmldesigner/designercore/model/model.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp37
-rw-r--r--src/plugins/qmldesigner/designercore/model/rewriterview.cpp12
-rw-r--r--src/plugins/qmldesigner/fxplugin/fx.metainfo1
-rw-r--r--src/plugins/qt4projectmanager/qmakestep.ui6
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.cpp4
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.ui10
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.ui4
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp8
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp4
-rw-r--r--src/plugins/qt4projectmanager/qt4projectconfigwidget.ui12
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanager.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanager.h2
-rw-r--r--src/plugins/qt4projectmanager/qt4runconfiguration.cpp6
-rw-r--r--src/plugins/qt4projectmanager/wizards/targetsetuppage.ui2
-rw-r--r--src/plugins/subversion/checkoutwizard.cpp2
-rw-r--r--src/plugins/subversion/settingspage.ui2
-rw-r--r--src/plugins/texteditor/basefilefind.cpp2
-rw-r--r--src/plugins/texteditor/basetexteditor.cpp26
-rw-r--r--src/plugins/texteditor/behaviorsettingspage.ui2
-rw-r--r--src/plugins/texteditor/fontsettingspage.cpp2
-rw-r--r--src/plugins/vcsbase/cleandialog.ui2
-rw-r--r--src/plugins/vcsbase/vcsbaseplugin.cpp2
-rw-r--r--tests/auto/qml/qmldesigner/coretests/testcore.cpp183
-rw-r--r--tests/auto/qml/qmldesigner/coretests/testcore.h6
106 files changed, 1197 insertions, 1103 deletions
diff --git a/dist/changes-2.0.0 b/dist/changes-2.0.0
index 81e4b82667..1a9ab1cbbc 100644
--- a/dist/changes-2.0.0
+++ b/dist/changes-2.0.0
@@ -57,9 +57,21 @@ Project support
directory
Debugging
- * CDB: Fixed bug in location marker
- * CDB: Fixed handling of mixed-case file names correctly by normalizing file
+ * Add on-device debugging for the Symbian platform using gdb
+ * Add on-device debugging for the Maemo platform using gdb
+ * gdb: Replace compiled "debugging helpers" by Python based ones
+ (except on Mac)
+ * New debugging helpers for QUrl, QAtomicInt, __gnu_ext::hash_map and more
+ * Additional features for breakpoint, disassembler output, stack,
+ registers and watchers views
+ * Improve variable tooltip handling
+ * gdb: Support reverse execution where available
+ * gdb: Added mixed disassembler/source output whenever possible
+ * cdb: Fixed bug in location marker
+ * cdb: Fixed handling of mixed-case file names correctly by normalizing file
names
+ * pdb: Added some basic debugging for Python scripts based on pdb
+ * Improvements in the dialogs, status messages, and general appearance
Help
diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index 10e85dfe24..046c1c1a30 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -51,7 +51,7 @@
</message>
<message>
<location/>
- <source>Attach to Process ID:</source>
+ <source>Attach to process ID:</source>
<translation>Prozess-Id:</translation>
</message>
</context>
@@ -96,7 +96,7 @@
<translation>Neuer Ordner</translation>
</message>
<message>
- <location filename="../../../src/shared/help/bookmarkmanager.cpp" line="+175"/>
+ <location filename="../../../src/shared/help/bookmarkmanager.cpp" line="+178"/>
<location line="+18"/>
<location line="+39"/>
<location line="+18"/>
@@ -118,7 +118,7 @@
<context>
<name>BookmarkManager</name>
<message>
- <location line="+424"/>
+ <location line="+432"/>
<source>Bookmarks</source>
<translation>Lesezeichen</translation>
</message>
@@ -142,7 +142,7 @@
<context>
<name>BookmarkWidget</name>
<message>
- <location line="-420"/>
+ <location line="-428"/>
<source>Delete Folder</source>
<translation>Ordner löschen</translation>
</message>
@@ -172,12 +172,7 @@
<translation>Lesezeichen umbenennen</translation>
</message>
<message>
- <location line="+38"/>
- <source>Filter:</source>
- <translation>Filter:</translation>
- </message>
- <message>
- <location line="+26"/>
+ <location line="+72"/>
<source>Add</source>
<translation>HinzufĂĽgen</translation>
</message>
@@ -271,12 +266,12 @@
</message>
<message>
<location line="+10"/>
- <source>Previous Bookmark In Document</source>
+ <source>Previous Bookmark in Document</source>
<translation>Vorhergehendes Lesezeichen im Dokument</translation>
</message>
<message>
<location line="+5"/>
- <source>Next Bookmark In Document</source>
+ <source>Next Bookmark in Document</source>
<translation>Nächstes Lesezeichen im Dokument</translation>
</message>
</context>
@@ -349,7 +344,7 @@
</message>
<message>
<location line="+5"/>
- <source>Select the working directory</source>
+ <source>Select Working Directory</source>
<translation>Wählen Sie das Arbeitsverzeichnis aus</translation>
</message>
<message>
@@ -863,9 +858,13 @@
<context>
<name>CVS::Internal::CheckoutWizard</name>
<message>
+ <source>Checks out a project from a CVS repository and tries to load the contained project.</source>
+ <translation type="obsolete">Holt ein Projekt aus einem CVS-Repository und versucht, das darin enthaltene Projekt zu laden.</translation>
+ </message>
+ <message>
<location filename="../../../src/plugins/cvs/checkoutwizard.cpp" line="+56"/>
- <source>Checks out a project from a CVS repository.</source>
- <translation>Holt ein Projekt aus einem CVS-Repository.</translation>
+ <source>Checks out a CVS repository and tries to load the contained project.</source>
+ <translation>Erstellt einen Checkout eines CVS-Repositories und versucht, das darin enthaltene Projekt zu laden.</translation>
</message>
<message>
<location line="+5"/>
@@ -894,11 +893,6 @@
<context>
<name>CVS::Internal::SettingsPage</name>
<message>
- <location filename="../../../src/plugins/cvs/settingspage.ui"/>
- <source>When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit id). Otherwise, only the respective file will be displayed.</source>
- <translation>Wenn die Option aktiviert ist, werden beim Klick auf die Revisionsnummer in der Annotationsansicht alle Dateien angezeigt, die zu einer Abgabe gehören (mittels Commit-Id bestimmt). Ansonsten wird nur die betreffende Datei angezeigt.</translation>
- </message>
- <message>
<location filename="../../../src/plugins/cvs/settingspage.cpp" line="+98"/>
<source>CVS</source>
<translation>CVS</translation>
@@ -948,6 +942,11 @@
<source>Diff options:</source>
<translation>Optionen fĂĽr Diff:</translation>
</message>
+ <message>
+ <location/>
+ <source>When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit ID). Otherwise, only the respective file will be displayed.</source>
+ <translation>Wenn die Option aktiviert ist, werden beim Klick auf die Revisionsnummer in der Annotationsansicht alle Dateien angezeigt, die zu einer Abgabe gehören (mittels Commit-Id bestimmt). Ansonsten wird nur die betreffende Datei angezeigt.</translation>
+ </message>
</context>
<context>
<name>CVS::Internal::SettingsPageWidget</name>
@@ -974,12 +973,6 @@
</message>
<message>
<location/>
- <source>Cdb</source>
- <extracomment>Placeholder</extracomment>
- <translation>Cdb</translation>
- </message>
- <message>
- <location/>
<source>Debugger Paths</source>
<translation>Debugger-Pfade</translation>
</message>
@@ -1016,12 +1009,18 @@
</message>
<message>
<location filename="../../../src/plugins/debugger/cdb/cdboptionspagewidget.ui"/>
- <source>Other options</source>
- <translation>Weiter Optionen:</translation>
+ <source>CDB</source>
+ <extracomment>Placeholder</extracomment>
+ <translation>CDB</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Other Options</source>
+ <translation>Weiter Optionen</translation>
</message>
<message>
<location/>
- <source>Verbose Symbol Loading</source>
+ <source>Verbose symbol loading</source>
<translation>AusfĂĽhrliche Meldungen beim Laden der Symbole</translation>
</message>
</context>
@@ -1047,11 +1046,6 @@
<name>ChangeSelectionDialog</name>
<message>
<location filename="../../../src/plugins/git/changeselectiondialog.ui"/>
- <source>Repository Location:</source>
- <translation>Repository:</translation>
- </message>
- <message>
- <location/>
<source>Select</source>
<translation>Auswählen</translation>
</message>
@@ -1060,6 +1054,11 @@
<source>Change:</source>
<translation>Ă„nderung:</translation>
</message>
+ <message>
+ <location/>
+ <source>Repository location:</source>
+ <translation>Repository:</translation>
+ </message>
</context>
<context>
<name>CodePaster::CodePasterProtocol</name>
@@ -1171,16 +1170,6 @@
<translation>Nutzername:</translation>
</message>
<message>
- <location/>
- <source>Copy Paste URL to clipboard</source>
- <translation>Kopiere den URL in die Zwischenablage</translation>
- </message>
- <message>
- <location/>
- <source>Display Output Pane after sending a post</source>
- <translation>Ausgabepanel nach Senden anzeigen</translation>
- </message>
- <message>
<location filename="../../../src/plugins/cpaster/settingspage.cpp" line="+94"/>
<source>General</source>
<translation>Allgemein</translation>
@@ -1190,6 +1179,16 @@
<source>Default protocol:</source>
<translation>Vorgabeprotokoll:</translation>
</message>
+ <message>
+ <location/>
+ <source>Display Output pane after sending a post</source>
+ <translation>Ausgabepanel nach Senden anzeigen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Copy-paste URL to clipboard</source>
+ <translation>Kopiere den URL in die Zwischenablage</translation>
+ </message>
</context>
<context>
<name>CommonOptionsPage</name>
@@ -1245,13 +1244,13 @@
</message>
<message>
<location/>
- <source>Use Creator for post-mortem debugging</source>
- <translation>Qt Creator als Post-Mortem-Debugger verwenden</translation>
+ <source>GUI Behavior</source>
+ <translation>Verhalten</translation>
</message>
<message>
<location/>
- <source>Gui behavior</source>
- <translation>Verhalten</translation>
+ <source>Use Qt Creator for post-mortem debugging</source>
+ <translation>Qt Creator als Post-Mortem-Debugger verwenden</translation>
</message>
</context>
<context>
@@ -1298,19 +1297,19 @@
</message>
<message>
<location/>
- <source>First letter</source>
- <translation>Erster Buchstabe</translation>
+ <source>Insert &amp;space after function name</source>
+ <translation>Leerzeichen nach &amp;Funktionsname einfĂĽgen</translation>
</message>
<message>
<location/>
- <source>Insert &amp;space after function name</source>
- <translation>Leerzeichen nach &amp;Funktionsname einfĂĽgen</translation>
+ <source>First Letter</source>
+ <translation>Erster Buchstabe</translation>
</message>
</context>
<context>
<name>ContentWindow</name>
<message>
- <location filename="../../../src/shared/help/contentwindow.cpp" line="+136"/>
+ <location filename="../../../src/shared/help/contentwindow.cpp" line="+138"/>
<source>Open Link</source>
<translation>Adresse öffnen</translation>
</message>
@@ -1391,30 +1390,31 @@ Sollen sie ĂĽberschrieben werden?</translation>
<context>
<name>Core::EditorManager</name>
<message>
- <location filename="../../../src/plugins/coreplugin/editormanager/editormanager.cpp" line="+225"/>
- <location line="+1540"/>
+ <location filename="../../../src/plugins/coreplugin/editormanager/editormanager.cpp" line="+226"/>
+ <location line="+1547"/>
<source>Revert to Saved</source>
<translation>Wiederherstellen</translation>
</message>
<message>
- <location line="-1537"/>
+ <location line="-1544"/>
+ <location line="+97"/>
<location filename="../../../src/plugins/coreplugin/editortoolbar.cpp" line="+302"/>
<source>Close</source>
<translation>SchlieĂźen</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="-96"/>
<source>Close All</source>
<translation>Alle schlieĂźen</translation>
</message>
<message>
<location line="+1"/>
- <location line="+1336"/>
+ <location line="+1343"/>
<source>Close Others</source>
<translation>Andere schlieĂźen</translation>
</message>
<message>
- <location line="-1331"/>
+ <location line="-1338"/>
<source>Open in External Editor</source>
<translation>Ă–ffne in externem Editor</translation>
</message>
@@ -1424,17 +1424,17 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>Gespeicherten Stand wiederherstellen</translation>
</message>
<message>
- <location line="+29"/>
+ <location line="+38"/>
<source>Ctrl+F4</source>
<translation>Ctrl+F4</translation>
</message>
<message>
- <location line="+2"/>
+ <location line="-10"/>
<source>Ctrl+W</source>
<translation>Ctrl+W</translation>
</message>
<message>
- <location line="+9"/>
+ <location line="+17"/>
<source>Ctrl+Shift+W</source>
<translation>Ctrl+Shift+W</translation>
</message>
@@ -1509,12 +1509,12 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>Alle Teilungen aufheben</translation>
</message>
<message>
- <location line="+1158"/>
+ <location line="+1160"/>
<source>Save %1 &amp;As...</source>
<translation>Speichere &apos;%1&apos; &amp;unter...</translation>
</message>
<message>
- <location line="-1143"/>
+ <location line="-1145"/>
<source>&amp;Advanced</source>
<translation>&amp;Weitere</translation>
</message>
@@ -1524,7 +1524,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>Alt+V,Alt+I</translation>
</message>
<message>
- <location line="+748"/>
+ <location line="+750"/>
<source>All Files (*)</source>
<translation>Alle Dateien (*)</translation>
</message>
@@ -1587,7 +1587,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>Schreibbar machen</translation>
</message>
<message>
- <location line="-1308"/>
+ <location line="-1315"/>
<source>Next Open Document in History</source>
<translation>Nächstes geöffnetes Dokument im Verlauf</translation>
</message>
@@ -1609,7 +1609,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>Nächstes</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+155"/>
<source>%1,2</source>
<translation>%1,2</translation>
</message>
@@ -1639,7 +1639,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>%1,o</translation>
</message>
<message>
- <location line="+1151"/>
+ <location line="+1153"/>
<source>&amp;Save %1</source>
<translation>&amp;Speichere %1</translation>
</message>
@@ -1715,7 +1715,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
<context>
<name>Core::Internal::ComboBox</name>
<message>
- <location filename="../../../src/plugins/coreplugin/sidebar.cpp" line="+464"/>
+ <location filename="../../../src/plugins/coreplugin/sidebar.cpp" line="+475"/>
<source>Activate %1</source>
<translation>Aktiviere %1</translation>
</message>
@@ -1874,16 +1874,6 @@ Sollen sie ĂĽberschrieben werden?</translation>
</message>
<message>
<location/>
- <source>Always ask</source>
- <translation>Stets fragen</translation>
- </message>
- <message>
- <location/>
- <source>Ignore modifications</source>
- <translation>Ă„nderungen ignorieren</translation>
- </message>
- <message>
- <location/>
<source>External file browser:</source>
<translation>Externer Datei-Browser:</translation>
</message>
@@ -1909,13 +1899,23 @@ Sollen sie ĂĽberschrieben werden?</translation>
</message>
<message>
<location/>
- <source>Reload all unchanged editors</source>
+ <source>Default file encoding: </source>
+ <translation>Vorgabe-Encoding:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Always Ask</source>
+ <translation>Stets fragen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Reload All Unchanged Editors</source>
<translation>Alle Dateien in ungeänderten Editoren neu laden</translation>
</message>
<message>
<location/>
- <source>Default file encoding: </source>
- <translation>Vorgabe-Encoding:</translation>
+ <source>Ignore Modifications</source>
+ <translation>Ă„nderungen ignorieren</translation>
</message>
</context>
<context>
@@ -2402,7 +2402,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
<context>
<name>Core::Internal::SideBarWidget</name>
<message>
- <location filename="../../../src/plugins/coreplugin/sidebar.cpp" line="-145"/>
+ <location filename="../../../src/plugins/coreplugin/sidebar.cpp" line="-147"/>
<source>Split</source>
<translation>Teilen</translation>
</message>
@@ -2420,24 +2420,25 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>Ăśber Qt Creator</translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+9"/>
+ <source>(%1)</source>
+ <translation>(%1)</translation>
+ </message>
+ <message>
+ <location line="+6"/>
<source>From revision %1&lt;br/&gt;</source>
<extracomment>This gets conditionally inserted as argument %8 into the description string.</extracomment>
<translation>Revision %1&lt;br/&gt;</translation>
</message>
<message>
<location line="+3"/>
- <source>&lt;h3&gt;Qt Creator %1&lt;/h3&gt;Based on Qt %2 (%3 bit)&lt;br/&gt;&lt;br/&gt;Built on %4 at %5&lt;br /&gt;&lt;br/&gt;%8&lt;br/&gt;Copyright 2008-%6 %7. All rights reserved.&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;</source>
+ <source>&lt;h3&gt;Qt Creator %1 %8&lt;/h3&gt;Based on Qt %2 (%3 bit)&lt;br/&gt;&lt;br/&gt;Built on %4 at %5&lt;br /&gt;&lt;br/&gt;%9&lt;br/&gt;Copyright 2008-%6 %7. All rights reserved.&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;</source>
<translation>&lt;h3&gt;Qt Creator %1&lt;/h3&gt;Basierend auf Qt %2 (%3 bit)&lt;br/&gt;&lt;br/&gt;Erstellt am %4 um %5&lt;br /&gt;&lt;br/&gt;%8&lt;br/&gt;Copyright 2008-%6 %7. Alle Rechte vorbehalten.&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;</translation>
</message>
</context>
<context>
<name>Core::ModeManager</name>
<message>
- <source>Switch to %1 mode</source>
- <translation type="obsolete">Gehe zu Mode &apos;%1&apos;</translation>
- </message>
- <message>
<location filename="../../../src/plugins/coreplugin/modemanager.cpp" line="+180"/>
<source>Switch to &lt;b&gt;%1&lt;/b&gt; mode</source>
<translation>Gehe zu Mode &lt;b&gt;&apos;%1&apos;&lt;/b&gt;</translation>
@@ -2545,14 +2546,14 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>C++ Header-Datei</translation>
</message>
<message>
- <location line="-1"/>
- <source>Creates a C++ header file.</source>
- <translation>Erzeugt eine neue C++-Header-Datei.</translation>
+ <location line="-10"/>
+ <source>Creates a C++ header and a source file for a new class that you can add to a C++ project.</source>
+ <translation>Erstellt C++-Header- und Quelldateien fĂĽr eine neue Klasse eines C++-Projekts.</translation>
</message>
<message>
- <location line="-5"/>
- <source>Creates a C++ source file.</source>
- <translation>Erzeugt eine neue C++-Quelldatei</translation>
+ <location line="+4"/>
+ <source>Creates a C++ source file that you can add to a C++ project.</source>
+ <translation>Erstellt eine C++-Quelldatei fĂĽr ein C++-Projekt.</translation>
</message>
<message>
<location line="+1"/>
@@ -2560,7 +2561,12 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>C++-Quelldatei</translation>
</message>
<message>
- <location line="+18"/>
+ <location line="+4"/>
+ <source>Creates a C++ header file that you can add to a C++ project.</source>
+ <translation>Erstellt eine C++-Header-Datei fĂĽr ein C++-Projekt.</translation>
+ </message>
+ <message>
+ <location line="+14"/>
<source>Follow Symbol Under Cursor</source>
<translation>Symbol unter EinfĂĽgemarke verfolgen</translation>
</message>
@@ -2575,17 +2581,17 @@ Sollen sie ĂĽberschrieben werden?</translation>
<translation>Symbol unter EinfĂĽgemarke umbenennen</translation>
</message>
<message>
- <location line="-51"/>
- <source>C++ Class</source>
- <translation>C++-Klasse</translation>
+ <location line="+12"/>
+ <source>Update Code Model</source>
+ <translation>Code-Modell aktualisieren</translation>
</message>
<message>
- <location line="+3"/>
- <source>Creates a header and a source file for a new class.</source>
- <translation>Erzeugt C++-Header- und Quelldatei fĂĽr eine neue Klasse</translation>
+ <location line="-63"/>
+ <source>C++ Class</source>
+ <translation>C++-Klasse</translation>
</message>
<message>
- <location line="+41"/>
+ <location line="+44"/>
<source>Find Usages</source>
<translation>Verwendung suchen</translation>
</message>
@@ -2594,11 +2600,6 @@ Sollen sie ĂĽberschrieben werden?</translation>
<source>Ctrl+Shift+U</source>
<translation>Ctrl+Shift+U</translation>
</message>
- <message>
- <location line="+17"/>
- <source>Update code model</source>
- <translation>Code-Modell aktualisieren</translation>
- </message>
</context>
<context>
<name>CppFileSettingsPage</name>
@@ -2694,7 +2695,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
</message>
<message>
<location line="+62"/>
- <source>Choose a location for the new license template file</source>
+ <source>Choose Location for New License Template File</source>
<translation>Dateiname fĂĽr eine neue Lizenzvorlage</translation>
</message>
<message>
@@ -2749,7 +2750,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
<context>
<name>CppTools::Internal::CppToolsPlugin</name>
<message>
- <location filename="../../../src/plugins/cpptools/cpptoolsplugin.cpp" line="+128"/>
+ <location filename="../../../src/plugins/cpptools/cpptoolsplugin.cpp" line="+129"/>
<source>&amp;C++</source>
<translation>&amp;C++</translation>
</message>
@@ -2762,7 +2763,7 @@ Sollen sie ĂĽberschrieben werden?</translation>
<context>
<name>CppTools::Internal::FunctionArgumentWidget</name>
<message>
- <location filename="../../../src/plugins/cpptools/cppcodecompletion.cpp" line="+412"/>
+ <location filename="../../../src/plugins/cpptools/cppcodecompletion.cpp" line="+413"/>
<source>%1 of %2</source>
<translation>%1 von %2</translation>
</message>
@@ -5336,11 +5337,6 @@ Möchten Sie den zu debuggenden Prozess anhalten und den gewählten Snapshot lad
</message>
<message>
<location/>
- <source>Use debugging helper</source>
- <translation>Ausgabe-Hilfsbibliothek benutzen</translation>
- </message>
- <message>
- <location/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
&lt;p&gt;The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &amp;quot;Locals and Watchers&amp;quot; view.&lt;/p&gt;
&lt;p&gt; It is not strictly necessary for debugging with Qt Creator. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
@@ -5348,6 +5344,11 @@ Möchten Sie den zu debuggenden Prozess anhalten und den gewählten Snapshot lad
Die Ausgabe-Hilfsbibliothek dient lediglich zur formatierten Ausgabe von Objekten bestimmten Typs wie QString oder std::map im Fenster &quot;Lokale Variablen und ĂĽberwachte AusdrĂĽcke&quot;.&lt;/p&gt;
&lt;p&gt;Zum Debuggen mit Qt Creator ist sie jedoch nicht unbedingt erforderlich. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
+ <message>
+ <location/>
+ <source>Use Debugging Helper</source>
+ <translation>Ausgabe-Hilfsbibliothek benutzen</translation>
+ </message>
</context>
<context>
<name>DependenciesModel</name>
@@ -5446,11 +5447,6 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
</message>
<message>
<location/>
- <source>Multiple Inheritance</source>
- <translation>Mehrfachvererbung</translation>
- </message>
- <message>
- <location/>
<source>Code Generation</source>
<translation>Code-Erzeugung</translation>
</message>
@@ -5464,6 +5460,11 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
<source>Use Qt module name in #include-directive</source>
<translation>Qt-Modulnamen in #include-Direktive verwenden</translation>
</message>
+ <message>
+ <location/>
+ <source>Multiple inheritance</source>
+ <translation>Mehrfachvererbung</translation>
+ </message>
</context>
<context>
<name>Designer::Internal::FormClassWizardDialog</name>
@@ -5515,13 +5516,13 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
</message>
<message>
<location line="+2"/>
- <source>Creates a Qt Designer form file (.ui).</source>
- <translation>Erstellt eine Qt Designer-Formular-Datei (.ui).</translation>
+ <source>Creates a Qt Designer form along with a matching class (C++ header and source file) for implementation purposes. You can add the form and class to an existing Qt C++ Project.</source>
+ <translation>Erstellt eine Qt Designer-Formular-Datei mit zugehörigem Klassenrumpf (bestehend aus C++-Header- und Quelldatei) für ein existierendes C++-Projekt.</translation>
</message>
<message>
- <location line="+7"/>
- <source>Creates a Qt Designer form file (.ui) with a matching class.</source>
- <translation>Erstellt eine Qt Designer-Formular-Datei (.ui) mit zugehörigem Klassenrumpf.</translation>
+ <location line="+8"/>
+ <source>Creates a Qt Designer form that you can add to a Qt C++ project. This is useful if you already have an existing class for the UI business logic.</source>
+ <translation>Erstellt eine Qt Designer-Formular-Datei für ein C++-Projekt. Verwenden Sie diese Vorlage, wenn bereits Geschäftslogik existiert.</translation>
</message>
<message>
<location line="-2"/>
@@ -5560,37 +5561,17 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
<translation>For&amp;mulareditor</translation>
</message>
<message>
- <location line="+34"/>
- <source>Edit widgets</source>
- <translation>Widgets bearbeiten</translation>
- </message>
- <message>
- <location line="+1"/>
+ <location line="+35"/>
<source>F3</source>
<translation>F3</translation>
</message>
<message>
- <location line="+4"/>
- <source>Edit signals/slots</source>
- <translation>Signale und Slots bearbeiten</translation>
- </message>
- <message>
- <location line="+1"/>
+ <location line="+5"/>
<source>F4</source>
<translation>F4</translation>
</message>
<message>
- <location line="+4"/>
- <source>Edit buddies</source>
- <translation>Buddies bearbeiten</translation>
- </message>
- <message>
- <location line="+5"/>
- <source>Edit tab order</source>
- <translation>Tabulatorreihenfolge bearbeiten</translation>
- </message>
- <message>
- <location line="+5"/>
+ <location line="+14"/>
<source>Meta+H</source>
<translation>Meta+H</translation>
</message>
@@ -5641,7 +5622,27 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
<translation>Widget-Box</translation>
</message>
<message>
- <location line="+280"/>
+ <location line="+207"/>
+ <source>Edit Widgets</source>
+ <translation>Widgets bearbeiten</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Edit Signals/Slots</source>
+ <translation>Signale und Slots bearbeiten</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Edit Buddies</source>
+ <translation>Buddies bearbeiten</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Edit Tab Order</source>
+ <translation>Tabulatorreihenfolge bearbeiten</translation>
+ </message>
+ <message>
+ <location line="+58"/>
<source>Ctrl+Alt+R</source>
<translation>Ctrl+Alt+R</translation>
</message>
@@ -5837,7 +5838,7 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
<context>
<name>ExtensionSystem::Internal::PluginSpecPrivate</name>
<message>
- <location filename="../../../src/libs/extensionsystem/pluginspec.cpp" line="+482"/>
+ <location filename="../../../src/libs/extensionsystem/pluginspec.cpp" line="+471"/>
<source>File does not exist: %1</source>
<translation>Die Datei &apos;%1&apos; existiert nicht.</translation>
</message>
@@ -5961,7 +5962,7 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
<context>
<name>ExtensionSystem::PluginManager</name>
<message>
- <location filename="../../../src/libs/extensionsystem/pluginmanager.cpp" line="+758"/>
+ <location filename="../../../src/libs/extensionsystem/pluginmanager.cpp" line="+777"/>
<source>Circular dependency detected:
</source>
<translation>Zirkuläre Abhängigkeit festgestellt:
@@ -5997,7 +5998,7 @@ Grund: %3</translation>
<name>FakeVim::Internal</name>
<message>
<location filename="../../../src/plugins/fakevim/fakevimactions.cpp" line="+120"/>
- <source>Use vim-style editing</source>
+ <source>Use Vim-style Editing</source>
<translation>Vim benutzen</translation>
</message>
<message>
@@ -6191,21 +6192,6 @@ Grund: %3</translation>
</message>
<message>
<location/>
- <source>Copy text editor settings</source>
- <translation>Texteditor-Einstellungen</translation>
- </message>
- <message>
- <location/>
- <source>Set Qt style</source>
- <translation>Qt-Stil setzen</translation>
- </message>
- <message>
- <location/>
- <source>Set plain style</source>
- <translation>Einfachen Stil setzen</translation>
- </message>
- <message>
- <location/>
<source>Use FakeVim</source>
<translation>FakeVim benutzen</translation>
</message>
@@ -6264,6 +6250,21 @@ Grund: %3</translation>
<source>Keyword characters:</source>
<translation></translation>
</message>
+ <message>
+ <location/>
+ <source>Copy Text Editor Settings</source>
+ <translation>Texteditor-Einstellungen ĂĽbernehmen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Set Qt Style</source>
+ <translation>Qt-Stil setzen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Set Plain Style</source>
+ <translation>Einfachen Stil setzen</translation>
+ </message>
</context>
<context>
<name>FilterNameDialogClass</name>
@@ -6500,11 +6501,6 @@ Add, modify, and remove document filters, which determine the documentation set
</message>
<message>
<location/>
- <source>Behaviour of breakpoint setting in plugins</source>
- <translation>Setzen von Haltepunkten in Plugins</translation>
- </message>
- <message>
- <location/>
<source>This is the slowest but safest option.</source>
<translation>Die sicherste Einstellung, zugleich aber auch die langsamste.</translation>
</message>
@@ -6581,6 +6577,11 @@ on slow machines. In this case, the value should be increased.</source>
<source>Show a message box when receiving a signal</source>
<translation>Empfang eines Signals durch Dialogbox anzeigen</translation>
</message>
+ <message>
+ <location/>
+ <source>Behavior of Breakpoint Setting in Plugins</source>
+ <translation>Setzen von Haltepunkten in Plugins</translation>
+ </message>
</context>
<context>
<name>GeneralSettingsPage</name>
@@ -6621,73 +6622,73 @@ on slow machines. In this case, the value should be increased.</source>
</message>
<message>
<location/>
- <source>Show side-by-side if possible</source>
- <translation>Möglichst nebeneinander zeigen</translation>
+ <source>On help start:</source>
+ <translation>Zu Beginn:</translation>
</message>
<message>
<location/>
- <source>Always show side-by-side</source>
- <translation>Immer nebeneinander zeigen</translation>
+ <source>Use &amp;Current Page</source>
+ <translation>&amp;Aktuelle Seite nehmen</translation>
</message>
<message>
<location/>
- <source>Always start full help</source>
- <translation>Stets Vollbild</translation>
+ <source>Use &amp;Blank Page</source>
+ <translation>&amp;Leere Seite</translation>
</message>
<message>
<location/>
- <source>On help start:</source>
- <translation>Zu Beginn:</translation>
+ <source>Restore to Default</source>
+ <translation>&amp;Vorgabe wiederherstellen</translation>
</message>
<message>
<location/>
- <source>Show my home page</source>
- <translation>Startseite zeigen</translation>
+ <source>Help Bookmarks</source>
+ <translation>Hilfe-Lesezeichen</translation>
</message>
<message>
<location/>
- <source>Show a blank page</source>
- <translation>Leere Seite zeigen</translation>
+ <source>Import...</source>
+ <translation>Importieren...</translation>
</message>
<message>
<location/>
- <source>Show my tabs from last session</source>
- <translation>Reiter aus letzter Sitzung zeigen</translation>
+ <source>Export...</source>
+ <translation>Exportieren...</translation>
</message>
<message>
<location/>
- <source>Use &amp;Current Page</source>
- <translation>&amp;Aktuelle Seite nehmen</translation>
+ <source>Home page:</source>
+ <translation>Startseite:</translation>
</message>
<message>
<location/>
- <source>Use &amp;Blank Page</source>
- <translation>&amp;Leere Seite</translation>
+ <source>Show Side-by-Side if Possible</source>
+ <translation>Möglichst nebeneinander zeigen</translation>
</message>
<message>
<location/>
- <source>Restore to Default</source>
- <translation>&amp;Vorgabe wiederherstellen</translation>
+ <source>Always Show Side-by-Side</source>
+ <translation>Immer nebeneinander zeigen</translation>
</message>
<message>
<location/>
- <source>Help Bookmarks</source>
- <translation>Hilfe-Lesezeichen</translation>
+ <source>Always Start Full Help</source>
+ <translation>Stets Vollbild</translation>
</message>
<message>
<location/>
- <source>Import...</source>
- <translation>Importieren...</translation>
+ <source>Show My Home Page</source>
+ <translation>Startseite zeigen</translation>
</message>
<message>
<location/>
- <source>Export...</source>
- <translation>Exportieren...</translation>
+ <source>Show a Blank Page</source>
+ <translation>Leere Seite zeigen</translation>
</message>
<message>
<location/>
- <source>Home page:</source>
- <translation>Startseite:</translation>
+ <source>Show My Tabs from Last Session</source>
+ <translation>Reiter aus letzter Sitzung zeigen</translation>
</message>
</context>
<context>
@@ -6777,8 +6778,8 @@ on slow machines. In this case, the value should be increased.</source>
</message>
<message>
<location line="+2"/>
- <source>Creates a generic project, supporting any build system.</source>
- <translation>Erstellt ein generisches Projekt, was ein beliebiges Build-System unterstĂĽtzt.</translation>
+ <source>Imports existing projects that do not use qmake or CMake. This allows you to use Qt Creator as a code editor.</source>
+ <translation>Importiert bereits existierende Projekte, die weder qmake noch CMake verwenden. Dadurch kann Qt Creator als Code-Editor benutzt werden.</translation>
</message>
</context>
<context>
@@ -6901,7 +6902,7 @@ on slow machines. In this case, the value should be increased.</source>
</message>
<message>
<location/>
- <source>Remote branches</source>
+ <source>Remote Branches</source>
<translation>Nichtlokale Branches</translation>
</message>
</context>
@@ -6909,12 +6910,12 @@ on slow machines. In this case, the value should be increased.</source>
<name>Git::Internal::ChangeSelectionDialog</name>
<message>
<location filename="../../../src/plugins/git/changeselectiondialog.cpp" line="+43"/>
- <source>Select a Git commit</source>
+ <source>Select a Git Commit</source>
<translation>Wählen Sie einen Commit aus</translation>
</message>
<message>
<location line="+22"/>
- <source>Select Git repository</source>
+ <source>Select Git Repository</source>
<translation>Wählen ein Git-Repository aus</translation>
</message>
<message>
@@ -6931,9 +6932,13 @@ on slow machines. In this case, the value should be increased.</source>
<context>
<name>Git::Internal::CloneWizard</name>
<message>
+ <source>Clones a project from a Git repository and tries to load the contained project.</source>
+ <translation type="obsolete">Holt ein Projekt aus einem Git-Repository und versucht, es zu laden.</translation>
+ </message>
+ <message>
<location filename="../../../src/plugins/git/clonewizard.cpp" line="+55"/>
- <source>Clones a project from a git repository.</source>
- <translation>Erstellt einen Clone eines Projektes aus einem Git-Repository.</translation>
+ <source>Clones a Git repository and tries to load the contained project.</source>
+ <translation>Erstellt einen Clone eines Git-Repositories und versucht, das darin enthaltene Projekt zu laden.</translation>
</message>
<message>
<location line="+5"/>
@@ -7076,13 +7081,13 @@ on slow machines. In this case, the value should be increased.</source>
</message>
<message>
<location line="+45"/>
- <source>Stash description</source>
- <translation>Beschreibung</translation>
+ <source>Description:</source>
+ <translation>Beschreibung:</translation>
</message>
<message>
<location line="+0"/>
- <source>Description:</source>
- <translation>Beschreibung:</translation>
+ <source>Stash Description</source>
+ <translation>Beschreibung</translation>
</message>
<message>
<location line="+94"/>
@@ -7331,7 +7336,12 @@ on slow machines. In this case, the value should be increased.</source>
<translation>Diff fĂĽr Projekt &quot;%1&quot;</translation>
</message>
<message>
- <location line="+98"/>
+ <location line="+64"/>
+ <source>Stash Snapshot...</source>
+ <translation>Snapshot als Stash speichern...</translation>
+ </message>
+ <message>
+ <location line="+34"/>
<source>Stashes...</source>
<translation>Stashes...</translation>
</message>
@@ -7422,12 +7432,7 @@ on slow machines. In this case, the value should be increased.</source>
<translation>Repository bereinigen...</translation>
</message>
<message>
- <location line="+7"/>
- <source>Stash snapshot...</source>
- <translation>Snapshot als Stash speichern...</translation>
- </message>
- <message>
- <location line="+7"/>
+ <location line="+14"/>
<source>Saves the current state of your work and resets the repository.</source>
<translation>Speichert den gegenwärtigen Stand der Arbeit und setzt das Repository zurück.</translation>
</message>
@@ -7653,21 +7658,11 @@ on slow machines. In this case, the value should be increased.</source>
</message>
<message>
<location filename="../../../src/plugins/git/settingspage.ui"/>
- <source>Environment variables</source>
- <translation>Umgebungsvariablen</translation>
- </message>
- <message>
- <location/>
<source>PATH:</source>
<translation>Pfad-Variable:</translation>
</message>
<message>
<location/>
- <source>From system</source>
- <translation>Vom System</translation>
- </message>
- <message>
- <location/>
<source>&lt;b&gt;Note:&lt;/b&gt;</source>
<translation>&lt;b&gt;Hinweis:&lt;/b&gt;</translation>
</message>
@@ -7726,6 +7721,16 @@ on slow machines. In this case, the value should be increased.</source>
<source>Pull with rebase</source>
<translation>pull mit rebase</translation>
</message>
+ <message>
+ <location/>
+ <source>Environment Variables</source>
+ <translation>Umgebungsvariablen</translation>
+ </message>
+ <message>
+ <location/>
+ <source>From System</source>
+ <translation>Vom System</translation>
+ </message>
</context>
<context>
<name>GitCommand</name>
@@ -7769,9 +7774,13 @@ on slow machines. In this case, the value should be increased.</source>
<context>
<name>Gitorious::Internal::GitoriousCloneWizard</name>
<message>
+ <source>Clones a project from a Gitorious repository and tries to load the contained project.</source>
+ <translation type="obsolete">Holt ein Projekt aus einem Gitorious-Repository und versucht, das darin enthaltene Projekt zu laden.</translation>
+ </message>
+ <message>
<location filename="../../../src/plugins/git/gitorious/gitoriousclonewizard.cpp" line="+83"/>
- <source>Clones a project from a Gitorious repository.</source>
- <translation>Erstellt einen Clone eines Projektes aus einem Gitorious-Repository.</translation>
+ <source>Clones a Gitorious repository and tries to load the contained project.</source>
+ <translation>Erstellt einen Clone eines Gitorious-Repositories und versucht, das darin enthaltene Projekt zu laden.</translation>
</message>
<message>
<location line="+5"/>
@@ -8003,7 +8012,7 @@ on slow machines. In this case, the value should be increased.</source>
<name>Help::Internal::GeneralSettingsPage</name>
<message>
<location filename="../../../src/plugins/help/generalsettingspage.cpp" line="+71"/>
- <source>General settings</source>
+ <source>General Settings</source>
<translation>Allgemeine Einstellungen</translation>
</message>
<message>
@@ -8266,12 +8275,12 @@ on slow machines. In this case, the value should be increased.</source>
<context>
<name>IndexWindow</name>
<message>
- <location filename="../../../src/shared/help/indexwindow.cpp" line="+55"/>
+ <location filename="../../../src/shared/help/indexwindow.cpp" line="+67"/>
<source>&amp;Look for:</source>
<translation>&amp;Suche nach:</translation>
</message>
<message>
- <location line="+72"/>
+ <location line="+77"/>
<source>Open Link</source>
<translation>Adresse öffnen</translation>
</message>
@@ -8895,7 +8904,7 @@ on slow machines. In this case, the value should be increased.</source>
<context>
<name>OpenWith::Editors</name>
<message>
- <location filename="../../../src/plugins/coreplugin/coreconstants.h" line="+99"/>
+ <location filename="../../../src/plugins/coreplugin/coreconstants.h" line="+105"/>
<source>Plain Text Editor</source>
<translation>Texteditor</translation>
</message>
@@ -8967,18 +8976,18 @@ on slow machines. In this case, the value should be increased.</source>
</message>
<message>
<location/>
+ <source>Server prefix:</source>
+ <translation>Server-Präfix:</translation>
+ </message>
+ <message>
+ <location/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;&lt;a href=&quot;http://pastebin.com&quot;&gt;pastebin.com&lt;/a&gt; allows to send posts to custom subdomains (eg. qtcreator.pastebin.com). Fill in the desired prefix.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;http://pastebin.com&quot;&gt;pastebin.com&lt;/a&gt; allows to send posts to custom subdomains (eg. creator.pastebin.com). Fill in the desired prefix.&lt;/p&gt;
&lt;p&gt;Note that the plugin will use this for posting as well as fetching.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;&lt;a href=&quot;http://pastebin.com&quot;&gt;pastebin.com&lt;/a&gt; erlaubt das Senden an benutzerdefinierte Subdomänen (zum Beispiel qtcreator.pastebin.com). Geben Sie den gewünschten Präfix an.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;http://pastebin.com&quot;&gt;pastebin.com&lt;/a&gt; erlaubt das Senden an benutzerdefinierte Subdomänen (zum Beispiel creator.pastebin.com). Geben Sie den gewünschten Präfix an.&lt;/p&gt;
&lt;p&gt;Hinweis: Es wird sowohl zum Senden als auch zum Abholen verwendet.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
- <message>
- <location/>
- <source>Server prefix:</source>
- <translation>Server-Präfix:</translation>
- </message>
</context>
<context>
<name>Perforce::Internal::ChangeNumberDialog</name>
@@ -9451,11 +9460,6 @@ on slow machines. In this case, the value should be increased.</source>
<context>
<name>Perforce::Internal::SettingsPage</name>
<message>
- <location filename="../../../src/plugins/perforce/settingspage.ui"/>
- <source>Environment variables</source>
- <translation>Umgebungsvariablen</translation>
- </message>
- <message>
<location filename="../../../src/plugins/perforce/settingspage.cpp" line="+137"/>
<source>Perforce</source>
<translation>Perforce</translation>
@@ -9515,6 +9519,11 @@ on slow machines. In this case, the value should be increased.</source>
<source>P4 port:</source>
<translation>P4 Port-Nummer:</translation>
</message>
+ <message>
+ <location/>
+ <source>Environment Variables</source>
+ <translation>Umgebungsvariablen</translation>
+ </message>
</context>
<context>
<name>Perforce::Internal::SettingsPageWidget</name>
@@ -10004,17 +10013,17 @@ Fehler: %2</translation>
<translation>Erstellungsschritte</translation>
</message>
<message>
- <location line="-135"/>
- <source>Edit Build Configuration:</source>
- <translation>Build-Konfiguration bearbeiten:</translation>
+ <location line="-148"/>
+ <source>No build settings available</source>
+ <translation>Es sind keine Build-Einstellungen verfĂĽgbar</translation>
</message>
<message>
- <location line="-13"/>
- <source>No Build Settings available</source>
- <translation>Es sind keine Build-Einstellungen verfĂĽgbar</translation>
+ <location line="+13"/>
+ <source>Edit build configuration:</source>
+ <translation>Build-Konfiguration bearbeiten:</translation>
</message>
<message>
- <location line="+19"/>
+ <location line="+6"/>
<source>Add</source>
<translation>HinzufĂĽgen</translation>
</message>
@@ -10073,13 +10082,13 @@ Fehler: %2</translation>
</message>
<message>
<location line="+7"/>
- <source>Add build step</source>
- <translation>Build-Schritt hinzufĂĽgen</translation>
+ <source>Add Clean Step</source>
+ <translation>Schritt zur Bereinigung hinzufĂĽgen</translation>
</message>
<message>
<location line="+0"/>
- <source>Add clean step</source>
- <translation>Schritt zur Bereinigung hinzufĂĽgen</translation>
+ <source>Add Build Step</source>
+ <translation>Build-Schritt hinzufĂĽgen</translation>
</message>
<message>
<location line="-218"/>
@@ -10340,18 +10349,18 @@ Fehler: %2</translation>
</message>
<message>
<location/>
- <source>Working Directory:</source>
- <translation>Arbeitsverzeichnis:</translation>
+ <source>Enable custom process step</source>
+ <translation>Benutzerdefinierten Verarbeitungsschritt aktivieren</translation>
</message>
<message>
<location/>
- <source>Command Arguments:</source>
- <translation>Kommandozeilenargumente:</translation>
+ <source>Working directory:</source>
+ <translation>Arbeitsverzeichnis:</translation>
</message>
<message>
<location/>
- <source>Enable Custom Process Step</source>
- <translation>Benutzerdefinierten Verarbeitungsschritt aktivieren</translation>
+ <source>Command arguments:</source>
+ <translation>Kommandozeilenargumente:</translation>
</message>
</context>
<context>
@@ -10524,10 +10533,6 @@ No project selected</extracomment>
<translation>%1 (aktuelle Sitzung)</translation>
</message>
<message>
- <source>Open Project</source>
- <translation type="obsolete">Projekt öffnen</translation>
- </message>
- <message>
<location line="+47"/>
<source>New Project</source>
<translation>Neues Projekt</translation>
@@ -11150,28 +11155,28 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
<name>QMakeStep</name>
<message>
<location filename="../../../src/plugins/qt4projectmanager/qmakestep.ui"/>
- <source>debug</source>
- <translation>debug</translation>
+ <source>Additional arguments:</source>
+ <translation>Zusätzliche Argumente:</translation>
</message>
<message>
<location/>
- <source>release</source>
- <translation>release</translation>
+ <source>Effective qmake call:</source>
+ <translation>Resultierender qmake-Aufruf:</translation>
</message>
<message>
<location/>
- <source>Additional arguments:</source>
- <translation>Zusätzliche Argumente:</translation>
+ <source>qmake build configuration:</source>
+ <translation>qmake Build-Konfiguration:</translation>
</message>
<message>
<location/>
- <source>Effective qmake call:</source>
- <translation>Resultierender qmake-Aufruf:</translation>
+ <source>Debug</source>
+ <translation>Debug</translation>
</message>
<message>
<location/>
- <source>qmake Build Configuration:</source>
- <translation>qmake Build-Konfiguration:&apos;</translation>
+ <source>Release</source>
+ <translation>Release</translation>
</message>
</context>
<context>
@@ -11464,8 +11469,12 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
</message>
<message>
<location line="+1"/>
- <source>Creates a Qt console application.</source>
- <translation>Erstellt eine Qt Konsolenanwendung.</translation>
+ <source>Creates a project containing a single main.cpp file with a stub implementation.
+
+Preselects a desktop Qt for building the application if available.</source>
+ <translation>Erstellt ein Projekt welches aus einer main.cpp-Datei mit einem Implementationsrumpf besteht.
+
+Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfügbar ist.</translation>
</message>
</context>
<context>
@@ -11605,8 +11614,8 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
</message>
<message>
<location line="+1"/>
- <source>Creates an empty Qt project.</source>
- <translation>Erstellt ein leeres Qt-Projekt.</translation>
+ <source>Creates a qmake-based project without any files. This allows you to create an application without any default classes.</source>
+ <translation>Erstellt ein auf qmake basierendes Qt-Projekt ohne Dateien und vorgegebene Klassen.</translation>
</message>
</context>
<context>
@@ -11858,11 +11867,15 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
</message>
<message>
<location line="+1"/>
- <source>Creates a Qt Gui Application with one form.</source>
- <translation>Erstellt eine Qt-Gui-Anwendung mit einem Formular.</translation>
+ <source>Creates a Qt application for the desktop. Includes a Qt Designer-based main window.
+
+Preselects a desktop Qt for building the application if available.</source>
+ <translation>Erstellt eine Qt-Anwendung fĂĽr den Desktop mit einem Qt Designer-basierten Hauptfenster.
+
+Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfügbar ist.</translation>
</message>
<message>
- <location line="+160"/>
+ <location line="+162"/>
<source>The template file &apos;%1&apos; could not be opened for reading: %2</source>
<translation>Die Vorgabendatei &apos;%1&apos; konnte nicht zum Lesen geöffnet werden: %2</translation>
</message>
@@ -11889,8 +11902,8 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
</message>
<message>
<location line="+1"/>
- <source>Creates a Qt based C++ Library.</source>
- <translation>Erstellt eine Qt-basierte C++-Bibliothek.</translation>
+ <source>Creates a C++ library based on qmake. This can be used to create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;.</source>
+ <translation type="unfinished">Erstellt qmake-basierte C++-Bibliotheken:&lt;ul&gt;&lt;li&gt;Dynamisch linkbare C++-Bibliothek zur Verwendung mit &lt;tt&gt;QPluginLoader&lt;/tt&gt; zur Laufzeit (Plugin)&lt;/li&gt;&lt;li&gt;Statisch oder dynamisch linkbare C++-Bibliothek zur Verwendung in einem anderen Projekt zur Linkzeit&lt;/li&gt;&lt;/ul&gt;.</translation>
</message>
</context>
<context>
@@ -12053,31 +12066,6 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
<name>Qt4ProjectManager::Internal::Qt4ProjectConfigWidget</name>
<message>
<location filename="../../../src/plugins/qt4projectmanager/qt4projectconfigwidget.ui"/>
- <source>Configuration Name:</source>
- <translation>Name der Konfiguration:</translation>
- </message>
- <message>
- <location/>
- <source>Qt Version:</source>
- <translation>Qt-Version:</translation>
- </message>
- <message>
- <location/>
- <source>This Qt-Version is invalid.</source>
- <translation>Diese Qt-Version ist ungĂĽltig.</translation>
- </message>
- <message>
- <location/>
- <source>Shadow Build:</source>
- <translation>Shadow-Build:</translation>
- </message>
- <message>
- <location/>
- <source>Build Directory:</source>
- <translation>Build-Verzeichnis:</translation>
- </message>
- <message>
- <location/>
<source>&lt;a href=&quot;import&quot;&gt;Import existing build&lt;/a&gt;</source>
<translation>&lt;a href=&quot;import&quot;&gt;Existierenden Build importieren&lt;/a&gt;</translation>
</message>
@@ -12124,13 +12112,38 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
</message>
<message>
<location/>
- <source>Tool Chain:</source>
+ <source>problemLabel</source>
+ <translation>problemLabel</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Configuration name:</source>
+ <translation>Name der Konfiguration:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Qt version:</source>
+ <translation>Qt-Version:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>This Qt version is invalid.</source>
+ <translation>Diese Qt-Version ist ungĂĽltig.</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Tool chain:</source>
<translation>Toolchain:</translation>
</message>
<message>
<location/>
- <source>problemLabel</source>
- <translation>problemLabel</translation>
+ <source>Shadow build:</source>
+ <translation>Shadow-Build:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Build directory:</source>
+ <translation>Build-Verzeichnis:</translation>
</message>
</context>
<context>
@@ -12188,8 +12201,18 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
<translation>Argumente:</translation>
</message>
<message>
- <location line="+20"/>
- <source>Run in Terminal</source>
+ <location line="+8"/>
+ <source>Select Working Directory</source>
+ <translation>Wählen Sie das Arbeitsverzeichnis aus</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Working directory:</source>
+ <translation>Arbeitsverzeichnis:</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Run in terminal</source>
<translation>In Terminal ausfĂĽhren</translation>
</message>
<message>
@@ -12228,22 +12251,12 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
<translation>AusfĂĽhrbare Datei:</translation>
</message>
<message>
- <location line="+10"/>
- <source>Select the working directory</source>
- <translation>Wählen Sie das Arbeitsverzeichnis aus</translation>
- </message>
- <message>
- <location line="+3"/>
+ <location line="+13"/>
<source>Reset to default</source>
<translation>ZurĂĽcksetzen</translation>
</message>
<message>
- <location line="+7"/>
- <source>Working Directory:</source>
- <translation>Arbeitsverzeichnis:</translation>
- </message>
- <message>
- <location line="+7"/>
+ <location line="+14"/>
<source>Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug)</source>
<translation>Debug-Version von Frameworks verwenden (DYLD_IMAGE_SUFFIX=_debug)</translation>
</message>
@@ -12496,12 +12509,12 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+1"/>
- <source>Install File:</source>
+ <source>Installation file:</source>
<translation>Installationspaket:</translation>
</message>
<message>
<location line="+19"/>
- <source>Device on Serial Port:</source>
+ <source>Device on serial port:</source>
<translation>Gerät auf serieller Schnittstelle:</translation>
</message>
<message>
@@ -12630,12 +12643,7 @@ Installiere Anwendung auf &apos;%2&apos;...</translation>
<translation>Es konnte keine Verbindung zu App TRK ĂĽber den Port &apos;%1&apos; hergestellt werden. Bitte versuchen Sie, App TRK neu zu starten.</translation>
</message>
<message>
- <location line="+5"/>
- <source>Copying install file...</source>
- <translation>Kopiere Installationspaket...</translation>
- </message>
- <message>
- <location line="+100"/>
+ <location line="+105"/>
<source>The device &apos;%1&apos; has been disconnected</source>
<translation>Das Gerät &apos;%1&apos; wurde entfernt</translation>
</message>
@@ -12645,7 +12653,12 @@ Installiere Anwendung auf &apos;%2&apos;...</translation>
<translation>Installiere Anwendung...</translation>
</message>
<message>
- <location line="+47"/>
+ <location line="-11"/>
+ <source>Copying installation file...</source>
+ <translation>Kopiere Installationspaket...</translation>
+ </message>
+ <message>
+ <location line="+58"/>
<source>Waiting for App TRK</source>
<translation>Warte auf App TRK</translation>
</message>
@@ -13010,8 +13023,8 @@ Installiere Anwendung auf &apos;%2&apos;...</translation>
<message>
<location line="+45"/>
<location line="+11"/>
- <source>Choose a directory to add</source>
- <translation>Bitte wählen Sie das hinzuzufügende Verzeichnis</translation>
+ <source>Select Directory</source>
+ <translation>Arbeitsordner</translation>
</message>
<message>
<location line="+30"/>
@@ -13041,11 +13054,6 @@ Installiere Anwendung auf &apos;%2&apos;...</translation>
</message>
<message>
<location/>
- <source>File Types:</source>
- <translation>Dateitypen:</translation>
- </message>
- <message>
- <location/>
<source>Specify file name filters, separated by comma. Filters may contain wildcards.</source>
<translation>Eine Liste von durch Kommata getrennte Filtern für Dateinamen. Die Filter können Suchmuster enthalten.</translation>
</message>
@@ -13086,6 +13094,11 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
<translation>Geben Sie ein Kürzel oder eine Abkürzung ein, die die Funde auf Dateien von diesem Verzeichnis beschränkt.
Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeichen und dem Suchbegriff.</translation>
</message>
+ <message>
+ <location/>
+ <source>File types:</source>
+ <translation>Dateitypen:</translation>
+ </message>
</context>
<context>
<name>Locator::Internal::FileSystemFilter</name>
@@ -13184,7 +13197,7 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<name>Locator::Internal::SettingsPage</name>
<message>
<location filename="../../../src/plugins/locator/settingspage.cpp" line="+168"/>
- <source>%1 (Prefix: %2)</source>
+ <source>%1 (prefix: %2)</source>
<translation>%1 (Präfix: %2)</translation>
</message>
</context>
@@ -13328,8 +13341,8 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<name>ResourceEditor::Internal::ResourceEditorPlugin</name>
<message>
<location filename="../../../src/plugins/resourceeditor/resourceeditorplugin.cpp" line="+78"/>
- <source>Creates a Qt Resource file (.qrc).</source>
- <translation>Erzeugt eine neue Qt-Ressource-Datei (.qrc).</translation>
+ <source>Creates a Qt Resource file (.qrc) that you can add to a Qt C++ project.</source>
+ <translation>Erstellt eine C++-Quelldatei fĂĽr ein C++-Projekt.</translation>
</message>
<message>
<location line="+1"/>
@@ -13386,7 +13399,7 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<translation>Präfix hinzufügen</translation>
</message>
<message>
- <location line="+158"/>
+ <location line="+159"/>
<source>Copy</source>
<translation>Kopieren</translation>
</message>
@@ -13439,7 +13452,7 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<context>
<name>SharedTools::ResourceView</name>
<message>
- <location filename="../../../src/shared/qrceditor/resourceview.cpp" line="+362"/>
+ <location filename="../../../src/shared/qrceditor/resourceview.cpp" line="+355"/>
<source>Add Files...</source>
<translation>Dateien hinzufĂĽgen...</translation>
</message>
@@ -13602,9 +13615,13 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<context>
<name>Subversion::Internal::CheckoutWizard</name>
<message>
+ <source>Checks out a project from a Subversion repository and tries to load the contained project.</source>
+ <translation type="obsolete">Holt ein Projekt aus einem Subversion-Repository und versucht, das darin enthaltene Projekt zu laden.</translation>
+ </message>
+ <message>
<location filename="../../../src/plugins/subversion/checkoutwizard.cpp" line="+56"/>
- <source>Checks out a project from a Subversion repository.</source>
- <translation>Holt ein Projekt aus einem Subversion-Repository.</translation>
+ <source>Checks out a Subversion repository and tries to load the contained project.</source>
+ <translation>Erstellt einen Checkout eines Subversion-Repositories und versucht, das darin enthaltene Projekt zu laden.</translation>
</message>
<message>
<location line="+5"/>
@@ -13639,11 +13656,6 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
</message>
<message>
<location/>
- <source>User name:</source>
- <translation>Nutzername:</translation>
- </message>
- <message>
- <location/>
<source>Password:</source>
<translation>Passwort:</translation>
</message>
@@ -13692,6 +13704,11 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<source>Subversion command:</source>
<translation>Subversion-Kommando:</translation>
</message>
+ <message>
+ <location/>
+ <source>Username:</source>
+ <translation>Nutzername:</translation>
+ </message>
</context>
<context>
<name>Subversion::Internal::SettingsPageWidget</name>
@@ -14030,7 +14047,7 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
</message>
<message>
<location line="+27"/>
- <source>Use Regular E&amp;xpressions</source>
+ <source>Use regular e&amp;xpressions</source>
<translation>Benutze reguläre Ausdrücke</translation>
</message>
</context>
@@ -14050,7 +14067,7 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<context>
<name>TextEditor::BaseTextEditor</name>
<message>
- <location filename="../../../src/plugins/texteditor/basetexteditor.cpp" line="+277"/>
+ <location filename="../../../src/plugins/texteditor/basetexteditor.cpp" line="+275"/>
<source>Print Document</source>
<translation>Dokument drucken</translation>
</message>
@@ -14068,7 +14085,7 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<context>
<name>TextEditor::BaseTextEditorEditable</name>
<message>
- <location line="+4802"/>
+ <location line="+4828"/>
<source>Line: %1, Col: %2</source>
<translation>Zeile: %1, Spalte: %2</translation>
</message>
@@ -14172,11 +14189,6 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
</message>
<message>
<location/>
- <source>In leading white space</source>
- <translation>Nur in Leerzeichen am Zeilenanfang</translation>
- </message>
- <message>
- <location/>
<source>Automatically determine based on the nearest indented line (previous line preferred over next line)</source>
<translation>Bestimme automatisch basierend auf der nächstliegenden, eingerückten Zeile (unter Bevorzugung der vorhergehenden Zeile)</translation>
</message>
@@ -14220,6 +14232,11 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
<source>GNU Style</source>
<translation>GNU-Stil</translation>
</message>
+ <message>
+ <location/>
+ <source>In Leading White Space</source>
+ <translation>Nur in Leerzeichen am Zeilenanfang</translation>
+ </message>
</context>
<context>
<name>TextEditor::DisplaySettingsPage</name>
@@ -14308,7 +14325,7 @@ Um es abzurufen, tippen Sie das KĂĽrzel im Locator, gefolgt von einem Leerzeich
</message>
<message>
<location line="+1"/>
- <source>Color Scheme name:</source>
+ <source>Color scheme name:</source>
<translation>Name des Farbschemas:</translation>
</message>
<message>
@@ -14869,7 +14886,7 @@ Die folgenden Encodings scheinen der Datei zu entsprechen:</translation>
<context>
<name>TextEditor::TextEditorSettings</name>
<message>
- <location filename="../../../src/plugins/texteditor/texteditorsettings.cpp" line="+65"/>
+ <location filename="../../../src/plugins/texteditor/texteditorsettings.cpp" line="+103"/>
<source>Text</source>
<translation>Text</translation>
</message>
@@ -15379,13 +15396,13 @@ Die folgenden Encodings scheinen der Datei zu entsprechen:</translation>
</message>
<message>
<location line="+123"/>
- <source>Choose a directory</source>
- <translation>Wählen Sie ein Verzeichnis</translation>
+ <source>Choose Directory</source>
+ <translation>Ordner wählen</translation>
</message>
<message>
<location line="+6"/>
- <source>Choose a file</source>
- <translation>Wählen Sie eine Datei</translation>
+ <source>Choose File</source>
+ <translation>Datei wählen</translation>
</message>
<message>
<location line="+33"/>
@@ -15427,7 +15444,7 @@ Die folgenden Encodings scheinen der Datei zu entsprechen:</translation>
</message>
<message>
<location line="+1"/>
- <source>Delete line</source>
+ <source>Delete Line</source>
<translation>Zeile löschen</translation>
</message>
<message>
@@ -15855,11 +15872,6 @@ Hinweis: Unter Umständen wird die Datei gelöscht.</translation>
</message>
<message>
<location/>
- <source>Parts to send to server</source>
- <translation>Zu versendende Ausschnitte</translation>
- </message>
- <message>
- <location/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
@@ -15871,6 +15883,11 @@ p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Sans Serif&apos;; font-size:9pt;&quot;&gt;&amp;lt;Kommentar&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
+ <message>
+ <location/>
+ <source>Parts to Send to Server</source>
+ <translation>Zu versendende Ausschnitte</translation>
+ </message>
</context>
<context>
<name>Welcome::Internal::CommunityWelcomePage</name>
@@ -16474,11 +16491,6 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
</message>
<message>
<location/>
- <source>Default Email:</source>
- <translation>Vorgabe-Email:</translation>
- </message>
- <message>
- <location/>
<source>Miscellaneous</source>
<translation>Sonstige Einstellungen</translation>
</message>
@@ -16512,6 +16524,11 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<source>Log count:</source>
<translation>Log-Anzeige beschränken auf:</translation>
</message>
+ <message>
+ <location/>
+ <source>Default email:</source>
+ <translation>Vorgabe-Email:</translation>
+ </message>
</context>
<context>
<name>Mercurial::Internal::RevertDialog</name>
@@ -16591,7 +16608,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<context>
<name>QmlDesigner::ItemLibrary</name>
<message>
- <location filename="../../../src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp" line="+127"/>
+ <location filename="../../../src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp" line="+128"/>
<source>Library</source>
<comment>Title of library view</comment>
<translation>Bibliothek</translation>
@@ -17531,7 +17548,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<context>
<name>Core</name>
<message>
- <location filename="../../../src/plugins/coreplugin/coreconstants.h" line="+130"/>
+ <location filename="../../../src/plugins/coreplugin/coreconstants.h" line="+131"/>
<source>Qt</source>
<translation>Qt</translation>
</message>
@@ -17875,8 +17892,8 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<name>Mercurial::Internal::CloneWizard</name>
<message>
<location filename="../../../src/plugins/mercurial/clonewizard.cpp" line="+56"/>
- <source>Clone a Mercurial repository</source>
- <translation>Clone eines Mercurial-Repository erstellen</translation>
+ <source>Clones a Mercurial repository and tries to load the contained project.</source>
+ <translation>Erstellt einen Clone eines Mercurial-Repositories und versucht, das darin enthaltene Projekt zu laden.</translation>
</message>
<message>
<location line="+5"/>
@@ -18642,7 +18659,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<context>
<name>QmlDesigner::NavigatorTreeModel</name>
<message>
- <location filename="../../../src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp" line="+277"/>
+ <location filename="../../../src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp" line="+279"/>
<source>Invalid Id</source>
<translation>UngĂĽltige Id</translation>
</message>
@@ -19003,9 +19020,9 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<context>
<name>QmlJSEditor::Internal::QmlJSEditorPlugin</name>
<message>
- <location filename="../../../src/plugins/qmljseditor/qmljseditorplugin.cpp" line="+112"/>
+ <location filename="../../../src/plugins/qmljseditor/qmljseditorplugin.cpp" line="+111"/>
<source>Creates a Qt QML file.</source>
- <translation>Erzeugt eine Qt-QML-Datei.</translation>
+ <translation>Erstellt eine Qt-QML-Datei.</translation>
</message>
<message>
<location line="+1"/>
@@ -19118,7 +19135,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
</message>
<message>
<location line="+5"/>
- <source>Device Configuration:</source>
+ <source>Device configuration:</source>
<translation>Geräte-Konfiguration:</translation>
</message>
<message>
@@ -19218,12 +19235,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<context>
<name>Qt4ProjectManager::Internal::MaemoSettingsWidget</name>
<message>
- <location filename="../../../src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.cpp" line="+341"/>
- <source>Choose public key file</source>
- <translation>Datei mit öffentlichem Schlüssel</translation>
- </message>
- <message>
- <location line="+1"/>
+ <location filename="../../../src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.cpp" line="+342"/>
<source>Public Key Files(*.pub);;All Files (*)</source>
<translation>Ă–ffentliche SchlĂĽssel (*.pub);;Alle Dateien (*)</translation>
</message>
@@ -19233,12 +19245,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<translation>Die öffentliche Schlüsseldatei &apos;%1&apos; konnte nicht gelesen werden.</translation>
</message>
<message>
- <location line="+10"/>
- <source>Stop deploying</source>
- <translation>Deployement beenden</translation>
- </message>
- <message>
- <location line="+12"/>
+ <location line="+22"/>
<source>Key deployment failed: %1</source>
<translation>Das Versenden des SchlĂĽssels schlug fehl: %1</translation>
</message>
@@ -19260,7 +19267,17 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<translation>New Device Configuration %1</translation>
</message>
<message>
- <location line="+226"/>
+ <location line="+189"/>
+ <source>Choose Public Key File</source>
+ <translation>Datei mit öffentlichem Schlüssel</translation>
+ </message>
+ <message>
+ <location line="+22"/>
+ <source>Stop Deploying</source>
+ <translation>Deployement beenden</translation>
+ </message>
+ <message>
+ <location line="+15"/>
<source>Key was successfully deployed.</source>
<translation>Der SchlĂĽssel wurde erfolgreich versandt.</translation>
</message>
@@ -19319,7 +19336,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
<context>
<name>QtVersion</name>
<message>
- <location filename="../../../src/plugins/qt4projectmanager/qtversionmanager.cpp" line="+928"/>
+ <location filename="../../../src/plugins/qt4projectmanager/qtversionmanager.cpp" line="+918"/>
<source>No qmake path set</source>
<translation>Es ist keine qmake-Pfad gesetzt</translation>
</message>
@@ -19353,8 +19370,8 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
</message>
<message>
<location line="+1"/>
- <source>Creates a Qt Unit Test.</source>
- <translation>Erstellt einen Qt-Unit-Test.</translation>
+ <source>Creates a QTestLib-based unit test for a feature or a class. Unit tests allow you to verify that the code is fit for use and that there are no regressions.</source>
+ <translation>Erstellt einen auf QTestLib basierenden Unit-Test fĂĽr eine Funktion oder eine Klasse. Unit-Tests dienen zur ĂśberprĂĽfung der Verwendbarkeit des Codes und der Feststellung von Regressionen.</translation>
</message>
</context>
<context>
@@ -19400,7 +19417,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
</message>
<message>
<location line="+20"/>
- <source>Choose repository directory</source>
+ <source>Choose Repository Directory</source>
<translation>Ordner für Repository wählen</translation>
</message>
<message>
@@ -19879,11 +19896,15 @@ Please check your project settings.</source>
</message>
<message>
<location line="+2"/>
- <source>Creates a Qt QML application.</source>
- <translation>Erstellt eine Qt-QML-Anwendung.</translation>
+ <source>Creates a Qt QML application project with a single QML file containing the main view.
+
+QML application projects are executed through the QML runtime and do not need to be built.</source>
+ <translation>Erstellt eine Qt-QML-Anwendung aus einer einzelnen QML-Datei, die die Hauptansicht enthält.
+
+QML-Anwendungen werden durch die QML-Laufzeitumgebung direkt ausgeführt und benötigen keine Compilierung.</translation>
</message>
<message>
- <location line="+66"/>
+ <location line="+67"/>
<source>File generated by QtCreator</source>
<comment>qmlproject Template</comment>
<extracomment>Comment added to generated .qmlproject file</extracomment>
@@ -20180,16 +20201,6 @@ Please check your project settings.</source>
</message>
<message>
<location/>
- <source>Remote Device</source>
- <translation>Gerät</translation>
- </message>
- <message>
- <location/>
- <source>Local Simulator</source>
- <translation>Lokaler Simulator</translation>
- </message>
- <message>
- <location/>
<source>Authentication type:</source>
<translation>Art der Authentifizierung:</translation>
</message>
@@ -20205,21 +20216,6 @@ Please check your project settings.</source>
</message>
<message>
<location/>
- <source>Host Name:</source>
- <translation>Hostname:</translation>
- </message>
- <message>
- <location/>
- <source>Connection Timeout:</source>
- <translation>Zeitlimit der Verbindung:</translation>
- </message>
- <message>
- <location/>
- <source>User Name:</source>
- <translation>Nutzername:</translation>
- </message>
- <message>
- <location/>
<source>Password:</source>
<translation>Passwort:</translation>
</message>
@@ -20288,6 +20284,31 @@ Please check your project settings.</source>
<source>Deploy Public Key ...</source>
<translation>Ă–ffentlichen SchlĂĽssel senden...</translation>
</message>
+ <message>
+ <location/>
+ <source>Remote device</source>
+ <translation>Gerät</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Maemo emulator</source>
+ <translation>Maemo-Emulator</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Host name:</source>
+ <translation>Hostname:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Connection timeout:</source>
+ <translation>Zeitlimit der Verbindung:</translation>
+ </message>
+ <message>
+ <location/>
+ <source>Username:</source>
+ <translation>Nutzername:</translation>
+ </message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60CreatePackageStepWidget</name>
@@ -20320,11 +20341,6 @@ Please check your project settings.</source>
<context>
<name>VCSBase::CleanDialog</name>
<message>
- <location filename="../../../src/plugins/vcsbase/cleandialog.ui"/>
- <source>Clean repository</source>
- <translation>Repository bereinigen</translation>
- </message>
- <message>
<location filename="../../../src/plugins/vcsbase/cleandialog.cpp" line="+68"/>
<source>The directory %1 could not be deleted.</source>
<translation>Das Verzeichnis %1 konnte nicht gelöscht werden.</translation>
@@ -20377,6 +20393,11 @@ Please check your project settings.</source>
<source>Cleaning %1</source>
<translation>Bereinige %1</translation>
</message>
+ <message>
+ <location filename="../../../src/plugins/vcsbase/cleandialog.ui"/>
+ <source>Clean Repository</source>
+ <translation>Repository bereinigen</translation>
+ </message>
</context>
<context>
<name>ExtensionSystem::PluginDetailsView</name>
@@ -20553,7 +20574,7 @@ Please check your project settings.</source>
<context>
<name>QmlDesigner::Internal::SubComponentManagerPrivate</name>
<message>
- <location filename="../../../src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp" line="+307"/>
+ <location filename="../../../src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp" line="+309"/>
<source>QML Components</source>
<translation>QML-Komponenten</translation>
</message>
@@ -20838,17 +20859,17 @@ Haben Sie Qemu gestartet?</translation>
<name>Qt4ProjectManager::Internal::S60CreatePackageStep</name>
<message>
<location filename="../../../src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp" line="+74"/>
- <source>Create sis Package</source>
- <comment>Create sis package build step name</comment>
- <translation>sis-Paketdatei erzeugen</translation>
+ <source>Create SIS Package</source>
+ <comment>Create SIS package build step name</comment>
+ <translation>SIS-Paketdatei erzeugen</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60CreatePackageStepFactory</name>
<message>
<location line="+149"/>
- <source>Create sis Package</source>
- <translation>Erzeuge sis-Paketdatei</translation>
+ <source>Create SIS Package</source>
+ <translation>SIS-Paketdatei erzeugen</translation>
</message>
</context>
<context>
@@ -20865,8 +20886,8 @@ Haben Sie Qemu gestartet?</translation>
</message>
<message>
<location line="+4"/>
- <source>&lt;b&gt;Create sis Package:&lt;/b&gt; %1</source>
- <translation>&lt;b&gt;Erzeuge sis-Paketdatei:&lt;/b&gt; %1</translation>
+ <source>&lt;b&gt;Create SIS Package:&lt;/b&gt; %1</source>
+ <translation>&lt;b&gt;Erzeuge SIS-Paketdatei:&lt;/b&gt; %1</translation>
</message>
</context>
<context>
@@ -20900,7 +20921,7 @@ Haben Sie Qemu gestartet?</translation>
<translation>&lt;%1&gt; hat kein gĂĽltiges Attribut %2</translation>
</message>
<message>
- <location line="+1631"/>
+ <location line="+1635"/>
<source>%1: %2</source>
<translation>%1: %2</translation>
</message>
@@ -21438,14 +21459,6 @@ Haben Sie Qemu gestartet?</translation>
<context>
<name>Designer::Internal::FormEditorFactory</name>
<message>
- <source>This file can only be edited in Design Mode.</source>
- <translation type="obsolete">Datei kann nur im Entwurfsmodus bearbeitet werden.</translation>
- </message>
- <message>
- <source>Open Designer</source>
- <translation type="obsolete">Designer öffnen</translation>
- </message>
- <message>
<location filename="../../../src/plugins/designer/formeditorfactory.cpp" line="+93"/>
<source>This file can only be edited in &lt;b&gt;Design&lt;/b&gt; mode.</source>
<translation>Datei kann nur im &lt;b&gt;Entwurfsmodus&lt;/b&gt; bearbeitet werden.</translation>
@@ -21515,8 +21528,12 @@ Haben Sie Qemu gestartet?</translation>
</message>
<message>
<location line="+1"/>
- <source>Creates a mobile Qt Gui Application with one form.</source>
- <translation>Erstellt eine mobile Qt-Gui-Anwendung mit einem Formular.</translation>
+ <source>Creates a Qt application optimized for mobile devices with a Qt Designer-based main window.
+
+Preselects Qt for Simulator and mobile targets if available</source>
+ <translation>Erstellt eine Qt-Anwendung für mobile Geräte mit einem Qt Designer-basierten Hauptfenster.
+
+Wählt Qt-Versionen für Simulator und mobile Ziele aus, sofern sie verfügbar sind.</translation>
</message>
</context>
<context>
@@ -21594,7 +21611,7 @@ Haben Sie Qemu gestartet?</translation>
</message>
<message>
<location/>
- <source>Import existing shadow build...</source>
+ <source>Import Existing Shadow Build...</source>
<translation>Importiere existierenden Shadow-Build...</translation>
</message>
</context>
@@ -21673,8 +21690,9 @@ Haben Sie Qemu gestartet?</translation>
</message>
<message>
<location filename="customwizard_tr.h" line="+1"/>
- <source>Creates a plug-in for the QML runtime.</source>
- <translation>Erzeugt ein Plugin fĂĽr die QML-Laufzeitumgebung.</translation>
+ <source>Creates a C++ plugin to extend the funtionality of the QML runtime.</source>
+ <oldsource>Creates a plug-in for the QML runtime.</oldsource>
+ <translation>Erstellt ein C++-Plugin zur Erweiterung der Funktionalität der QML-Laufzeitumgebung.</translation>
</message>
<message>
<location line="+1"/>
@@ -21799,18 +21817,18 @@ Haben Sie Qemu gestartet?</translation>
</message>
<message>
<location/>
- <source>Save public Key...</source>
- <translation>Ă–ffentlichen SchlĂĽssel speichern...</translation>
+ <source>Close</source>
+ <translation>SchlieĂźen</translation>
</message>
<message>
<location/>
- <source>Save private Key...</source>
- <translation>Privaten SchlĂĽssel speichern...</translation>
+ <source>Save Public Key...</source>
+ <translation>Ă–ffentlichen SchlĂĽssel speichern...</translation>
</message>
<message>
<location/>
- <source>Close</source>
- <translation>SchlieĂźen</translation>
+ <source>Save Private Key...</source>
+ <translation>Privaten SchlĂĽssel speichern...</translation>
</message>
</context>
<context>
@@ -22183,12 +22201,12 @@ Namen &lt;E-Mail&gt; Alias &lt;E-Mail?</translation>
<name>Qt4ProjectManager::Internal::MaemoSshConfigDialog</name>
<message>
<location filename="../../../src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.cpp" line="+124"/>
- <source>Save public key file</source>
+ <source>Save Public Key File</source>
<translation>Ă–ffentlichen SchlĂĽssel speichern</translation>
</message>
<message>
<location line="+0"/>
- <source>Save private key file</source>
+ <source>Save Private Key File</source>
<translation>Privaten SchlĂĽssel speichern</translation>
</message>
<message>
@@ -22432,7 +22450,7 @@ Namen &lt;E-Mail&gt; Alias &lt;E-Mail?</translation>
<context>
<name>CodePaster::FileShareProtocolSettingsPage</name>
<message>
- <location filename="../../../src/plugins/cpaster/fileshareprotocolsettingspage.cpp" line="+105"/>
+ <location filename="../../../src/plugins/cpaster/fileshareprotocolsettingspage.cpp" line="+110"/>
<source>Fileshare</source>
<translation>Dateibasiert</translation>
</message>
@@ -22490,11 +22508,11 @@ Namen &lt;E-Mail&gt; Alias &lt;E-Mail?</translation>
<name>TextEditor::Internal::TextEditorPlugin</name>
<message>
<location filename="../../../src/plugins/texteditor/texteditorplugin.cpp" line="+94"/>
- <source>Creates a text file (.txt).</source>
- <translation>Erzeugt eine Textdatei (.txt)</translation>
+ <source>Creates a text file. The default file extension is &lt;tt&gt;.txt&lt;/tt&gt;. You can specify a different extension as part of the filename.</source>
+ <translation>Erstellt eine Textdatei mit der Erweiterung &lt;tt&gt;.txt&lt;/tt&gt;. Sie können eine andere Erweiterung als Teil des Dateinamens angeben.</translation>
</message>
<message>
- <location line="+1"/>
+ <location line="+2"/>
<source>Text File</source>
<translation>Textdatei</translation>
</message>
@@ -22711,4 +22729,12 @@ Ids mĂĽssen mit einem Kleinbuchstaben beginnen und dĂĽrfen nur alphanumerische Z
<translation>Es konnte kein Element des Typs %1 erzeugt werden</translation>
</message>
</context>
+<context>
+ <name>QmlDesigner::QmlModelView</name>
+ <message>
+ <location filename="../../../src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp" line="+179"/>
+ <source>Invalid Id</source>
+ <translation>UngĂĽltige Id</translation>
+ </message>
+</context>
</TS>
diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp
index 216fd7a738..3cb6162d4f 100644
--- a/src/libs/qmljs/qmljsdocument.cpp
+++ b/src/libs/qmljs/qmljsdocument.cpp
@@ -251,8 +251,14 @@ Snapshot::~Snapshot()
void Snapshot::insert(const Document::Ptr &document)
{
if (document && (document->qmlProgram() || document->jsProgram())) {
- _documents.insert(document->fileName(), document);
- _documentsByPath.insert(document->path(), document);
+ const QString fileName = document->fileName();
+ const QString path = document->path();
+
+ Document::Ptr old = _documents.value(fileName);
+ if (old)
+ _documentsByPath.remove(path, old);
+ _documentsByPath.insert(path, document);
+ _documents.insert(fileName, document);
}
}
diff --git a/src/libs/utils/pathchooser.cpp b/src/libs/utils/pathchooser.cpp
index 75bbafa2a4..06dadcd4b3 100644
--- a/src/libs/utils/pathchooser.cpp
+++ b/src/libs/utils/pathchooser.cpp
@@ -171,13 +171,13 @@ void PathChooser::slotBrowse()
switch (m_d->m_acceptingKind) {
case PathChooser::Directory:
newPath = QFileDialog::getExistingDirectory(this,
- makeDialogTitle(tr("Choose a directory")), predefined);
+ makeDialogTitle(tr("Choose Directory")), predefined);
break;
case PathChooser::File: // fall through
case PathChooser::Command:
newPath = QFileDialog::getOpenFileName(this,
- makeDialogTitle(tr("Choose a file")), predefined,
+ makeDialogTitle(tr("Choose File")), predefined,
m_d->m_dialogFilter);
break;
diff --git a/src/libs/utils/pathlisteditor.cpp b/src/libs/utils/pathlisteditor.cpp
index 9525f209db..b76721e72a 100644
--- a/src/libs/utils/pathlisteditor.cpp
+++ b/src/libs/utils/pathlisteditor.cpp
@@ -121,7 +121,7 @@ PathListEditor::PathListEditor(QWidget *parent) :
connect(m_d->toolButton, SIGNAL(clicked()), this, SLOT(slotInsert()));
addAction(tr("Add..."), this, SLOT(slotAdd()));
- addAction(tr("Delete line"), this, SLOT(deletePathAtCursor()));
+ addAction(tr("Delete Line"), this, SLOT(deletePathAtCursor()));
addAction(tr("Clear"), this, SLOT(clear()));
}
diff --git a/src/plugins/bookmarks/bookmarksplugin.cpp b/src/plugins/bookmarks/bookmarksplugin.cpp
index 15eb13a8c1..3f5ef3f6c0 100644
--- a/src/plugins/bookmarks/bookmarksplugin.cpp
+++ b/src/plugins/bookmarks/bookmarksplugin.cpp
@@ -126,12 +126,12 @@ bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *)
mbm->addAction(cmd);
//Previous Doc
- m_docPrevAction = new QAction(tr("Previous Bookmark In Document"), this);
+ m_docPrevAction = new QAction(tr("Previous Bookmark in Document"), this);
cmd = am->registerAction(m_docPrevAction, BOOKMARKS_PREVDOC_ACTION, globalcontext);
mbm->addAction(cmd);
//Next Doc
- m_docNextAction = new QAction(tr("Next Bookmark In Document"), this);
+ m_docNextAction = new QAction(tr("Next Bookmark in Document"), this);
cmd = am->registerAction(m_docNextAction, BOOKMARKS_NEXTDOC_ACTION, globalcontext);
mbm->addAction(cmd);
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index dcc25e3c3f..f45a479008 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -312,7 +312,7 @@ CMakeRunConfigurationWidget::CMakeRunConfigurationWidget(CMakeRunConfiguration *
m_workingDirectoryEdit = new Utils::PathChooser();
m_workingDirectoryEdit->setPath(m_cmakeRunConfiguration->workingDirectory());
m_workingDirectoryEdit->setExpectedKind(Utils::PathChooser::Directory);
- m_workingDirectoryEdit->setPromptDialogTitle(tr("Select the working directory"));
+ m_workingDirectoryEdit->setPromptDialogTitle(tr("Select Working Directory"));
QToolButton *resetButton = new QToolButton();
resetButton->setToolTip(tr("Reset to default"));
diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h
index c976cbef92..9bce32adc1 100644
--- a/src/plugins/coreplugin/coreconstants.h
+++ b/src/plugins/coreplugin/coreconstants.h
@@ -141,6 +141,7 @@ const char * const GOTO_OTHER_SPLIT = "QtCreator.GotoOtherSplit";
const char * const SAVEASDEFAULT = "QtCreator.SaveAsDefaultLayout";
const char * const RESTOREDEFAULT = "QtCreator.RestoreDefaultLayout";
const char * const CLOSE = "QtCreator.Close";
+const char * const CLOSE_ALTERNATIVE = "QtCreator.Close_Alternative"; // temporary, see QTCREATORBUG-72
const char * const CLOSEALL = "QtCreator.CloseAll";
const char * const CLOSEOTHERS = "QtCreator.CloseOthers";
const char * const GOTONEXT = "QtCreator.GotoNext";
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index d596348202..0c14e43a31 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -382,6 +382,7 @@ void SettingsDialog::updateEnabledTabs(Category *category, const QString &search
for (int i = 0; i < category->pages.size(); ++i) {
const IOptionsPage *page = category->pages.at(i);
const bool enabled = searchText.isEmpty()
+ || page->category().contains(searchText, Qt::CaseInsensitive)
|| page->displayName().contains(searchText, Qt::CaseInsensitive)
|| page->matches(searchText);
category->tabWidget->setTabEnabled(i, enabled);
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index da4bca7efd..a296741aa0 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -67,6 +67,7 @@
#include <QtCore/QSettings>
#include <QtGui/QAction>
+#include <QtGui/QShortcut>
#include <QtGui/QApplication>
#include <QtGui/QFileDialog>
#include <QtGui/QLayout>
@@ -311,16 +312,21 @@ EditorManager::EditorManager(ICore *core, QWidget *parent) :
// Close Action
cmd = am->registerAction(m_d->m_closeCurrentEditorAction, Constants::CLOSE, editManagerContext);
-#ifdef Q_WS_WIN
- cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+F4")));
-#else
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+W")));
-#endif
cmd->setAttribute(Core::Command::CA_UpdateText);
cmd->setDefaultText(m_d->m_closeCurrentEditorAction->text());
mfile->addAction(cmd, Constants::G_FILE_CLOSE);
connect(m_d->m_closeCurrentEditorAction, SIGNAL(triggered()), this, SLOT(closeEditor()));
+#ifdef Q_WS_WIN
+ // workaround for QTCREATORBUG-72
+ QShortcut *sc = new QShortcut(parent);
+ cmd = am->registerShortcut(sc, Constants::CLOSE_ALTERNATIVE, editManagerContext);
+ cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+F4")));
+ cmd->setDefaultText(EditorManager::tr("Close"));
+ connect(sc, SIGNAL(activated()), this, SLOT(closeEditor()));
+#endif
+
// Close All Action
cmd = am->registerAction(m_d->m_closeAllEditorsAction, Constants::CLOSEALL, editManagerContext);
cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+W")));
@@ -733,6 +739,8 @@ void EditorManager::closeOtherEditors()
// SLOT connected to action
void EditorManager::closeEditor()
{
+ if (!m_d->m_currentEditor)
+ return;
addCurrentPositionToNavigationHistory();
closeEditor(m_d->m_currentEditor);
}
diff --git a/src/plugins/coreplugin/generalsettings.ui b/src/plugins/coreplugin/generalsettings.ui
index 73fb6764fb..a44dfdef5a 100644
--- a/src/plugins/coreplugin/generalsettings.ui
+++ b/src/plugins/coreplugin/generalsettings.ui
@@ -270,17 +270,17 @@
</property>
<item>
<property name="text">
- <string>Always ask</string>
+ <string>Always Ask</string>
</property>
</item>
<item>
<property name="text">
- <string>Reload all unchanged editors</string>
+ <string>Reload All Unchanged Editors</string>
</property>
</item>
<item>
<property name="text">
- <string>Ignore modifications</string>
+ <string>Ignore Modifications</string>
</property>
</item>
</widget>
diff --git a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
index f678e7a015..ea19de63e2 100644
--- a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
+++ b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
@@ -72,6 +72,11 @@ FileShareProtocolSettingsWidget::FileShareProtocolSettingsWidget(QWidget *parent
QWidget(parent)
{
m_ui.setupUi(this);
+
+ // Add a space in front of the suffix
+ QString suffix = m_ui.displayCountSpinBox->suffix();
+ suffix.prepend(QLatin1Char(' '));
+ m_ui.displayCountSpinBox->setSuffix(suffix);
}
void FileShareProtocolSettingsWidget::setSettings(const FileShareProtocolSettings &s)
diff --git a/src/plugins/cpaster/pastebindotcomsettings.ui b/src/plugins/cpaster/pastebindotcomsettings.ui
index 3f2fd6c773..73844e4d5e 100644
--- a/src/plugins/cpaster/pastebindotcomsettings.ui
+++ b/src/plugins/cpaster/pastebindotcomsettings.ui
@@ -51,15 +51,18 @@
<widget class="QLabel" name="explanatoryTextLabel">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;&lt;a href=&quot;http://pastebin.com&quot;&gt;pastebin.com&lt;/a&gt; allows to send posts to custom subdomains (eg. qtcreator.pastebin.com). Fill in the desired prefix.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;http://pastebin.com&quot;&gt;pastebin.com&lt;/a&gt; allows to send posts to custom subdomains (eg. creator.pastebin.com). Fill in the desired prefix.&lt;/p&gt;
&lt;p&gt;Note that the plugin will use this for posting as well as fetching.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
- <enum>Qt::RichText</enum>
+ <enum>Qt::AutoText</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
+ <property name="openExternalLinks">
+ <bool>true</bool>
+ </property>
</widget>
</item>
<item>
diff --git a/src/plugins/cpaster/pasteview.ui b/src/plugins/cpaster/pasteview.ui
index b7764d29d2..80dc556023 100644
--- a/src/plugins/cpaster/pasteview.ui
+++ b/src/plugins/cpaster/pasteview.ui
@@ -97,7 +97,7 @@ p, li { white-space: pre-wrap; }
</sizepolicy>
</property>
<property name="title">
- <string>Parts to send to server</string>
+ <string>Parts to Send to Server</string>
</property>
<property name="flat">
<bool>true</bool>
diff --git a/src/plugins/cpaster/settingspage.ui b/src/plugins/cpaster/settingspage.ui
index e4566d219e..043f046d9b 100644
--- a/src/plugins/cpaster/settingspage.ui
+++ b/src/plugins/cpaster/settingspage.ui
@@ -27,14 +27,14 @@
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="displayBox">
<property name="text">
- <string>Display Output Pane after sending a post</string>
+ <string>Display Output pane after sending a post</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="clipboardBox">
<property name="text">
- <string>Copy Paste URL to clipboard</string>
+ <string>Copy-paste URL to clipboard</string>
</property>
</widget>
</item>
diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp
index 57528bf6f7..c7a1398b25 100644
--- a/src/plugins/cppeditor/cppplugin.cpp
+++ b/src/plugins/cppeditor/cppplugin.cpp
@@ -275,7 +275,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess
QList<int> globalContext;
globalContext.append(Core::Constants::C_GLOBAL_ID);
cppToolsMenu->addAction(createSeparator(am, this, globalContext, CppEditor::Constants::SEPARATOR2));
- m_updateCodeModelAction = new QAction(tr("Update code model"), this);
+ m_updateCodeModelAction = new QAction(tr("Update Code Model"), this);
cmd = am->registerAction(m_updateCodeModelAction, QLatin1String(Constants::UPDATE_CODEMODEL), globalContext);
CppTools::CppModelManagerInterface *cppModelManager = CppTools::CppModelManagerInterface::instance();
connect(m_updateCodeModelAction, SIGNAL(triggered()), cppModelManager, SLOT(updateModifiedSourceFiles()));
diff --git a/src/plugins/cppeditor/cppquickfix.cpp b/src/plugins/cppeditor/cppquickfix.cpp
index 5a7b97e872..def7d89d25 100644
--- a/src/plugins/cppeditor/cppquickfix.cpp
+++ b/src/plugins/cppeditor/cppquickfix.cpp
@@ -49,6 +49,7 @@
#include <cpptools/cpptoolsconstants.h>
#include <cpptools/cppmodelmanagerinterface.h>
+#include <QtGui/QApplication>
#include <QtGui/QTextBlock>
using namespace CppEditor::Internal;
@@ -129,7 +130,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Rewrite using ") + replacement; // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Rewrite Using %1").arg(replacement);
}
virtual int match(const QList<AST *> &path)
@@ -223,9 +224,9 @@ public:
virtual QString description() const
{
if (replacement.isEmpty())
- return QLatin1String("Flip");
+ return QApplication::translate("CppTools::QuickFix", "Swap Operands");
else
- return QLatin1String("Flip to use ") + replacement; // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Rewrite Using %1").arg(replacement);
}
virtual int match(const QList<AST *> &path)
@@ -297,7 +298,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Rewrite condition using ||"); // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Rewrite Condition Using ||");
}
virtual int match(const QList<AST *> &path)
@@ -358,7 +359,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Split declaration"); // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Split Declaration");
}
bool checkDeclaration(SimpleDeclarationAST *declaration) const
@@ -464,7 +465,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Add curly braces"); // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Add Curly Braces");
}
virtual int match(const QList<AST *> &path)
@@ -524,7 +525,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Move declaration out of condition"); // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Move Declaration out of Condition");
}
virtual int match(const QList<AST *> &path)
@@ -587,7 +588,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Move declaration out of condition"); // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Move Declaration out of Condition");
}
virtual int match(const QList<AST *> &path)
@@ -672,7 +673,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Split if statement"); // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Split if Statement");
}
virtual int match(const QList<AST *> &path)
@@ -782,7 +783,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Enclose in QLatin1String(...)"); // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Enclose in QLatin1String(...)");
}
virtual int match(const QList<AST *> &path)
@@ -849,7 +850,9 @@ public:
{}
virtual QString description() const
- { return QLatin1String("Convert to Objective-C string literal"); }// ### tr?
+ {
+ return QApplication::translate("CppTools::QuickFix", "Convert to Objective-C String Literal");
+ }
virtual int match(const QList<AST *> &path)
{
@@ -922,7 +925,7 @@ public:
virtual QString description() const
{
- return QLatin1String("Use fast string concatenation with %"); // ### tr?
+ return QApplication::translate("CppTools::QuickFix", "Use Fast String Concatenation with %");
}
virtual int match(const QList<AST *> &path)
diff --git a/src/plugins/cpptools/completionsettingspage.ui b/src/plugins/cpptools/completionsettingspage.ui
index 4167db7c3d..98e0da2bc6 100644
--- a/src/plugins/cpptools/completionsettingspage.ui
+++ b/src/plugins/cpptools/completionsettingspage.ui
@@ -65,7 +65,7 @@
</item>
<item>
<property name="text">
- <string>First letter</string>
+ <string>First Letter</string>
</property>
</item>
</widget>
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index db982c6ee8..2a10677cb3 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -272,7 +272,7 @@ void CppFileSettingsWidget::slotEdit()
return;
}
// Pick a file name and write new template, edit with C++
- path = QFileDialog::getSaveFileName(this, tr("Choose a location for the new license template file"));
+ path = QFileDialog::getSaveFileName(this, tr("Choose Location for New License Template File"));
if (path.isEmpty())
return;
QFile file(path);
diff --git a/src/plugins/cvs/checkoutwizard.cpp b/src/plugins/cvs/checkoutwizard.cpp
index ed70c63c66..b7e81e711c 100644
--- a/src/plugins/cvs/checkoutwizard.cpp
+++ b/src/plugins/cvs/checkoutwizard.cpp
@@ -53,7 +53,7 @@ QIcon CheckoutWizard::icon() const
QString CheckoutWizard::description() const
{
- return tr("Checks out a project from a CVS repository and tries to load the contained project.");
+ return tr("Checks out a CVS repository and tries to load the contained project.");
}
QString CheckoutWizard::displayName() const
diff --git a/src/plugins/cvs/settingspage.ui b/src/plugins/cvs/settingspage.ui
index 17edd2a71f..4f1ebfd394 100644
--- a/src/plugins/cvs/settingspage.ui
+++ b/src/plugins/cvs/settingspage.ui
@@ -66,7 +66,7 @@
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="describeByCommitIdCheckBox">
<property name="toolTip">
- <string>When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit id). Otherwise, only the respective file will be displayed.</string>
+ <string>When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit ID). Otherwise, only the respective file will be displayed.</string>
</property>
<property name="text">
<string>Describe all files matching commit id</string>
diff --git a/src/plugins/debugger/attachexternaldialog.ui b/src/plugins/debugger/attachexternaldialog.ui
index 143ebb2a57..5e157a2f3c 100644
--- a/src/plugins/debugger/attachexternaldialog.ui
+++ b/src/plugins/debugger/attachexternaldialog.ui
@@ -28,7 +28,7 @@
<item row="0" column="0">
<widget class="QLabel" name="pidLabel">
<property name="text">
- <string>Attach to Process ID:</string>
+ <string>Attach to process ID:</string>
</property>
</widget>
</item>
diff --git a/src/plugins/debugger/cdb/cdboptionspagewidget.ui b/src/plugins/debugger/cdb/cdboptionspagewidget.ui
index 5ff8605d08..c84109e3a7 100644
--- a/src/plugins/debugger/cdb/cdboptionspagewidget.ui
+++ b/src/plugins/debugger/cdb/cdboptionspagewidget.ui
@@ -19,7 +19,7 @@
<string>These options take effect at the next start of Qt Creator.</string>
</property>
<property name="title">
- <string extracomment="Placeholder">Cdb</string>
+ <string extracomment="Placeholder">CDB</string>
</property>
<property name="checkable">
<bool>true</bool>
@@ -82,13 +82,13 @@
<item>
<widget class="QGroupBox" name="variousOptionsGroupBox">
<property name="title">
- <string>Other options</string>
+ <string>Other Options</string>
</property>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="verboseSymbolLoadingCheckBox">
<property name="text">
- <string>Verbose Symbol Loading</string>
+ <string>Verbose symbol loading</string>
</property>
</widget>
</item>
diff --git a/src/plugins/debugger/commonoptionspage.ui b/src/plugins/debugger/commonoptionspage.ui
index fc67708b4e..973885cc10 100644
--- a/src/plugins/debugger/commonoptionspage.ui
+++ b/src/plugins/debugger/commonoptionspage.ui
@@ -33,7 +33,7 @@
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
- <string>Gui behavior</string>
+ <string>GUI Behavior</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="2">
@@ -66,7 +66,7 @@
<string>Register Qt Creator for debugging crashed applications.</string>
</property>
<property name="text">
- <string>Use Creator for post-mortem debugging</string>
+ <string>Use Qt Creator for post-mortem debugging</string>
</property>
</widget>
</item>
diff --git a/src/plugins/debugger/dumperoptionpage.ui b/src/plugins/debugger/dumperoptionpage.ui
index 7fd962fd41..797601b656 100644
--- a/src/plugins/debugger/dumperoptionpage.ui
+++ b/src/plugins/debugger/dumperoptionpage.ui
@@ -21,7 +21,7 @@
<item>
<widget class="QGroupBox" name="debuggingHelperGroupBox">
<property name="title">
- <string>Use debugging helper</string>
+ <string>Use Debugging Helper</string>
</property>
<property name="checkable">
<bool>true</bool>
diff --git a/src/plugins/debugger/gdb/gdboptionspage.ui b/src/plugins/debugger/gdb/gdboptionspage.ui
index 90deb6b6dd..43ba556c0c 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.ui
+++ b/src/plugins/debugger/gdb/gdboptionspage.ui
@@ -135,7 +135,7 @@ name in different directories.</string>
<item>
<widget class="QGroupBox" name="groupBoxPluginDebugging">
<property name="title">
- <string>Behaviour of breakpoint setting in plugins</string>
+ <string>Behavior of Breakpoint Setting in Plugins</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
diff --git a/src/plugins/designer/cpp/cppsettingspagewidget.ui b/src/plugins/designer/cpp/cppsettingspagewidget.ui
index 1e2b089d0a..d34a4f86f4 100644
--- a/src/plugins/designer/cpp/cppsettingspagewidget.ui
+++ b/src/plugins/designer/cpp/cppsettingspagewidget.ui
@@ -32,7 +32,7 @@
<item>
<widget class="QRadioButton" name="multipleInheritanceButton">
<property name="text">
- <string>Multiple Inheritance</string>
+ <string>Multiple inheritance</string>
</property>
</widget>
</item>
diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp
index 177e44af48..51e45335f0 100644
--- a/src/plugins/designer/formeditorw.cpp
+++ b/src/plugins/designer/formeditorw.cpp
@@ -445,22 +445,22 @@ void FormEditorW::setupActions()
m_toolActionIds.push_back(QLatin1String("FormEditor.WidgetEditor"));
createEditModeAction(m_actionGroupEditMode, m_contexts, am, medit,
- tr("Edit widgets"), m_toolActionIds.back(),
+ tr("Edit Widgets"), m_toolActionIds.back(),
EditModeWidgetEditor, QLatin1String("widgettool.png"), tr("F3"));
m_toolActionIds.push_back(QLatin1String("FormEditor.SignalsSlotsEditor"));
createEditModeAction(m_actionGroupEditMode, m_contexts, am, medit,
- tr("Edit signals/slots"), m_toolActionIds.back(),
+ tr("Edit Signals/Slots"), m_toolActionIds.back(),
EditModeSignalsSlotEditor, QLatin1String("signalslottool.png"), tr("F4"));
m_toolActionIds.push_back(QLatin1String("FormEditor.BuddyEditor"));
createEditModeAction(m_actionGroupEditMode, m_contexts, am, medit,
- tr("Edit buddies"), m_toolActionIds.back(),
+ tr("Edit Buddies"), m_toolActionIds.back(),
EditModeBuddyEditor, QLatin1String("buddytool.png"));
m_toolActionIds.push_back(QLatin1String("FormEditor.TabOrderEditor"));
createEditModeAction(m_actionGroupEditMode, m_contexts, am, medit,
- tr("Edit tab order"), m_toolActionIds.back(),
+ tr("Edit Tab Order"), m_toolActionIds.back(),
EditModeTabOrderEditor, QLatin1String("tabordertool.png"));
//tool actions
diff --git a/src/plugins/fakevim/fakevimactions.cpp b/src/plugins/fakevim/fakevimactions.cpp
index 9e63d548ca..8f9aeba53a 100644
--- a/src/plugins/fakevim/fakevimactions.cpp
+++ b/src/plugins/fakevim/fakevimactions.cpp
@@ -118,7 +118,7 @@ FakeVimSettings *theFakeVimSettings()
const QString group = _("FakeVim");
item = new SavedAction(instance);
item->setText(QCoreApplication::translate("FakeVim::Internal",
- "Use vim-style editing"));
+ "Use Vim-style Editing"));
item->setSettingsKey(group, _("UseFakeVim"));
item->setCheckable(true);
item->setValue(false);
diff --git a/src/plugins/fakevim/fakevimoptions.ui b/src/plugins/fakevim/fakevimoptions.ui
index a5355f7ea8..450a862906 100644
--- a/src/plugins/fakevim/fakevimoptions.ui
+++ b/src/plugins/fakevim/fakevimoptions.ui
@@ -200,21 +200,21 @@
<item>
<widget class="QPushButton" name="pushButtonCopyTextEditorSettings">
<property name="text">
- <string>Copy text editor settings</string>
+ <string>Copy Text Editor Settings</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonSetQtStyle">
<property name="text">
- <string>Set Qt style</string>
+ <string>Set Qt Style</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonSetPlainStyle">
<property name="text">
- <string>Set plain style</string>
+ <string>Set Plain Style</string>
</property>
</widget>
</item>
diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.cpp b/src/plugins/genericprojectmanager/genericprojectmanager.cpp
index 0ad966a730..5f5737bf65 100644
--- a/src/plugins/genericprojectmanager/genericprojectmanager.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectmanager.cpp
@@ -32,8 +32,11 @@
#include "genericproject.h"
#include <coreplugin/icore.h>
+#include <coreplugin/messagemanager.h>
#include <coreplugin/uniqueidmanager.h>
+#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h>
+#include <projectexplorer/session.h>
#include <QtDebug>
@@ -60,14 +63,21 @@ QString Manager::mimeType() const
ProjectExplorer::Project *Manager::openProject(const QString &fileName)
{
- QFileInfo fileInfo(fileName);
+ if (!QFileInfo(fileName).isFile())
+ return 0;
- if (fileInfo.isFile()) {
- GenericProject *project = new GenericProject(this, fileName);
- return project;
+ ProjectExplorer::ProjectExplorerPlugin *projectExplorer = ProjectExplorer::ProjectExplorerPlugin::instance();
+ foreach (ProjectExplorer::Project *pi, projectExplorer->session()->projects()) {
+ if (fileName == pi->file()->fileName()) {
+ Core::MessageManager *messageManager = Core::ICore::instance()->messageManager();
+ messageManager->printToOutputPanePopup(tr("Failed opening project '%1': Project already open")
+ .arg(QDir::toNativeSeparators(fileName)));
+ return 0;
+ }
}
- return 0;
+ GenericProject *project = new GenericProject(this, fileName);
+ return project;
}
void Manager::registerProject(GenericProject *project)
diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.h b/src/plugins/genericprojectmanager/genericprojectmanager.h
index 6e213afc77..1b99f008d1 100644
--- a/src/plugins/genericprojectmanager/genericprojectmanager.h
+++ b/src/plugins/genericprojectmanager/genericprojectmanager.h
@@ -37,7 +37,7 @@ namespace Internal {
class GenericProject;
-class Manager: public ProjectExplorer::IProjectManager
+class Manager : public ProjectExplorer::IProjectManager
{
Q_OBJECT
diff --git a/src/plugins/git/branchdialog.ui b/src/plugins/git/branchdialog.ui
index 45e6c65c7c..872f7b19fa 100644
--- a/src/plugins/git/branchdialog.ui
+++ b/src/plugins/git/branchdialog.ui
@@ -42,7 +42,7 @@
<item>
<widget class="QGroupBox" name="remoteBranchGroupBox">
<property name="title">
- <string>Remote branches</string>
+ <string>Remote Branches</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
diff --git a/src/plugins/git/changeselectiondialog.cpp b/src/plugins/git/changeselectiondialog.cpp
index 84130ee798..b762369b4f 100644
--- a/src/plugins/git/changeselectiondialog.cpp
+++ b/src/plugins/git/changeselectiondialog.cpp
@@ -40,7 +40,7 @@ ChangeSelectionDialog::ChangeSelectionDialog(QWidget *parent)
{
m_ui.setupUi(this);
connect(m_ui.repositoryButton, SIGNAL(clicked()), this, SLOT(selectWorkingDirectory()));
- setWindowTitle(tr("Select a Git commit"));
+ setWindowTitle(tr("Select a Git Commit"));
}
QString ChangeSelectionDialog::change() const
@@ -62,7 +62,7 @@ void ChangeSelectionDialog::selectWorkingDirectory()
{
static QString location;
location = QFileDialog::getExistingDirectory(this,
- tr("Select Git repository"),
+ tr("Select Git Repository"),
location);
if (location.isEmpty())
return;
diff --git a/src/plugins/git/changeselectiondialog.ui b/src/plugins/git/changeselectiondialog.ui
index 26ac65cb86..b2f368e686 100644
--- a/src/plugins/git/changeselectiondialog.ui
+++ b/src/plugins/git/changeselectiondialog.ui
@@ -17,7 +17,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
- <string>Repository Location:</string>
+ <string>Repository location:</string>
</property>
</widget>
</item>
diff --git a/src/plugins/git/clonewizard.cpp b/src/plugins/git/clonewizard.cpp
index 60c9c13289..e633da5cfc 100644
--- a/src/plugins/git/clonewizard.cpp
+++ b/src/plugins/git/clonewizard.cpp
@@ -52,7 +52,7 @@ QIcon CloneWizard::icon() const
QString CloneWizard::description() const
{
- return tr("Clones a project from a Git repository and tries to load the contained project.");
+ return tr("Clones a Git repository and tries to load the contained project.");
}
QString CloneWizard::displayName() const
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 8984813632..8248d18d0d 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -862,7 +862,7 @@ QString GitClient::synchronousStash(const QString &workingDirectory,
do {
if ((flags & StashPromptDescription)) {
if (!inputText(Core::ICore::instance()->mainWindow(),
- tr("Stash description"), tr("Description:"), &message))
+ tr("Stash Description"), tr("Description:"), &message))
break;
}
if (!executeSynchronousStash(workingDirectory, message))
diff --git a/src/plugins/git/gitorious/gitoriousclonewizard.cpp b/src/plugins/git/gitorious/gitoriousclonewizard.cpp
index 46a7efab9b..8c37d80e53 100644
--- a/src/plugins/git/gitorious/gitoriousclonewizard.cpp
+++ b/src/plugins/git/gitorious/gitoriousclonewizard.cpp
@@ -80,7 +80,7 @@ QIcon GitoriousCloneWizard::icon() const
QString GitoriousCloneWizard::description() const
{
- return tr("Clones a project from a Gitorious repository and tries to load the contained project.");
+ return tr("Clones a Gitorious repository and tries to load the contained project.");
}
QString GitoriousCloneWizard::displayName() const
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index c7fc2465fa..b54607b447 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -420,7 +420,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
ActionCommandPair actionCommand =
createRepositoryAction(actionManager, gitContainer,
- tr("Stash snapshot..."), QLatin1String("Git.StashSnapshot"),
+ tr("Stash Snapshot..."), QLatin1String("Git.StashSnapshot"),
globalcontext, true, SLOT(stashSnapshot()));
actionCommand.first->setToolTip(tr("Saves the current state of your work."));
diff --git a/src/plugins/git/settingspage.ui b/src/plugins/git/settingspage.ui
index 159c3774f3..072bb6f39d 100644
--- a/src/plugins/git/settingspage.ui
+++ b/src/plugins/git/settingspage.ui
@@ -17,7 +17,7 @@
<bool>true</bool>
</property>
<property name="title">
- <string>Environment variables</string>
+ <string>Environment Variables</string>
</property>
<property name="checkable">
<bool>true</bool>
@@ -38,7 +38,7 @@
<item>
<widget class="QPushButton" name="adoptButton">
<property name="text">
- <string>From system</string>
+ <string>From System</string>
</property>
</widget>
</item>
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index 50709e8c37..79707b977a 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -68,7 +68,7 @@ QString GeneralSettingsPage::id() const
QString GeneralSettingsPage::displayName() const
{
- return tr("General settings");
+ return tr("General Settings");
}
QString GeneralSettingsPage::category() const
diff --git a/src/plugins/help/generalsettingspage.ui b/src/plugins/help/generalsettingspage.ui
index d70d419fe6..7a99e24345 100644
--- a/src/plugins/help/generalsettingspage.ui
+++ b/src/plugins/help/generalsettingspage.ui
@@ -156,17 +156,17 @@
</property>
<item>
<property name="text">
- <string>Show side-by-side if possible</string>
+ <string>Show Side-by-Side if Possible</string>
</property>
</item>
<item>
<property name="text">
- <string>Always show side-by-side</string>
+ <string>Always Show Side-by-Side</string>
</property>
</item>
<item>
<property name="text">
- <string>Always start full help</string>
+ <string>Always Start Full Help</string>
</property>
</item>
</widget>
@@ -194,17 +194,17 @@
</property>
<item>
<property name="text">
- <string>Show my home page</string>
+ <string>Show My Home Page</string>
</property>
</item>
<item>
<property name="text">
- <string>Show a blank page</string>
+ <string>Show a Blank Page</string>
</property>
</item>
<item>
<property name="text">
- <string>Show my tabs from last session</string>
+ <string>Show My Tabs from Last Session</string>
</property>
</item>
</widget>
diff --git a/src/plugins/locator/directoryfilter.cpp b/src/plugins/locator/directoryfilter.cpp
index aa2dc8afc3..8f927d752b 100644
--- a/src/plugins/locator/directoryfilter.cpp
+++ b/src/plugins/locator/directoryfilter.cpp
@@ -145,7 +145,7 @@ bool DirectoryFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
void DirectoryFilter::addDirectory()
{
- QString dir = QFileDialog::getExistingDirectory(m_dialog, tr("Choose a directory to add"));
+ QString dir = QFileDialog::getExistingDirectory(m_dialog, tr("Select Directory"));
if (!dir.isEmpty()) {
m_ui.directoryList->addItem(dir);
}
@@ -156,7 +156,7 @@ void DirectoryFilter::editDirectory()
if (m_ui.directoryList->selectedItems().count() < 1)
return;
QListWidgetItem *currentItem = m_ui.directoryList->selectedItems().at(0);
- QString dir = QFileDialog::getExistingDirectory(m_dialog, tr("Choose a directory to add"),
+ QString dir = QFileDialog::getExistingDirectory(m_dialog, tr("Select Directory"),
currentItem->text());
if (!dir.isEmpty()) {
currentItem->setText(dir);
diff --git a/src/plugins/locator/directoryfilter.ui b/src/plugins/locator/directoryfilter.ui
index 8b8ddfe59a..2786e0515d 100644
--- a/src/plugins/locator/directoryfilter.ui
+++ b/src/plugins/locator/directoryfilter.ui
@@ -26,7 +26,7 @@
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
- <string>File Types:</string>
+ <string>File types:</string>
</property>
</widget>
</item>
diff --git a/src/plugins/locator/settingspage.cpp b/src/plugins/locator/settingspage.cpp
index 0dcfdb5cf9..1f913c144b 100644
--- a/src/plugins/locator/settingspage.cpp
+++ b/src/plugins/locator/settingspage.cpp
@@ -165,7 +165,7 @@ void SettingsPage::updateFilterList()
if (filter->isIncludedByDefault())
title = filter->displayName();
else
- title = tr("%1 (Prefix: %2)").arg(filter->displayName()).arg(filter->shortcutString());
+ title = tr("%1 (prefix: %2)").arg(filter->displayName()).arg(filter->shortcutString());
QListWidgetItem *item = new QListWidgetItem(title);
item->setData(Qt::UserRole, qVariantFromValue(filter));
m_ui.filterList->addItem(item);
diff --git a/src/plugins/mercurial/optionspage.ui b/src/plugins/mercurial/optionspage.ui
index 2afd9fe65a..248dbeeeb5 100644
--- a/src/plugins/mercurial/optionspage.ui
+++ b/src/plugins/mercurial/optionspage.ui
@@ -62,7 +62,7 @@
<string>Email to use by default on commit.</string>
</property>
<property name="text">
- <string>Default Email:</string>
+ <string>Default email:</string>
</property>
</widget>
</item>
diff --git a/src/plugins/perforce/settingspage.ui b/src/plugins/perforce/settingspage.ui
index 40fb16b72c..6f27041508 100644
--- a/src/plugins/perforce/settingspage.ui
+++ b/src/plugins/perforce/settingspage.ui
@@ -36,7 +36,7 @@
<bool>true</bool>
</property>
<property name="title">
- <string>Environment variables</string>
+ <string>Environment Variables</string>
</property>
<property name="checkable">
<bool>true</bool>
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 9fc730de21..cc8f99c4ce 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -133,7 +133,7 @@ void BuildSettingsWidget::setupUi()
if (!m_target->buildConfigurationFactory()) {
QLabel * noSettingsLabel(new QLabel(this));
- noSettingsLabel->setText(tr("No Build Settings available"));
+ noSettingsLabel->setText(tr("No build settings available"));
{
QFont f(noSettingsLabel->font());
f.setPointSizeF(f.pointSizeF() * 1.2);
@@ -146,7 +146,7 @@ void BuildSettingsWidget::setupUi()
{ // Edit Build Configuration row
QHBoxLayout *hbox = new QHBoxLayout();
hbox->setContentsMargins(m_leftMargin, 0, 0, 0);
- hbox->addWidget(new QLabel(tr("Edit Build Configuration:"), this));
+ hbox->addWidget(new QLabel(tr("Edit build configuration:"), this));
m_buildConfigurationComboBox = new QComboBox(this);
m_buildConfigurationComboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
m_buildConfigurationComboBox->setModel(new BuildConfigurationModel(m_target, this));
diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp
index 744b854900..ffb06bc9eb 100644
--- a/src/plugins/projectexplorer/buildstepspage.cpp
+++ b/src/plugins/projectexplorer/buildstepspage.cpp
@@ -302,7 +302,7 @@ void BuildStepsPage::setupUi()
QHBoxLayout *hboxLayout = new QHBoxLayout();
hboxLayout->setContentsMargins(m_leftMargin, 4, 0, 0);
m_addButton = new QPushButton(this);
- m_addButton->setText(m_type == Clean ? tr("Add clean step") : tr("Add build step"));
+ m_addButton->setText(m_type == Clean ? tr("Add Clean Step") : tr("Add Build Step"));
m_addButton->setMenu(new QMenu(this));
hboxLayout->addWidget(m_addButton);
diff --git a/src/plugins/projectexplorer/processstep.ui b/src/plugins/projectexplorer/processstep.ui
index 8d049ed363..fc2e943ab1 100644
--- a/src/plugins/projectexplorer/processstep.ui
+++ b/src/plugins/projectexplorer/processstep.ui
@@ -14,7 +14,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
- <string>Enable Custom Process Step</string>
+ <string>Enable custom process step</string>
</property>
</widget>
</item>
@@ -48,7 +48,7 @@
<item row="3" column="0">
<widget class="QLabel" name="workingDirecoryLabel">
<property name="text">
- <string>Working Directory:</string>
+ <string>Working directory:</string>
</property>
</widget>
</item>
@@ -58,7 +58,7 @@
<item row="4" column="0">
<widget class="QLabel" name="commandArgumentsLabel">
<property name="text">
- <string>Command Arguments:</string>
+ <string>Command arguments:</string>
</property>
</widget>
</item>
diff --git a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
index b9da6c86f1..0237c40ded 100644
--- a/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/itemcreatortool.cpp
@@ -170,7 +170,7 @@ void ItemCreatorTool::createAtItem(const QRectF &rect)
return;
if (list.first() == "item") {
RewriterTransaction transaction = view()->beginRewriterTransaction();
- ItemLibraryEntry itemLibraryEntry = view()->model()->metaInfo().itemLibraryInfo().entry(list.at(1));
+ ItemLibraryEntry itemLibraryEntry = view()->model()->metaInfo().itemLibraryInfo()->entry(list.at(1));
QmlItemNode newNode = view()->createQmlItemNode(itemLibraryEntry, pos, parentNode);
newNode.modelNode().variantProperty("width") = rect.width();
newNode.modelNode().variantProperty("height") = rect.height();
diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
index d56c1bce82..3c69319769 100644
--- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
+++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
@@ -344,7 +344,7 @@ void DesignDocumentController::loadCurrentModel()
m_d->model->setMasterModel(m_d->masterModel.data());
m_d->model->attachView(m_d->navigator.data());
- m_d->itemLibrary->setMetaInfo(m_d->model->metaInfo());
+ m_d->itemLibrary->setItemLibraryInfo(m_d->model->metaInfo().itemLibraryInfo());
m_d->itemLibrary->setResourcePath(QFileInfo(m_d->fileName).absolutePath());
if (!m_d->componentAction) {
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp
index 0df2950211..a812f29868 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.cpp
@@ -101,6 +101,7 @@ public:
Utils::FilterLineEdit *m_lineEdit;
QDeclarativeView *m_itemsView;
Internal::ItemLibraryTreeView *m_resourcesView;
+ QWeakPointer<ItemLibraryInfo> m_itemLibraryInfo;
QSize m_itemIconSize, m_resIconSize;
MyFileIconProvider m_iconProvider;
@@ -233,9 +234,20 @@ ItemLibrary::~ItemLibrary()
delete m_d;
}
-void ItemLibrary::setMetaInfo(const MetaInfo &metaInfo)
+void ItemLibrary::setItemLibraryInfo(ItemLibraryInfo *itemLibraryInfo)
{
- m_d->m_itemLibraryModel->update(metaInfo);
+ if (m_d->m_itemLibraryInfo.data() == itemLibraryInfo)
+ return;
+
+ if (m_d->m_itemLibraryInfo)
+ disconnect(m_d->m_itemLibraryInfo.data(), SIGNAL(entriesChanged()),
+ this, SLOT(updateModel()));
+ m_d->m_itemLibraryInfo = itemLibraryInfo;
+ if (itemLibraryInfo)
+ connect(m_d->m_itemLibraryInfo.data(), SIGNAL(entriesChanged()),
+ this, SLOT(updateModel()));
+
+ updateModel();
updateSearch();
}
@@ -262,6 +274,12 @@ void ItemLibrary::setSearchFilter(const QString &searchFilter)
}
}
+void ItemLibrary::updateModel()
+{
+ m_d->m_itemLibraryModel->update(m_d->m_itemLibraryInfo.data());
+ updateSearch();
+}
+
void ItemLibrary::updateSearch()
{
setSearchFilter(m_d->m_lineEdit->text());
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h
index 71f4fb6fb2..26637e5a40 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrary.h
@@ -30,6 +30,7 @@
#ifndef ITEMLIBRARY_H
#define ITEMLIBRARY_H
+#include "itemlibraryinfo.h"
#include <QtGui/QFrame>
namespace QmlDesigner {
@@ -47,10 +48,11 @@ public:
ItemLibrary(QWidget *parent = 0);
virtual ~ItemLibrary();
- void setMetaInfo(const MetaInfo &metaInfo);
+ void setItemLibraryInfo(ItemLibraryInfo *itemLibraryInfo);
public Q_SLOTS:
void setSearchFilter(const QString &searchFilter);
+ void updateModel();
void updateSearch();
void clearLineEditFocus();
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
index 0ac8a3d4d6..28764e0ad9 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp
@@ -28,7 +28,7 @@
**************************************************************************/
#include "itemlibrarymodel.h"
-#include "metainfo.h"
+#include "itemlibraryinfo.h"
#include <QVariant>
#include <QMimeData>
@@ -317,7 +317,6 @@ bool ItemLibrarySectionModel::operator<(const ItemLibrarySectionModel &other) co
ItemLibraryModel::ItemLibraryModel(QScriptEngine *scriptEngine, QObject *parent)
: ItemLibrarySortedModel<ItemLibrarySectionModel>(parent),
m_scriptEngine(scriptEngine),
- m_metaInfo(0),
m_searchText(""),
m_itemIconSize(64, 64),
m_nextLibId(0)
@@ -327,8 +326,6 @@ ItemLibraryModel::ItemLibraryModel(QScriptEngine *scriptEngine, QObject *parent)
ItemLibraryModel::~ItemLibraryModel()
{
- if (m_metaInfo)
- delete m_metaInfo;
}
@@ -387,7 +384,7 @@ bool ItemLibraryModel::isItemVisible(int itemLibId)
return elementModel(sectionLibId)->isItemVisible(itemLibId);
}
-void ItemLibraryModel::update(const MetaInfo &metaInfo)
+void ItemLibraryModel::update(ItemLibraryInfo *itemLibraryInfo)
{
QMap<QString, int> sections;
@@ -396,13 +393,7 @@ void ItemLibraryModel::update(const MetaInfo &metaInfo)
m_sections.clear();
m_nextLibId = 0;
- if (!m_metaInfo) {
- m_metaInfo = new MetaInfo(metaInfo);
- } else {
- *m_metaInfo = metaInfo;
- }
-
- foreach (ItemLibraryEntry entry, metaInfo.itemLibraryInfo().entries()) {
+ foreach (ItemLibraryEntry entry, itemLibraryInfo->entries()) {
QString itemSectionName = entry.category();
ItemLibrarySectionModel *sectionModel;
ItemLibraryItemModel *itemModel;
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h
index 693680d2b8..896710f411 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.h
@@ -40,7 +40,7 @@ QT_FORWARD_DECLARE_CLASS(QMimeData);
namespace QmlDesigner {
-class MetaInfo;
+class ItemLibraryInfo;
class ItemLibraryEntry;
namespace Internal {
@@ -131,7 +131,7 @@ public:
QString searchText() const;
- void update(const MetaInfo &metaInfo);
+ void update(ItemLibraryInfo *itemLibraryInfo);
QString getTypeName(int libId);
QMimeData *getMimeData(int libId);
@@ -159,7 +159,6 @@ private:
QPixmap createDragPixmap(int width, int height);
QWeakPointer<QScriptEngine> m_scriptEngine;
- MetaInfo *m_metaInfo;
QMap<int, ItemLibraryEntry> m_itemInfos;
QMap<int, int> m_sections;
diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp
index 25908d605c..94ab253a99 100644
--- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp
+++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp
@@ -186,23 +186,25 @@ NavigatorTreeModel::ItemRow NavigatorTreeModel::createItemRow(const ModelNode &n
uint hash = qHash(node);
+ const bool dropEnabled = node.metaInfo().isValid();
+
QStandardItem *idItem = new QStandardItem;
idItem->setDragEnabled(true);
- idItem->setDropEnabled(node.metaInfo().isValid() && node.metaInfo().isContainer());
+ idItem->setDropEnabled(dropEnabled);
idItem->setEditable(true);
idItem->setData(hash, Qt::UserRole);
#ifdef _LOCK_ITEMS_
QStandardItem *lockItem = new QStandardItem;
lockItem->setDragEnabled(true);
- lockItem->setDropEnabled(node.metaInfo().isContainer());
+ lockItem->setDropEnabled(dropEnabled);
lockItem->setEditable(false);
lockItem->setCheckable(true);
lockItem->setData(hash, Qt::UserRole);
#endif
QStandardItem *visibilityItem = new QStandardItem;
- visibilityItem->setDropEnabled(node.metaInfo().isValid() && node.metaInfo().isContainer());
+ visibilityItem->setDropEnabled(dropEnabled);
visibilityItem->setCheckable(true);
visibilityItem->setEditable(false);
visibilityItem->setData(hash, Qt::UserRole);
diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp
index c24395efaa..13e61c24b0 100644
--- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp
+++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp
@@ -171,24 +171,24 @@ void IdItemDelegate::paint(QPainter *painter,
if (icon.isNull())
{
// if node has no own icon, search for it in the itemlibrary
- const ItemLibraryInfo libraryInfo = node.metaInfo().metaInfo().itemLibraryInfo();
- QList <ItemLibraryEntry> infoList = libraryInfo.entriesForNodeMetaInfo(node.metaInfo());
- foreach (const ItemLibraryEntry &entry, infoList)
- {
- if (entry.typeName()==node.metaInfo().typeName()) {
+ const NodeMetaInfo typeInfo = node.metaInfo();
+ const ItemLibraryInfo *libraryInfo = node.metaInfo().metaInfo().itemLibraryInfo();
+ QList <ItemLibraryEntry> infoList = libraryInfo->entriesForType(typeInfo.typeName(),
+ typeInfo.majorVersion(),
+ typeInfo.minorVersion());
+ foreach (const ItemLibraryEntry &entry, infoList) {
+ if (!icon.isNull()) {
icon = entry.icon();
break;
}
}
-
- // if the library was also empty, use the default icon
}
}
+ // if the library was also empty, use the default icon
if (icon.isNull())
icon = QIcon(":/ItemLibrary/images/item-default-icon.png");
-
// If no icon is present, leave an empty space of 24 pixels anyway
int pixmapSide = 16;
QPixmap pixmap = icon.pixmap(pixmapSide, pixmapSide);
diff --git a/src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp b/src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp
index 58f0b89ace..5c53e58872 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp
@@ -403,9 +403,16 @@ static inline QColor invertColor(const QColor color)
return c;
}
-GradientLine::GradientLine(QWidget *parent) : QWidget(parent), m_activeColor(Qt::black), m_gradientName("gradient"),
- m_dragActive(false), m_yOffset(0), m_create(false),
- m_active(false), m_colorIndex(0), m_dragOff(false)
+GradientLine::GradientLine(QWidget *parent) :
+ QWidget(parent),
+ m_activeColor(Qt::black),
+ m_gradientName("gradient"),
+ m_colorIndex(0),
+ m_dragActive(false),
+ m_yOffset(0),
+ m_create(false),
+ m_active(false),
+ m_dragOff(false)
{
setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
setFocusPolicy(Qt::StrongFocus);
diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
index 70f285ed44..0c76cd254f 100644
--- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
+++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp
@@ -461,6 +461,9 @@ void StatesEditorView::sceneChanged()
}
void StatesEditorView::startUpdateTimer(int i, int offset) {
+ if (debug)
+ qDebug() << __FUNCTION__ << i << offset;
+
if (i < 0 || i > m_modelStates.count())
return;
diff --git a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
index 976e1bf204..8212afcfad 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
@@ -71,7 +71,7 @@ const char* demangle(const char* name)
#endif
-bool Exception::s_shouldAssert = true;
+bool Exception::s_shouldAssert = false;
void Exception::setShouldAssert(bool assert)
{
diff --git a/src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp b/src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp
index b64c7f7064..f0058c8f3e 100644
--- a/src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp
+++ b/src/plugins/qmldesigner/designercore/exceptions/rewritingexception.cpp
@@ -4,8 +4,10 @@ using namespace QmlDesigner;
RewritingException::RewritingException(int line,
const QString &function,
- const QString &file, const QString &description):
- Exception(line, function, file), m_description(description)
+ const QString &file,
+ const QString &description,
+ const QString &documentTextContent):
+ Exception(line, function, file), m_description(description), m_documentTextContent(documentTextContent)
{
}
@@ -18,3 +20,8 @@ QString RewritingException::description() const
{
return m_description;
}
+
+QString RewritingException::documentTextContent() const
+{
+ return m_documentTextContent;
+}
diff --git a/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h b/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h
index 2aa7042d5e..35286f2f0b 100644
--- a/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h
+++ b/src/plugins/qmldesigner/designercore/include/itemlibraryinfo.h
@@ -32,20 +32,13 @@
#include "corelib_global.h"
-#include <QExplicitlySharedDataPointer>
-#include <QList>
-#include <QString>
-#include <QIcon>
#include "propertycontainer.h"
-#include <qdeclarative.h>
+#include <QSharedPointer>
namespace QmlDesigner {
-class NodeMetaInfo;
-
namespace Internal {
-class MetaInfoPrivate;
class ItemLibraryEntryData;
class ItemLibraryInfoPrivate;
@@ -58,8 +51,8 @@ CORESHARED_EXPORT QDataStream& operator>>(QDataStream& stream, ItemLibraryEntry
class CORESHARED_EXPORT ItemLibraryEntry
{
- friend class QmlDesigner::MetaInfo;
- friend class QmlDesigner::Internal::MetaInfoParser;
+ //friend class QmlDesigner::MetaInfo;
+ //friend class QmlDesigner::Internal::MetaInfoParser;
friend CORESHARED_EXPORT QDataStream& QmlDesigner::operator<<(QDataStream& stream, const ItemLibraryEntry &itemLibraryEntry);
friend CORESHARED_EXPORT QDataStream& QmlDesigner::operator>>(QDataStream& stream, ItemLibraryEntry &itemLibraryEntry);
public:
@@ -82,9 +75,7 @@ public:
QList<Property> properties() const;
- void setTypeName(const QString &typeName);
- void setMajorVersion(int majorNumber);
- void setMinorVersion(int minorNumber);
+ void setType(const QString &typeName, int majorVersion, int minorVersion);
void setName(const QString &name);
void setIcon(const QIcon &icon);
void addProperty(const Property &p);
@@ -96,30 +87,29 @@ private:
QExplicitlySharedDataPointer<Internal::ItemLibraryEntryData> m_data;
};
-
-class CORESHARED_EXPORT ItemLibraryInfo
+class CORESHARED_EXPORT ItemLibraryInfo : public QObject
{
+ Q_OBJECT
+ Q_DISABLE_COPY(ItemLibraryInfo)
friend class Internal::MetaInfoPrivate;
public:
- ItemLibraryInfo();
- ItemLibraryInfo(const ItemLibraryInfo &other);
~ItemLibraryInfo();
- ItemLibraryInfo& operator=(const ItemLibraryInfo &other);
-
- bool isValid();
-
QList<ItemLibraryEntry> entries() const;
- QList<ItemLibraryEntry> entriesForNodeMetaInfo(const NodeMetaInfo &nodeMetaInfo) const;
+ QList<ItemLibraryEntry> entriesForType(const QString &typeName, int majorVersion, int minorVersion) const;
ItemLibraryEntry entry(const QString &name) const;
- ItemLibraryEntry addItemLibraryEntry(const NodeMetaInfo &nodeMetaInfo, const QString &itemLibraryRepresentationName);
- void remove(const NodeMetaInfo &nodeMetaInfo);
- void clear();
+ void addEntry(const ItemLibraryEntry &entry);
+ bool removeEntry(const QString &name);
+ void clearEntries();
+
+signals:
+ void entriesChanged();
private:
- static ItemLibraryInfo createItemLibraryInfo(const ItemLibraryInfo &parentInfo);
- QSharedPointer<Internal::ItemLibraryInfoPrivate> m_data;
+ ItemLibraryInfo(QObject *parent = 0);
+ void setBaseInfo(ItemLibraryInfo *baseInfo);
+ QScopedPointer<Internal::ItemLibraryInfoPrivate> m_d;
};
} // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/designercore/include/metainfo.h b/src/plugins/qmldesigner/designercore/include/metainfo.h
index e6b0ead5bd..2d4af4dbd0 100644
--- a/src/plugins/qmldesigner/designercore/include/metainfo.h
+++ b/src/plugins/qmldesigner/designercore/include/metainfo.h
@@ -74,17 +74,13 @@ public:
~MetaInfo();
MetaInfo& operator=(const MetaInfo &other);
- bool hasNodeMetaInfo(const QString &typeName, int majorVersion = 4, int minorVersion = 6) const;
- NodeMetaInfo nodeMetaInfo(const QString &typeName, int majorVersion = 4, int minorVersion = 6) const;
-
- // TODO: Move these to private
- bool isSubclassOf(const QString &className, const QString &superClassName) const;
- bool isSubclassOf(const ModelNode &modelNode, const QString &superClassName) const;
+ bool hasNodeMetaInfo(const QString &typeName, int majorVersion = -1, int minorVersion = -1) const;
+ NodeMetaInfo nodeMetaInfo(const QString &typeName, int majorVersion = -1, int minorVersion = -1) const;
bool hasEnumerator(const QString &enumeratorName) const;
EnumeratorMetaInfo enumerator(const QString &enumeratorName) const;
- ItemLibraryInfo itemLibraryInfo() const;
+ ItemLibraryInfo *itemLibraryInfo() const;
QString fromQtTypes(const QString &type) const;
@@ -96,16 +92,8 @@ public:
static void setPluginPaths(const QStringList &paths);
private:
- QStringList superClasses(const QString &className) const;
- QStringList directSuperClasses(const QString &className) const;
- QList<NodeMetaInfo> superClasses(const NodeMetaInfo &nodeMetaInfo) const;
- QList<NodeMetaInfo> directSuperClasses(const NodeMetaInfo &nodeMetaInfo) const;
-
- void addSuperClassRelationship(const QString &superClassName, const QString &className);
-
- void addNodeInfo(NodeMetaInfo &info, const QString &baseType);
+ void addNodeInfo(NodeMetaInfo &info);
void removeNodeInfo(NodeMetaInfo &info);
- void replaceNodeInfo(NodeMetaInfo &oldInfo, NodeMetaInfo &newInfo, const QString &baseType);
EnumeratorMetaInfo addEnumerator(const QString &enumeratorScope, const QString &enumeratorName);
EnumeratorMetaInfo addFlag(const QString &enumeratorScope, const QString &enumeratorName);
diff --git a/src/plugins/qmldesigner/designercore/include/metainfoparser.h b/src/plugins/qmldesigner/designercore/include/metainfoparser.h
index 1a08777130..1b83d393e9 100644
--- a/src/plugins/qmldesigner/designercore/include/metainfoparser.h
+++ b/src/plugins/qmldesigner/designercore/include/metainfoparser.h
@@ -62,7 +62,6 @@ protected:
void handleFlagElement(QXmlStreamReader &reader);
void handleFlagElementElement(QXmlStreamReader &reader, EnumeratorMetaInfo &enumeratorMetaInfo);
void handleNodeElement(QXmlStreamReader &reader);
- void handleNodeInheritElement(QXmlStreamReader &reader, const QString &className);
void handleNodeItemLibraryEntryElement(QXmlStreamReader &reader, const QString &className);
void handleAbstractPropertyElement(QXmlStreamReader &reader, NodeMetaInfo &nodeMetaInfo);
void handleAbstractPropertyDefaultValueElement(QXmlStreamReader &reader, NodeMetaInfo &nodeMetaInfo);
diff --git a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
index 3dfaa58552..b5a0ab6dce 100644
--- a/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
+++ b/src/plugins/qmldesigner/designercore/include/nodemetainfo.h
@@ -82,26 +82,22 @@ public:
PropertyMetaInfo property(const QString &propertyName, bool resolveDotSyntax = false) const;
QList<NodeMetaInfo> superClasses() const;
- QList<NodeMetaInfo> directSuperClasses() const;
+ NodeMetaInfo directSuperClass() const;
QHash<QString,PropertyMetaInfo> properties(bool resolveDotSyntax = false) const;
-
QString typeName() const;
int majorVersion() const;
int minorVersion() const;
+ bool availableInVersion(int majorVersion, int minorVersion) const;
+
bool hasDefaultProperty() const;
QString defaultProperty() const;
bool hasProperty(const QString &propertyName, bool resolveDotSyntax = false) const;
bool isContainer() const;
-
- bool isWidget() const;
- bool isGraphicsWidget() const;
- bool isGraphicsObject() const;
- bool isQmlGraphicsItem() const;
bool isComponent() const;
- bool isSubclassOf(const QString& type, int majorVersion = 4, int minorVersion = 6) const;
+ bool isSubclassOf(const QString& type, int majorVersion, int minorVersio) const;
QIcon icon() const;
@@ -110,14 +106,13 @@ private:
NodeMetaInfo(const MetaInfo &metaInfo);
void setInvalid();
- void setTypeName(const QString &typeName);
+ void setType(const QString &typeName, int majorVersion, int minorVersion);
void addProperty(const PropertyMetaInfo &property);
void setIsContainer(bool isContainer);
void setIcon(const QIcon &icon);
void setQmlFile(const QString &filePath);
void setDefaultProperty(const QString &defaultProperty);
- void setMajorVersion(int version);
- void setMinorVersion(int version);
+ void setSuperClass(const QString &typeName, int majorVersion = -1, int minorVersion = -1);
bool hasLocalProperty(const QString &propertyName, bool resolveDotSyntax = false) const;
QHash<QString,PropertyMetaInfo> dotProperties() const;
diff --git a/src/plugins/qmldesigner/designercore/include/rewriterview.h b/src/plugins/qmldesigner/designercore/include/rewriterview.h
index 570dd1f649..2e4cd1e025 100644
--- a/src/plugins/qmldesigner/designercore/include/rewriterview.h
+++ b/src/plugins/qmldesigner/designercore/include/rewriterview.h
@@ -134,6 +134,7 @@ public:
TextModifier *textModifier() const;
void setTextModifier(TextModifier *textModifier);
+ QString textModifierContent() const;
Internal::ModelNodePositionStorage *positionStorage() const
{ return m_positionStorage; }
diff --git a/src/plugins/qmldesigner/designercore/include/rewritingexception.h b/src/plugins/qmldesigner/designercore/include/rewritingexception.h
index dc20adc713..b20e16f1cb 100644
--- a/src/plugins/qmldesigner/designercore/include/rewritingexception.h
+++ b/src/plugins/qmldesigner/designercore/include/rewritingexception.h
@@ -10,12 +10,16 @@ class RewritingException: public Exception
public:
RewritingException(int line,
const QString &function,
- const QString &file, const QString &description);
+ const QString &file,
+ const QString &description,
+ const QString &documentTextContent);
virtual QString type() const;
virtual QString description() const;
+ QString documentTextContent() const;
private:
QString m_description;
+ QString m_documentTextContent;
};
} // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index 3ef92bfa1b..39876a08a7 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -616,6 +616,7 @@ NodeInstance NodeInstanceView::loadNode(const ModelNode &node, QObject *objectTo
void NodeInstanceView::activateState(const NodeInstance &instance)
{
+ activateBaseState();
NodeInstance stateInstance(instance);
stateInstance.activateState();
}
diff --git a/src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp
index f0df1560c1..e52ca995d7 100644
--- a/src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/objectnodeinstance.cpp
@@ -123,13 +123,15 @@ void ObjectNodeInstance::destroy()
{
if (deleteHeldInstance()) {
// Remove from old property
- if (object() && modelNode().isValid() && modelNode().parentProperty().isValid()) {
+ if (object()) {
setId(QString());
- NodeAbstractProperty parentProperty = modelNode().parentProperty();
- ModelNode parentNode = parentProperty.parentModelNode();
- if (parentNode.isValid() && nodeInstanceView()->hasInstanceForNode(parentNode)) {
- NodeInstance parentInstance = nodeInstanceView()->instanceForNode(parentNode);
- reparent(parentInstance, parentProperty.name(), NodeInstance() , QString());
+ if (modelNode().isValid() && modelNode().parentProperty().isValid()) {
+ NodeAbstractProperty parentProperty = modelNode().parentProperty();
+ ModelNode parentNode = parentProperty.parentModelNode();
+ if (parentNode.isValid() && nodeInstanceView()->hasInstanceForNode(parentNode)) {
+ NodeInstance parentInstance = nodeInstanceView()->instanceForNode(parentNode);
+ reparent(parentInstance, parentProperty.name(), NodeInstance() , QString());
+ }
}
}
diff --git a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
index aa01e830ca..4f7c39d9db 100644
--- a/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/qmlgraphicsitemnodeinstance.cpp
@@ -150,7 +150,7 @@ QRectF QmlGraphicsItemNodeInstance::boundingRect() const
double implicitHeight = qmlGraphicsItem()->implicitHeight();
if (!m_hasHeight
- && implicitWidth // WORKAROUND
+ && implicitHeight // WORKAROUND
&& implicitHeight != qmlGraphicsItem()->height()
&& !modelNode().hasBindingProperty("height")) {
qmlGraphicsItem()->blockSignals(true);
diff --git a/src/plugins/qmldesigner/designercore/instances/qmlpropertychangesnodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/qmlpropertychangesnodeinstance.cpp
index ea2ea61821..6b301754c7 100644
--- a/src/plugins/qmldesigner/designercore/instances/qmlpropertychangesnodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/qmlpropertychangesnodeinstance.cpp
@@ -60,12 +60,16 @@ QDeclarativeStateOperation::ActionList QmlPropertyChangesObject::actions()
action.fromValue = action.property.read();
if (m_expressionHash.contains(action.specifiedProperty)) {
if(m_expressionHash[action.specifiedProperty].second.isNull()) {
- QDeclarativeBinding *binding = new QDeclarativeBinding(m_expressionHash[action.specifiedProperty].first, targetObject(), QDeclarativeEngine::contextForObject(targetObject()), this);
- binding->setTarget(action.property);
- binding->setNotifyOnValueChanged(true);
- action.toBinding = binding;
- action.toValue = binding->evaluate();
- m_expressionHash.insert(action.specifiedProperty, ExpressionPair(m_expressionHash[action.specifiedProperty].first, binding));
+ if (targetObject()) {
+ QDeclarativeBinding *binding = new QDeclarativeBinding(m_expressionHash[action.specifiedProperty].first, targetObject(), QDeclarativeEngine::contextForObject(targetObject()), this);
+ binding->setTarget(action.property);
+ binding->setNotifyOnValueChanged(true);
+ action.toBinding = binding;
+ action.toValue = binding->evaluate();
+ m_expressionHash.insert(action.specifiedProperty, ExpressionPair(m_expressionHash[action.specifiedProperty].first, binding));
+ } else {
+ action.toBinding = 0;
+ }
} else {
action.toBinding = m_expressionHash[action.specifiedProperty].second.data();
action.toValue = m_expressionHash[action.specifiedProperty].second->evaluate();
@@ -85,6 +89,9 @@ QObject *QmlPropertyChangesObject::targetObject() const
void QmlPropertyChangesObject::setTargetObject(QObject *object)
{
+ if (m_targetObject.data() == object)
+ return;
+
QMutableListIterator<QDeclarativeAction> actionIterator(m_qmlActionList);
while (actionIterator.hasNext()) {
QDeclarativeAction &qmlAction = actionIterator.next();
@@ -92,9 +99,10 @@ void QmlPropertyChangesObject::setTargetObject(QObject *object)
if (isActive()) {
QDeclarativePropertyPrivate::setBinding(qmlAction.property, 0, QDeclarativePropertyPrivate::DontRemoveBinding| QDeclarativePropertyPrivate::BypassInterceptor);
qmlAction.property.write(qmlAction.fromValue);
+ m_expressionHash[qmlAction.specifiedProperty].second.data()->destroy();
}
- m_expressionHash[qmlAction.specifiedProperty].second.data()->destroy();
+
qmlAction.toBinding = 0;
}
diff --git a/src/plugins/qmldesigner/designercore/instances/qmlstatenodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/qmlstatenodeinstance.cpp
index 9713fc8540..bf7103c467 100644
--- a/src/plugins/qmldesigner/designercore/instances/qmlstatenodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/qmlstatenodeinstance.cpp
@@ -69,9 +69,10 @@ QmlStateNodeInstance::Pointer
void QmlStateNodeInstance::activateState()
{
if (stateGroup()) {
- if (!isStateActive())
+ if (!isStateActive()) {
nodeInstanceView()->setStateInstance(nodeInstanceView()->instanceForNode(modelNode()));
stateGroup()->setState(property("name").toString());
+ }
}
}
diff --git a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp
index 15f681ea74..c640c77b76 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp
@@ -55,13 +55,9 @@ public:
class ItemLibraryInfoPrivate
{
public:
- typedef QSharedPointer<ItemLibraryInfoPrivate> Pointer;
- typedef QSharedPointer<ItemLibraryInfoPrivate> WeakPointer;
+ QHash<QString, ItemLibraryEntry> nameToEntryHash;
- QMultiHash<NodeMetaInfo, ItemLibraryEntry> itemLibraryInfoHash;
- QHash<QString, ItemLibraryEntry> itemLibraryInfoHashAll;
-
- Pointer parentData;
+ QWeakPointer<ItemLibraryInfo> baseInfo;
};
} // namespace Internal
@@ -157,9 +153,11 @@ void ItemLibraryEntry::setName(const QString &name)
m_data->name = name;
}
-void ItemLibraryEntry::setTypeName(const QString &typeName)
+void ItemLibraryEntry::setType(const QString &typeName, int majorVersion, int minorVersion)
{
m_data->typeName = typeName;
+ m_data->majorVersion = majorVersion;
+ m_data->minorVersion = minorVersion;
}
void ItemLibraryEntry::setIcon(const QIcon &icon)
@@ -167,16 +165,6 @@ void ItemLibraryEntry::setIcon(const QIcon &icon)
m_data->icon = icon;
}
-void ItemLibraryEntry::setMajorVersion(int majorVersion)
-{
- m_data->majorVersion = majorVersion;
-}
-
-void ItemLibraryEntry::setMinorVersion(int minorVersion)
-{
- m_data->minorVersion = minorVersion;
-}
-
void ItemLibraryEntry::setQml(const QString &qml)
{
m_data->qml = qml;
@@ -221,13 +209,9 @@ QDataStream& operator>>(QDataStream& stream, ItemLibraryEntry &itemLibraryEntry)
// ItemLibraryInfo
//
-ItemLibraryInfo::ItemLibraryInfo(const ItemLibraryInfo &other) :
- m_data(other.m_data)
-{
-}
-
-ItemLibraryInfo::ItemLibraryInfo() :
- m_data(new Internal::ItemLibraryInfoPrivate())
+ItemLibraryInfo::ItemLibraryInfo(QObject *parent) :
+ QObject(parent),
+ m_d(new Internal::ItemLibraryInfoPrivate())
{
}
@@ -235,85 +219,72 @@ ItemLibraryInfo::~ItemLibraryInfo()
{
}
-ItemLibraryInfo& ItemLibraryInfo::operator=(const ItemLibraryInfo &other)
-{
- m_data = other.m_data;
- return *this;
-}
-
-bool ItemLibraryInfo::isValid()
+QList<ItemLibraryEntry> ItemLibraryInfo::entriesForType(const QString &typeName, int majorVersion, int minorVersion) const
{
- return m_data;
-}
+ QList<ItemLibraryEntry> entries;
-ItemLibraryInfo ItemLibraryInfo::createItemLibraryInfo(const ItemLibraryInfo &parentInfo)
-{
- ItemLibraryInfo info;
- Q_ASSERT(parentInfo.m_data);
- info.m_data->parentData = parentInfo.m_data;
- return info;
-}
+ foreach (const ItemLibraryEntry &entry, m_d->nameToEntryHash.values()) {
+ if (entry.typeName() == typeName
+ && entry.majorVersion() == majorVersion
+ && entry.minorVersion() == minorVersion)
+ entries += entry;
+ }
-QList<ItemLibraryEntry> ItemLibraryInfo::entriesForNodeMetaInfo(const NodeMetaInfo &nodeMetaInfo) const
-{
- QList<ItemLibraryEntry> itemLibraryItems;
+ if (m_d->baseInfo)
+ entries += m_d->baseInfo->entriesForType(typeName, majorVersion, minorVersion);
- Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data);
- while (pointer) {
- itemLibraryItems += pointer->itemLibraryInfoHash.values(nodeMetaInfo);
- pointer = pointer->parentData;
- }
- return itemLibraryItems;
+ return entries;
}
ItemLibraryEntry ItemLibraryInfo::entry(const QString &name) const
{
- Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data);
- while (pointer) {
- if (pointer->itemLibraryInfoHashAll.contains(name))
- return pointer->itemLibraryInfoHashAll.value(name);
- pointer = pointer->parentData;
- }
+ if (m_d->nameToEntryHash.contains(name))
+ return m_d->nameToEntryHash.value(name);
+
+ if (m_d->baseInfo)
+ return m_d->baseInfo->entry(name);
return ItemLibraryEntry();
}
-
QList<ItemLibraryEntry> ItemLibraryInfo::entries() const
{
- QList<ItemLibraryEntry> list;
-
- Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data);
- while (pointer) {
- list += pointer->itemLibraryInfoHashAll.values();
- pointer = pointer->parentData;
- }
+ QList<ItemLibraryEntry> list = m_d->nameToEntryHash.values();
+ if (m_d->baseInfo)
+ list += m_d->baseInfo->entries();
return list;
}
-ItemLibraryEntry ItemLibraryInfo::addItemLibraryEntry(const NodeMetaInfo &nodeMetaInfo,
- const QString &itemLibraryRepresentationName)
+void ItemLibraryInfo::addEntry(const ItemLibraryEntry &entry)
+{
+ if (m_d->nameToEntryHash.contains(entry.name()))
+ throw InvalidMetaInfoException(__LINE__, __FUNCTION__, __FILE__);
+ m_d->nameToEntryHash.insert(entry.name(), entry);
+
+ emit entriesChanged();
+}
+
+bool ItemLibraryInfo::removeEntry(const QString &name)
{
- ItemLibraryEntry itemLibraryType;
- itemLibraryType.setName(itemLibraryRepresentationName);
- itemLibraryType.setTypeName(nodeMetaInfo.typeName());
- itemLibraryType.setMajorVersion(nodeMetaInfo.majorVersion());
- itemLibraryType.setMinorVersion(nodeMetaInfo.minorVersion());
- m_data->itemLibraryInfoHash.insert(nodeMetaInfo, itemLibraryType);
- m_data->itemLibraryInfoHashAll.insert(itemLibraryRepresentationName, itemLibraryType);
- return itemLibraryType;
+ if (m_d->nameToEntryHash.remove(name)) {
+ emit entriesChanged();
+ return true;
+ }
+ if (m_d->baseInfo)
+ return m_d->baseInfo->removeEntry(name);
+
+ return false;
}
-void ItemLibraryInfo::remove(const NodeMetaInfo &info)
+void ItemLibraryInfo::clearEntries()
{
- m_data->itemLibraryInfoHash.remove(info);
- m_data->itemLibraryInfoHashAll.remove(info.typeName());
+ m_d->nameToEntryHash.clear();
+ emit entriesChanged();
}
-void ItemLibraryInfo::clear()
+void ItemLibraryInfo::setBaseInfo(ItemLibraryInfo *baseInfo)
{
- m_data->itemLibraryInfoHash.clear();
- m_data->itemLibraryInfoHashAll.clear();
+ m_d->baseInfo = baseInfo;
}
} // namespace QmlDesigner
diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
index 1c79dca045..724f3780da 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/metainfo.cpp
@@ -71,7 +71,7 @@ public:
void parseQmlTypes();
void parseNonQmlTypes();
void parseValueTypes();
- void parseNonQmlClassRecursively(const QMetaObject *qMetaObject);
+ void parseNonQmlClassRecursively(const QMetaObject *qMetaObject, int majorVersion, int minorVersion);
void parseProperties(NodeMetaInfo &nodeMetaInfo, const QMetaObject *qMetaObject) const;
void parseClassInfo(NodeMetaInfo &nodeMetaInfo, const QMetaObject *qMetaObject) const;
@@ -79,30 +79,29 @@ public:
void parseXmlFiles();
- QMultiHash<QString, QString> m_superClassHash; // the list of direct superclasses
- QHash<QString, NodeMetaInfo> m_nodeMetaInfoHash;
+ QMultiHash<QString, NodeMetaInfo> m_nodeMetaInfoHash;
QHash<QString, EnumeratorMetaInfo> m_enumeratorMetaInfoHash;
QHash<QString, QString> m_QtTypesToQmlTypes;
- ItemLibraryInfo m_itemLibraryInfo;
+ QScopedPointer<ItemLibraryInfo> m_itemLibraryInfo;
MetaInfo *m_q;
bool m_isInitialized;
};
MetaInfoPrivate::MetaInfoPrivate(MetaInfo *q) :
+ m_itemLibraryInfo(new ItemLibraryInfo()),
m_q(q),
m_isInitialized(false)
{
if (!m_q->isGlobal())
- m_itemLibraryInfo = ItemLibraryInfo::createItemLibraryInfo(m_q->global().itemLibraryInfo());
+ m_itemLibraryInfo->setBaseInfo(MetaInfo::global().itemLibraryInfo());
}
void MetaInfoPrivate::clear()
{
- m_superClassHash.clear();
m_nodeMetaInfoHash.clear();
m_enumeratorMetaInfoHash.clear();
- m_itemLibraryInfo.clear();
+ m_itemLibraryInfo->clearEntries();
m_isInitialized = false;
}
@@ -188,7 +187,7 @@ void MetaInfoPrivate::parseClassInfo(NodeMetaInfo &nodeMetaInfo, const QMetaObje
}
}
-void MetaInfoPrivate::parseNonQmlClassRecursively(const QMetaObject *qMetaObject)
+void MetaInfoPrivate::parseNonQmlClassRecursively(const QMetaObject *qMetaObject, int majorVersion, int minorVersion)
{
Q_ASSERT_X(qMetaObject, Q_FUNC_INFO, "invalid QMetaObject");
const QString className = qMetaObject->className();
@@ -198,20 +197,22 @@ void MetaInfoPrivate::parseNonQmlClassRecursively(const QMetaObject *qMetaObject
return;
}
- if ( !m_q->hasNodeMetaInfo(className)
- && !QDeclarativeMetaType::qmlTypeNames().contains(typeName(qMetaObject).toAscii()) ) {
+ if (!m_q->hasNodeMetaInfo(typeName(qMetaObject), majorVersion, minorVersion)) {
NodeMetaInfo nodeMetaInfo(*m_q);
- nodeMetaInfo.setTypeName(typeName(qMetaObject));
+ nodeMetaInfo.setType(typeName(qMetaObject), majorVersion, minorVersion);
parseProperties(nodeMetaInfo, qMetaObject);
parseClassInfo(nodeMetaInfo, qMetaObject);
if (debug)
- qDebug() << "adding non qml type" << className << typeName(qMetaObject) << ", parent type" << typeName(qMetaObject->superClass());
- m_q->addNodeInfo(nodeMetaInfo, typeName(qMetaObject->superClass()));
+ qDebug() << "adding non qml type" << nodeMetaInfo.typeName() << nodeMetaInfo.majorVersion() << nodeMetaInfo.minorVersion() << ", parent type" << typeName(qMetaObject->superClass());
+ if (qMetaObject->superClass())
+ nodeMetaInfo.setSuperClass(typeName(qMetaObject->superClass()));
+
+ m_q->addNodeInfo(nodeMetaInfo);
}
if (const QMetaObject *superClass = qMetaObject->superClass()) {
- parseNonQmlClassRecursively(superClass);
+ parseNonQmlClassRecursively(superClass, majorVersion, minorVersion);
}
}
@@ -246,7 +247,7 @@ void MetaInfoPrivate::parseValueTypes()
foreach (const QString &type, valueTypes) {
NodeMetaInfo nodeMetaInfo(*m_q);
- nodeMetaInfo.setTypeName(type);
+ nodeMetaInfo.setType(type, -1, -1);
foreach (const QString &propertyName, VariantParser::create(type).properties()) {
PropertyMetaInfo propertyInfo;
propertyInfo.setName(propertyName);
@@ -284,7 +285,7 @@ void MetaInfoPrivate::parseValueTypes()
}
if (debug)
qDebug() << "adding value type" << nodeMetaInfo.typeName();
- m_q->addNodeInfo(nodeMetaInfo, QString());
+ m_q->addNodeInfo(nodeMetaInfo);
}
}
@@ -303,9 +304,7 @@ void MetaInfoPrivate::parseQmlTypes()
continue;
NodeMetaInfo nodeMetaInfo(*m_q);
- nodeMetaInfo.setTypeName(qmlType->qmlTypeName());
- nodeMetaInfo.setMajorVersion(qmlType->majorVersion());
- nodeMetaInfo.setMinorVersion(qmlType->minorVersion());
+ nodeMetaInfo.setType(qmlType->qmlTypeName(), qmlType->majorVersion(), qmlType->minorVersion());
parseProperties(nodeMetaInfo, qMetaObject);
parseClassInfo(nodeMetaInfo, qMetaObject);
@@ -318,7 +317,11 @@ void MetaInfoPrivate::parseQmlTypes()
superTypeName = typeName(qmlType->baseMetaObject()->superClass());
}
- m_q->addNodeInfo(nodeMetaInfo, superTypeName);
+ nodeMetaInfo.setSuperClass(superTypeName);
+
+ if (debug)
+ qDebug() << "adding qml type" << nodeMetaInfo.typeName() << nodeMetaInfo.majorVersion() << nodeMetaInfo.minorVersion() << "super class" << superTypeName;
+ m_q->addNodeInfo(nodeMetaInfo);
}
}
@@ -326,10 +329,10 @@ void MetaInfoPrivate::parseNonQmlTypes()
{
foreach (QDeclarativeType *qmlType, QDeclarativeMetaType::qmlTypes()) {
if (!qmlType->qmlTypeName().contains("Bauhaus"))
- parseNonQmlClassRecursively(qmlType->metaObject());
+ parseNonQmlClassRecursively(qmlType->metaObject(), qmlType->majorVersion(), qmlType->minorVersion());
}
- parseNonQmlClassRecursively(&QDeclarativeAnchors::staticMetaObject);
+ parseNonQmlClassRecursively(&QDeclarativeAnchors::staticMetaObject, -1, -1);
}
@@ -411,10 +414,13 @@ MetaInfo& MetaInfo::operator=(const MetaInfo &other)
/*!
\brief Returns whether a type with the given name is registered in the meta system.
*/
-bool MetaInfo::hasNodeMetaInfo(const QString &typeName, int /*majorVersion*/, int /*minorVersion*/) const
+bool MetaInfo::hasNodeMetaInfo(const QString &typeName, int majorVersion, int minorVersion) const
{
- if (m_p->m_nodeMetaInfoHash.contains(typeName))
- return true;
+ foreach (const NodeMetaInfo &info, m_p->m_nodeMetaInfoHash.values(typeName)) {
+ if (info.availableInVersion(majorVersion, minorVersion)) {
+ return true;
+ }
+ }
if (!isGlobal())
return global().hasNodeMetaInfo(typeName);
return false;
@@ -423,75 +429,20 @@ bool MetaInfo::hasNodeMetaInfo(const QString &typeName, int /*majorVersion*/, in
/*!
\brief Returns meta information for a qml type. An invalid NodeMetaInfo object if the type is unknown.
*/
-NodeMetaInfo MetaInfo::nodeMetaInfo(const QString &typeName, int /*majorVersion*/, int /*minorVersion*/) const
+NodeMetaInfo MetaInfo::nodeMetaInfo(const QString &typeName, int majorVersion, int minorVersion) const
{
- if (m_p->m_nodeMetaInfoHash.contains(typeName))
- return m_p->m_nodeMetaInfoHash.value(typeName, NodeMetaInfo());
+ foreach (const NodeMetaInfo &info, m_p->m_nodeMetaInfoHash.values(typeName)) {
+ // todo: The order for different types for different versions is random here.
+ if (info.availableInVersion(majorVersion, minorVersion)) {
+ return info;
+ }
+ }
if (!isGlobal())
return global().nodeMetaInfo(typeName);
return NodeMetaInfo();
}
-QStringList MetaInfo::superClasses(const QString &className) const
-{
- QStringList ancestorList = m_p->m_superClassHash.values(className);
- foreach (const QString &ancestor, ancestorList) {
- QStringList superClassList = superClasses(ancestor);
- if (!superClassList.isEmpty())
- ancestorList += superClassList;
- }
- if (!isGlobal())
- ancestorList += global().superClasses(className);
- return ancestorList;
-}
-
-QStringList MetaInfo::directSuperClasses(const QString &className) const
-{
- QStringList directAncestorList = m_p->m_superClassHash.values(className);
- if (!isGlobal())
- directAncestorList += global().directSuperClasses(className);
- return directAncestorList;
-}
-
-QList<NodeMetaInfo> MetaInfo::superClasses(const NodeMetaInfo &nodeInfo) const
-{
- if (!nodeInfo.isValid()) {
- qWarning() << "NodeMetaInfo is invalid";
- return QList<NodeMetaInfo>();
- }
-
- QList<NodeMetaInfo> superClassList;
-
- foreach (const QString &typeName, superClasses(nodeInfo.typeName())) {
- if (!hasNodeMetaInfo(typeName))
- continue;
- const NodeMetaInfo superClass = nodeMetaInfo(typeName);
- if (!superClassList.contains(superClass))
- superClassList.append(superClass);
- }
- return superClassList;
-}
-
-QList<NodeMetaInfo> MetaInfo::directSuperClasses(const NodeMetaInfo &nodeInfo) const
-{
- if (!nodeInfo.isValid()) {
- qWarning() << "NodeMetaInfo is invalid";
- return QList<NodeMetaInfo>();
- }
-
- QList<NodeMetaInfo> superClassList;
-
- foreach (const QString &typeName, directSuperClasses(nodeInfo.typeName())) {
- if (!hasNodeMetaInfo(typeName))
- continue;
- const NodeMetaInfo superClass = nodeMetaInfo(typeName);
- if (!superClassList.contains(superClass))
- superClassList.append(superClass);
- }
- return superClassList;
-}
-
QString MetaInfo::fromQtTypes(const QString &type) const
{
if (m_p->m_QtTypesToQmlTypes.contains(type))
@@ -501,27 +452,6 @@ QString MetaInfo::fromQtTypes(const QString &type) const
}
/*!
- \brief Returns whether className is the same type or a type derived from superClassName.
- */
-bool MetaInfo::isSubclassOf(const QString &className, const QString &superClassName) const
-{
- return (className == superClassName) || superClasses(className).contains(superClassName);
-}
-
-/*!
- \brief Returns whether the type of modelNode is the same type or a type derived from superClassName.
- \throws InvalidModelNode if !modelNode.isValid()
- */
-bool MetaInfo::isSubclassOf(const ModelNode &modelNode, const QString &superClassName) const
-{
- if (!modelNode.isValid()) {
- Q_ASSERT_X(modelNode.isValid(), Q_FUNC_INFO, "Invalid modelNode argument");
- throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__);
- }
- return (modelNode.type() == superClassName) || isSubclassOf(modelNode.type(), superClassName);
-}
-
-/*!
\brief Returns whether an enumerator is registered in the meta type system.
*/
bool MetaInfo::hasEnumerator(const QString &enumeratorName) const
@@ -542,9 +472,9 @@ EnumeratorMetaInfo MetaInfo::enumerator(const QString &enumeratorName) const
return EnumeratorMetaInfo();
}
-ItemLibraryInfo MetaInfo::itemLibraryInfo() const
+ItemLibraryInfo *MetaInfo::itemLibraryInfo() const
{
- return m_p->m_itemLibraryInfo;
+ return m_p->m_itemLibraryInfo.data();
}
/*!
@@ -580,28 +510,13 @@ void MetaInfo::setPluginPaths(const QStringList &paths)
s_pluginDirs = paths;
}
-/*!
- This bypasses the notifications to the model that the metatype has changed.
- Use MetaInfo::addNodeInfo() instead
- */
-void MetaInfo::addSuperClassRelationship(const QString &superClassName, const QString &className)
-{
- m_p->m_superClassHash.insert(className, superClassName);
-}
-
-void MetaInfo::addNodeInfo(NodeMetaInfo &nodeInfo, const QString &baseType)
+void MetaInfo::addNodeInfo(NodeMetaInfo &nodeInfo)
{
if (nodeInfo.typeName().isEmpty() || nodeInfo.metaInfo() != *this)
throw new InvalidArgumentException(__LINE__, __FUNCTION__, __FILE__, QLatin1String("nodeInfo"));
- if (nodeInfo.typeName() == baseType) // prevent simple recursion
- throw new InvalidArgumentException(__LINE__, __FUNCTION__, __FILE__, QLatin1String("baseType"));
-
- m_p->m_nodeMetaInfoHash.insert(nodeInfo.typeName(), nodeInfo);
- if (!baseType.isEmpty()) {
- m_p->m_superClassHash.insert(nodeInfo.typeName(), baseType);
- }
+ m_p->m_nodeMetaInfoHash.insertMulti(nodeInfo.typeName(), nodeInfo);
}
void MetaInfo::removeNodeInfo(NodeMetaInfo &info)
@@ -611,12 +526,13 @@ void MetaInfo::removeNodeInfo(NodeMetaInfo &info)
return;
}
- if (m_p->m_nodeMetaInfoHash.contains(info.typeName())) {
- m_p->m_nodeMetaInfoHash.remove(info.typeName());
+ if (m_p->m_nodeMetaInfoHash.contains(info.typeName())
+ && m_p->m_nodeMetaInfoHash.remove(info.typeName(), info)) {
- m_p->m_superClassHash.remove(info.typeName());
- // TODO: Other types might specify type as parent type
- m_p->m_itemLibraryInfo.remove(info);
+ foreach (const ItemLibraryEntry &entry,
+ m_p->m_itemLibraryInfo->entriesForType(info.typeName(), info.majorVersion(), info.minorVersion())) {
+ m_p->m_itemLibraryInfo->removeEntry(entry.name());
+ }
} else if (!isGlobal()) {
global().removeNodeInfo(info);
@@ -627,11 +543,6 @@ void MetaInfo::removeNodeInfo(NodeMetaInfo &info)
info.setInvalid();
}
-void MetaInfo::replaceNodeInfo(NodeMetaInfo & /*oldInfo*/, NodeMetaInfo & /*newInfo*/, const QString & /*baseType*/)
-{
- // TODO
-}
-
EnumeratorMetaInfo MetaInfo::addEnumerator(const QString &enumeratorScope, const QString &enumeratorName)
{
Q_ASSERT(!enumeratorName.isEmpty());
diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp
index 6b899b73eb..216ba28dd3 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp
@@ -187,7 +187,6 @@ void MetaInfoParser::handleNodeElement(QXmlStreamReader &reader)
while (!reader.atEnd() && !(reader.isEndElement() && reader.name() == "node")) {
reader.readNext();
- handleNodeInheritElement(reader, className);
handleAbstractPropertyElement(reader, nodeMetaInfo);
handleAbstractPropertyDefaultValueElement(reader, nodeMetaInfo);
handleNodeItemLibraryEntryElement(reader, className);
@@ -198,32 +197,27 @@ void MetaInfoParser::handleNodeItemLibraryEntryElement(QXmlStreamReader &reader,
{
if (reader.isStartElement() && reader.name() == "itemlibraryentry")
{
- QString name = reader.attributes().value("name").toString();
- ItemLibraryEntry itemLibraryEntry = m_metaInfo.itemLibraryInfo().addItemLibraryEntry(m_metaInfo.nodeMetaInfo(className), name);
+ const QString name = reader.attributes().value("name").toString();
+ const NodeMetaInfo typeInfo = m_metaInfo.nodeMetaInfo(className);
+
+ ItemLibraryEntry entry;
+ entry.setType(typeInfo.typeName(), typeInfo.majorVersion(), typeInfo.minorVersion());
+ entry.setName(name);
QString iconPath = reader.attributes().value("icon").toString();
if (!iconPath.isEmpty())
- itemLibraryEntry.setIcon(QIcon(iconPath));
+ entry.setIcon(QIcon(iconPath));
QString category = reader.attributes().value("category").toString();
if (!category.isEmpty())
- itemLibraryEntry.setCategory(category);
+ entry.setCategory(category);
while (!reader.atEnd() && !(reader.isEndElement() && reader.name() == "itemlibraryentry")) {
reader.readNext();
- handleItemLibraryEntryPropertyElement(reader, itemLibraryEntry);
+ handleItemLibraryEntryPropertyElement(reader, entry);
}
- }
-}
-void MetaInfoParser::handleNodeInheritElement(QXmlStreamReader &reader, const QString &className)
-{
- if (reader.isStartElement() && reader.name() == "inherits")
- {
- QString superClassName = reader.attributes().value("name").toString();
- Q_ASSERT(!superClassName.isEmpty());
- m_metaInfo.addSuperClassRelationship(superClassName, className);
- reader.readNext();
+ m_metaInfo.itemLibraryInfo()->addEntry(entry);
}
}
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
index d4f60bee8c..a7891745f6 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
@@ -76,6 +76,11 @@ public:
QString category;
QString qmlFile;
QString defaultProperty;
+
+ QString superClassType;
+ int superClassMajorVersion;
+ int superClassMinorVersion;
+
int majorVersion;
int minorVersion;
};
@@ -179,7 +184,7 @@ QObject *NodeMetaInfo::createInstance(QDeclarativeContext *context) const
newContext->setParent(object);
} else {
// primitive
- object = QDeclarativeMetaType::qmlType(typeName().toAscii(), minorVersion(), majorVersion())->create();
+ object = QDeclarativeMetaType::qmlType(typeName().toAscii(), majorVersion(), minorVersion())->create();
if (object && context)
QDeclarativeEngine::setContextForObject(object, context);
}
@@ -198,22 +203,39 @@ QList<NodeMetaInfo> NodeMetaInfo::superClasses() const
return QList<NodeMetaInfo>();
}
- return m_data->metaInfo.superClasses(*this);
+ QList<NodeMetaInfo> types;
+
+ NodeMetaInfo superType = directSuperClass();
+ if (superType.isValid()) {
+ types += superType;
+ types += superType.superClasses();
+ }
+
+ return types;
}
/*!
- \brief Returns direct ancestor types.
-
- \throws InvalidMetaInfoException if the object is not valid
+ \brief Returns direct ancestor type. An invalid type if there is none.
*/
-QList<NodeMetaInfo> NodeMetaInfo::directSuperClasses() const
+NodeMetaInfo NodeMetaInfo::directSuperClass() const
{
if (!isValid()) {
qWarning() << "NodeMetaInfo is invalid";
- return QList<NodeMetaInfo>();
+ return NodeMetaInfo();
}
- return m_data->metaInfo.directSuperClasses(*this);
+ if (!m_data->superClassType.isEmpty()) {
+ int superClassMajorVersion = m_data->superClassMajorVersion;
+ int superClassMinorVersion = m_data->superClassMinorVersion;
+ if (superClassMajorVersion == -1) {
+ // If we don't know the version of the super type, assume that it's the same like our version.
+ superClassMajorVersion = majorVersion();
+ superClassMinorVersion = minorVersion();
+ }
+ return m_data->metaInfo.nodeMetaInfo(m_data->superClassType,
+ superClassMajorVersion, superClassMinorVersion);
+ }
+ return NodeMetaInfo();
}
/*!
@@ -225,7 +247,7 @@ QList<NodeMetaInfo> NodeMetaInfo::directSuperClasses() const
\throws InvalidMetaInfoException if the object is not valid
*/
-QHash<QString,PropertyMetaInfo> NodeMetaInfo::properties(bool resolveDotSyntax ) const
+QHash<QString,PropertyMetaInfo> NodeMetaInfo::properties(bool resolveDotSyntax) const
{
if (!isValid()) {
qWarning() << "NodeMetaInfo is invalid";
@@ -234,7 +256,8 @@ QHash<QString,PropertyMetaInfo> NodeMetaInfo::properties(bool resolveDotSyntax )
QHash<QString,PropertyMetaInfo> propertiesInfo;
propertiesInfo = m_data->propertyMetaInfoHash;
- foreach (const NodeMetaInfo &nodeInfo, directSuperClasses()) {
+
+ foreach (const NodeMetaInfo &nodeInfo, superClasses()) {
QHash<QString,PropertyMetaInfo> superClassProperties = nodeInfo.properties();
QHashIterator<QString,PropertyMetaInfo> iter(superClassProperties);
while (iter.hasNext()) {
@@ -318,7 +341,7 @@ PropertyMetaInfo NodeMetaInfo::property(const QString &propertyName, bool resolv
propertyType = propertyType.left(propertyType.size() - 1).trimmed();
nodeInfo = m_data->metaInfo.nodeMetaInfo(m_data->metaInfo.fromQtTypes(propertyType), majorVersion(), minorVersion());
if (!nodeInfo.isValid()) {
- qDebug() << "no type info available for" << propertyType;
+ qWarning() << "no type info available for" << propertyType;
break;
}
}
@@ -330,7 +353,7 @@ PropertyMetaInfo NodeMetaInfo::property(const QString &propertyName, bool resolv
if (hasLocalProperty(propertyName)) {
propertyMetaInfo = m_data->propertyMetaInfoHash.value(propertyName, PropertyMetaInfo());
} else {
- foreach (const NodeMetaInfo &superTypeMetaInfo, directSuperClasses()) {
+ foreach (const NodeMetaInfo &superTypeMetaInfo, superClasses()) {
Q_ASSERT(superTypeMetaInfo.isValid());
propertyMetaInfo = superTypeMetaInfo.property(propertyName);
if (propertyMetaInfo.isValid())
@@ -373,7 +396,7 @@ bool NodeMetaInfo::hasLocalProperty(const QString &propertyName, bool resolveDot
propertyType = propertyType.left(propertyType.size() - 1).trimmed();
nodeInfo = m_data->metaInfo.nodeMetaInfo(m_data->metaInfo.fromQtTypes(propertyType), majorVersion(), minorVersion());
if (!nodeInfo.isValid()) {
- qDebug() << "no type info available for" << propertyType;
+ qWarning() << "no type info available for" << propertyType;
break;
}
}
@@ -399,10 +422,8 @@ bool NodeMetaInfo::hasProperty(const QString &propertyName, bool resolveDotSynta
if (hasLocalProperty(propertyName, resolveDotSyntax))
return true;
- foreach (const NodeMetaInfo &nodeMetaInfo, directSuperClasses()) {
- if (nodeMetaInfo.hasProperty(propertyName, resolveDotSyntax))
- return true;
- }
+ if (directSuperClass().hasProperty(propertyName, resolveDotSyntax))
+ return true;
return false;
}
@@ -443,7 +464,7 @@ int NodeMetaInfo::majorVersion() const
return -1;
}
- return 4;
+ return m_data->majorVersion;
}
@@ -461,6 +482,13 @@ int NodeMetaInfo::minorVersion() const
return m_data->minorVersion;
}
+bool NodeMetaInfo::availableInVersion(int majorVersion, int minorVersion) const
+{
+ return ((majorVersion > m_data->majorVersion)
+ || (majorVersion == m_data->majorVersion && minorVersion >= m_data->minorVersion))
+ || (majorVersion == -1 && minorVersion == -1);
+}
+
bool NodeMetaInfo::hasDefaultProperty() const
{
if (!isValid()) {
@@ -488,14 +516,14 @@ void NodeMetaInfo::setDefaultProperty(const QString &defaultProperty)
m_data->defaultProperty = defaultProperty;
}
-void NodeMetaInfo::setMajorVersion(int version)
-{
- m_data->majorVersion = version;
-}
-
-void NodeMetaInfo::setMinorVersion(int version)
+void NodeMetaInfo::setSuperClass(const QString &typeName, int majorVersion, int minorVersion)
{
- m_data->minorVersion = version;
+ if (!isValid()) {
+ return;
+ }
+ m_data->superClassType = typeName;
+ m_data->superClassMajorVersion = majorVersion;
+ m_data->superClassMinorVersion = minorVersion;
}
void NodeMetaInfo::setInvalid()
@@ -506,13 +534,15 @@ void NodeMetaInfo::setInvalid()
m_data = 0;
}
-void NodeMetaInfo::setTypeName(const QString &typeName)
+void NodeMetaInfo::setType(const QString &typeName, int majorVersion, int minorVersion)
{
if (!isValid()) {
qWarning() << "NodeMetaInfo is invalid";
return;
}
m_data->typeName = typeName;
+ m_data->majorVersion = majorVersion;
+ m_data->minorVersion = minorVersion;
}
uint qHash(const NodeMetaInfo &nodeMetaInfo)
@@ -572,67 +602,6 @@ void NodeMetaInfo::setIcon(const QIcon &icon)
m_data->icon = icon;
}
-/*!
- \brief Returns whether the type inherits from "QWidget".
-
- \throws InvalidMetaInfoException if the object is not valid
- */
-bool NodeMetaInfo::isWidget() const
-{
- if (!isValid()) {
- qWarning() << "NodeMetaInfo is invalid";
- return false;
- }
- return m_data->metaInfo.isSubclassOf(m_data->typeName, "Qt/QWidget");
-}
-
-/*!
- \brief Returns whether the type inherits from "QGraphicsWidget".
-
- \throws InvalidMetaInfoException if the object is not valid
- */
-bool NodeMetaInfo::isGraphicsWidget() const
-{
- if (!isValid()) {
- qWarning() << "NodeMetaInfo is invalid";
- return false;
- }
- return m_data->metaInfo.isSubclassOf(m_data->typeName, "Qt/QGraphicsWidget");
-}
-
-/*!
- \brief Returns whether the type inherits from "QGraphicsObject".
-
- \throws InvalidMetaInfoException if the object is not valid
- */
-bool NodeMetaInfo::isGraphicsObject() const
-{
- if (!isValid()) {
- qWarning() << "NodeMetaInfo is invalid";
- return false;
- }
- return m_data->metaInfo.isSubclassOf(m_data->typeName, "QGraphicsObject");
-}
-
-/*!
- \brief Returns whether the type inherits from "Item/QDeclarativeItem".
-
- \throws InvalidMetaInfoException if the object is not valid
- */
-bool NodeMetaInfo::isQmlGraphicsItem() const
-{
- if (!isValid()) {
- qWarning() << "NodeMetaInfo is invalid";
- return false;
- }
-
- if (m_data->isFXItem == Internal::NodeMetaInfoData::Unknown) {
- m_data->isFXItem = m_data->metaInfo.isSubclassOf(m_data->typeName, "Qt/Item") ? Internal::NodeMetaInfoData::Yes : Internal::NodeMetaInfoData::No;
- }
-
- return m_data->isFXItem == Internal::NodeMetaInfoData::Yes;
-}
-
bool NodeMetaInfo::isComponent() const
{
if (!isValid()) {
@@ -648,13 +617,23 @@ bool NodeMetaInfo::isComponent() const
\throws InvalidMetaInfoException if the object is not valid
*/
-bool NodeMetaInfo::isSubclassOf(const QString &type, int /*majorVersion*/, int /*minorVersion*/) const
+bool NodeMetaInfo::isSubclassOf(const QString &type, int majorVersion, int minorVersion) const
{
if (!isValid()) {
qWarning() << "NodeMetaInfo is invalid";
return false;
}
- return m_data->metaInfo.isSubclassOf(m_data->typeName, type);
+
+ if (typeName() == type
+ && availableInVersion(majorVersion, minorVersion))
+ return true;
+
+ foreach (const NodeMetaInfo &superClass, superClasses()) {
+ if (superClass.typeName() == type
+ && superClass.availableInVersion(majorVersion, minorVersion))
+ return true;
+ }
+ return false;
}
void NodeMetaInfo::setQmlFile(const QString &filePath)
diff --git a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp
index 8bae3ebba1..3f6330f412 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp
@@ -295,18 +295,21 @@ void SubComponentManagerPrivate::registerQmlFile(const QFileInfo &fileInfo, cons
const QDeclarativeDomObject rootObject = document.rootObject();
- const QString baseType = document.rootObject().objectType();
- Q_ASSERT_X(!baseType.isEmpty(), Q_FUNC_INFO, "Type of root object cannot be empty");
-
NodeMetaInfo nodeInfo(m_metaInfo);
- nodeInfo.setTypeName(componentName);
+ nodeInfo.setType(componentName, -1, -1);
nodeInfo.setQmlFile(fileInfo.filePath());
+ nodeInfo.setSuperClass(rootObject.objectType(),
+ rootObject.objectTypeMajorVersion(),
+ rootObject.objectTypeMinorVersion());
// Add file components to the library
- ItemLibraryEntry itemLibType = m_metaInfo.itemLibraryInfo().addItemLibraryEntry(nodeInfo, componentName);
- itemLibType.setCategory(tr("QML Components"));
+ ItemLibraryEntry itemLibraryEntry;
+ itemLibraryEntry.setType(nodeInfo.typeName(), nodeInfo.majorVersion(), nodeInfo.minorVersion());
+ itemLibraryEntry.setName(componentName);
+ itemLibraryEntry.setCategory(tr("QML Components"));
+ m_metaInfo.itemLibraryInfo()->addEntry(itemLibraryEntry);
- m_metaInfo.addNodeInfo(nodeInfo, baseType);
+ m_metaInfo.addNodeInfo(nodeInfo);
foreach (const QDeclarativeDomDynamicProperty &dynamicProperty, document.rootObject().dynamicProperties()) {
Q_ASSERT(!dynamicProperty.propertyName().isEmpty());
diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp
index c629541cf1..3cfafe5008 100644
--- a/src/plugins/qmldesigner/designercore/model/model.cpp
+++ b/src/plugins/qmldesigner/designercore/model/model.cpp
@@ -403,7 +403,7 @@ void ModelPrivate::resetModelByRewriter(const QString &description)
}
Q_ASSERT(rewriterView);
rewriterView->resetToLastCorrectQml();
- throw RewritingException(__LINE__, __FUNCTION__, __FILE__, description);
+ throw RewritingException(__LINE__, __FUNCTION__, __FILE__, description, rewriterView->textModifierContent());
}
diff --git a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
index 01c6d2eec1..ae081e94d4 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlmodelview.cpp
@@ -33,9 +33,15 @@
#include "itemlibraryinfo.h"
#include "modelutilities.h"
#include "mathutils.h"
+#include "invalididexception.h"
#include <QDir>
#include <QFileInfo>
#include <QDebug>
+#include <QMessageBox>
+
+enum {
+ debug = false
+};
namespace QmlDesigner {
@@ -159,13 +165,20 @@ QmlItemNode QmlModelView::createQmlItemNode(const ItemLibraryEntry &itemLibraryE
QString id;
int i = 1;
QString name(itemLibraryEntry.name().toLower());
- name.remove(QLatin1Char(' '));
+ //remove forbidden characters
+ name.replace(QRegExp(QLatin1String("[^a-zA-Z0-9_]")), QLatin1String("_"));
do {
id = name + QString::number(i);
i++;
} while (hasId(id)); //If the name already exists count upwards
- newNode.setId(id);
+ try {
+ newNode.setId(id);
+ } catch (InvalidIdException &e) {
+ // should never happen
+ QMessageBox::warning(0, tr("Invalid Id"), e.description());
+ }
+
if (!currentState().isBaseState()) {
newNode.modelNode().variantProperty("visible") = false;
newNode.setVariantProperty("visible", true);
@@ -226,12 +239,16 @@ QmlObjectNode QmlModelView::fxObjectNodeForId(const QString &id)
void QmlModelView::customNotification(const AbstractView * /* view */, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> & /* data */)
{
+ if (debug)
+ qDebug() << this << __FUNCTION__ << identifier << nodeList;
+
if (identifier == "__state changed__") {
QmlModelState state(nodeList.first());
- if (state.isValid())
+ if (state.isValid()) {
activateState(state);
- else
+ } else {
activateState(baseState());
+ }
}
}
@@ -280,6 +297,8 @@ static bool isTransformProperty(const QString &name)
void QmlModelView::nodeInstancePropertyChanged(const ModelNode &node, const QString &propertyName)
{
+ if (debug)
+ qDebug() << this << __FUNCTION__ << node << propertyName;
QmlObjectNode qmlObjectNode(node);
@@ -298,6 +317,9 @@ void QmlModelView::nodeInstancePropertyChanged(const ModelNode &node, const QStr
void QmlModelView::activateState(const QmlModelState &state)
{
+ if (debug)
+ qDebug() << this << __FUNCTION__ << state;
+
if (!state.isValid())
return;
@@ -317,6 +339,9 @@ void QmlModelView::activateState(const QmlModelState &state)
void QmlModelView::changeToState(const ModelNode &node, const QString &stateName)
{
+ if (debug)
+ qDebug() << this << __FUNCTION__ << node << stateName;
+
QmlItemNode itemNode(node);
QmlModelState newState;
@@ -346,8 +371,10 @@ void QmlModelView::otherPropertyChanged(const QmlObjectNode &/*qmlObjectNode*/,
{
}
-void QmlModelView::stateChanged(const QmlModelState &/*newQmlModelState*/, const QmlModelState &/*oldQmlModelState*/)
+void QmlModelView::stateChanged(const QmlModelState &newQmlModelState, const QmlModelState &oldQmlModelState)
{
+ if (debug)
+ qDebug() << this << __FUNCTION__ << oldQmlModelState << "to" << newQmlModelState;
}
} //QmlDesigner
diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
index ba98c801c1..71746b7f06 100644
--- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
+++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp
@@ -382,6 +382,14 @@ void RewriterView::setTextModifier(TextModifier *textModifier)
connect(m_textModifier, SIGNAL(textChanged()), this, SLOT(qmlTextChanged()));
}
+QString RewriterView::textModifierContent() const
+{
+ if (textModifier())
+ return textModifier()->text();
+
+ return QString();
+}
+
void RewriterView::applyModificationGroupChanges()
{
Q_ASSERT(transactionLevel == 0);
@@ -397,7 +405,7 @@ void RewriterView::applyChanges()
if (inErrorState()) {
qDebug() << "RewriterView::applyChanges() got called while in error state. Will do a quick-exit now.";
- throw RewritingException(__LINE__, __FUNCTION__, __FILE__, "RewriterView::applyChanges() already in error state");
+ throw RewritingException(__LINE__, __FUNCTION__, __FILE__, "RewriterView::applyChanges() already in error state", textModifierContent());
}
try {
@@ -410,7 +418,7 @@ void RewriterView::applyChanges()
}
if (inErrorState()) {
- throw RewritingException(__LINE__, __FUNCTION__, __FILE__, m_rewritingErrorMessage);
+ throw RewritingException(__LINE__, __FUNCTION__, __FILE__, m_rewritingErrorMessage, textModifierContent());
}
}
diff --git a/src/plugins/qmldesigner/fxplugin/fx.metainfo b/src/plugins/qmldesigner/fxplugin/fx.metainfo
index 0520af0d2d..a72bc012dc 100644
--- a/src/plugins/qmldesigner/fxplugin/fx.metainfo
+++ b/src/plugins/qmldesigner/fxplugin/fx.metainfo
@@ -42,7 +42,6 @@
</itemlibraryentry>
</node>
<node name="Qt/MouseArea" icon=":/fxplugin/images/mouse-area-icon16.png">
- <inherits name="Item" />
<itemlibraryentry name="Mouse Area" category="Qt - Interaction" icon=":/fxplugin/images/mouse-area-icon.png">
<property name="width" type="int" value="100"/>
<property name="height" type="int" value="100"/>
diff --git a/src/plugins/qt4projectmanager/qmakestep.ui b/src/plugins/qt4projectmanager/qmakestep.ui
index 801f839f01..16618e9ae7 100644
--- a/src/plugins/qt4projectmanager/qmakestep.ui
+++ b/src/plugins/qt4projectmanager/qmakestep.ui
@@ -17,7 +17,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
- <string>qmake Build Configuration:</string>
+ <string>qmake build configuration:</string>
</property>
</widget>
</item>
@@ -31,12 +31,12 @@
</property>
<item>
<property name="text">
- <string>debug</string>
+ <string>Debug</string>
</property>
</item>
<item>
<property name="text">
- <string>release</string>
+ <string>Release</string>
</property>
</item>
</widget>
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp
index 4d254aa768..8e9dff6f87 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfigurationwidget.cpp
@@ -82,7 +82,7 @@ MaemoRunConfigurationWidget::MaemoRunConfigurationWidget(
debuggerConfLabel->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
devConfLayout->addWidget(debuggerConfLabel);
- mainLayout->addRow(new QLabel(tr("Device Configuration:")), devConfWidget);
+ mainLayout->addRow(new QLabel(tr("Device configuration:")), devConfWidget);
m_executableLabel = new QLabel(m_runConfiguration->executable());
mainLayout->addRow(tr("Executable:"), m_executableLabel);
m_argsLineEdit = new QLineEdit(m_runConfiguration->arguments().join(" "));
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.cpp
index a253950113..e56ef65465 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.cpp
@@ -340,7 +340,7 @@ void MaemoSettingsWidget::deployKey()
const QString &dir
= QFileInfo(currentConfig().server.privateKeyFile).path();
QString publicKeyFileName = QFileDialog::getOpenFileName(this,
- tr("Choose public key file"), dir,
+ tr("Choose Public Key File"), dir,
tr("Public Key Files(*.pub);;All Files (*)"));
if (publicKeyFileName.isEmpty())
return;
@@ -362,7 +362,7 @@ void MaemoSettingsWidget::deployKey()
m_keyDeployer = new MaemoSshRunner(currentConfig().server, command);
connect(m_keyDeployer, SIGNAL(finished()),
this, SLOT(handleDeployThreadFinished()));
- m_ui->deployKeyButton->setText(tr("Stop deploying"));
+ m_ui->deployKeyButton->setText(tr("Stop Deploying"));
connect(m_ui->deployKeyButton, SIGNAL(clicked()), this, SLOT(stopDeploying()));
m_keyDeployer->start();
}
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.ui b/src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.ui
index ff70b437e9..00eac92c3d 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.ui
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemosettingswidget.ui
@@ -90,14 +90,14 @@
<item>
<widget class="QRadioButton" name="deviceButton">
<property name="text">
- <string>Remote Device</string>
+ <string>Remote device</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="simulatorButton">
<property name="text">
- <string>Local Simulator</string>
+ <string>Maemo emulator</string>
</property>
</widget>
</item>
@@ -137,7 +137,7 @@
<item row="3" column="0">
<widget class="QLabel" name="hostNameLabel">
<property name="text">
- <string>Host Name:</string>
+ <string>Host name:</string>
</property>
</widget>
</item>
@@ -211,7 +211,7 @@
<item row="5" column="0">
<widget class="QLabel" name="connectionTimeoutLabel">
<property name="text">
- <string>Connection Timeout:</string>
+ <string>Connection timeout:</string>
</property>
</widget>
</item>
@@ -251,7 +251,7 @@
<item row="6" column="0">
<widget class="QLabel" name="userNameLabel">
<property name="text">
- <string>User Name:</string>
+ <string>Username:</string>
</property>
</widget>
</item>
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.cpp
index 19c86ba7f1..6052b702a2 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.cpp
@@ -121,7 +121,7 @@ void MaemoSshConfigDialog::saveKey(bool publicKey)
const QString suggestedName = home + QString::fromLatin1("/.ssh/id_%1%2")
.arg(suggestedTypeSuffix).arg(publicKey ? ".pub" : "");
const QString dlgTitle
- = publicKey ? tr("Save public key file") : tr("Save private key file");
+ = publicKey ? tr("Save Public Key File") : tr("Save Private Key File");
const QString fileName
= QFileDialog::getSaveFileName(this, dlgTitle, suggestedName);
if (fileName.isEmpty())
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.ui b/src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.ui
index 85d5152e24..d85c4764d0 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.ui
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshconfigdialog.ui
@@ -198,7 +198,7 @@
<bool>false</bool>
</property>
<property name="text">
- <string>Save public Key...</string>
+ <string>Save Public Key...</string>
</property>
</widget>
</item>
@@ -208,7 +208,7 @@
<bool>false</bool>
</property>
<property name="text">
- <string>Save private Key...</string>
+ <string>Save Private Key...</string>
</property>
</widget>
</item>
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
index e3deb4d1ee..51f129b19b 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
@@ -75,7 +75,7 @@ S60CreatePackageStep::S60CreatePackageStep(ProjectExplorer::BuildConfiguration *
void S60CreatePackageStep::ctor_package()
{
- setDisplayName(tr("Create sis Package", "Create sis package build step name"));
+ setDisplayName(tr("Create SIS Package", "Create SIS package build step name"));
}
S60CreatePackageStep::~S60CreatePackageStep()
@@ -239,7 +239,7 @@ QStringList S60CreatePackageStepFactory::availableCreationIds(ProjectExplorer::B
QString S60CreatePackageStepFactory::displayNameForId(const QString &id) const
{
if (id == QLatin1String(SIGN_BS_ID))
- return tr("Create sis Package");
+ return tr("Create SIS Package");
return QString();
}
@@ -299,8 +299,8 @@ QString S60CreatePackageStepConfigWidget::summaryText() const
.arg(m_signStep->customKeyPath());
}
if (m_signStep->createSmartInstaller())
- return tr("<b>Create sis Package:</b> %1, using Smart Installer").arg(text);
- return tr("<b>Create sis Package:</b> %1").arg(text);
+ return tr("<b>Create SIS Package:</b> %1, using Smart Installer").arg(text);
+ return tr("<b>Create SIS Package:</b> %1").arg(text);
}
QString S60CreatePackageStepConfigWidget::displayName() const
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index ffeb87f153..ea94183e25 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -698,7 +698,7 @@ void S60DeviceRunControlBase::printConnectFailed(const QString &errorMessage)
void S60DeviceRunControlBase::printCopyingNotice()
{
- emit appendMessage(this, tr("Copying install file..."), false);
+ emit appendMessage(this, tr("Copying installation file..."), false);
}
void S60DeviceRunControlBase::printCopyProgress(int progress)
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp
index 1a02ca2e7a..5278d21299 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfigurationwidget.cpp
@@ -103,7 +103,7 @@ S60DeviceRunConfigurationWidget::S60DeviceRunConfigurationWidget(
nameLabel->setBuddy(m_nameLineEdit);
formLayout->addRow(nameLabel, m_nameLineEdit);
formLayout->addRow(tr("Arguments:"), m_argumentsLineEdit);
- formLayout->addRow(tr("Install File:"), m_sisFileLabel);
+ formLayout->addRow(tr("Installation file:"), m_sisFileLabel);
updateSerialDevices();
connect(SymbianUtils::SymbianDeviceManager::instance(), SIGNAL(updated()),
@@ -122,7 +122,7 @@ S60DeviceRunConfigurationWidget::S60DeviceRunConfigurationWidget(
serialPortHBoxLayout->addWidget(updateSerialDevicesButton);
}
- formLayout->addRow(tr("Device on Serial Port:"), serialPortHBoxLayout);
+ formLayout->addRow(tr("Device on serial port:"), serialPortHBoxLayout);
// Device Info with button. Widgets are enabled in above call to updateSerialDevices()
QHBoxLayout *infoHBoxLayout = new QHBoxLayout;
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.ui b/src/plugins/qt4projectmanager/qt4projectconfigwidget.ui
index bb0acd3a16..4188ffbfc4 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.ui
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.ui
@@ -14,7 +14,7 @@
<item row="0" column="0">
<widget class="QLabel" name="nameLabel">
<property name="text">
- <string>Configuration Name:</string>
+ <string>Configuration name:</string>
</property>
</widget>
</item>
@@ -37,7 +37,7 @@
</sizepolicy>
</property>
<property name="text">
- <string>Qt Version:</string>
+ <string>Qt version:</string>
</property>
</widget>
</item>
@@ -65,7 +65,7 @@
</sizepolicy>
</property>
<property name="text">
- <string>This Qt-Version is invalid.</string>
+ <string>This Qt version is invalid.</string>
</property>
</widget>
</item>
@@ -81,7 +81,7 @@
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
- <string>Tool Chain:</string>
+ <string>Tool chain:</string>
</property>
</widget>
</item>
@@ -91,7 +91,7 @@
<item row="3" column="0">
<widget class="QLabel" name="label">
<property name="text">
- <string>Shadow Build:</string>
+ <string>Shadow build:</string>
</property>
</widget>
</item>
@@ -111,7 +111,7 @@
</sizepolicy>
</property>
<property name="text">
- <string>Build Directory:</string>
+ <string>Build directory:</string>
</property>
</widget>
</item>
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.cpp b/src/plugins/qt4projectmanager/qt4projectmanager.cpp
index ce837124b7..443923c4c7 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.cpp
@@ -181,7 +181,7 @@ QString Qt4Manager::mimeType() const
return QLatin1String(Qt4ProjectManager::Constants::PROFILE_MIMETYPE);
}
-ProjectExplorer::Project* Qt4Manager::openProject(const QString &fileName)
+ProjectExplorer::Project *Qt4Manager::openProject(const QString &fileName)
{
Core::MessageManager *messageManager = Core::ICore::instance()->messageManager();
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.h b/src/plugins/qt4projectmanager/qt4projectmanager.h
index 21c316d87e..822383751a 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.h
@@ -79,7 +79,7 @@ public:
int projectLanguage() const;
virtual QString mimeType() const;
- ProjectExplorer::Project* openProject(const QString &fileName);
+ ProjectExplorer::Project *openProject(const QString &fileName);
// Context information used in the slot implementations
ProjectExplorer::Node *contextNode() const;
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index 052a814620..e3ca670490 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -210,7 +210,7 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
m_workingDirectoryEdit = new Utils::PathChooser(this);
m_workingDirectoryEdit->setPath(m_qt4RunConfiguration->workingDirectory());
m_workingDirectoryEdit->setExpectedKind(Utils::PathChooser::Directory);
- m_workingDirectoryEdit->setPromptDialogTitle(tr("Select the working directory"));
+ m_workingDirectoryEdit->setPromptDialogTitle(tr("Select Working Directory"));
QToolButton *resetButton = new QToolButton(this);
resetButton->setToolTip(tr("Reset to default"));
@@ -220,9 +220,9 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
boxlayout->setMargin(0);
boxlayout->addWidget(m_workingDirectoryEdit);
boxlayout->addWidget(resetButton);
- toplayout->addRow(tr("Working Directory:"), boxlayout);
+ toplayout->addRow(tr("Working directory:"), boxlayout);
- m_useTerminalCheck = new QCheckBox(tr("Run in Terminal"), this);
+ m_useTerminalCheck = new QCheckBox(tr("Run in terminal"), this);
m_useTerminalCheck->setChecked(m_qt4RunConfiguration->runMode() == ProjectExplorer::LocalApplicationRunConfiguration::Console);
toplayout->addRow(QString(), m_useTerminalCheck);
diff --git a/src/plugins/qt4projectmanager/wizards/targetsetuppage.ui b/src/plugins/qt4projectmanager/wizards/targetsetuppage.ui
index 6ecdf59fd6..42e73387d1 100644
--- a/src/plugins/qt4projectmanager/wizards/targetsetuppage.ui
+++ b/src/plugins/qt4projectmanager/wizards/targetsetuppage.ui
@@ -54,7 +54,7 @@
<item>
<widget class="QPushButton" name="importButton">
<property name="text">
- <string>Import existing shadow build...</string>
+ <string>Import Existing Shadow Build...</string>
</property>
<property name="flat">
<bool>false</bool>
diff --git a/src/plugins/subversion/checkoutwizard.cpp b/src/plugins/subversion/checkoutwizard.cpp
index dbe355b813..1175408a93 100644
--- a/src/plugins/subversion/checkoutwizard.cpp
+++ b/src/plugins/subversion/checkoutwizard.cpp
@@ -53,7 +53,7 @@ QIcon CheckoutWizard::icon() const
QString CheckoutWizard::description() const
{
- return tr("Checks out a project from a Subversion repository and tries to load the contained project.");
+ return tr("Checks out a Subversion repository and tries to load the contained project.");
}
QString CheckoutWizard::displayName() const
diff --git a/src/plugins/subversion/settingspage.ui b/src/plugins/subversion/settingspage.ui
index 249ad3fef2..4b659929aa 100644
--- a/src/plugins/subversion/settingspage.ui
+++ b/src/plugins/subversion/settingspage.ui
@@ -34,7 +34,7 @@
<item row="0" column="0">
<widget class="QLabel" name="usernameLabel">
<property name="text">
- <string>User name:</string>
+ <string>Username:</string>
</property>
</widget>
</item>
diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp
index 0210aa7b8c..04bcd16dea 100644
--- a/src/plugins/texteditor/basefilefind.cpp
+++ b/src/plugins/texteditor/basefilefind.cpp
@@ -212,7 +212,7 @@ QWidget *BaseFileFind::createPatternWidget()
QWidget *BaseFileFind::createRegExpWidget()
{
- m_useRegExpCheckBox = new QCheckBox(tr("Use Regular E&xpressions"));
+ m_useRegExpCheckBox = new QCheckBox(tr("Use regular e&xpressions"));
m_useRegExpCheckBox->setChecked(m_useRegExp);
connect(m_useRegExpCheckBox, SIGNAL(toggled(bool)), this, SLOT(syncRegExpSetting(bool)));
return m_useRegExpCheckBox;
diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index 413011f9c3..046bafef27 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -3674,19 +3674,7 @@ void BaseTextEditor::indentOrUnindent(bool doIndent)
QTextDocument *doc = document();
- if (!cursor.hasSelection() && doIndent) {
- // Insert tab if there is no selection and indent is requested
- QTextBlock block = cursor.block();
- QString text = block.text();
- int indentPosition = (cursor.position() - block.position());;
- int spaces = tabSettings.spacesLeftFromPosition(text, indentPosition);
- int startColumn = tabSettings.columnAt(text, indentPosition - spaces);
- int targetColumn = tabSettings.indentedColumn(tabSettings.columnAt(text, indentPosition), doIndent);
- cursor.setPosition(block.position() + indentPosition);
- cursor.setPosition(block.position() + indentPosition - spaces, QTextCursor::KeepAnchor);
- cursor.removeSelectedText();
- cursor.insertText(tabSettings.indentationString(startColumn, targetColumn, block));
- } else {
+ if (cursor.hasSelection()) {
// Indent or unindent the selected lines
int anchor = cursor.anchor();
int start = qMin(anchor, pos);
@@ -3707,6 +3695,18 @@ void BaseTextEditor::indentOrUnindent(bool doIndent)
cursor.setPosition(block.position() + indentPosition, QTextCursor::KeepAnchor);
cursor.removeSelectedText();
}
+ } else {
+ // Indent or unindent at cursor position
+ QTextBlock block = cursor.block();
+ QString text = block.text();
+ int indentPosition = cursor.positionInBlock();
+ int spaces = tabSettings.spacesLeftFromPosition(text, indentPosition);
+ int startColumn = tabSettings.columnAt(text, indentPosition - spaces);
+ int targetColumn = tabSettings.indentedColumn(tabSettings.columnAt(text, indentPosition), doIndent);
+ cursor.setPosition(block.position() + indentPosition);
+ cursor.setPosition(block.position() + indentPosition - spaces, QTextCursor::KeepAnchor);
+ cursor.removeSelectedText();
+ cursor.insertText(tabSettings.indentationString(startColumn, targetColumn, block));
}
cursor.endEditBlock();
diff --git a/src/plugins/texteditor/behaviorsettingspage.ui b/src/plugins/texteditor/behaviorsettingspage.ui
index 7e814a252f..8ccf21d507 100644
--- a/src/plugins/texteditor/behaviorsettingspage.ui
+++ b/src/plugins/texteditor/behaviorsettingspage.ui
@@ -200,7 +200,7 @@
</item>
<item>
<property name="text">
- <string>In leading white space</string>
+ <string>In Leading White Space</string>
</property>
</item>
</widget>
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index 0f9f8c9e22..e30c00f12e 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -450,7 +450,7 @@ void FontSettingsPage::copyColorScheme()
dialog->setAttribute(Qt::WA_DeleteOnClose);
dialog->setInputMode(QInputDialog::TextInput);
dialog->setWindowTitle(tr("Copy Color Scheme"));
- dialog->setLabelText(tr("Color Scheme name:"));
+ dialog->setLabelText(tr("Color scheme name:"));
dialog->setTextValue(tr("%1 (copy)").arg(d_ptr->m_value.colorScheme().displayName()));
connect(dialog, SIGNAL(textValueSelected(QString)), this, SLOT(copyColorScheme(QString)));
diff --git a/src/plugins/vcsbase/cleandialog.ui b/src/plugins/vcsbase/cleandialog.ui
index 2888100a3f..a24f047a59 100644
--- a/src/plugins/vcsbase/cleandialog.ui
+++ b/src/plugins/vcsbase/cleandialog.ui
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
- <string>Clean repository</string>
+ <string>Clean Repository</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
diff --git a/src/plugins/vcsbase/vcsbaseplugin.cpp b/src/plugins/vcsbase/vcsbaseplugin.cpp
index 3c437fadd9..8cc60f0cfe 100644
--- a/src/plugins/vcsbase/vcsbaseplugin.cpp
+++ b/src/plugins/vcsbase/vcsbaseplugin.cpp
@@ -557,7 +557,7 @@ void VCSBasePlugin::createRepository()
// Prompt for a directory that is not under version control yet
QMainWindow *mw = Core::ICore::instance()->mainWindow();
do {
- directory = QFileDialog::getExistingDirectory(mw, tr("Choose repository directory"), directory);
+ directory = QFileDialog::getExistingDirectory(mw, tr("Choose Repository Directory"), directory);
if (directory.isEmpty())
return;
const Core::IVersionControl *managingControl = Core::ICore::instance()->vcsManager()->findVersionControlForDirectory(directory);
diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
index 40d16af965..3bf3a68cd1 100644
--- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
@@ -3284,53 +3284,136 @@ void TestCore::testMetaInfo()
{
QScopedPointer<Model> model(Model::create("Qt/Item"));
QVERIFY(model.data());
+}
- QScopedPointer<TestView> view(new TestView);
- QVERIFY(view.data());
- model->attachView(view.data());
+void TestCore::testMetaInfoSimpleType()
+{
+ //
+ // Test type registered with qmlRegisterType:
+ //
+ // qmlRegisterType<QDeclarativeItem>("Qt",4,7,"Item")
+ //
+
+ QScopedPointer<Model> model(Model::create("Qt/Item"));
+ QVERIFY(model.data());
QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/Item"));
- QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/QtObject"));
- QVERIFY(model->metaInfo().isSubclassOf("Qt/Text", "Qt/QtObject"));
- QVERIFY(model->metaInfo().isSubclassOf("Qt/Text", "Qt/Item"));
- QVERIFY(model->metaInfo().isSubclassOf("Qt/Rectangle", "Qt/QtObject"));
+ QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/Item", 4, 7));
+
+ NodeMetaInfo itemMetaInfo = model->metaInfo().nodeMetaInfo("Qt/Item", 4, 7);
+ NodeMetaInfo itemMetaInfo2 = model->metaInfo().nodeMetaInfo("Qt/Item");
+ QCOMPARE(itemMetaInfo, itemMetaInfo2);
+
+ QVERIFY(itemMetaInfo.isValid());
+ QCOMPARE(itemMetaInfo.typeName(), QLatin1String("Qt/Item"));
+ QCOMPARE(itemMetaInfo.majorVersion(), 4);
+ QCOMPARE(itemMetaInfo.minorVersion(), 7);
+
+ // super classes
+ NodeMetaInfo graphicsObjectInfo = itemMetaInfo.directSuperClass();
+ QVERIFY(graphicsObjectInfo.isValid());
+ QCOMPARE(graphicsObjectInfo.typeName(), QLatin1String("QGraphicsObject"));
+ QCOMPARE(graphicsObjectInfo.majorVersion(), 4);
+ QCOMPARE(graphicsObjectInfo.minorVersion(), 7);
+
+ QCOMPARE(itemMetaInfo.superClasses().size(), 2); // QGraphicsObject, Qt/QtObject
+ QVERIFY(itemMetaInfo.isSubclassOf("QGraphicsObject", 4, 7));
+ QVERIFY(itemMetaInfo.isSubclassOf("Qt/QtObject", -1, -1));
+
+ // availableInVersion
+ QVERIFY(itemMetaInfo.availableInVersion(4, 7));
+ QVERIFY(itemMetaInfo.availableInVersion(4, 8));
+ QVERIFY(itemMetaInfo.availableInVersion(5, 0));
+ QVERIFY(itemMetaInfo.availableInVersion(-1, -1));
+ QVERIFY(!itemMetaInfo.availableInVersion(4, 6));
+ QVERIFY(!itemMetaInfo.availableInVersion(3, 7));
+}
- QVERIFY(!model->metaInfo().isSubclassOf("Fooo", "Qt/QtObject"));
+void TestCore::testMetaInfoUncreatableType()
+{
+ // Test type registered with qmlRegisterUncreatableType or qmlRegisterTypeNotAvailable:
+ //
+ // qmlRegisterUncreatableType<QDeclarativeAbstractAnimation>("Qt",4,7,"Animation",QDeclarativeAbstractAnimation::tr("Animation is an abstract class"));
+ //
- QCOMPARE(view->rootModelNode().metaInfo().typeName(), QString("Qt/Item"));
- QVERIFY(view->rootModelNode().metaInfo().hasProperty("x"));
- QVERIFY(!view->rootModelNode().metaInfo().hasProperty("blah"));
- QVERIFY(!view->rootModelNode().metaInfo().property("blah").isValid());
+ QScopedPointer<Model> model(Model::create("Qt/Item"));
+ QVERIFY(model.data());
- ModelNode rectNode = addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data");
+ QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/Animation"));
+ NodeMetaInfo animationTypeInfo = model->metaInfo().nodeMetaInfo("Qt/Animation", 4, 7);
+ QVERIFY(animationTypeInfo.isValid());
+
+ QVERIFY(animationTypeInfo.isValid());
+ QCOMPARE(animationTypeInfo.typeName(), QLatin1String("Qt/Animation"));
+ QCOMPARE(animationTypeInfo.majorVersion(), 4);
+ QCOMPARE(animationTypeInfo.minorVersion(), 7);
+
+ NodeMetaInfo qObjectTypeInfo = animationTypeInfo.directSuperClass();
+ QVERIFY(qObjectTypeInfo.isValid());
+ QCOMPARE(qObjectTypeInfo.typeName(), QLatin1String("Qt/QtObject"));
+ QCOMPARE(qObjectTypeInfo.majorVersion(), 4);
+ QCOMPARE(qObjectTypeInfo.minorVersion(), 7);
+ QCOMPARE(animationTypeInfo.superClasses().size(), 1);
+}
- QVERIFY(rectNode.metaInfo().isSubclassOf("Qt/QtObject"));
- QVERIFY(rectNode.metaInfo().isSubclassOf("Qt/Item"));
- QVERIFY(!rectNode.metaInfo().isSubclassOf("Qt/Text"));
- QVERIFY(rectNode.metaInfo().hasProperty("color"));
- QVERIFY(rectNode.metaInfo().hasProperty("x"));
- QVERIFY(!rectNode.metaInfo().hasProperty("blah"));
+void TestCore::testMetaInfoExtendedType()
+{
+ // Test type registered with qmlRegisterExtendedType
+ //
+ // qmlRegisterExtendedType<QGraphicsWidget,QDeclarativeGraphicsWidget>("Qt",4,7,"QGraphicsWidget");
+ //
- ModelNode textNode = addNodeListChild(view->rootModelNode(), "Qt/TextEdit", 4, 7, "data");
- NodeMetaInfo textNodeMetaInfo = textNode.metaInfo();
- QVERIFY(textNodeMetaInfo.hasProperty("text"));
- QVERIFY(textNodeMetaInfo.property("text").isValid());
- QVERIFY(textNodeMetaInfo.property("text").isReadable());
- QVERIFY(textNodeMetaInfo.property("text").isWriteable());
- QVERIFY(textNodeMetaInfo.property("x").isReadable());
- QVERIFY(textNodeMetaInfo.property("x").isWriteable());
- QVERIFY(textNodeMetaInfo.isSubclassOf("Qt/Item", 4, 7));
- QVERIFY(!textNodeMetaInfo.isSubclassOf("Blah"));
- QVERIFY(textNodeMetaInfo.isQmlGraphicsItem());
- QVERIFY(textNodeMetaInfo.isGraphicsObject());
- QVERIFY(!textNodeMetaInfo.isGraphicsWidget());
-
- // test types declared with EXTENDED_OBJECT
-// NodeMetaInfo graphicsWidgetInfo = model->metaInfo().nodeMetaInfo("Qt/QGraphicsWidget", 4, 7);
-// QVERIFY(graphicsWidgetInfo.isValid());
-// QVERIFY(graphicsWidgetInfo.hasProperty("layout")); // from QGraphicsWidgetDeclarativeUI
-// QVERIFY(graphicsWidgetInfo.hasProperty("font")); // from QGraphicsWidget
-// QVERIFY(graphicsWidgetInfo.hasProperty("enabled")); // from QGraphicsItem
+ QScopedPointer<Model> model(Model::create("Qt/Item"));
+ QVERIFY(model.data());
+
+ QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/QGraphicsWidget"));
+ NodeMetaInfo graphicsWidgetTypeInfo = model->metaInfo().nodeMetaInfo("Qt/QGraphicsWidget", 4, 7);
+ QVERIFY(graphicsWidgetTypeInfo.isValid());
+ QVERIFY(graphicsWidgetTypeInfo.hasProperty("layout")); // from QGraphicsWidgetDeclarativeUI
+ QVERIFY(graphicsWidgetTypeInfo.hasProperty("font")); // from QGraphicsWidget
+ QVERIFY(graphicsWidgetTypeInfo.hasProperty("enabled")); // from QGraphicsItem
+
+ NodeMetaInfo graphicsObjectTypeInfo = graphicsWidgetTypeInfo.directSuperClass();
+ QVERIFY(graphicsObjectTypeInfo.isValid());
+ QCOMPARE(graphicsObjectTypeInfo.typeName(), QLatin1String("QGraphicsObject"));
+ QCOMPARE(graphicsObjectTypeInfo.majorVersion(), 4);
+ QCOMPARE(graphicsObjectTypeInfo.minorVersion(), 7);
+ QCOMPARE(graphicsWidgetTypeInfo.superClasses().size(), 2);
+}
+
+void TestCore::testMetaInfoInterface()
+{
+ // Test type registered with qmlRegisterInterface
+ //
+
+ QSKIP("TODO: Test not implemented yet", SkipAll);
+}
+
+void TestCore::testMetaInfoCustomType()
+{
+ // Test type registered with qmlRegisterCustomType:
+ //
+ // qmlRegisterCustomType<QDeclarativePropertyChanges>("Qt", 4, 7, "PropertyChanges", new QDeclarativePropertyChangesParser);
+
+ QScopedPointer<Model> model(Model::create("Qt/Item"));
+ QVERIFY(model.data());
+
+ QVERIFY(model->metaInfo().hasNodeMetaInfo("Qt/PropertyChanges"));
+ NodeMetaInfo propertyChangesInfo = model->metaInfo().nodeMetaInfo("Qt/PropertyChanges", 4, 7);
+ QVERIFY(propertyChangesInfo.isValid());
+ QVERIFY(propertyChangesInfo.hasProperty("target")); // from QDeclarativePropertyChanges
+ QVERIFY(propertyChangesInfo.hasProperty("restoreEntryValues")); // from QDeclarativePropertyChanges
+ QVERIFY(propertyChangesInfo.hasProperty("explicit")); // from QDeclarativePropertyChanges
+
+ NodeMetaInfo stateOperationInfo = propertyChangesInfo.directSuperClass();
+ QVERIFY(stateOperationInfo.isValid());
+ QCOMPARE(stateOperationInfo.typeName(), QLatin1String("QDeclarativeStateOperation"));
+ QCOMPARE(stateOperationInfo.majorVersion(), 4);
+ QCOMPARE(stateOperationInfo.minorVersion(), 7);
+ QCOMPARE(propertyChangesInfo.superClasses().size(), 2);
+
+ // DeclarativePropertyChanges just has 3 properties
+ QCOMPARE(propertyChangesInfo.properties().size() - stateOperationInfo.properties().size(), 3);
}
void TestCore::testMetaInfoEnums()
@@ -3357,6 +3440,26 @@ void TestCore::testMetaInfoEnums()
QVERIFY(view->rootModelNode().metaInfo().property("horizontalAlignment").enumerator().elementNames().contains(QLatin1String("AlignRight")));
}
+void TestCore::testMetaInfoProperties()
+{
+ QScopedPointer<Model> model(Model::create("Qt/Text"));
+ QVERIFY(model.data());
+
+ NodeMetaInfo textNodeMetaInfo = model->metaInfo().nodeMetaInfo("Qt/TextEdit", 4, 7);
+ QVERIFY(textNodeMetaInfo.hasProperty("text")); // QDeclarativeTextEdit
+ QVERIFY(textNodeMetaInfo.hasProperty("parent")); // QDeclarativeItem
+ QVERIFY(textNodeMetaInfo.hasProperty("x")); // QGraphicsObject
+ QVERIFY(textNodeMetaInfo.hasProperty("objectName")); // Qt/QObject
+ QVERIFY(!textNodeMetaInfo.hasProperty("bla"));
+
+ QVERIFY(textNodeMetaInfo.property("text").isValid());
+ QVERIFY(textNodeMetaInfo.property("text").isReadable());
+ QVERIFY(textNodeMetaInfo.property("text").isWriteable());
+ QVERIFY(textNodeMetaInfo.property("x").isValid());
+ QVERIFY(textNodeMetaInfo.property("x").isReadable());
+ QVERIFY(textNodeMetaInfo.property("x").isWriteable());
+}
+
void TestCore::testMetaInfoDotProperties()
{
QScopedPointer<Model> model(Model::create("Qt/Text"));
@@ -6291,7 +6394,7 @@ void TestCore::loadGradient()
{
ModelNode gradientNode = rootModelNode.allDirectSubModelNodes().last();
QVERIFY(gradientNode.isValid());
- QVERIFY(!gradientNode.metaInfo().isQmlGraphicsItem());
+ QVERIFY(!gradientNode.metaInfo().isSubclassOf("Qt/Item", -1, -1));
QCOMPARE(gradientNode.type(), QString("Qt/Gradient"));
QCOMPARE(gradientNode.id(), QString("secondGradient"));
QCOMPARE(gradientNode.allDirectSubModelNodes().size(), 2);
diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.h b/tests/auto/qml/qmldesigner/coretests/testcore.h
index 525d555ea7..fbd683f88b 100644
--- a/tests/auto/qml/qmldesigner/coretests/testcore.h
+++ b/tests/auto/qml/qmldesigner/coretests/testcore.h
@@ -71,7 +71,13 @@ private slots:
// unit tests MetaInfo, NodeMetaInfo, PropertyMetaInfo
//
void testMetaInfo();
+ void testMetaInfoSimpleType();
+ void testMetaInfoUncreatableType();
+ void testMetaInfoExtendedType();
+ void testMetaInfoInterface();
+ void testMetaInfoCustomType();
void testMetaInfoEnums();
+ void testMetaInfoProperties();
void testMetaInfoDotProperties();
void testMetaInfoListProperties();