OSDN Git Service

Merge remote branch 'origin/2.0'
authorcon <qtc-committer@nokia.com>
Wed, 12 May 2010 15:25:40 +0000 (17:25 +0200)
committercon <qtc-committer@nokia.com>
Wed, 12 May 2010 15:25:40 +0000 (17:25 +0200)
Conflicts:
src/plugins/cpptools/cppcodecompletion.cpp

65 files changed:
share/qtcreator/templates/wizards/qml-runtime/wizard.xml
share/qtcreator/translations/qtcreator_de.ts
share/qtcreator/translations/qtcreator_pl.ts
src/libs/extensionsystem/pluginmanager.cpp
src/libs/extensionsystem/pluginmanager.h
src/libs/extensionsystem/pluginmanager_p.h
src/libs/qmljs/qmljsbind.cpp
src/libs/qmljs/qmljsbind.h
src/libs/qmljs/qmljsinterpreter.cpp
src/libs/qmljs/qmljsscopebuilder.cpp
src/libs/qmljs/qmljsscopebuilder.h
src/plugins/coreplugin/coreconstants.h
src/plugins/coreplugin/versiondialog.cpp
src/plugins/cppeditor/cppplugin.cpp
src/plugins/cpptools/completionsettingspage.cpp
src/plugins/cpptools/completionsettingspage.h
src/plugins/cpptools/cppcodecompletion.cpp
src/plugins/cpptools/cppcodecompletion.h
src/plugins/cpptools/cpptoolsplugin.cpp
src/plugins/cpptools/cpptoolsplugin.h
src/plugins/cvs/checkoutwizard.cpp
src/plugins/debugger/cdb/cdbdebugengine.cpp
src/plugins/designer/formeditorplugin.cpp
src/plugins/genericprojectmanager/genericprojectwizard.cpp
src/plugins/git/clonewizard.cpp
src/plugins/git/gitorious/gitoriousclonewizard.cpp
src/plugins/mercurial/clonewizard.cpp
src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp
src/plugins/qmldesigner/components/propertyeditor/qmlanchorbindingproxy.cpp
src/plugins/qmljseditor/qmljscodecompletion.cpp
src/plugins/qmljseditor/qmljscodecompletion.h
src/plugins/qmljseditor/qmljseditorplugin.cpp
src/plugins/qmljseditor/qmljseditorplugin.h
src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp
src/plugins/qt4projectmanager/qtversionmanager.cpp
src/plugins/qt4projectmanager/wizards/consoleappwizard.cpp
src/plugins/qt4projectmanager/wizards/emptyprojectwizard.cpp
src/plugins/qt4projectmanager/wizards/guiappwizard.cpp
src/plugins/qt4projectmanager/wizards/librarywizard.cpp
src/plugins/qt4projectmanager/wizards/mobileguiappwizard.cpp
src/plugins/qt4projectmanager/wizards/testwizard.cpp
src/plugins/resourceeditor/resourceeditorplugin.cpp
src/plugins/subversion/checkoutwizard.cpp
src/plugins/texteditor/basetexteditor.cpp
src/plugins/texteditor/basetexteditor.h
src/plugins/texteditor/basetexteditor_p.h
src/plugins/texteditor/completionsettings.cpp [new file with mode: 0644]
src/plugins/texteditor/completionsettings.h [new file with mode: 0644]
src/plugins/texteditor/icompletioncollector.cpp
src/plugins/texteditor/icompletioncollector.h
src/plugins/texteditor/texteditor.pro
src/plugins/texteditor/texteditorplugin.cpp
src/plugins/texteditor/texteditorsettings.cpp
src/plugins/texteditor/texteditorsettings.h
src/plugins/welcome/images/welcomebg.png
src/plugins/welcome/welcomemode.ui
src/shared/help/bookmarkmanager.cpp
src/shared/help/contentwindow.cpp
src/shared/help/indexwindow.cpp
src/shared/qrceditor/qrceditor.cpp
src/shared/qrceditor/resourceview.cpp
src/shared/qrceditor/resourceview.h
src/shared/symbianutils/launcher.cpp
src/shared/symbianutils/trkutils.cpp
src/shared/symbianutils/trkutils.h

index de785e2..4f7576f 100644 (file)
@@ -37,7 +37,7 @@ leave room for the Qt 4 target page.
 <wizard version="1" kind="project"
         class="qt4project" firstpage="10"
         id="QmlRuntimePlugin" category="F.Projects">
-    <description>Creates a plug-in for the QML runtime.</description>
+    <description>Creates a C++ plugin to extend the funtionality of the QML runtime.</description>
     <displayname>QML Runtime Plug-in</displayname>
     <displaycategory>QML Runtime Plug-in</displaycategory>
     <files>
index 737a823..10e85df 100644 (file)
@@ -2102,7 +2102,12 @@ Sollen sie überschrieben werden?</translation>
         <translation>Neu</translation>
     </message>
     <message>
-        <location line="+542"/>
+        <location line="+516"/>
+        <source>Open Project</source>
+        <translation>Projekt öffnen</translation>
+    </message>
+    <message>
+        <location line="+38"/>
         <source>Settings...</source>
         <translation>Einstellungen...</translation>
     </message>
@@ -2236,7 +2241,7 @@ Sollen sie überschrieben werden?</translation>
 <context>
     <name>Core::Internal::OutputPaneManager</name>
     <message>
-        <location filename="../../../src/plugins/coreplugin/outputpane.cpp" line="+206"/>
+        <location filename="../../../src/plugins/coreplugin/outputpane.cpp" line="+209"/>
         <source>Output</source>
         <translation>Ausgaben</translation>
     </message>
@@ -2256,7 +2261,7 @@ Sollen sie überschrieben werden?</translation>
         <translation>Vorangehender Eintrag</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <location line="+195"/>
         <source>Maximize Output Pane</source>
         <translation>Ausgabepanel maximiert darstellen</translation>
@@ -2429,9 +2434,13 @@ Sollen sie überschrieben werden?</translation>
 <context>
     <name>Core::ModeManager</name>
     <message>
-        <location filename="../../../src/plugins/coreplugin/modemanager.cpp" line="+180"/>
         <source>Switch to %1 mode</source>
-        <translation>Gehe zu Mode &apos;%1&apos;</translation>
+        <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>
     </message>
 </context>
 <context>
@@ -7620,7 +7629,7 @@ on slow machines. In this case, the value should be increased.</source>
 <context>
     <name>Git::Internal::LocalBranchModel</name>
     <message>
-        <location filename="../../../src/plugins/git/branchmodel.cpp" line="+196"/>
+        <location filename="../../../src/plugins/git/branchmodel.cpp" line="+197"/>
         <source>&lt;New branch&gt;</source>
         <translation>&lt;Neuer Branch&gt;</translation>
     </message>
@@ -9447,7 +9456,7 @@ on slow machines. In this case, the value should be increased.</source>
         <translation>Umgebungsvariablen</translation>
     </message>
     <message>
-        <location filename="../../../src/plugins/perforce/settingspage.cpp" line="+136"/>
+        <location filename="../../../src/plugins/perforce/settingspage.cpp" line="+137"/>
         <source>Perforce</source>
         <translation>Perforce</translation>
     </message>
@@ -9596,7 +9605,7 @@ on slow machines. In this case, the value should be increased.</source>
     </message>
     <message>
         <location filename="../../../src/plugins/qmldesigner/components/pluginmanager/pluginpath.cpp" line="+181"/>
-        <location filename="../../../src/plugins/qmldesigner/core/pluginmanager/widgetpluginpath.cpp" line="+204"/>
+        <location filename="../../../src/plugins/qmldesigner/designercore/pluginmanager/widgetpluginpath.cpp" line="+204"/>
         <source>Failed Plugins</source>
         <translation>Nicht geladene Plugins (Fehlschlag beim Ladevorgang)</translation>
     </message>
@@ -9972,7 +9981,7 @@ Fehler: %2</translation>
 <context>
     <name>ProjectExplorer::Internal::AllProjectsFind</name>
     <message>
-        <location filename="../../../src/plugins/projectexplorer/allprojectsfind.cpp" line="+64"/>
+        <location filename="../../../src/plugins/projectexplorer/allprojectsfind.cpp" line="+65"/>
         <source>All Projects</source>
         <translation>Alle Projekte</translation>
     </message>
@@ -10033,7 +10042,22 @@ Fehler: %2</translation>
 <context>
     <name>ProjectExplorer::Internal::BuildStepsPage</name>
     <message>
-        <location filename="../../../src/plugins/projectexplorer/buildstepspage.cpp" line="+259"/>
+        <location filename="../../../src/plugins/projectexplorer/buildstepspage.cpp" line="+176"/>
+        <source>Move Up</source>
+        <translation>Nach oben</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Move Down</source>
+        <translation>Nach unten</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Remove Item</source>
+        <translation>Element löschen</translation>
+    </message>
+    <message>
+        <location line="+80"/>
         <source>Removing Step failed</source>
         <translation>Das Entfernen des Build-Schritts schlug fehl</translation>
     </message>
@@ -10058,7 +10082,7 @@ Fehler: %2</translation>
         <translation>Schritt zur Bereinigung hinzufügen</translation>
     </message>
     <message>
-        <location line="-210"/>
+        <location line="-218"/>
         <source>Build Steps</source>
         <translation>Erstellungsschritte</translation>
     </message>
@@ -10116,7 +10140,7 @@ Fehler: %2</translation>
 <context>
     <name>ProjectExplorer::Internal::CurrentProjectFind</name>
     <message>
-        <location filename="../../../src/plugins/projectexplorer/currentprojectfind.cpp" line="+64"/>
+        <location filename="../../../src/plugins/projectexplorer/currentprojectfind.cpp" line="+65"/>
         <source>Current Project</source>
         <translation>Aktuelles Projekt</translation>
     </message>
@@ -10490,7 +10514,7 @@ No project selected</extracomment>
         <translation>Sitzungen...</translation>
     </message>
     <message>
-        <location filename="../../../src/plugins/projectexplorer/projectwelcomepagewidget.cpp" line="+127"/>
+        <location filename="../../../src/plugins/projectexplorer/projectwelcomepagewidget.cpp" line="+128"/>
         <source>%1 (last session)</source>
         <translation>%1 (zuletzt benutzt)</translation>
     </message>
@@ -10500,12 +10524,11 @@ No project selected</extracomment>
         <translation>%1 (aktuelle Sitzung)</translation>
     </message>
     <message>
-        <location line="+42"/>
         <source>Open Project</source>
-        <translation>Projekt öffnen</translation>
+        <translation type="obsolete">Projekt öffnen</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+47"/>
         <source>New Project</source>
         <translation>Neues Projekt</translation>
     </message>
@@ -11646,7 +11669,7 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
         <translation>Schon gewusst?</translation>
     </message>
     <message>
-        <location filename="../../../src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp" line="+71"/>
+        <location filename="../../../src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp" line="+72"/>
         <source>The Qt Creator User Interface</source>
         <translation>Die Benutzeroberfläche von Qt Creator</translation>
     </message>
@@ -11661,13 +11684,13 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
         <translation>Erstellen einer Qt-Quick-Anwendung</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+58"/>
+        <location line="+38"/>
+        <location line="+53"/>
         <source>Choose an example...</source>
         <translation>Beispiel wählen...</translation>
     </message>
     <message>
-        <location line="+69"/>
+        <location line="+85"/>
         <source>Copy Project to writable Location?</source>
         <translation>Soll das Projekt in ein schreibbares Verzeichnis kopiert werden?</translation>
     </message>
@@ -11820,6 +11843,11 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
         <source>Explore Qt Quick Examples</source>
         <translation>Qt Quick-Beispiele öffnen</translation>
     </message>
+    <message>
+        <location/>
+        <source>Open Project...</source>
+        <translation>Projekt öffnen...</translation>
+    </message>
 </context>
 <context>
     <name>Qt4ProjectManager::Internal::GuiAppWizard</name>
@@ -11948,7 +11976,7 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
 <context>
     <name>Qt4ProjectManager::Internal::QMakeStepFactory</name>
     <message>
-        <location filename="../../../src/plugins/qt4projectmanager/qmakestep.cpp" line="+473"/>
+        <location filename="../../../src/plugins/qt4projectmanager/qmakestep.cpp" line="+486"/>
         <source>qmake</source>
         <translation>qmake</translation>
     </message>
@@ -12303,6 +12331,12 @@ unter Versionsverwaltung (%2) gestellt werden?</translation>
     </message>
     <message>
         <location line="+2"/>
+        <source>Qt Simulator</source>
+        <comment>Qt Version is meant for Qt Simulator</comment>
+        <translation>Qt Simulator</translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>unkown</source>
         <comment>No idea what this Qt Version is meant for!</comment>
         <translation>unbekannt</translation>
@@ -12769,13 +12803,13 @@ Installiere Anwendung auf &apos;%2&apos;...</translation>
 <context>
     <name>Qt4ProjectManager::QMakeStep</name>
     <message>
-        <location filename="../../../src/plugins/qt4projectmanager/qmakestep.cpp" line="-392"/>
+        <location filename="../../../src/plugins/qt4projectmanager/qmakestep.cpp" line="-405"/>
         <source>qmake</source>
         <comment>QMakeStep display name.</comment>
         <translation></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+120"/>
         <source>&lt;font color=&quot;#0000ff&quot;&gt;Configuration is faulty, please check the Build Issues view for details.&lt;/font&gt;</source>
         <translation>&lt;font color=&quot;#0000ff&quot;&gt;Die Konfiguration ist fehlerhaft. Details befinden sich in der Ansicht &quot;Build-Probleme&quot;.&lt;/font&gt;</translation>
     </message>
@@ -12814,7 +12848,7 @@ Installiere Anwendung auf &apos;%2&apos;...</translation>
 <context>
     <name>Qt4ProjectManager::QtVersionManager</name>
     <message>
-        <location filename="../../../src/plugins/qt4projectmanager/qtversionmanager.cpp" line="+387"/>
+        <location filename="../../../src/plugins/qt4projectmanager/qtversionmanager.cpp" line="+388"/>
         <source>&lt;not found&gt;</source>
         <translation>&lt;nicht gefunden&gt;</translation>
     </message>
@@ -14034,7 +14068,7 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt  von einem Leerzeich
 <context>
     <name>TextEditor::BaseTextEditorEditable</name>
     <message>
-        <location line="+4718"/>
+        <location line="+4802"/>
         <source>Line: %1, Col: %2</source>
         <translation>Zeile: %1, Spalte: %2</translation>
     </message>
@@ -14584,12 +14618,12 @@ Die folgenden Encodings scheinen der Datei zu entsprechen:</translation>
     <message>
         <location line="+6"/>
         <source>Go to Block Start With Selection</source>
-        <translation>Zum Blockanfang mit Auswahl gehen</translation>
+        <translation>Bis Blockanfang markieren</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Go to Block End With Selection</source>
-        <translation>Zum Blockende mit Auswahl gehen</translation>
+        <translation>Bis Blockende markieren</translation>
     </message>
     <message>
         <location line="-61"/>
@@ -14747,7 +14781,87 @@ Die folgenden Encodings scheinen der Datei zu entsprechen:</translation>
         <translation>Ctrl+J</translation>
     </message>
     <message>
-        <location line="+94"/>
+        <location line="+5"/>
+        <source>Goto Line Start</source>
+        <translation>Zeilenanfang</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Line End</source>
+        <translation>Zeilenende</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Next Line</source>
+        <translation>Nächste Zeile</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Previous Line</source>
+        <translation>Vorangehende Zeile</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Previous Character</source>
+        <translation>Vorangehendes Zeichen</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Next Character</source>
+        <translation>Nächstes Zeichen</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Previous Word</source>
+        <translation>Vorangehendes Wort</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Next Word</source>
+        <translation>Nächstes Wort</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Goto Line Start With Selection</source>
+        <translation>Bis Zeilenanfang markieren</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Line End With Selection</source>
+        <translation>Bis Zeilenende markieren</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Next Line With Selection</source>
+        <translation>Bis zur nächsten Zeile markieren</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Previous Line With Selection</source>
+        <translation>Bis zur vorangehenden Zeile markieren</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Previous Character With Selection</source>
+        <translation>Vorangehendes Zeichen markieren</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Next Character With Selection</source>
+        <translation>Nächstes Zeichen markieren</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Previous Word With Selection</source>
+        <translation>Vorangehendes Wort markieren</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Goto Next Word With Selection</source>
+        <translation>Nächstes Wort markieren</translation>
+    </message>
+    <message>
+        <location line="+96"/>
         <source>&lt;line number&gt;</source>
         <translation>&lt;Zeilennummer&gt;</translation>
     </message>
@@ -15108,7 +15222,7 @@ Die folgenden Encodings scheinen der Datei zu entsprechen:</translation>
 <context>
     <name>Utils::DetailsButton</name>
     <message>
-        <location filename="../../../src/libs/utils/detailsbutton.cpp" line="+136"/>
+        <location filename="../../../src/libs/utils/detailsbutton.cpp" line="+68"/>
         <source>Details</source>
         <translation>Details</translation>
     </message>
@@ -15809,9 +15923,8 @@ p, li { white-space: pre-wrap; }
         <translation>&lt;b&gt;Qt Apps&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Finden Sie freie, Qt-basierte Applikationen&lt;/font&gt;</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+34"/>
         <source>http://labs.trolltech.com/blogs/feed</source>
-        <extracomment>Add localized feed here only if one exists</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -17390,7 +17503,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
 <context>
     <name>CMakeProjectManager::Internal::CMakeTarget</name>
     <message>
-        <location filename="../../../src/plugins/cmakeprojectmanager/cmaketarget.cpp" line="+47"/>
+        <location filename="../../../src/plugins/cmakeprojectmanager/cmaketarget.cpp" line="+49"/>
         <location filename="../../../src/plugins/projectexplorer/userfileaccessor.cpp" line="+772"/>
         <source>Desktop</source>
         <comment>CMake Default target display name</comment>
@@ -18382,7 +18495,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
         <translation>Es ist kein Ziel festgelegt.</translation>
     </message>
     <message>
-        <location line="+103"/>
+        <location line="+102"/>
         <source>Qt Creator</source>
         <translation>Qt Creator</translation>
     </message>
@@ -18473,7 +18586,13 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
         <translation>Maemo</translation>
     </message>
     <message>
-        <location line="+378"/>
+        <location line="+2"/>
+        <source>Qt Simulator</source>
+        <comment>Qt4 Simulator target display name</comment>
+        <translation>Qt Simulator</translation>
+    </message>
+    <message>
+        <location line="+383"/>
         <source>&lt;b&gt;Device:&lt;/b&gt; Not connected</source>
         <translation>&lt;b&gt;Gerät:&lt;/b&gt; Nicht angeschlossen</translation>
     </message>
@@ -18505,7 +18624,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
         <translation>-Neues Formular-</translation>
     </message>
     <message>
-        <location line="+179"/>
+        <location line="+182"/>
         <source>Cannot save to file &quot;%1&quot;: permission denied.</source>
         <translation>Die Datei &quot;%1&quot; konnte wegen nicht ausreichender Zugriffsrechte nicht geschrieben werden.</translation>
     </message>
@@ -18550,7 +18669,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
         <translation>Kein QmlDesigner-Plugin.</translation>
     </message>
     <message>
-        <location filename="../../../src/plugins/qmldesigner/core/pluginmanager/widgetpluginpath.cpp" line="-133"/>
+        <location filename="../../../src/plugins/qmldesigner/designercore/pluginmanager/widgetpluginpath.cpp" line="-133"/>
         <source>Failed to create instance of file &apos;%1&apos;: %2</source>
         <translation>Es konnte keine Instanz der Datei &apos;%1&apos; erzeugt werden: %2</translation>
     </message>
@@ -18712,7 +18831,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
 <context>
     <name>QmlDesigner::RewriterView</name>
     <message>
-        <location filename="../../../src/plugins/qmldesigner/core/model/rewriterview.cpp" line="+79"/>
+        <location filename="../../../src/plugins/qmldesigner/designercore/model/rewriterview.cpp" line="+79"/>
         <source>Error parsing</source>
         <translation>Fehler beim Parsen</translation>
     </message>
@@ -19200,7 +19319,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="+902"/>
+        <location filename="../../../src/plugins/qt4projectmanager/qtversionmanager.cpp" line="+928"/>
         <source>No qmake path set</source>
         <translation>Es ist keine qmake-Pfad gesetzt</translation>
     </message>
@@ -19220,7 +19339,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
         <translation>Der Pfad zu den ausführbaren Dateien der Qt-Installation konnte nicht bestimmt werden, möglicherweise ist der Pfad zu qmake falsch?</translation>
     </message>
     <message>
-        <location line="+122"/>
+        <location line="+128"/>
         <source>The Qt Version has no toolchain.</source>
         <translation>Dieser Qt-Version ist keine Toolchain zugeordnet.</translation>
     </message>
@@ -19262,7 +19381,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
 <context>
     <name>TextEditor</name>
     <message>
-        <location filename="../../../src/plugins/texteditor/texteditorconstants.h" line="+111"/>
+        <location filename="../../../src/plugins/texteditor/texteditorconstants.h" line="+127"/>
         <source>Text Editor</source>
         <translation>Text Editor</translation>
     </message>
@@ -19318,7 +19437,7 @@ Sie können die Änderungen in einem Stash ablegen oder rücksetzen.</translatio
 <context>
     <name>trk::Launcher</name>
     <message>
-        <location filename="../../../src/shared/symbianutils/launcher.cpp" line="+492"/>
+        <location filename="../../../src/shared/symbianutils/launcher.cpp" line="+506"/>
         <source>Cannot open remote file &apos;%1&apos;: %2</source>
         <translation>Die Datei &apos;%1&apos; auf dem Gerät konnte nicht geöffnet werden: %2</translation>
     </message>
@@ -19892,7 +20011,7 @@ Please check your project settings.</source>
 <context>
     <name>Qt4ProjectManager::Internal::Qt4TargetFactory</name>
     <message>
-        <location filename="../../../src/plugins/qt4projectmanager/qt4target.cpp" line="-271"/>
+        <location filename="../../../src/plugins/qt4projectmanager/qt4target.cpp" line="-274"/>
         <source>Debug</source>
         <translation>Debug</translation>
     </message>
@@ -20313,7 +20432,7 @@ Please check your project settings.</source>
 <context>
     <name>Core::CommandMappings</name>
     <message>
-        <location filename="../../../src/plugins/coreplugin/actionmanager/commandmappings.cpp" line="+138"/>
+        <location filename="../../../src/plugins/coreplugin/actionmanager/commandmappings.cpp" line="+139"/>
         <source>Command</source>
         <translation>Kommando</translation>
     </message>
@@ -20434,7 +20553,7 @@ Please check your project settings.</source>
 <context>
     <name>QmlDesigner::Internal::SubComponentManagerPrivate</name>
     <message>
-        <location filename="../../../src/plugins/qmldesigner/core/metainfo/subcomponentmanager.cpp" line="+307"/>
+        <location filename="../../../src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp" line="+307"/>
         <source>QML Components</source>
         <translation>QML-Komponenten</translation>
     </message>
@@ -20735,7 +20854,7 @@ Haben Sie Qemu gestartet?</translation>
 <context>
     <name>Qt4ProjectManager::Internal::S60CreatePackageStepConfigWidget</name>
     <message>
-        <location line="+47"/>
+        <location line="+49"/>
         <source>self-signed</source>
         <translation>Selbstsigniert</translation>
     </message>
@@ -21319,14 +21438,22 @@ Haben Sie Qemu gestartet?</translation>
 <context>
     <name>Designer::Internal::FormEditorFactory</name>
     <message>
-        <location filename="../../../src/plugins/designer/formeditorfactory.cpp" line="+93"/>
         <source>This file can only be edited in Design Mode.</source>
-        <translation>Datei kann nur im Entwurfsmodus bearbeitet werden.</translation>
+        <translation type="obsolete">Datei kann nur im Entwurfsmodus bearbeitet werden.</translation>
     </message>
     <message>
-        <location line="+1"/>
         <source>Open Designer</source>
-        <translation>Designer öffnen</translation>
+        <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>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Switch mode</source>
+        <translation>Modus umschalten</translation>
     </message>
 </context>
 <context>
@@ -21410,7 +21537,7 @@ Haben Sie Qemu gestartet?</translation>
         <translation>Status</translation>
     </message>
     <message>
-        <location filename="../../../src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp" line="+297"/>
+        <location filename="../../../src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp" line="+300"/>
         <source>Qt Creator can set up the following targets for project &lt;b&gt;%1&lt;/b&gt;:</source>
         <comment>%1: Project name</comment>
         <translation>Qt Creator kann für das Projekt &lt;b&gt;%1&lt;/b&gt; die folgenden Ziele anlegen:</translation>
@@ -21444,7 +21571,7 @@ Haben Sie Qemu gestartet?</translation>
         <translation>&lt;b&gt;Warnung:&lt;/b&gt; </translation>
     </message>
     <message>
-        <location line="-295"/>
+        <location line="-298"/>
         <source>Import</source>
         <comment>Is this an import of an existing build or a new one?</comment>
         <translation>Import</translation>
@@ -21943,7 +22070,7 @@ Namen &lt;E-Mail&gt; Alias &lt;E-Mail?</translation>
 <context>
     <name>QmlDesigner::Internal::ModelPrivate</name>
     <message>
-        <location filename="../../../src/plugins/qmldesigner/core/model/model.cpp" line="+172"/>
+        <location filename="../../../src/plugins/qmldesigner/designercore/model/model.cpp" line="+172"/>
         <source>invalid type</source>
         <translation>ungültiger Typ</translation>
     </message>
@@ -22428,7 +22555,7 @@ Namen &lt;E-Mail&gt; Alias &lt;E-Mail?</translation>
 <context>
     <name>Qt4ProjectManager::QtVersion</name>
     <message>
-        <location filename="../../../src/plugins/qt4projectmanager/qtversionmanager.cpp" line="-989"/>
+        <location filename="../../../src/plugins/qt4projectmanager/qtversionmanager.cpp" line="-1021"/>
         <source>The Qt version is invalid: %1</source>
         <extracomment>%1: Reason for being invalid</extracomment>
         <translation>Ungültige Qt-Version: %1</translation>
@@ -22558,7 +22685,7 @@ Namen &lt;E-Mail&gt; Alias &lt;E-Mail?</translation>
 <context>
     <name>InvalidIdException</name>
     <message>
-        <location filename="../../../src/plugins/qmldesigner/core/exceptions/invalididexception.cpp" line="+59"/>
+        <location filename="../../../src/plugins/qmldesigner/designercore/exceptions/invalididexception.cpp" line="+59"/>
         <source>Ids have to be unique: </source>
         <translation>Ids müssen eindeutig sein: </translation>
     </message>
@@ -22579,7 +22706,7 @@ Ids müssen mit einem Kleinbuchstaben beginnen und dürfen nur alphanumerische Z
 <context>
     <name>QmlDesigner::InvalidArgumentException</name>
     <message>
-        <location filename="../../../src/plugins/qmldesigner/core/exceptions/invalidargumentexception.cpp" line="+60"/>
+        <location filename="../../../src/plugins/qmldesigner/designercore/exceptions/invalidargumentexception.cpp" line="+60"/>
         <source>Failed to create item of type %1</source>
         <translation>Es konnte kein Element des Typs %1 erzeugt werden</translation>
     </message>
index b612653..3b9405e 100644 (file)
     <message>
         <location/>
         <source>Load</source>
-        <translation type="unfinished"></translation>
+        <translation>Załadowana</translation>
     </message>
 </context>
 <context>
@@ -911,7 +911,7 @@ p, li { white-space: pre-wrap; }
     <message>
         <location/>
         <source>Timeout:</source>
-        <translation type="unfinished"></translation>
+        <translation>Czas oczekiwania:</translation>
     </message>
     <message>
         <location/>
@@ -1262,17 +1262,20 @@ p, li { white-space: pre-wrap; }
 to extract full path information for all source files from gdb. This is a
 slow process but enables setting breakpoints in files with the same file
 name in different directories.</source>
-        <translation type="unfinished"></translation>
+        <translation>Kiedy ta opcja jest zaznaczona, debugger próbuje uzyskać informacje od gdb
+o pełnych ścieżkach dla wszystkich plików źródłowych. Jest to wolny proces
+ale umożliwia ustawianie pułapek w plikach o tych samych nazwach
+leżących w różnych katalogach.</translation>
     </message>
     <message>
         <location/>
         <source>Use full path information to set breakpoints</source>
-        <translation type="unfinished"></translation>
+        <translation>Używaj informacji o pełnych ścieżkach do ustawiania pułapek</translation>
     </message>
     <message>
         <location/>
         <source>Gdb timeout:</source>
-        <translation type="unfinished"></translation>
+        <translation>Czas oczekiwania:</translation>
     </message>
     <message>
         <location/>
@@ -1281,7 +1284,11 @@ it terminates non-responsive gdb process. The default value of 20 seconds
 should be sufficient for most applications, but there are situations when
 loading big libraries or listing source files takes much longer than that
 on slow machines. In this case, the value should be increased.</source>
-        <translation type="unfinished"></translation>
+        <translation>Jest to czas wyrażony w sekundach przez który Qt Creator będzie oczekiwał na odpowiedź
+od procesu gdb zanim go zakończy. Domyślna wartość 20 sekund powinna być
+wystarczająca dla większości aplikacji, lecz mogą zdarzyć się sytuacje że ładowanie
+bibliotek o dużych rozmiarach lub wyświetlanie plików źródłowych zajmie dużo więcej
+czasu na powolnych maszynach. W takich przypadkach wartość ta powinna zostać zwiększona.</translation>
     </message>
     <message>
         <location/>
@@ -1297,7 +1304,7 @@ on slow machines. In this case, the value should be increased.</source>
         <location/>
         <source>When this option is checked, &apos;Step Into&apos; compresses several steps into one in certain situations, leading to &apos;less noisy&apos; debugging. So will, e.g., the atomic
  reference counting code be skipped, and a single &apos;Step Into&apos; for a signal emission will end up directly in the slot connected to it.</source>
-        <translation>Kiedy ta opcja jest zaznaczona &quot;Wskocz do wnętrza&quot; kompresuje w pewnych sytuacjach kilka kroków w jeden, co prowadzi do przejrzystszego debugowania. I tak np. kod atomowego licznika referencji będzie pominięty, a pojedyńcze &quot;Wskocz do wnętrza&quot; dla emisji sygnału wskoczy bezpośrednio do podłączonego slotu.</translation>
+        <translation>Kiedy ta opcja jest zaznaczona &quot;Wskocz do wnętrza&quot; kompresuje w pewnych sytuacjach kilka kroków w jeden, co prowadzi do przejrzystszego debugowania. I tak np. kod atomowego licznika referencji będzie pominięty, a pojedyncze &quot;Wskocz do wnętrza&quot; dla emisji sygnału wskoczy bezpośrednio do podłączonego slotu.</translation>
     </message>
     <message>
         <location/>
@@ -1507,7 +1514,7 @@ on slow machines. In this case, the value should be increased.</source>
     <message>
         <location/>
         <source>Shift width:</source>
-        <translation type="unfinished"></translation>
+        <translation>Szerokość przesunięcia:</translation>
     </message>
     <message>
         <source>Smart tabulators:</source>
@@ -1530,7 +1537,7 @@ on slow machines. In this case, the value should be increased.</source>
     <message>
         <location/>
         <source>Backspace:</source>
-        <translation type="unfinished"></translation>
+        <translation>Cofnięcie:</translation>
     </message>
     <message>
         <source>VIM&apos;s &quot;autoindent&quot; option</source>
@@ -2049,7 +2056,7 @@ on slow machines. In this case, the value should be increased.</source>
     <message>
         <location/>
         <source>Timeout:</source>
-        <translation type="unfinished"></translation>
+        <translation>Czas oczekiwania:</translation>
     </message>
     <message>
         <location/>
@@ -2351,7 +2358,7 @@ Add, modify, and remove document filters, which determine the documentation set
     <message>
         <location/>
         <source>Timeout:</source>
-        <translation type="unfinished"></translation>
+        <translation>Czas oczekiwania:</translation>
     </message>
     <message>
         <location/>
@@ -2366,7 +2373,7 @@ Add, modify, and remove document filters, which determine the documentation set
     <message>
         <location/>
         <source>Log count:</source>
-        <translation type="unfinished"></translation>
+        <translation>Licznik dziennika:</translation>
     </message>
     <message>
         <location/>
@@ -3103,7 +3110,7 @@ Jednocześnie samoczynnie ustawia odpowiednią wersję Qt.</translation>
     <message>
         <location line="+4"/>
         <source>You can switch between Qt Creator&apos;s modes using &lt;tt&gt;Ctrl+number&lt;/tt&gt;:&lt;ul&gt;&lt;li&gt;1 - Welcome&lt;/li&gt;&lt;li&gt;2 - Edit&lt;/li&gt;&lt;li&gt;3 - Debug&lt;/li&gt;&lt;li&gt;4 - Projects&lt;/li&gt;&lt;li&gt;5 - Help&lt;/li&gt;&lt;/ul&gt;</source>
-        <translation>Możesz przełączać tryby Qt Creator&apos;a używając &lt;tt&gt;Ctrl+liczba&lt;/tt&gt;:&lt;ul&gt;&lt;li&gt;1 - Powitanie&lt;/li&gt;&lt;li&gt;2 - Edycja&lt;/li&gt;&lt;li&gt;3 - Debug&lt;/li&gt;&lt;li&gt;4 - Projekty&lt;/li&gt;&lt;li&gt;5 - Pomoc&lt;/li&gt;&lt;/ul&gt;</translation>
+        <translation>Możesz przełączać tryby Qt Creator&apos;a używając &lt;tt&gt;Ctrl+liczba&lt;/tt&gt;:&lt;ul&gt;&lt;li&gt;1 - Powitanie&lt;/li&gt;&lt;li&gt;2 - Edycja&lt;/li&gt;&lt;li&gt;3 - Debugowanie&lt;/li&gt;&lt;li&gt;4 - Projekty&lt;/li&gt;&lt;li&gt;5 - Pomoc&lt;/li&gt;&lt;/ul&gt;</translation>
     </message>
     <message>
         <location line="+21"/>
@@ -3590,7 +3597,7 @@ p, li { white-space: pre-wrap; }
     <message>
         <location/>
         <source>Timeout:</source>
-        <translation type="unfinished"></translation>
+        <translation>Czas oczekiwania:</translation>
     </message>
     <message>
         <location/>
@@ -3833,7 +3840,7 @@ p, li { white-space: pre-wrap; }
     <message>
         <location/>
         <source>&amp;Visualize whitespace</source>
-        <translation>&amp;Pokazuj białe znaki</translation>
+        <translation>Pokazuj &amp;białe znaki</translation>
     </message>
     <message>
         <source>Animate matching parentheses</source>
@@ -3875,12 +3882,12 @@ p, li { white-space: pre-wrap; }
     <message>
         <location/>
         <source>Auto-fold first &amp;comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Zwijaj automatycznie początkowy &amp;komentarz</translation>
     </message>
     <message>
         <location/>
         <source>Center &amp;cursor on scroll</source>
-        <translation type="unfinished"></translation>
+        <translation>Wyśrodkowuj przy &amp;przewijaniu</translation>
     </message>
 </context>
 <context>
@@ -3991,32 +3998,32 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="../../../src/plugins/welcome/communitywelcomepagewidget.cpp" line="+46"/>
         <source>&lt;b&gt;Forum Nokia&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Mobile Application Support&lt;/font&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Forum Nokii&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Wsparcie techniczne dla mobilnych aplikacji&lt;/font&gt;</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&lt;b&gt;Qt LGPL Support&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Buy professional Qt support&lt;/font&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Wsparcie techniczne Qt LGPL&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Kup profesjonalne wsparcie techniczne Qt&lt;/font&gt;</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&lt;b&gt;Qt Centre&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Community based Qt support&lt;/font&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Qt Centre&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Społeczne wsparcie techniczne Qt&lt;/font&gt;</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>&lt;b&gt;Qt Home&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Qt by Nokia on the web&lt;/font&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Strona domowa Qt&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Strona domowa Qt / Nokia&lt;/font&gt;</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&lt;b&gt;Qt Git Hosting&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Participate in Qt development&lt;/font&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Składnica Git dla Qt&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Weź udział w rozwoju Qt&lt;/font&gt;</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&lt;b&gt;Qt Apps&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Find free Qt-based apps&lt;/font&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;b&gt;Aplikacje Qt&lt;/b&gt;&lt;br /&gt;&lt;font color=&apos;gray&apos;&gt;Znajdź darmowe aplikacje bazujące na Qt&lt;/font&gt;</translation>
     </message>
     <message>
         <location line="+34"/>
@@ -4594,7 +4601,7 @@ Przyczyna: %3</translation>
     <message>
         <location line="+244"/>
         <source>Resolving dependencies failed because state != Read</source>
-        <translation>Rozwiązanie zależności nie udało się, bo stan wtyczki jest inny niż &quot;wczytana&quot;</translation>
+        <translation>Nie udało się rozwiązać zależności ponieważ stan wtyczki jest inny niż &quot;wczytana&quot;</translation>
     </message>
     <message>
         <location line="+23"/>
@@ -4604,7 +4611,7 @@ Przyczyna: %3</translation>
     <message>
         <location line="+28"/>
         <source>Loading the library failed because state != Resolved</source>
-        <translation>Ładowanie biblioteki nie powiodło się, bo stan wtyczki jest inny niż &quot;rozwiązana&quot;</translation>
+        <translation>Błąd ładowania biblioteki, stan wtyczki jest inny niż &quot;rozwiązana&quot;</translation>
     </message>
     <message>
         <location line="+36"/>
@@ -4614,7 +4621,7 @@ Przyczyna: %3</translation>
     <message>
         <location line="+21"/>
         <source>Initializing the plugin failed because state != Loaded</source>
-        <translation>Zainicjowanie wtyczki nie powiodło się, bo jej stan jest inny niż &quot;załadowana&quot;</translation>
+        <translation>Błąd inicjalizacji wtyczki, jej stan jest inny niż &quot;załadowana&quot;</translation>
     </message>
     <message>
         <location line="+5"/>
@@ -4624,7 +4631,7 @@ Przyczyna: %3</translation>
     <message>
         <location line="+6"/>
         <source>Plugin initialization failed: %1</source>
-        <translation>Nie można zainicjalizować wtyczki: %1</translation>
+        <translation>Błąd inicjalizacji wtyczki: %1</translation>
     </message>
     <message>
         <location line="+19"/>
@@ -7556,7 +7563,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku.</translation>
     <message>
         <location line="+2"/>
         <source>&lt;html&gt;The installed version of the &lt;i&gt;Debugging Tools for Windows&lt;/i&gt; (%1) is rather old. Upgrading to version %2 is recommended for the proper display of Qt&apos;s data types.&lt;/html&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;html&gt;Zainstalowana wersja &lt;i&gt;narzędzi debugowych dla Windows&lt;/i&gt; (%1) jest przestarzała. Zalecane jest uaktualnienie do wersji %2 w celu poprawnego wyświetlania typów danych Qt.&lt;/html&gt;</translation>
     </message>
     <message>
         <location line="+4"/>
@@ -7622,7 +7629,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku.</translation>
     <message>
         <location line="+37"/>
         <source>Stepping %1</source>
-        <translation type="unfinished"></translation>
+        <translation>Kroczenie %1</translation>
     </message>
     <message>
         <source>Running to 0x%1...</source>
@@ -7763,7 +7770,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku.</translation>
     <message>
         <location line="+29"/>
         <source>The debuggee does not appear to be Qt application.</source>
-        <translation type="unfinished"></translation>
+        <translation>Debugowany proces nie wygląda na aplikację Qt.</translation>
     </message>
     <message>
         <location line="+10"/>
@@ -7841,12 +7848,12 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku.</translation>
     <message>
         <location filename="../../../src/plugins/debugger/cdb/cdbsymbolpathlisteditor.cpp" line="+42"/>
         <source>Symbol Server...</source>
-        <translation type="unfinished"></translation>
+        <translation>Serwer z symbolami...</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Adds the Microsoft symbol server providing symbols for operating system libraries.Requires specifying a local cache directory.</source>
-        <translation type="unfinished"></translation>
+        <translation>Dodaje serwer z symbolami Microsoft dostarczający symboli dla bibliotek systemu operacyjnego. Wymaga podania katalogu dla lokalnego cache.</translation>
     </message>
     <message>
         <location line="+6"/>
@@ -8539,7 +8546,7 @@ Zwróć uwagę że spowoduje to usunięcie lokalnego pliku.</translation>
     <message>
         <location filename="../../../src/plugins/debugger/debuggerplugin.cpp" line="+216"/>
         <source>Debug</source>
-        <translation>Debug</translation>
+        <translation>Debugowanie</translation>
     </message>
 </context>
 <context>
@@ -8629,12 +8636,12 @@ Czy chcesz ją zakończyć?</translation>
     <message>
         <location line="+5"/>
         <source>Detach Debugger</source>
-        <translation>Odłącz debugger</translation>
+        <translation>Odłącz debuggera</translation>
     </message>
     <message>
         <location line="+44"/>
         <source>Stop Debugger/Interrupt Debugger</source>
-        <translation>Zatrzymaj debugger / przerwij debugger</translation>
+        <translation>Zatrzymaj debuggera / przerwij debuggera</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -8825,7 +8832,7 @@ Czy chcesz ją zakończyć?</translation>
     <message>
         <location filename="../../../src/plugins/debugger/gdb/gdbengine.cpp" line="+290"/>
         <source>The Gdb process failed to start. Either the invoked program &apos;%1&apos; is missing, or you may have insufficient permissions to invoke the program.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można rozpocząć procesu Gdb. Brak programu &quot;%1&quot; albo brak wymaganych uprawnień aby go uruchomić.</translation>
     </message>
     <message>
         <location line="+5"/>
@@ -9022,12 +9029,12 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej.</translation>
     <message>
         <location line="+12"/>
         <source>Run to line %1 requested...</source>
-        <translation type="unfinished"></translation>
+        <translation>Zażądano wykonania do osiągnięcia linii %1...</translation>
     </message>
     <message>
         <location line="+23"/>
         <source>Run to function %1 requested...</source>
-        <translation type="unfinished"></translation>
+        <translation>Zażądano wykonania do osiągnięcia funkcji %1...</translation>
     </message>
     <message>
         <location line="+594"/>
@@ -9161,7 +9168,8 @@ Zaleca się użycie gdb wersji 6.7 lub późniejszej.</translation>
         <location line="+1"/>
         <source>In order to load snapshots the debugged process needs to be stopped. Continuation will not be possible afterwards.
 Do you want to stop the debugged process and load the selected snapshot?</source>
-        <translation type="unfinished"></translation>
+        <translation>W celu załadowania zrzutów należy zakończyć debugowany proces. Kontynuacja debugowania nie będzie wtedy możliwa.
+Czy chcesz zakończyć debugowany proces i załadować wybrany zrzut?</translation>
     </message>
     <message>
         <location line="+378"/>
@@ -9171,7 +9179,7 @@ Do you want to stop the debugged process and load the selected snapshot?</source
     <message>
         <location line="+777"/>
         <source>crashed</source>
-        <translation type="unfinished"></translation>
+        <translation>zakończył pracę błędem</translation>
     </message>
     <message>
         <location line="+0"/>
@@ -9181,12 +9189,12 @@ Do you want to stop the debugged process and load the selected snapshot?</source
     <message>
         <location line="+14"/>
         <source>Adapter start failed</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można uruchomić adaptera</translation>
     </message>
     <message>
         <location line="-70"/>
         <source>Cannot find debugger initialization script</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można odnaleźć skryptu inicjalizującego dla debuggera</translation>
     </message>
     <message>
         <location line="-3638"/>
@@ -9314,7 +9322,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location line="+53"/>
         <source>There is no gdb binary available for &apos;%1&apos;</source>
-        <translation type="unfinished"></translation>
+        <translation>Brak dostępnego pliku binarnego gdb dla &quot;%1&quot;</translation>
     </message>
     <message>
         <location line="+57"/>
@@ -9324,12 +9332,12 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location line="+232"/>
         <source>Immediate return from function requested...</source>
-        <translation type="unfinished"></translation>
+        <translation>Zażądano natychmiastowego powrotu z funkcji...</translation>
     </message>
     <message>
         <location line="+406"/>
         <source>ATTEMPT BREAKPOINT SYNC</source>
-        <translation type="unfinished"></translation>
+        <translation>PRÓBA SYNCHRONIZACJI PUŁAPEK</translation>
     </message>
     <message>
         <location line="+229"/>
@@ -9356,12 +9364,12 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location filename="../../../src/plugins/debugger/gdb/classicgdbengine.cpp" line="-161"/>
         <source>The debugging helper library was not found at %1.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie odnaleziono biblioteki asystenta debuggera w %1.</translation>
     </message>
     <message>
         <location filename="../../../src/plugins/debugger/gdb/gdbengine.cpp" line="-135"/>
         <source>The debugger settings point to a script file at &apos;%1&apos; which is not accessible. If a script file is not needed, consider clearing that entry to avoid this warning. </source>
-        <translation type="unfinished"></translation>
+        <translation>Ustawienia debuggera pokazują na skrypt w &quot;%1&quot; króry nie jest dostępny. Jeśli plik ze skryptem nie jest potrzebny rozważ usunięcie go z ustawień w celu uniknięcia tego ostrzeżenia.</translation>
     </message>
     <message>
         <location line="+109"/>
@@ -9385,7 +9393,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location line="+68"/>
         <source>Adapter crashed</source>
-        <translation type="unfinished"></translation>
+        <translation>Adapter zakończył pracę błędem</translation>
     </message>
 </context>
 <context>
@@ -9425,7 +9433,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location filename="../../../src/plugins/debugger/gdb/remotegdbadapter.cpp" line="+113"/>
         <source>The upload process failed to start. Shell missing?</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można rozpocząć procesu upload. Brak powłoki?</translation>
     </message>
     <message>
         <location line="+3"/>
@@ -9473,7 +9481,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location filename="../../../src/plugins/debugger/gdb/trkgdbadapter.cpp" line="+1723"/>
         <source>Port specification missing.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie podano portu.</translation>
     </message>
     <message>
         <location line="+6"/>
@@ -9483,7 +9491,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location line="+118"/>
         <source>Process started, PID: 0x%1, thread id: 0x%2, code segment: 0x%3, data segment: 0x%4.</source>
-        <translation type="unfinished"></translation>
+        <translation>Proces uruchomiony, PID: 0x%1, identyfikator wątku: 0x%2, segment kodu: 0x%3, segment danych: 0x%4.</translation>
     </message>
     <message>
         <location line="+40"/>
@@ -9715,7 +9723,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location line="+43"/>
         <source>Invalid non-negative number</source>
-        <translation type="unfinished"></translation>
+        <translation>Niepoprawna liczba naturalna</translation>
     </message>
     <message>
         <location line="+58"/>
@@ -9786,29 +9794,29 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location line="+17"/>
         <source>Invalid pointer-to-member-type</source>
-        <translation type="unfinished"></translation>
+        <translation>Niepoprawny wskaźnik do typu składnika</translation>
     </message>
     <message>
         <location line="+47"/>
         <location line="+10"/>
         <location line="+36"/>
         <source>Invalid substitution</source>
-        <translation type="unfinished"></translation>
+        <translation>Niepoprawne zastąpienie</translation>
     </message>
     <message>
         <location line="-42"/>
         <source>Invalid substitution: element %1 was requested, but there are only %2</source>
-        <translation type="unfinished"></translation>
+        <translation>Niepoprawne zastąpienie: zażądano elementu %1 podczas gdy wszystkich elementów jest %2</translation>
     </message>
     <message>
         <location line="+11"/>
         <source>Invalid substitution: There are no elements</source>
-        <translation type="unfinished"></translation>
+        <translation>Niepoprawne zastąpienie: brak elementów</translation>
     </message>
     <message>
         <location line="+103"/>
         <source>Invalid special-name</source>
-        <translation type="unfinished"></translation>
+        <translation>Niepoprawna nazwa specjalna</translation>
     </message>
     <message>
         <location line="+43"/>
@@ -10372,22 +10380,22 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location line="+1"/>
         <source>Latin1 string</source>
-        <translation type="unfinished"></translation>
+        <translation>Ciąg Latin1</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>UTF8 string</source>
-        <translation type="unfinished"></translation>
+        <translation>Ciąg UTF8</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>UTF16 string</source>
-        <translation type="unfinished"></translation>
+        <translation>Ciąg UTF16</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>UCS4 string</source>
-        <translation type="unfinished"></translation>
+        <translation>Ciąg UCS4</translation>
     </message>
     <message>
         <location line="+89"/>
@@ -10410,7 +10418,7 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
     <message>
         <location filename="../../../src/plugins/debugger/watchutils.cpp" line="+103"/>
         <source>Found an outdated version of the debugging helper library (%1); version %2 is required.</source>
-        <translation type="unfinished"></translation>
+        <translation>Znaleziono nieaktualną wersję biblioteki asystenta debuggera (%1); wymagana wersja: %2.</translation>
     </message>
     <message>
         <location line="+36"/>
@@ -10596,13 +10604,15 @@ Zaleca się użycie gdb wersji 7.1 lub późniejszej.</translation>
         <location filename="../../../src/plugins/designer/codemodelhelpers.cpp" line="+129"/>
         <source>The generated header of the form &apos;%1&apos; could be found.
 Rebuilding the project might help.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można odnaleźć wygenerowanego pliku nagłówkowego dla formularza &quot;%1&quot;.
+Spróbuj ponownie przebudować projekt.</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>The generated header &apos;%1&apos; could not be found in the code model.
 Rebuilding the project might help.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można odnaleźć wygenerowanego pliku nagłówkowego &quot;%1&quot; w modelu kodu.
+Spróbuj ponownie przebudować projekt.</translation>
     </message>
 </context>
 <context>
@@ -10867,7 +10877,7 @@ Rebuilding the project might help.</source>
         <source>No documents matching &apos;%1&apos; could be found.
 Rebuilding the project might help.</source>
         <translation>Brak dokumentów załączających &quot;%1&quot;.
-Przebudowanie projektu może pomóc w odnalezieniu ich.</translation>
+Przebudowanie projektu może pomóc w ich odnalezieniu.</translation>
     </message>
     <message>
         <location line="+59"/>
@@ -11545,7 +11555,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich.</translation>
     <message>
         <location line="+2"/>
         <source>Unable apply patch %1 to %2: %3</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można zastosować łaty %1 do %2: %3</translation>
     </message>
     <message>
         <location line="+576"/>
@@ -11654,7 +11664,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich.</translation>
     <message>
         <location line="+32"/>
         <source>Git SVN Log</source>
-        <translation type="unfinished"></translation>
+        <translation>Dziennik git SVN</translation>
     </message>
     <message>
         <location line="+14"/>
@@ -11670,7 +11680,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich.</translation>
 &apos;%1&apos; failed (exit code %2).
 </source>
         <translation>
-&apos;%1&apos; zakończone niepowodzeniem (kod wyjściowy %2).
+&apos;%1&apos; zakończone błędem (kod wyjściowy %2).
 </translation>
     </message>
     <message>
@@ -11693,7 +11703,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich.</translation>
     <message>
         <location line="+45"/>
         <source>Request failed for &apos;%1&apos;: %2</source>
-        <translation>Żądanie zostało niepomyślnie zakończone dla &quot;%1&quot;: %2</translation>
+        <translation>Żądanie zostało błędnie zakończone dla &quot;%1&quot;: %2</translation>
     </message>
     <message>
         <location line="+80"/>
@@ -11894,12 +11904,12 @@ Przebudowanie projektu może pomóc w odnalezieniu ich.</translation>
     <message>
         <location line="-51"/>
         <source>Clean Project...</source>
-        <translation type="unfinished"></translation>
+        <translation>Wyczyść projekt...</translation>
     </message>
     <message>
         <location line="+0"/>
         <source>Clean Project &quot;%1&quot;...</source>
-        <translation type="unfinished"></translation>
+        <translation>Wyczyść projekt &quot;%1&quot;...</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -11959,7 +11969,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich.</translation>
     <message>
         <location line="+3"/>
         <source>Pull</source>
-        <translation type="unfinished"></translation>
+        <translation>Pociągnij</translation>
     </message>
     <message>
         <location line="+4"/>
@@ -11984,7 +11994,7 @@ Przebudowanie projektu może pomóc w odnalezieniu ich.</translation>
     <message>
         <location line="+3"/>
         <source>Push</source>
-        <translation type="unfinished"></translation>
+        <translation>Popchnij</translation>
     </message>
     <message>
         <location line="+6"/>
@@ -14032,12 +14042,12 @@ Powód: %2</translation>
     <message>
         <location line="+338"/>
         <source>Cannot run without a project.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można uruchamiać bez wybranego projektu.</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Cannot debug without a project.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można debugować bez wybranego projektu.</translation>
     </message>
     <message>
         <location line="+151"/>
@@ -16947,7 +16957,7 @@ Następujące kodowania będą najprawdopodobniej pasowały:</translation>
     <message>
         <location line="+3"/>
         <source>&amp;Rewrap Paragraph</source>
-        <translation type="unfinished"></translation>
+        <translation>Zawiń &amp;ponownie paragraf</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -16957,7 +16967,7 @@ Następujące kodowania będą najprawdopodobniej pasowały:</translation>
     <message>
         <location line="+5"/>
         <source>&amp;Visualize Whitespace</source>
-        <translation>&amp;Pokazuj białe znaki</translation>
+        <translation>Pokazuj &amp;białe znaki</translation>
     </message>
     <message>
         <location line="+4"/>
@@ -17967,7 +17977,7 @@ Następujące kodowania będą najprawdopodobniej pasowały:</translation>
     <message>
         <location line="+10"/>
         <source>Copying failed</source>
-        <translation>Kopiowanie zakończone niepowodzeniem</translation>
+        <translation>Błąd kopiowania</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -18842,7 +18852,7 @@ aktywny tylko po wpisaniu przedrostka</translation>
     <message>
         <location line="+4"/>
         <source>%1: Process %2 crashed.</source>
-        <translation type="unfinished"></translation>
+        <translation>%1: Proces %2 zakończył pracę błędem.</translation>
     </message>
     <message>
         <location line="+8"/>
@@ -19298,7 +19308,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location/>
         <source>Log count:</source>
-        <translation type="unfinished"></translation>
+        <translation>Licznik dziennika:</translation>
     </message>
     <message>
         <location/>
@@ -19308,7 +19318,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location/>
         <source>Timeout:</source>
-        <translation type="unfinished"></translation>
+        <translation>Czas oczekiwania:</translation>
     </message>
     <message>
         <location/>
@@ -20249,7 +20259,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location/>
         <source>Connection Timeout:</source>
-        <translation type="unfinished"></translation>
+        <translation>Czas oczekiwania na połączenie:</translation>
     </message>
     <message>
         <location/>
@@ -20528,12 +20538,12 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="-245"/>
         <source>easing-curve name is not a string</source>
-        <translation type="unfinished"></translation>
+        <translation>nazwa łagodnej krzywej nie jest ciągiem</translation>
     </message>
     <message>
         <location line="-6"/>
         <source>unknown easing-curve name</source>
-        <translation type="unfinished"></translation>
+        <translation>nieznana nazwa łagodnej krzywej</translation>
     </message>
     <message>
         <location line="+4"/>
@@ -20553,7 +20563,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+12"/>
         <source>string value expected</source>
-        <translation type="unfinished"></translation>
+        <translation>Oczekiwano wartości typu ciąg</translation>
     </message>
     <message>
         <location line="+41"/>
@@ -20563,7 +20573,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+9"/>
         <source>expected anchor line</source>
-        <translation type="unfinished"></translation>
+        <translation>oczekiwano linii kotwicznej</translation>
     </message>
     <message>
         <location line="+93"/>
@@ -20691,7 +20701,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location filename="../../../src/libs/utils/unixutils.cpp" line="+60"/>
         <source>&lt;table border=1 cellspacing=0 cellpadding=3&gt;&lt;tr&gt;&lt;th&gt;Variable&lt;/th&gt;&lt;th&gt;Expands to&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%d&lt;/td&gt;&lt;td&gt;directory of current file&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%f&lt;/td&gt;&lt;td&gt;file name (with full path)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%n&lt;/td&gt;&lt;td&gt;file name (without path)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>&lt;table border=1 cellspacing=0 cellpadding=3&gt;&lt;tr&gt;&lt;th&gt;Zmienna&lt;/th&gt;&lt;th&gt;Rozwinięcie&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%d&lt;/td&gt;&lt;td&gt;katalog bieżącego pliku&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%f&lt;/td&gt;&lt;td&gt;nazwa pliku (z pełną ścieżką)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%n&lt;/td&gt;&lt;td&gt;nazwa pliku (bez ścieżki)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;%%&lt;/td&gt;&lt;td&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
 </context>
 <context>
@@ -20717,12 +20727,12 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+110"/>
         <source>Copy Selection as ASCII Characters</source>
-        <translation type="unfinished"></translation>
+        <translation>Skopiuj jako znaki ASCII</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Copy Selection as Hex Values</source>
-        <translation type="unfinished"></translation>
+        <translation>Skopiuj jako wartości szesnastkowe</translation>
     </message>
     <message>
         <location line="+27"/>
@@ -21596,12 +21606,12 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+44"/>
         <source>Pull...</source>
-        <translation type="unfinished"></translation>
+        <translation>Pociągnij...</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Push...</source>
-        <translation type="unfinished"></translation>
+        <translation>Popchnij...</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -21656,7 +21666,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+28"/>
         <source>Incoming Source</source>
-        <translation type="unfinished"></translation>
+        <translation>Nadchodzące źródło</translation>
     </message>
     <message>
         <location line="+18"/>
@@ -21747,7 +21757,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+19"/>
         <source>&quot;%1&quot; crashed.</source>
-        <translation>Wystąpił błąd w &quot;%1&quot; - proces zakończony.</translation>
+        <translation>&quot;%1&quot; zakończył pracę błędem.</translation>
     </message>
     <message>
         <location line="+5"/>
@@ -21862,7 +21872,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+1"/>
         <source>Example Object Class-name:</source>
-        <translation type="unfinished"></translation>
+        <translation>Przykładowa nazwa klasy obiektu:</translation>
     </message>
 </context>
 <context>
@@ -21976,7 +21986,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+2"/>
         <source>Open Terminal here...</source>
-        <translation type="unfinished"></translation>
+        <translation>Otwórz tutaj terminal...</translation>
     </message>
     <message>
         <location line="+9"/>
@@ -22891,7 +22901,7 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+1"/>
         <source>Show uninspectable items</source>
-        <translation type="unfinished">Pokazuj elementy</translation>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -22975,7 +22985,9 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
         <source>[Inspector] disconnected.
 
 </source>
-        <translation type="unfinished"></translation>
+        <translation>[Inspektor] rozłączony.
+
+</translation>
     </message>
     <message>
         <location line="+14"/>
@@ -23002,7 +23014,8 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
         <location line="+23"/>
         <source>[Inspector] error: (%1) %2</source>
         <comment>%1=error code, %2=error message</comment>
-        <translation type="unfinished"></translation>
+        <translation>[Inspektor] błąd: (%1) %2
+</translation>
     </message>
     <message>
         <location line="+111"/>
@@ -23012,13 +23025,13 @@ Możesz odłożyć zmiany lub je porzucić.</translation>
     <message>
         <location line="+32"/>
         <source>No project was found.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie znaleziono żadnego projektu.</translation>
     </message>
     <message>
         <location line="+21"/>
         <location line="+47"/>
         <source>No run configurations were found for the project &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie znaleziono żadnych konfiguracji uruchamiania dla projektu &quot;%1&quot;.</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -23034,7 +23047,7 @@ Please check your project settings.</source>
     <message>
         <location line="+54"/>
         <source>Debugging failed: could not start C++ debugger.</source>
-        <translation type="unfinished"></translation>
+        <translation>Błąd debugowania: nie można uruchomić debuggera C++.</translation>
     </message>
     <message>
         <location line="-287"/>
@@ -23095,28 +23108,28 @@ Please check your project settings.</source>
     <message>
         <location filename="../../../src/plugins/qmljseditor/qmljseditorfactory.cpp" line="+141"/>
         <source>Do you want to enable the experimental Qt Quick Designer?</source>
-        <translation type="unfinished"></translation>
+        <translation>Czy chcesz włączyć eksperymentalnego Qt Quick Designera?</translation>
     </message>
     <message>
         <location line="+1"/>
         <location line="+23"/>
         <source>Enable Qt Quick Designer</source>
-        <translation type="unfinished"></translation>
+        <translation>Włącz Qt Quick Designera</translation>
     </message>
     <message>
         <location line="-11"/>
         <source>Qt Creator -&gt; About Plugins...</source>
-        <translation type="unfinished"></translation>
+        <translation>Qt Creator -&gt; Informacje o wtyczkach...</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Help -&gt; About Plugins...</source>
-        <translation type="unfinished"></translation>
+        <translation>Pomoc -&gt; Informacje o wtyczkach...</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Enable experimental Qt Quick Designer?</source>
-        <translation type="unfinished"></translation>
+        <translation>Włączyć Qt Quick Designera?</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -23131,12 +23144,12 @@ Please check your project settings.</source>
     <message>
         <location line="+8"/>
         <source>Please restart Qt Creator</source>
-        <translation type="unfinished"></translation>
+        <translation>Uruchom ponownie Qt Creatora</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Please restart Qt Creator to make the change effective.</source>
-        <translation type="unfinished"></translation>
+        <translation>Uruchom ponownie Qt Creatora aby zmiana mogła zostać zastosowana.</translation>
     </message>
 </context>
 <context>
@@ -23188,7 +23201,7 @@ Please check your project settings.</source>
     <message>
         <location filename="../../../src/plugins/qmlprojectmanager/qmlproject.cpp" line="+102"/>
         <source>Error while loading project file!</source>
-        <translation type="unfinished"></translation>
+        <translation>Błąd podczas ładowania pliku z projektem!</translation>
     </message>
 </context>
 <context>
@@ -23228,7 +23241,7 @@ Please check your project settings.</source>
         <source>Include .qml, .js, and image files from current directory and subdirectories</source>
         <comment>qmlproject Template</comment>
         <extracomment>Comment added to generated .qmlproject file</extracomment>
-        <translation type="unfinished"></translation>
+        <translation>Włącz .qml, .js i pliki graficzne z bieżącego katalogu i jego podkatalogów</translation>
     </message>
     <message>
         <location line="+11"/>
@@ -23302,7 +23315,7 @@ Please check your project settings.</source>
         <source>Include .qml, .js, and image files from current directory and subdirectories</source>
         <comment>qmlproject Template</comment>
         <extracomment>Comment added to generated .qmlproject file</extracomment>
-        <translation type="unfinished"></translation>
+        <translation>Włącz .qml, .js i pliki graficzne z bieżącego katalogu i jego podkatalogów</translation>
     </message>
     <message>
         <location line="+11"/>
@@ -23494,12 +23507,12 @@ Czy uruchomiłeś Qemu?</translation>
     <message>
         <location line="+323"/>
         <source>&apos;%1&apos; does not contain a valid Maemo simulator image.</source>
-        <translation type="unfinished"></translation>
+        <translation>&quot;%1&quot; nie zawiera prawidłowego obrazu symulatora Maemo.</translation>
     </message>
     <message>
         <location line="+41"/>
         <source>Simulator could not be found. Please check the Qt Version you are using and that a simulator image is already installed.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można odnaleźć symulatora. Sprawdź którą wersję Qt używasz i upewnij się że obraz symulatora jest już zainstalowany.</translation>
     </message>
 </context>
 <context>
@@ -23615,7 +23628,7 @@ Czy uruchomiłeś Qemu?</translation>
     <message>
         <location line="-76"/>
         <source>Deployment failed: %1</source>
-        <translation>Instalacja zakończona niepowodzeniem: %1</translation>
+        <translation>Błąd instalacji: %1</translation>
     </message>
 </context>
 <context>
@@ -23649,7 +23662,7 @@ Czy uruchomiłeś Qemu?</translation>
         <location line="-11"/>
         <location line="+22"/>
         <source>Deployment Failed</source>
-        <translation>Instalacja zakończona niepowodzeniem</translation>
+        <translation>Błąd instalacji</translation>
     </message>
     <message>
         <location line="-222"/>
@@ -23670,7 +23683,7 @@ Czy uruchomiłeś Qemu?</translation>
     <message>
         <location line="+22"/>
         <source>Key deployment failed: %1</source>
-        <translation>Instalacja klucza zakończona niepowodzeniem: %1</translation>
+        <translation>Błąd instalacji klucza: %1</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -24131,17 +24144,17 @@ Czy uruchomiłeś Qemu?</translation>
     <message>
         <location/>
         <source>Viewer path:</source>
-        <translation type="unfinished"></translation>
+        <translation>Ścieżka przeglądarki:</translation>
     </message>
     <message>
         <location/>
         <source>Viewer arguments:</source>
-        <translation type="unfinished"></translation>
+        <translation>Argumenty przeglądarki:</translation>
     </message>
     <message>
         <location/>
         <source>To switch languages while debugging, go to Debug-&gt;Language menu.</source>
-        <translation type="unfinished"></translation>
+        <translation>Aby zmienić język podczas debugowania przejdź do menu: Debugowanie-&gt;Język.</translation>
     </message>
 </context>
 <context>
@@ -24259,7 +24272,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location filename="../qmldesigner/propertyeditor/Qt/BorderImageSpecifics.qml" line="+17"/>
         <source>Image</source>
-        <translation type="unfinished"></translation>
+        <translation>Obrazek</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -24274,22 +24287,22 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+35"/>
         <source>Left</source>
-        <translation type="unfinished"></translation>
+        <translation>Lewy</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Right</source>
-        <translation type="unfinished"></translation>
+        <translation>Prawy</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Top</source>
-        <translation type="unfinished"></translation>
+        <translation>Górny</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Bottom</source>
-        <translation type="unfinished"></translation>
+        <translation>Dolny</translation>
     </message>
 </context>
 <context>
@@ -24394,7 +24407,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location filename="../qmldesigner/propertyeditor/Qt/ImageSpecifics.qml" line="+15"/>
         <source>Image</source>
-        <translation type="unfinished"></translation>
+        <translation>Obrazek</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -24414,7 +24427,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+4"/>
         <source>Smooth</source>
-        <translation type="unfinished"></translation>
+        <translation>Gładki</translation>
     </message>
     <message>
         <location line="+12"/>
@@ -24563,12 +24576,12 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+12"/>
         <source>Wrap Mode</source>
-        <translation type="unfinished"></translation>
+        <translation>Tryb zawijania</translation>
     </message>
     <message>
         <location line="+18"/>
         <source>Alignment</source>
-        <translation type="unfinished"></translation>
+        <translation>Wyrównanie</translation>
     </message>
     <message>
         <location line="+18"/>
@@ -24578,7 +24591,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+4"/>
         <source>Smooth</source>
-        <translation type="unfinished"></translation>
+        <translation>Gładki</translation>
     </message>
     <message>
         <location line="-8"/>
@@ -24619,7 +24632,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location filename="../qmldesigner/propertyeditor/Qt/TextEditSpecifics.qml" line="+24"/>
         <source>Text Edit</source>
-        <translation type="unfinished"></translation>
+        <translation>Edytor tekstu</translation>
     </message>
     <message>
         <location line="+8"/>
@@ -24672,12 +24685,12 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+14"/>
         <source>Focus On Press</source>
-        <translation type="unfinished"></translation>
+        <translation>Fokus po naciśnięciu</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>Auto Scroll</source>
-        <translation type="unfinished"></translation>
+        <translation>Automatyczne przewijanie</translation>
     </message>
 </context>
 <context>
@@ -24695,47 +24708,47 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+20"/>
         <source>Top Left</source>
-        <translation type="unfinished"></translation>
+        <translation>Górny lewy</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Top</source>
-        <translation type="unfinished"></translation>
+        <translation>Górny</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Top Right</source>
-        <translation type="unfinished"></translation>
+        <translation>Górny prawy</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Left</source>
-        <translation type="unfinished"></translation>
+        <translation>Lewy</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Center</source>
-        <translation type="unfinished"></translation>
+        <translation>Centralny</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Right</source>
-        <translation type="unfinished"></translation>
+        <translation>Prawy</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Bottom Left</source>
-        <translation type="unfinished"></translation>
+        <translation>Dolny lewy</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Bottom</source>
-        <translation type="unfinished"></translation>
+        <translation>Dolny</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Bottom Right</source>
-        <translation type="unfinished"></translation>
+        <translation>Dolny prawy</translation>
     </message>
     <message>
         <location line="+9"/>
@@ -24930,7 +24943,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+11"/>
         <source>Please configure a path.</source>
-        <translation type="unfinished"></translation>
+        <translation>Skonfiguruj ścieżkę.</translation>
     </message>
     <message>
         <location line="+59"/>
@@ -24940,7 +24953,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+17"/>
         <source>Pasted: %1</source>
-        <translation type="unfinished"></translation>
+        <translation>Wklejono: %1</translation>
     </message>
 </context>
 <context>
@@ -25031,7 +25044,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+3"/>
         <source>Gdb binary</source>
-        <translation type="unfinished"></translation>
+        <translation>Plik binarny Gdb</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -25049,12 +25062,12 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+30"/>
         <source>Unable to start pdb &apos;%1&apos;: %2</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można rozpocząć pdb &quot;%1&quot;: %2</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Adapter start failed</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można uruchomić adaptera</translation>
     </message>
     <message>
         <location line="+263"/>
@@ -25079,7 +25092,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+10"/>
         <source>The Pdb process failed to start. Either the invoked program &apos;%1&apos; is missing, or you may have insufficient permissions to invoke the program.</source>
-        <translation type="unfinished"></translation>
+        <translation>Nie można rozpocząć procesu Pdb. Brak programu &quot;%1&quot; albo brak wymaganych uprawnień aby go uruchomić.</translation>
     </message>
     <message>
         <location line="+5"/>
@@ -25104,7 +25117,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+3"/>
         <source>An unknown error in the Pdb process occurred. </source>
-        <translation type="unfinished"></translation>
+        <translation>Wystąpił nieznany błąd w procesie Pdb.</translation>
     </message>
 </context>
 <context>
@@ -25228,22 +25241,22 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+40"/>
         <source>Packaging Error: Cannot open file &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <translation>Błąd pakowania: Nie można otworzyć pliku &quot;%1&quot;.</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Packaging Error: Cannot write file &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <translation>Błąd pakowania: Nie można zapisać pliku &quot;%1&quot;.</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>Packaging Error: Could not replace file &apos;%1&apos;.</source>
-        <translation type="unfinished"></translation>
+        <translation>Błąd pakowania: Nie można zastąpić pliku &quot;%1&quot;.</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>Packaging Error: Could not copy &apos;%1&apos; to &apos;%2&apos;.</source>
-        <translation type="unfinished"></translation>
+        <translation>Błąd pakowania: Nie można skopiować pliku &quot;%1&quot; do &quot;%2&quot;.</translation>
     </message>
     <message>
         <location line="+15"/>
@@ -25258,7 +25271,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+8"/>
         <source>Packaging failed.</source>
-        <translation type="unfinished"></translation>
+        <translation>Błąd pakowania.</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -25268,7 +25281,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+4"/>
         <source>Packaging Error: Command &apos;%1&apos; failed.</source>
-        <translation type="unfinished"></translation>
+        <translation>Błąd pakowania: Komenda &quot;%1&quot; zakończona błędem.</translation>
     </message>
     <message>
         <location line="+3"/>
@@ -25330,7 +25343,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location filename="../../../src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp" line="-277"/>
         <source>Default</source>
-        <translation type="unfinished"></translation>
+        <translation>Domyślne</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -25430,7 +25443,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location filename="../qmldesigner/propertyeditor/Qt/emptyPane.qml" line="+38"/>
         <source>none or multiple items selected</source>
-        <translation type="unfinished"></translation>
+        <translation>nie zaznaczono lub zaznaczono wiele elementów</translation>
     </message>
 </context>
 <context>
@@ -25448,7 +25461,7 @@ name &lt;email&gt; alias &lt;email&gt;</source>
     <message>
         <location line="+10"/>
         <source>Only select items with content (S)</source>
-        <translation type="unfinished"></translation>
+        <translation>Wybierz tylko elementy z zawartością (S)</translation>
     </message>
 </context>
 <context>
index 0d16929..ddc7736 100644 (file)
@@ -574,6 +574,17 @@ QString PluginManager::testDataDirectory() const
     return s;
 }
 
+/*!
+    \fn void PluginManager::profilingReport(const char *what, const PluginSpec *spec = 0)
+
+    Create a profiling entry showing the elapsed time if profiling is activated.
+*/
+
+void PluginManager::profilingReport(const char *what, const PluginSpec *spec)
+{
+    d->profilingReport(what, spec);
+}
+
 //============PluginManagerPrivate===========
 
 /*!
@@ -601,6 +612,7 @@ PluginSpecPrivate *PluginManagerPrivate::privateSpec(PluginSpec *spec)
 PluginManagerPrivate::PluginManagerPrivate(PluginManager *pluginManager) :
     extension(QLatin1String("xml")),
     m_profileElapsedMS(0),
+    m_profilingVerbosity(0),
     q(pluginManager)
 {
 }
@@ -679,6 +691,13 @@ void PluginManagerPrivate::addObject(QObject *obj)
         if (debugLeaks)
             qDebug() << "PluginManagerPrivate::addObject" << obj << obj->objectName();
 
+        if (m_profilingVerbosity && !m_profileTimer.isNull()) {
+            // Report a timestamp when adding an object. Useful for profiling
+            // its initialization time.
+            const int absoluteElapsedMS = m_profileTimer->elapsed();
+            qDebug("  %-43s %8dms", obj->metaObject()->className(), absoluteElapsedMS);
+        }
+
         allObjects.append(obj);
     }
     emit q->objectAdded(obj);
@@ -954,6 +973,8 @@ void PluginManagerPrivate::initProfiling()
         m_profileTimer->start();
         m_profileElapsedMS = 0;
         qDebug("Profiling started");
+    } else {
+        m_profilingVerbosity++;
     }
 }
 
@@ -966,7 +987,7 @@ void PluginManagerPrivate::profilingReport(const char *what, const PluginSpec *s
         if (spec) {
             qDebug("%-22s %-22s %8dms (%8dms)", what, qPrintable(spec->name()), absoluteElapsedMS, elapsedMS);
         } else {
-            qDebug("%-22s %8dms (%8dms)", what, absoluteElapsedMS, elapsedMS);
+            qDebug("%-45s %8dms (%8dms)", what, absoluteElapsedMS, elapsedMS);
         }
     }
 }
index 23d011f..0373089 100644 (file)
@@ -118,6 +118,8 @@ public:
     bool runningTests() const;
     QString testDataDirectory() const;
 
+    void profilingReport(const char *what, const PluginSpec *spec = 0);
+
 signals:
     void objectAdded(QObject *obj);
     void aboutToRemoveObject(QObject *obj);
index a29ac6b..fe7ed3d 100644 (file)
@@ -85,6 +85,7 @@ public:
     QStringList arguments;
     QScopedPointer<QTime> m_profileTimer;
     int m_profileElapsedMS;
+    unsigned m_profilingVerbosity;
 
     // Look in argument descriptions of the specs for the option.
     PluginSpec *pluginForOption(const QString &option, bool *requiresArgument) const;
index 00d9013..b9dabcb 100644 (file)
@@ -106,6 +106,11 @@ Interpreter::ObjectValue *Bind::findFunctionScope(AST::FunctionDeclaration *node
     return _functionScopes.value(node);
 }
 
+bool Bind::isGroupedPropertyBinding(AST::Node *node) const
+{
+    return _groupedPropertyBindings.contains(node);
+}
+
 ObjectValue *Bind::switchObjectValue(ObjectValue *newObjectValue)
 {
     ObjectValue *oldObjectValue = _currentObjectValue;
@@ -139,7 +144,6 @@ ExpressionNode *Bind::expression(UiScriptBinding *ast) const
 ObjectValue *Bind::bindObject(UiQualifiedId *qualifiedTypeNameId, UiObjectInitializer *initializer)
 {
     ObjectValue *parentObjectValue = 0;
-    const QString typeName = toString(qualifiedTypeNameId);
 
     // normal component instance
     ASTObjectValue *objectValue = new ASTObjectValue(qualifiedTypeNameId, initializer, _doc, &_engine);
@@ -204,8 +208,20 @@ bool Bind::visit(UiPublicMember *)
 
 bool Bind::visit(UiObjectDefinition *ast)
 {
-    ObjectValue *value = bindObject(ast->qualifiedTypeNameId, ast->initializer);
-    _qmlObjects.insert(ast, value);
+    // an UiObjectDefinition may be used to group property bindings
+    // think anchors { ... }
+    bool isGroupedBinding = false;
+    for (UiQualifiedId *it = ast->qualifiedTypeNameId; it; it = it->next) {
+        if (!it->next)
+            isGroupedBinding = it->name->asString().at(0).isLower();
+    }
+
+    if (!isGroupedBinding) {
+        ObjectValue *value = bindObject(ast->qualifiedTypeNameId, ast->initializer);
+        _qmlObjects.insert(ast, value);
+    } else {
+        _groupedPropertyBindings.insert(ast);
+    }
 
     return false;
 }
index 9de6f27..ed9264e 100644 (file)
@@ -63,6 +63,7 @@ public:
                           Interpreter::Context *context) const;
 
     Interpreter::ObjectValue *findFunctionScope(AST::FunctionDeclaration *node) const;
+    bool isGroupedPropertyBinding(AST::Node *node) const;
 
     static QString toString(AST::UiQualifiedId *qualifiedId, QChar delimiter = QChar('.'));
 
@@ -100,6 +101,7 @@ private:
     Interpreter::ObjectValue *_rootObjectValue;
 
     QHash<AST::Node *, Interpreter::ObjectValue *> _qmlObjects;
+    QSet<AST::Node *> _groupedPropertyBindings;
     QHash<AST::FunctionDeclaration *, Interpreter::ObjectValue *> _functionScopes;
     QStringList _includedScripts;
 
index 564482d..ec4a1d9 100644 (file)
@@ -1472,6 +1472,8 @@ const Value *Context::lookup(const QString &name)
 const ObjectValue *Context::lookupType(const QmlJS::Document *doc, UiQualifiedId *qmlTypeName)
 {
     const ObjectValue *objectValue = typeEnvironment(doc);
+    if (!objectValue)
+        return 0;
 
     for (UiQualifiedId *iter = qmlTypeName; objectValue && iter; iter = iter->next) {
         if (! iter->name)
@@ -1490,6 +1492,8 @@ const ObjectValue *Context::lookupType(const QmlJS::Document *doc, UiQualifiedId
 const ObjectValue *Context::lookupType(const QmlJS::Document *doc, const QStringList &qmlTypeName)
 {
     const ObjectValue *objectValue = typeEnvironment(doc);
+    if (!objectValue)
+        return 0;
 
     foreach (const QString &name, qmlTypeName) {
         const Value *value = objectValue->property(name, this);
index a90b0b9..7a3bcfd 100644 (file)
@@ -66,10 +66,24 @@ void ScopeBuilder::setQmlScopeObject(Node *node)
 {
     ScopeChain &scopeChain = _context->scopeChain();
 
-    scopeChain.qmlScopeObjects.clear();
+    if (_doc->bind()->isGroupedPropertyBinding(node)) {
+        UiObjectDefinition *definition = cast<UiObjectDefinition *>(node);
+        if (!definition)
+            return;
+        const Value *v = scopeObjectLookup(definition->qualifiedTypeNameId);
+        if (!v)
+            return;
+        const ObjectValue *object = v->asObjectValue();
+        if (!object)
+            return;
+
+        scopeChain.qmlScopeObjects.clear();
+        scopeChain.qmlScopeObjects += object;
+    }
 
     const ObjectValue *scopeObject = _doc->bind()->findQmlObject(node);
     if (scopeObject) {
+        scopeChain.qmlScopeObjects.clear();
         scopeChain.qmlScopeObjects += scopeObject;
     } else {
         return; // Probably syntax errors, where we're working with a "recovered" AST.
@@ -130,3 +144,28 @@ void ScopeBuilder::setQmlScopeObject(Node *node)
         }
     }
 }
+
+const Value *ScopeBuilder::scopeObjectLookup(AST::UiQualifiedId *id)
+{
+    // do a name lookup on the scope objects
+    const Value *result = 0;
+    foreach (const ObjectValue *scopeObject, _context->scopeChain().qmlScopeObjects) {
+        const ObjectValue *object = scopeObject;
+        for (UiQualifiedId *it = id; it; it = it->next) {
+            result = object->property(it->name->asString(), _context);
+            if (!result)
+                break;
+            if (it->next) {
+                object = result->asObjectValue();
+                if (!object) {
+                    result = 0;
+                    break;
+                }
+            }
+        }
+        if (result)
+            break;
+    }
+
+    return result;
+}
index 6b433c7..3448503 100644 (file)
@@ -13,6 +13,7 @@ namespace AST {
 
 namespace Interpreter {
     class Context;
+    class Value;
 }
 
 class QMLJS_EXPORT ScopeBuilder
@@ -27,6 +28,7 @@ public:
 
 private:
     void setQmlScopeObject(AST::Node *node);
+    const Interpreter::Value *scopeObjectLookup(AST::UiQualifiedId *id);
 
     Document::Ptr _doc;
     Interpreter::Context *_context;
index e3f8288..c976cbe 100644 (file)
@@ -50,6 +50,12 @@ const char * const IDE_VERSION_LONG      = IDE_VERSION;
 const char * const IDE_AUTHOR            = "Nokia Corporation";
 const char * const IDE_YEAR              = "2010";
 
+#ifdef IDE_VERSION_DESCRIPTION
+const char * const IDE_VERSION_DESCRIPTION_STR = STRINGIFY(IDE_VERSION_DESCRIPTION);
+#else
+const char * const IDE_VERSION_DESCRIPTION_STR = "";
+#endif
+
 #ifdef IDE_REVISION
 const char * const IDE_REVISION_STR      = STRINGIFY(IDE_REVISION);
 #else
index c735e53..e92b816 100644 (file)
@@ -61,7 +61,11 @@ VersionDialog::VersionDialog(QWidget *parent)
     layout->setSizeConstraint(QLayout::SetFixedSize);
 
     QString version = QLatin1String(IDE_VERSION_LONG);
-    version += QDate(2007, 25, 10).toString(Qt::SystemLocaleDate);
+
+    QString ideVersionDescription;
+#ifdef IDE_VERSION_DESCRIPTION
+    ideVersionDescription = tr("(%1)").arg(QLatin1String(IDE_VERSION_DESCRIPTION_STR));
+#endif
 
     QString ideRev;
 #ifdef IDE_REVISION
@@ -70,21 +74,23 @@ VersionDialog::VersionDialog(QWidget *parent)
 #endif
 
      const QString description = tr(
-        "<h3>Qt Creator %1</h3>"
+        "<h3>Qt Creator %1 %8</h3>"
         "Based on Qt %2 (%3 bit)<br/>"
         "<br/>"
         "Built on %4 at %5<br />"
         "<br/>"
-        "%8"
+        "%9"
         "<br/>"
         "Copyright 2008-%6 %7. All rights reserved.<br/>"
         "<br/>"
         "The program is provided AS IS with NO WARRANTY OF ANY KIND, "
         "INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A "
         "PARTICULAR PURPOSE.<br/>")
-        .arg(version, QLatin1String(QT_VERSION_STR), QString::number(QSysInfo::WordSize),
+        .arg(version, 
+             QLatin1String(QT_VERSION_STR), QString::number(QSysInfo::WordSize),
              QLatin1String(__DATE__), QLatin1String(__TIME__), QLatin1String(IDE_YEAR),
-             (QLatin1String(IDE_AUTHOR)), ideRev);
+             (QLatin1String(IDE_AUTHOR)), ideVersionDescription,
+             ideRev);
 
     QLabel *copyRightLabel = new QLabel(description);
     copyRightLabel->setWordWrap(true);
index da9c11e..57528bf 100644 (file)
@@ -215,16 +215,16 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess
     wizardParameters.setDisplayName(tr("C++ Class"));
     wizardParameters.setId(QLatin1String("A.Class"));
     wizardParameters.setKind(Core::IWizard::ClassWizard);
-    wizardParameters.setDescription(tr("Creates a header and a source file for a new class."));
+    wizardParameters.setDescription(tr("Creates a C++ header and a source file for a new class that you can add to a C++ project."));
     addAutoReleasedObject(new CppClassWizard(wizardParameters, core));
 
     wizardParameters.setKind(Core::IWizard::FileWizard);
-    wizardParameters.setDescription(tr("Creates a C++ source file."));
+    wizardParameters.setDescription(tr("Creates a C++ source file that you can add to a C++ project."));
     wizardParameters.setDisplayName(tr("C++ Source File"));
     wizardParameters.setId(QLatin1String("B.Source"));
     addAutoReleasedObject(new CppFileWizard(wizardParameters, Source, core));
 
-    wizardParameters.setDescription(tr("Creates a C++ header file."));
+    wizardParameters.setDescription(tr("Creates a C++ header file that you can add to a C++ project."));
     wizardParameters.setDisplayName(tr("C++ Header File"));
     wizardParameters.setId(QLatin1String("C.Header"));
     addAutoReleasedObject(new CppFileWizard(wizardParameters, Header, core));
index e001313..ae1882b 100644 (file)
 
 #include <coreplugin/icore.h>
 #include <extensionsystem/pluginmanager.h>
+#include <texteditor/texteditorsettings.h>
 
 #include <QtCore/QTextStream>
 #include <QtCore/QCoreApplication>
 
 using namespace CppTools::Internal;
 
-CompletionSettingsPage::CompletionSettingsPage(CppCodeCompletion *completion)
-    : m_completion(completion)
-    , m_page(new Ui_CompletionSettingsPage)
+CompletionSettingsPage::CompletionSettingsPage()
+    : m_page(new Ui_CompletionSettingsPage)
 {
 }
 
@@ -64,23 +64,27 @@ QWidget *CompletionSettingsPage::createPage(QWidget *parent)
     QWidget *w = new QWidget(parent);
     m_page->setupUi(w);
 
+    const TextEditor::CompletionSettings &settings =
+            TextEditor::TextEditorSettings::instance()->completionSettings();
+
     int caseSensitivityIndex = 0;
-    switch (m_completion->caseSensitivity()) {
-    case CppCodeCompletion::CaseSensitive:
+    switch (settings.m_caseSensitivity) {
+    case TextEditor::CaseSensitive:
         caseSensitivityIndex = 0;
         break;
-    case CppCodeCompletion::CaseInsensitive:
+    case TextEditor::CaseInsensitive:
         caseSensitivityIndex = 1;
         break;
-    case CppCodeCompletion::FirstLetterCaseSensitive:
+    case TextEditor::FirstLetterCaseSensitive:
         caseSensitivityIndex = 2;
         break;
     }
 
     m_page->caseSensitivity->setCurrentIndex(caseSensitivityIndex);
-    m_page->autoInsertBrackets->setChecked(m_completion->autoInsertBrackets());
-    m_page->partiallyComplete->setChecked(m_completion->isPartialCompletionEnabled());
-    m_page->spaceAfterFunctionName->setChecked(m_completion->isSpaceAfterFunctionName());
+    m_page->autoInsertBrackets->setChecked(settings.m_autoInsertBrackets);
+    m_page->partiallyComplete->setChecked(settings.m_partiallyComplete);
+    m_page->spaceAfterFunctionName->setChecked(settings.m_spaceAfterFunctionName);
+
     if (m_searchKeywords.isEmpty()) {
         QTextStream(&m_searchKeywords) << m_page->caseSensitivityLabel->text()
                 << ' ' << m_page->autoInsertBrackets->text()
@@ -88,15 +92,19 @@ QWidget *CompletionSettingsPage::createPage(QWidget *parent)
                << ' ' << m_page->spaceAfterFunctionName->text();
         m_searchKeywords.remove(QLatin1Char('&'));
     }
+
     return w;
 }
 
 void CompletionSettingsPage::apply()
 {
-    m_completion->setCaseSensitivity(caseSensitivity());
-    m_completion->setAutoInsertBrackets(m_page->autoInsertBrackets->isChecked());
-    m_completion->setPartialCompletionEnabled(m_page->partiallyComplete->isChecked());
-    m_completion->setSpaceAfterFunctionName(m_page->spaceAfterFunctionName->isChecked());
+    TextEditor::CompletionSettings settings;
+    settings.m_caseSensitivity = caseSensitivity();
+    settings.m_autoInsertBrackets = m_page->autoInsertBrackets->isChecked();
+    settings.m_partiallyComplete = m_page->partiallyComplete->isChecked();
+    settings.m_spaceAfterFunctionName = m_page->spaceAfterFunctionName->isChecked();
+
+    TextEditor::TextEditorSettings::instance()->setCompletionSettings(settings);
 }
 
 bool CompletionSettingsPage::matches(const QString &s) const
@@ -104,14 +112,14 @@ bool CompletionSettingsPage::matches(const QString &s) const
     return m_searchKeywords.contains(s, Qt::CaseInsensitive);
 }
 
-CppCodeCompletion::CaseSensitivity CompletionSettingsPage::caseSensitivity() const
+TextEditor::CaseSensitivity CompletionSettingsPage::caseSensitivity() const
 {
     switch (m_page->caseSensitivity->currentIndex()) {
     case 0: // Full
-        return CppCodeCompletion::CaseSensitive;
+        return TextEditor::CaseSensitive;
     case 1: // None
-        return CppCodeCompletion::CaseInsensitive;
+        return TextEditor::CaseInsensitive;
     default: // First letter
-        return CppCodeCompletion::FirstLetterCaseSensitive;
+        return TextEditor::FirstLetterCaseSensitive;
     }
 }
index fe9b847..4221811 100644 (file)
 #ifndef COMPLETIONSETTINGSPAGE_H
 #define COMPLETIONSETTINGSPAGE_H
 
+#include <texteditor/completionsettings.h>
 #include <texteditor/texteditoroptionspage.h>
 
-#include "cppcodecompletion.h"
-
 QT_BEGIN_NAMESPACE
 class Ui_CompletionSettingsPage;
 QT_END_NAMESPACE
@@ -41,12 +40,14 @@ QT_END_NAMESPACE
 namespace CppTools {
 namespace Internal {
 
+// TODO: Move this class to the text editor plugin
+
 class CompletionSettingsPage : public TextEditor::TextEditorOptionsPage
 {
     Q_OBJECT
 
 public:
-    CompletionSettingsPage(CppCodeCompletion *completion);
+    CompletionSettingsPage();
     ~CompletionSettingsPage();
 
     QString id() const;
@@ -58,9 +59,8 @@ public:
     virtual bool matches(const QString &) const;
 
 private:
-    CppCodeCompletion::CaseSensitivity caseSensitivity() const;
+    TextEditor::CaseSensitivity caseSensitivity() const;
 
-    CppCodeCompletion *m_completion;
     Ui_CompletionSettingsPage *m_page;
     QString m_searchKeywords;
 };
index 4edf109..977fb40 100644 (file)
@@ -57,6 +57,7 @@
 #include <coreplugin/icore.h>
 #include <coreplugin/mimedatabase.h>
 #include <coreplugin/editormanager/editormanager.h>
+#include <texteditor/completionsettings.h>
 #include <texteditor/itexteditor.h>
 #include <texteditor/itexteditable.h>
 #include <texteditor/basetexteditor.h>
@@ -436,10 +437,6 @@ CppCodeCompletion::CppCodeCompletion(CppModelManager *manager)
       m_manager(manager),
       m_editor(0),
       m_startPosition(-1),
-      m_caseSensitivity(FirstLetterCaseSensitive),
-      m_autoInsertBrackets(true),
-      m_partialCompletionEnabled(true),
-      m_spaceAfterFunctionName(false),
       m_forcedCompletion(false),
       m_completionOperator(T_EOF_SYMBOL),
       m_objcEnabled(true)
@@ -451,46 +448,6 @@ QIcon CppCodeCompletion::iconForSymbol(Symbol *symbol) const
     return m_icons.iconForSymbol(symbol);
 }
 
-CppCodeCompletion::CaseSensitivity CppCodeCompletion::caseSensitivity() const
-{
-    return m_caseSensitivity;
-}
-
-void CppCodeCompletion::setCaseSensitivity(CaseSensitivity caseSensitivity)
-{
-    m_caseSensitivity = caseSensitivity;
-}
-
-bool CppCodeCompletion::autoInsertBrackets() const
-{
-    return m_autoInsertBrackets;
-}
-
-void CppCodeCompletion::setAutoInsertBrackets(bool autoInsertBrackets)
-{
-    m_autoInsertBrackets = autoInsertBrackets;
-}
-
-bool CppCodeCompletion::isPartialCompletionEnabled() const
-{
-    return m_partialCompletionEnabled;
-}
-
-void CppCodeCompletion::setPartialCompletionEnabled(bool partialCompletionEnabled)
-{
-    m_partialCompletionEnabled = partialCompletionEnabled;
-}
-
-bool CppCodeCompletion::isSpaceAfterFunctionName() const
-{
-    return m_spaceAfterFunctionName;
-}
-
-void CppCodeCompletion::setSpaceAfterFunctionName(bool spaceAfterFunctionName)
-{
-    m_spaceAfterFunctionName = spaceAfterFunctionName;
-}
-
 /*
   Searches backwards for an access operator.
 */
@@ -1512,7 +1469,7 @@ void CppCodeCompletion::completions(QList<TextEditor::CompletionItem> *completio
             return;
 
         if (m_completionOperator != T_LPAREN) {
-            filter(m_completions, completions, key, m_caseSensitivity);
+            filter(m_completions, completions, key);
 
         } else if (m_completionOperator == T_LPAREN ||
                    m_completionOperator == T_SIGNAL ||
@@ -1590,7 +1547,9 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
         //qDebug() << "current symbol:" << overview.prettyName(symbol->name())
         //<< overview.prettyType(symbol->type());
 
-        if (m_autoInsertBrackets && symbol && symbol->type()) {
+        const bool autoInsertBrackets = completionSettings().m_autoInsertBrackets;
+
+        if (autoInsertBrackets && symbol && symbol->type()) {
             if (Function *function = symbol->type()->asFunctionType()) {
                 // If the member is a function, automatically place the opening parenthesis,
                 // except when it might take template parameters.
@@ -1603,8 +1562,8 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
                         extraChars += QLatin1Char('<');
                     }
                 } else if (! function->isAmbiguous()) {
-                    if (m_spaceAfterFunctionName)
-                        extraChars += QLatin1Char(' ');
+                    if (completionSettings().m_spaceAfterFunctionName)
+                       extraChars += QLatin1Char(' ');
                     extraChars += QLatin1Char('(');
 
                     // If the function doesn't return anything, automatically place the semicolon,
@@ -1631,7 +1590,7 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
             }
         }
 
-        if (m_autoInsertBrackets && item.data.canConvert<CompleteFunctionDeclaration>()) {
+        if (autoInsertBrackets && item.data.canConvert<CompleteFunctionDeclaration>()) {
             // everything from the closing parenthesis on are extra chars, to
             // make sure an auto-inserted ")" gets replaced by ") const" if necessary
             int closingParen = toInsert.lastIndexOf(QLatin1Char(')'));
@@ -1667,7 +1626,7 @@ bool CppCodeCompletion::partiallyComplete(const QList<TextEditor::CompletionItem
     } else if (completionItems.count() == 1) {
         complete(completionItems.first());
         return true;
-    } else if (m_partialCompletionEnabled && m_completionOperator != T_LPAREN) {
+    } else if (m_completionOperator != T_LPAREN) {
         return TextEditor::ICompletionCollector::partiallyComplete(completionItems);
     }
 
index c2938a6..6337ed5 100644 (file)
@@ -86,18 +86,6 @@ public:
 
     QIcon iconForSymbol(CPlusPlus::Symbol *symbol) const;
 
-    CaseSensitivity caseSensitivity() const;
-    void setCaseSensitivity(CaseSensitivity caseSensitivity);
-
-    bool autoInsertBrackets() const;
-    void setAutoInsertBrackets(bool autoInsertBrackets);
-
-    bool isPartialCompletionEnabled() const;
-    void setPartialCompletionEnabled(bool partialCompletionEnabled);
-
-    bool isSpaceAfterFunctionName() const;
-    void setSpaceAfterFunctionName(bool spaceAfterFunctionName);
-
 private:
     void addKeywords();
     void addMacros(const QString &fileName, const CPlusPlus::Snapshot &snapshot);
@@ -159,10 +147,6 @@ private:
     TextEditor::ITextEditable *m_editor;
     int m_startPosition;     // Position of the cursor from which completion started
 
-    CaseSensitivity m_caseSensitivity;
-    bool m_autoInsertBrackets;
-    bool m_partialCompletionEnabled;
-    bool m_spaceAfterFunctionName;
     bool m_forcedCompletion;
     unsigned m_completionOperator;
     bool m_objcEnabled;
index 19f986a..61173c8 100644 (file)
@@ -51,6 +51,7 @@
 #include <coreplugin/progressmanager/progressmanager.h>
 #include <coreplugin/vcsmanager.h>
 #include <coreplugin/filemanager.h>
+#include <texteditor/texteditorsettings.h>
 #include <cppeditor/cppeditorconstants.h>
 
 #include <QtCore/QtConcurrentRun>
@@ -109,8 +110,8 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error)
             m_modelManager, SLOT(updateSourceFiles(QStringList)));
     addAutoReleasedObject(m_modelManager);
 
-    m_completion = new CppCodeCompletion(m_modelManager);
-    addAutoReleasedObject(m_completion);
+    CppCodeCompletion *completion = new CppCodeCompletion(m_modelManager);
+    addAutoReleasedObject(completion);
 
     CppLocatorFilter *locatorFilter = new CppLocatorFilter(m_modelManager,
                                                                  core->editorManager());
@@ -118,7 +119,7 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error)
     addAutoReleasedObject(new CppClassesFilter(m_modelManager, core->editorManager()));
     addAutoReleasedObject(new CppFunctionsFilter(m_modelManager, core->editorManager()));
     addAutoReleasedObject(new CppCurrentDocumentFilter(m_modelManager, core->editorManager()));
-    addAutoReleasedObject(new CompletionSettingsPage(m_completion));
+    addAutoReleasedObject(new CompletionSettingsPage);
     addAutoReleasedObject(new CppFileSettingsPage(m_fileSettings));
 
     // Menus
@@ -139,17 +140,11 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error)
     mcpptools->addAction(command);
     connect(switchAction, SIGNAL(triggered()), this, SLOT(switchHeaderSource()));
 
-    // Restore settings
-    QSettings *settings = Core::ICore::instance()->settings();
-    settings->beginGroup(QLatin1String("CppTools"));
-    settings->beginGroup(QLatin1String("Completion"));
-    const int caseSensitivity = settings->value(QLatin1String("CaseSensitivity"), m_completion->caseSensitivity()).toInt();
-    m_completion->setCaseSensitivity((CppCodeCompletion::CaseSensitivity) caseSensitivity);
-    m_completion->setAutoInsertBrackets(settings->value(QLatin1String("AutoInsertBraces"), true).toBool());
-    m_completion->setPartialCompletionEnabled(settings->value(QLatin1String("PartiallyComplete"), true).toBool());
-    m_completion->setSpaceAfterFunctionName(settings->value(QLatin1String("SpaceAfterFunctionName"), false).toBool());
-    settings->endGroup();
-    settings->endGroup();
+    // Set completion settings and keep them up to date
+    TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance();
+    completion->setCompletionSettings(textEditorSettings->completionSettings());
+    connect(textEditorSettings, SIGNAL(completionSettingsChanged(TextEditor::CompletionSettings)),
+            completion, SLOT(setCompletionSettings(TextEditor::CompletionSettings)));
 
     return true;
 }
@@ -170,16 +165,6 @@ void CppToolsPlugin::extensionsInitialized()
 
 void CppToolsPlugin::aboutToShutdown()
 {
-    // Save settings
-    QSettings *settings = Core::ICore::instance()->settings();
-    settings->beginGroup(QLatin1String("CppTools"));
-    settings->beginGroup(QLatin1String("Completion"));
-    settings->setValue(QLatin1String("CaseSensitivity"), (int) m_completion->caseSensitivity());
-    settings->setValue(QLatin1String("AutoInsertBraces"), m_completion->autoInsertBrackets());
-    settings->setValue(QLatin1String("PartiallyComplete"), m_completion->isPartialCompletionEnabled());
-    settings->setValue(QLatin1String("SpaceAfterFunctionName"), m_completion->isSpaceAfterFunctionName());
-    settings->endGroup();
-    settings->endGroup();
 }
 
 void CppToolsPlugin::switchHeaderSource()
index c5b8298..ff4aa9c 100644 (file)
@@ -50,7 +50,6 @@ QT_END_NAMESPACE
 namespace CppTools {
 namespace Internal {
 
-class CppCodeCompletion;
 class CppModelManager;
 struct CppFileSettings;
 
@@ -79,7 +78,6 @@ private:
 
     int m_context;
     CppModelManager *m_modelManager;
-    CppCodeCompletion *m_completion;
     QSharedPointer<CppFileSettings> m_fileSettings;
 
     static CppToolsPlugin *m_instance;
index c999d31..ed70c63 100644 (file)
@@ -53,7 +53,7 @@ QIcon CheckoutWizard::icon() const
 
 QString CheckoutWizard::description() const
 {
-    return tr("Checks out a project from a CVS repository.");
+    return tr("Checks out a project from a CVS repository and tries to load the contained project.");
 }
 
 QString CheckoutWizard::displayName() const
index a77383e..16548f9 100644 (file)
@@ -1584,11 +1584,12 @@ IDebuggerEngine *createCdbEngine(DebuggerManager *parent,
     // Create engine
     QString errorMessage;
     IDebuggerEngine *engine = CdbDebugEngine::create(parent, options, &errorMessage);
-    if (!engine) {
+    if (engine) {
+        QObject::connect(optionsPage, SIGNAL(debuggerPathsChanged()), engine, SLOT(syncDebuggerPaths()));
+    } else {
         optionsPage->setFailureMessage(errorMessage);
         qWarning("%s\n" ,qPrintable(errorMessage));
     }
-    QObject::connect(optionsPage, SIGNAL(debuggerPathsChanged()), engine, SLOT(syncDebuggerPaths()));
     return engine;
 }
 
index b02f0ac..6eb8bd8 100644 (file)
@@ -129,14 +129,16 @@ void FormEditorPlugin::initializeTemplates()
     const QString formFileType = QLatin1String(Constants::FORM_FILE_TYPE);
     wizardParameters.setDisplayName(tr("Qt Designer Form"));
     wizardParameters.setId(QLatin1String("D.Form"));
-    wizardParameters.setDescription(tr("Creates a Qt Designer form file (.ui)."));
+    wizardParameters.setDescription(tr("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."));
     addAutoReleasedObject(new FormWizard(wizardParameters, this));
 
 #ifdef CPP_ENABLED
     wizardParameters.setKind(Core::IWizard::ClassWizard);
     wizardParameters.setDisplayName(tr("Qt Designer Form Class"));
     wizardParameters.setId(QLatin1String("C.FormClass"));
-    wizardParameters.setDescription(tr("Creates a Qt Designer form file (.ui) with a matching class."));
+    wizardParameters.setDescription(tr("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."));
     addAutoReleasedObject(new FormClassWizard(wizardParameters, this));
     addAutoReleasedObject(new CppSettingsPage);
 #endif
index 4d6b336..25eea3f 100644 (file)
@@ -96,7 +96,8 @@ Core::BaseFileWizardParameters GenericProjectWizard::parameters()
     parameters.setIcon(QIcon(QLatin1String(":/wizards/images/console.png")));
     parameters.setDisplayName(tr("Import Existing Project"));
     parameters.setId(QLatin1String("Z.Makefile"));
-    parameters.setDescription(tr("Creates a generic project, supporting any build system."));
+    parameters.setDescription(tr("Imports existing projects that do not use qmake or CMake. "
+                                 "This allows you to use Qt Creator as a code editor."));
     parameters.setCategory(QLatin1String(ProjectExplorer::Constants::PROJECT_WIZARD_CATEGORY));
     parameters.setDisplayCategory(QCoreApplication::translate("ProjectExplorer", ProjectExplorer::Constants::PROJECT_WIZARD_TR_CATEGORY));
     return parameters;
index 63d7c6c..60c9c13 100644 (file)
@@ -52,7 +52,7 @@ QIcon CloneWizard::icon() const
 
 QString CloneWizard::description() const
 {
-    return tr("Clones a project from a git repository.");
+    return tr("Clones a project from a Git repository and tries to load the contained project.");
 }
 
 QString CloneWizard::displayName() const
index de0eaec..46a7efa 100644 (file)
@@ -80,7 +80,7 @@ QIcon GitoriousCloneWizard::icon() const
 
 QString GitoriousCloneWizard::description() const
 {
-    return tr("Clones a project from a Gitorious repository.");
+    return tr("Clones a project from a Gitorious repository and tries to load the contained project.");
 }
 
 QString GitoriousCloneWizard::displayName() const
index 1753af1..2013d72 100644 (file)
@@ -53,7 +53,7 @@ QIcon CloneWizard::icon() const
 
 QString CloneWizard::description() const
 {
-    return tr("Clone a Mercurial repository");
+    return tr("Clones a Mercurial repository and tries to load the contained project.");
 }
 
 QString CloneWizard::displayName() const
index a32ea9b..58f0b89 100644 (file)
@@ -389,7 +389,7 @@ void ColorBox::mouseMoveEvent(QMouseEvent *e)
 void GradientLine::setItemNode(const QVariant &itemNode)
 {
 
-    if (!itemNode.value<ModelNode>().isValid() || !QmlItemNode(itemNode.value<ModelNode>()).hasNodeParent())
+    if (!itemNode.value<ModelNode>().isValid())
         return;
     m_itemNode = itemNode.value<ModelNode>();
     setup();
@@ -442,6 +442,8 @@ void GradientLine::setActiveColor(const QColor &newColor)
 void GradientLine::setupGradient()
 {
     ModelNode modelNode = m_itemNode.modelNode();
+    if (!modelNode.isValid())
+        return;
     m_colorList.clear();
     m_stops.clear();
 
index d087c72..b5a5450 100644 (file)
@@ -74,7 +74,7 @@ void QmlAnchorBindingProxy::setup(const QmlItemNode &fxItemNode)
     if (horizontalCentered())
         m_horizontalTarget = m_fxItemNode.anchors().instanceAnchor(AnchorLine::HorizontalCenter).qmlItemNode();
 
-
+    emit itemNodeChanged();
     emit parentChanged();
     emit topAnchorChanged();
     emit bottomAnchorChanged();
index aae8b16..b9e7bbb 100644 (file)
@@ -477,8 +477,7 @@ CodeCompletion::CodeCompletion(ModelManagerInterface *modelManager, QObject *par
     : TextEditor::ICompletionCollector(parent),
       m_modelManager(modelManager),
       m_editor(0),
-      m_startPosition(0),
-      m_caseSensitivity(Qt::CaseSensitive)
+      m_startPosition(0)
 {
     Q_ASSERT(modelManager);
 }
@@ -486,12 +485,6 @@ CodeCompletion::CodeCompletion(ModelManagerInterface *modelManager, QObject *par
 CodeCompletion::~CodeCompletion()
 { }
 
-Qt::CaseSensitivity CodeCompletion::caseSensitivity() const
-{ return m_caseSensitivity; }
-
-void CodeCompletion::setCaseSensitivity(Qt::CaseSensitivity caseSensitivity)
-{ m_caseSensitivity = caseSensitivity; }
-
 TextEditor::ITextEditable *CodeCompletion::editor() const
 { return m_editor; }
 
@@ -637,7 +630,7 @@ int CodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
 
     // Set up the current scope chain.
     QList<AST::Node *> astPath = semanticInfo.astPath(editor->position());
-    context.build(astPath , document, snapshot, m_modelManager->importPaths());
+    context.build(astPath, document, snapshot, m_modelManager->importPaths());
 
     // Search for the operator that triggered the completion.
     QChar completionOperator;
@@ -854,7 +847,7 @@ void CodeCompletion::completions(QList<TextEditor::CompletionItem> *completions)
     else if (length > 0) {
         const QString key = m_editor->textAt(m_startPosition, length);
 
-        filter(m_completions, completions, key, FirstLetterCaseSensitive);
+        filter(m_completions, completions, key);
 
         if (completions->size() == 1) {
             if (key == completions->first().text)
index aa5b190..7129bce 100644 (file)
@@ -55,9 +55,6 @@ public:
     CodeCompletion(ModelManagerInterface *modelManager, QObject *parent = 0);
     virtual ~CodeCompletion();
 
-    Qt::CaseSensitivity caseSensitivity() const;
-    void setCaseSensitivity(Qt::CaseSensitivity caseSensitivity);
-
     virtual TextEditor::ITextEditable *editor() const;
     virtual int startPosition() const;
     virtual bool shouldRestartCompletion();
@@ -81,7 +78,6 @@ private:
     TextEditor::ITextEditable *m_editor;
     int m_startPosition;
     QList<TextEditor::CompletionItem> m_completions;
-    Qt::CaseSensitivity m_caseSensitivity;
 
     QList<TextEditor::CompletionItem> m_snippets;
     QDateTime m_snippetFileLastModified;
index a2b005f..f998309 100644 (file)
@@ -77,8 +77,7 @@ QmlJSEditorPlugin::QmlJSEditorPlugin() :
         m_modelManager(0),
     m_wizard(0),
     m_editor(0),
-    m_actionHandler(0),
-    m_completion(0)
+    m_actionHandler(0)
 {
     m_instance = this;
 }
@@ -148,19 +147,16 @@ bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *e
     cmd = am->command(TextEditor::Constants::UN_COMMENT_SELECTION);
     contextMenu->addAction(cmd);
 
-    m_completion = new CodeCompletion(m_modelManager);
-    addAutoReleasedObject(m_completion);
+    CodeCompletion *completion = new CodeCompletion(m_modelManager);
+    addAutoReleasedObject(completion);
 
-    addAutoReleasedObject(new HoverHandler());
+    addAutoReleasedObject(new HoverHandler);
 
-    // Restore settings
-    QSettings *settings = Core::ICore::instance()->settings();
-    settings->beginGroup(QLatin1String("CppTools")); // ### FIXME:
-    settings->beginGroup(QLatin1String("Completion"));
-    const bool caseSensitive = settings->value(QLatin1String("CaseSensitive"), true).toBool();
-    m_completion->setCaseSensitivity(caseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive);
-    settings->endGroup();
-    settings->endGroup();
+    // Set completion settings and keep them up to date
+    TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance();
+    completion->setCompletionSettings(textEditorSettings->completionSettings());
+    connect(textEditorSettings, SIGNAL(completionSettingsChanged(TextEditor::CompletionSettings)),
+            completion, SLOT(setCompletionSettings(TextEditor::CompletionSettings)));
 
     error_message->clear();
 
index b119e55..db534f0 100644 (file)
@@ -52,7 +52,6 @@ class QmlFileWizard;
 namespace Internal {
 
 class QmlJSEditorFactory;
-class CodeCompletion;
 class QmlJSTextEditor;
 class QmlJSPreviewRunner;
 
@@ -92,7 +91,6 @@ private:
     QmlFileWizard *m_wizard;
     QmlJSEditorFactory *m_editor;
     TextEditor::TextEditorActionHandler *m_actionHandler;
-    CodeCompletion *m_completion;
 };
 
 } // namespace Internal
index d52bec6..30215eb 100644 (file)
@@ -61,7 +61,8 @@ Core::BaseFileWizardParameters QmlProjectApplicationWizard::parameters()
     parameters.setIcon(QIcon(QLatin1String(":/wizards/images/console.png")));
     parameters.setDisplayName(tr("Qt QML Application"));
     parameters.setId(QLatin1String("QA.QML Application"));
-    parameters.setDescription(tr("Creates a Qt QML application."));
+    parameters.setDescription(tr("Creates a Qt QML application project with a single QML file containing the main view.\n\n"
+                                 "QML application projects are executed through the QML runtime and do not need to be built."));
     parameters.setCategory(QLatin1String(Constants::QML_WIZARD_CATEGORY));
     parameters.setDisplayCategory(QCoreApplication::translate(Constants::QML_WIZARD_TR_SCOPE,
                                                               Constants::QML_WIZARD_TR_CATEGORY));
index b658c96..4bb885f 100644 (file)
@@ -627,16 +627,6 @@ bool QtVersion::supportsShadowBuilds() const
        // We can not support shadow building with the ABLD system
         return false;
     }
-    if (targets.contains(Constants::MAEMO_DEVICE_TARGET_ID)) {
-#if defined(Q_OS_WIN)
-        // qmake -unix fails with shadow building on windows
-        return false;
-#else
-        // ... but works fine anywhere else
-        return true;
-#endif
-    }
-
     return true;
 }
 
index 11f313b..d12e3f0 100644 (file)
@@ -57,7 +57,8 @@ ConsoleAppWizard::ConsoleAppWizard()
              QLatin1String(Constants::QT_APP_WIZARD_TR_SCOPE),
              QLatin1String(Constants::QT_APP_WIZARD_TR_CATEGORY),
              tr("Qt Console Application"),
-             tr("Creates a Qt console application."),
+             tr("Creates a project containing a single main.cpp file with a stub implementation.\n\n"
+                "Preselects a desktop Qt for building the application if available."),
              QIcon(QLatin1String(":/wizards/images/console.png")))
 {
 }
index a8c9c5c..63cbf6f 100644 (file)
@@ -44,7 +44,8 @@ EmptyProjectWizard::EmptyProjectWizard()
              QLatin1String(ProjectExplorer::Constants::PROJECT_WIZARD_TR_SCOPE),
              QLatin1String(ProjectExplorer::Constants::PROJECT_WIZARD_TR_CATEGORY),
              tr("Empty Qt Project"),
-             tr("Creates an empty Qt project."),
+             tr("Creates a qmake-based project without any files. This allows you to create "
+                "an application without any default classes."),
              QIcon(QLatin1String(":/wizards/images/gui.png")))
 {
 }
index 92bbb1a..a112fb1 100644 (file)
@@ -81,7 +81,9 @@ GuiAppWizard::GuiAppWizard()
                QLatin1String(Constants::QT_APP_WIZARD_TR_SCOPE),
                QLatin1String(Constants::QT_APP_WIZARD_TR_CATEGORY),
                tr("Qt Gui Application"),
-               tr("Creates a Qt Gui Application with one form."),
+               tr("Creates a Qt application for the desktop. "
+                  "Includes a Qt Designer-based main window.\n\n"
+                  "Preselects a desktop Qt for building the application if available."),
                QIcon(QLatin1String(":/wizards/images/gui.png"))),
       m_createMobileProject(false)
 {
index 65e115c..39eede1 100644 (file)
@@ -53,7 +53,9 @@ LibraryWizard::LibraryWizard()
              QLatin1String(ProjectExplorer::Constants::PROJECT_WIZARD_TR_SCOPE),
              QLatin1String(ProjectExplorer::Constants::PROJECT_WIZARD_TR_CATEGORY),
              tr("C++ Library"),
-             tr("Creates a Qt based C++ Library."),
+             tr("Creates a C++ library based on qmake. This can be used to create:<ul>"
+                "<li>a shared C++ library for use with <tt>QPluginLoader</tt> and runtime (Plugins)</li>"
+                "<li>a shared or static C++ library for use with another project at linktime</li></ul>."),
              QIcon(QLatin1String(":/wizards/images/lib.png")))
 {
 }
index e5815ec..0d5d1bc 100644 (file)
@@ -42,7 +42,9 @@ MobileGuiAppWizard::MobileGuiAppWizard() :
                  QLatin1String(Constants::QT_APP_WIZARD_TR_SCOPE),
                  QLatin1String(Constants::QT_APP_WIZARD_TR_CATEGORY),
                  tr("Mobile Qt Application"),
-                 tr("Creates a mobile Qt Gui Application with one form."),
+                 tr("Creates a Qt application optimized for mobile devices "
+                    "with a Qt Designer-based main window.\n\n"
+                    "Preselects Qt for Simulator and mobile targets if available"),
                  QIcon(QLatin1String(":/projectexplorer/images/SymbianDevice.png")),
                  true)
 {
index 33223db..55b3e21 100644 (file)
@@ -49,7 +49,9 @@ TestWizard::TestWizard() :
              QLatin1String(ProjectExplorer::Constants::PROJECT_WIZARD_TR_SCOPE),
              QLatin1String(ProjectExplorer::Constants::PROJECT_WIZARD_TR_CATEGORY),
              tr("Qt Unit Test"),
-             tr("Creates a Qt Unit Test."),
+             tr("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."),
              QIcon(QLatin1String(":/wizards/images/console.png")))
 {
 }
index e9c67cf..2638df8 100644 (file)
@@ -75,7 +75,7 @@ bool ResourceEditorPlugin::initialize(const QStringList &arguments, QString *err
     addObject(m_editor);
 
     Core::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
-    wizardParameters.setDescription(tr("Creates a Qt Resource file (.qrc)."));
+    wizardParameters.setDescription(tr("Creates a Qt Resource file (.qrc) that you can add to a Qt C++ project."));
     wizardParameters.setDisplayName(tr("Qt Resource file"));
     wizardParameters.setId(QLatin1String("F.Resource"));
     wizardParameters.setCategory(QLatin1String(Core::Constants::WIZARD_CATEGORY_QT));
index 5c3392e..dbe355b 100644 (file)
@@ -53,7 +53,7 @@ QIcon CheckoutWizard::icon() const
 
 QString CheckoutWizard::description() const
 {
-    return tr("Checks out a project from a Subversion repository.");
+    return tr("Checks out a project from a Subversion repository and tries to load the contained project.");
 }
 
 QString CheckoutWizard::displayName() const
index 4964ec6..413011f 100644 (file)
@@ -34,6 +34,7 @@
 #include "basetexteditor_p.h"
 #include "behaviorsettings.h"
 #include "codecselector.h"
+#include "completionsettings.h"
 #include "completionsupport.h"
 #include "tabsettings.h"
 #include "texteditorconstants.h"
@@ -179,7 +180,7 @@ static void convertToPlainText(QString &txt)
 BaseTextEditor::BaseTextEditor(QWidget *parent)
     : QPlainTextEdit(parent)
 {
-    d = new BaseTextEditorPrivate();
+    d = new BaseTextEditorPrivate;
     d->q = this;
     d->m_extraArea = new TextEditExtraArea(this);
     d->m_extraArea->setMouseTracking(true);
@@ -195,8 +196,6 @@ BaseTextEditor::BaseTextEditor(QWidget *parent)
     d->m_lastScrollPos = -1;
     setCursorWidth(2);
 
-    d->m_allowSkippingOfBlockEnd = false;
-
     // from RESEARCH
 
     setLayoutDirection(Qt::LeftToRight);
@@ -221,7 +220,6 @@ BaseTextEditor::BaseTextEditor(QWidget *parent)
 
 
     // parentheses matcher
-    d->m_parenthesesMatchingEnabled = false;
     d->m_formatRange = true;
     d->m_matchFormat.setForeground(Qt::red);
     d->m_rangeFormat.setBackground(QColor(0xb4, 0xee, 0xb4));
@@ -1709,6 +1707,16 @@ bool BaseTextEditor::isParenthesesMatchingEnabled() const
     return d->m_parenthesesMatchingEnabled;
 }
 
+void BaseTextEditor::setAutoParenthesesEnabled(bool b)
+{
+    d->m_autoParenthesesEnabled = b;
+}
+
+bool BaseTextEditor::isAutoParenthesesEnabled() const
+{
+    return d->m_autoParenthesesEnabled;
+}
+
 void BaseTextEditor::setHighlightCurrentLine(bool b)
 {
     d->m_highlightCurrentLine = b;
@@ -1837,8 +1845,10 @@ BaseTextEditorPrivate::BaseTextEditorPrivate()
     :
     m_contentsChanged(false),
     m_lastCursorChangeWasInteresting(false),
-    m_document(new BaseTextDocument()),
+    m_allowSkippingOfBlockEnd(false),
+    m_document(new BaseTextDocument),
     m_parenthesesMatchingEnabled(false),
+    m_autoParenthesesEnabled(true),
     m_extraArea(0),
     m_mouseOnCollapsedMarker(false),
     m_marksVisible(false),
@@ -3889,13 +3899,16 @@ QString BaseTextEditor::autoComplete(QTextCursor &cursor, const QString &textToI
     const bool checkBlockEnd = d->m_allowSkippingOfBlockEnd;
     d->m_allowSkippingOfBlockEnd = false; // consume blockEnd.
 
+    if (!d->m_autoParenthesesEnabled)
+        return QString();
+
     if (!contextAllowsAutoParentheses(cursor, textToInsert))
         return QString();
 
     const QString text = textToInsert;
     const QChar lookAhead = characterAt(cursor.selectionEnd());
 
-    QChar character = textToInsert.at(0);
+    const QChar character = textToInsert.at(0);
     const QString parentheses = QLatin1String("()");
     const QString brackets = QLatin1String("[]");
     if (parentheses.contains(character) || brackets.contains(character)) {
@@ -3950,17 +3963,20 @@ bool BaseTextEditor::autoBackspace(QTextCursor &cursor)
 {
     d->m_allowSkippingOfBlockEnd = false;
 
+    if (!d->m_autoParenthesesEnabled)
+        return false;
+
     int pos = cursor.position();
     if (pos == 0)
         return false;
     QTextCursor c = cursor;
     c.setPosition(pos - 1);
 
-    QChar lookAhead = characterAt(pos);
-    QChar lookBehind = characterAt(pos-1);
-    QChar lookFurtherBehind = characterAt(pos-2);
+    const QChar lookAhead = characterAt(pos);
+    const QChar lookBehind = characterAt(pos - 1);
+    const QChar lookFurtherBehind = characterAt(pos - 2);
 
-    QChar character = lookBehind;
+    const QChar character = lookBehind;
     if (character == QLatin1Char('(') || character == QLatin1Char('[')) {
         QTextCursor tmp = cursor;
         TextEditor::TextBlockUserData::findPreviousBlockOpenParenthesis(&tmp);
@@ -4005,7 +4021,10 @@ bool BaseTextEditor::autoBackspace(QTextCursor &cursor)
 
 int BaseTextEditor::paragraphSeparatorAboutToBeInserted(QTextCursor &cursor)
 {
-    if (characterAt(cursor.position()-1) != QLatin1Char('{'))
+    if (!d->m_autoParenthesesEnabled)
+        return 0;
+
+    if (characterAt(cursor.position() - 1) != QLatin1Char('{'))
         return 0;
 
     if (!contextAllowsAutoParentheses(cursor))
@@ -4908,6 +4927,11 @@ void BaseTextEditor::setStorageSettings(const StorageSettings &storageSettings)
     d->m_document->setStorageSettings(storageSettings);
 }
 
+void BaseTextEditor::setCompletionSettings(const TextEditor::CompletionSettings &completionSettings)
+{
+    setAutoParenthesesEnabled(completionSettings.m_autoInsertBrackets);
+}
+
 void BaseTextEditor::collapse()
 {
     QTextDocument *doc = document();
index fed0d25..967543a 100644 (file)
@@ -59,6 +59,7 @@ class BaseTextDocument;
 class BaseTextEditorEditable;
 class FontSettings;
 struct BehaviorSettings;
+struct CompletionSettings;
 struct DisplaySettings;
 struct StorageSettings;
 struct TabSettings;
@@ -160,13 +161,15 @@ public:
     void setParenthesesMatchingEnabled(bool b);
     bool isParenthesesMatchingEnabled() const;
 
+    void setAutoParenthesesEnabled(bool b);
+    bool isAutoParenthesesEnabled() const;
+
     void setHighlightCurrentLine(bool b);
     bool highlightCurrentLine() const;
 
     void setLineNumbersVisible(bool b);
     bool lineNumbersVisible() const;
 
-
     void setMarksVisible(bool b);
     bool marksVisible() const;
 
@@ -366,6 +369,7 @@ public slots:
     virtual void setDisplaySettings(const TextEditor::DisplaySettings &);
     virtual void setBehaviorSettings(const TextEditor::BehaviorSettings &);
     virtual void setStorageSettings(const TextEditor::StorageSettings &);
+    virtual void setCompletionSettings(const TextEditor::CompletionSettings &);
 
 protected:
     bool viewportEvent(QEvent *event);
index cd8eb7c..784d95f 100644 (file)
@@ -265,7 +265,6 @@ public:
     int m_cursorBlockNumber;
 
     bool m_inKeyPressEvent;
-
 };
 
 } // namespace Internal
diff --git a/src/plugins/texteditor/completionsettings.cpp b/src/plugins/texteditor/completionsettings.cpp
new file mode 100644 (file)
index 0000000..0d800da
--- /dev/null
@@ -0,0 +1,86 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#include "completionsettings.h"
+
+#include <QtCore/QSettings>
+
+static const char * const groupPostfix = "Completion";
+static const char * const caseSensitivityKey = "CaseSensitivity";
+static const char * const autoInsertBracesKey = "AutoInsertBraces";
+static const char * const partiallyCompleteKey = "PartiallyComplete";
+static const char * const spaceAfterFunctionNameKey = "SpaceAfterFunctionName";
+
+using namespace TextEditor;
+
+CompletionSettings::CompletionSettings()
+    : m_caseSensitivity(FirstLetterCaseSensitive)
+    , m_autoInsertBrackets(true)
+    , m_partiallyComplete(true)
+    , m_spaceAfterFunctionName(false)
+{
+}
+
+void CompletionSettings::toSettings(const QString &category, QSettings *s) const
+{
+    QString group = QLatin1String(groupPostfix);
+    if (!category.isEmpty())
+        group.insert(0, category);
+
+    s->beginGroup(group);
+    s->setValue(QLatin1String(caseSensitivityKey), (int) m_caseSensitivity);
+    s->setValue(QLatin1String(autoInsertBracesKey), m_autoInsertBrackets);
+    s->setValue(QLatin1String(partiallyCompleteKey), m_partiallyComplete);
+    s->setValue(QLatin1String(spaceAfterFunctionNameKey), m_spaceAfterFunctionName);
+    s->endGroup();
+}
+
+void CompletionSettings::fromSettings(const QString &category, const QSettings *s)
+{
+    QString group = QLatin1String(groupPostfix);
+    if (!category.isEmpty())
+        group.insert(0, category);
+    group += QLatin1Char('/');
+
+    *this = CompletionSettings(); // Assign defaults
+
+    m_caseSensitivity = (CaseSensitivity) s->value(group + QLatin1String(caseSensitivityKey), m_caseSensitivity).toInt();
+    m_autoInsertBrackets = s->value(group + QLatin1String(autoInsertBracesKey), m_autoInsertBrackets).toBool();
+    m_partiallyComplete = s->value(group + QLatin1String(partiallyCompleteKey), m_partiallyComplete).toBool();
+    m_spaceAfterFunctionName = s->value(group + QLatin1String(spaceAfterFunctionNameKey), m_spaceAfterFunctionName).toBool();
+}
+
+bool CompletionSettings::equals(const CompletionSettings &cs) const
+{
+    return m_caseSensitivity == cs.m_caseSensitivity
+        && m_autoInsertBrackets == cs.m_autoInsertBrackets
+        && m_partiallyComplete == cs.m_partiallyComplete
+        && m_spaceAfterFunctionName == cs.m_spaceAfterFunctionName
+        ;
+}
diff --git a/src/plugins/texteditor/completionsettings.h b/src/plugins/texteditor/completionsettings.h
new file mode 100644 (file)
index 0000000..0d35abf
--- /dev/null
@@ -0,0 +1,70 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#ifndef COMPLETIONSETTINGS_H
+#define COMPLETIONSETTINGS_H
+
+#include "texteditor_global.h"
+
+QT_BEGIN_NAMESPACE
+class QSettings;
+QT_END_NAMESPACE
+
+namespace TextEditor {
+
+enum CaseSensitivity {
+    CaseInsensitive,
+    CaseSensitive,
+    FirstLetterCaseSensitive
+};
+
+/**
+ * Settings that describe how the code completion behaves.
+ */
+struct TEXTEDITOR_EXPORT CompletionSettings
+{
+    CompletionSettings();
+
+    void toSettings(const QString &category, QSettings *s) const;
+    void fromSettings(const QString &category, const QSettings *s);
+
+    bool equals(const CompletionSettings &bs) const;
+
+    CaseSensitivity m_caseSensitivity;
+    bool m_autoInsertBrackets;
+    bool m_partiallyComplete;
+    bool m_spaceAfterFunctionName;
+};
+
+inline bool operator==(const CompletionSettings &t1, const CompletionSettings &t2) { return t1.equals(t2); }
+inline bool operator!=(const CompletionSettings &t1, const CompletionSettings &t2) { return !t1.equals(t2); }
+
+} // namespace TextEditor
+
+#endif // COMPLETIONSETTINGS_H
index 9bf453e..0d4dd12 100644 (file)
 **************************************************************************/
 
 #include "icompletioncollector.h"
+
+#include "completionsettings.h"
 #include "itexteditable.h"
+
 #include <QtCore/QRegExp>
 #include <algorithm>
 
 using namespace TextEditor;
+using namespace TextEditor::Internal;
+
+namespace TextEditor {
+namespace Internal {
+
+struct ICompletionCollectorPrivate
+{
+public:
+    CompletionSettings m_completionSettings;
+};
+
+} // namespace Internal
+} // namespace TextEditor
 
 bool ICompletionCollector::compareChar(const QChar &l, const QChar &r)
 {
@@ -62,6 +78,27 @@ bool ICompletionCollector::completionItemLessThan(const CompletionItem &i1, cons
         return lessThan(lower1, lower2);
 }
 
+ICompletionCollector::ICompletionCollector(QObject *parent)
+    : QObject(parent)
+    , m_d(new Internal::ICompletionCollectorPrivate)
+{
+}
+
+ICompletionCollector::~ICompletionCollector()
+{
+    delete m_d;
+}
+
+void ICompletionCollector::setCompletionSettings(const CompletionSettings &settings)
+{
+    m_d->m_completionSettings = settings;
+}
+
+const CompletionSettings &ICompletionCollector::completionSettings() const
+{
+    return m_d->m_completionSettings;
+}
+
 QList<CompletionItem> ICompletionCollector::getCompletions()
 {
     QList<CompletionItem> completionItems;
@@ -88,6 +125,9 @@ QList<CompletionItem> ICompletionCollector::getCompletions()
 
 bool ICompletionCollector::partiallyComplete(const QList<TextEditor::CompletionItem> &completionItems)
 {
+    if (! m_d->m_completionSettings.m_partiallyComplete)
+        return false;
+
     // Compute common prefix
     QString firstKey = completionItems.first().text;
     QString lastKey = completionItems.last().text;
@@ -113,9 +153,10 @@ bool ICompletionCollector::partiallyComplete(const QList<TextEditor::CompletionI
 
 void ICompletionCollector::filter(const QList<TextEditor::CompletionItem> &items,
                                   QList<TextEditor::CompletionItem> *filteredItems,
-                                  const QString &key,
-                                  ICompletionCollector::CaseSensitivity caseSensitivity)
+                                  const QString &key)
 {
+    const TextEditor::CaseSensitivity caseSensitivity = m_d->m_completionSettings.m_caseSensitivity;
+
     /*
      * This code builds a regular expression in order to more intelligently match
      * camel-case style. This means upper-case characters will be rewritten as follows:
@@ -132,8 +173,8 @@ void ICompletionCollector::filter(const QList<TextEditor::CompletionItem> &items
     bool first = true;
     const QLatin1String wordContinuation("[a-z0-9_]*");
     foreach (const QChar &c, key) {
-        if (caseSensitivity == CaseInsensitive ||
-            (caseSensitivity == FirstLetterCaseSensitive && !first)) {
+        if (caseSensitivity == TextEditor::CaseInsensitive ||
+            (caseSensitivity == TextEditor::FirstLetterCaseSensitive && !first)) {
 
             keyRegExp += QLatin1String("(?:");
             if (c.isUpper() && !first)
@@ -158,7 +199,7 @@ void ICompletionCollector::filter(const QList<TextEditor::CompletionItem> &items
             if (hasKey) {
                 if (item.text.startsWith(key, Qt::CaseSensitive)) {
                     item.relevance = 2;
-                } else if (caseSensitivity != CaseSensitive
+                } else if (caseSensitivity != TextEditor::CaseSensitive
                            && item.text.startsWith(key, Qt::CaseInsensitive)) {
                     item.relevance = 1;
                 }
index e2cfdfa..e78ad83 100644 (file)
 
 namespace TextEditor {
 
+namespace Internal {
+class ICompletionCollectorPrivate;
+}
+
 class ICompletionCollector;
 class ITextEditable;
+struct CompletionSettings;
 
 struct CompletionItem
 {
@@ -73,8 +78,10 @@ class TEXTEDITOR_EXPORT ICompletionCollector : public QObject
 {
     Q_OBJECT
 public:
-    ICompletionCollector(QObject *parent = 0) : QObject(parent) {}
-    virtual ~ICompletionCollector() {}
+    ICompletionCollector(QObject *parent = 0);
+    virtual ~ICompletionCollector();
+
+    const CompletionSettings &completionSettings() const;
 
     virtual QList<CompletionItem> getCompletions();
     virtual bool shouldRestartCompletion();
@@ -120,21 +127,20 @@ public:
 
     // helpers
 
-    enum CaseSensitivity {
-        CaseInsensitive,
-        CaseSensitive,
-        FirstLetterCaseSensitive
-    };
-
     void filter(const QList<TextEditor::CompletionItem> &items,
                 QList<TextEditor::CompletionItem> *filteredItems,
-                const QString &key,
-                CaseSensitivity caseSensitivity);
+                const QString &key);
+
+public slots:
+    void setCompletionSettings(const TextEditor::CompletionSettings &);
 
 protected:
     static bool compareChar(const QChar &item, const QChar &other);
     static bool lessThan(const QString &item, const QString &other);
     static bool completionItemLessThan(const CompletionItem &item, const CompletionItem &other);
+
+private:
+    Internal::ICompletionCollectorPrivate *m_d;
 };
 
 class TEXTEDITOR_EXPORT IQuickFixCollector : public ICompletionCollector
index 26429c0..a27f857 100644 (file)
@@ -34,7 +34,8 @@ SOURCES += texteditorplugin.cpp \
     itexteditor.cpp \
     texteditoroverlay.cpp \
     texteditoroptionspage.cpp \
-    basetextdocumentlayout.cpp
+    basetextdocumentlayout.cpp \
+    completionsettings.cpp
 
 HEADERS += texteditorplugin.h \
     textfilewizard.h \
@@ -71,7 +72,8 @@ HEADERS += texteditorplugin.h \
     colorschemeedit.h \
     texteditoroverlay.h \
     texteditoroptionspage.h \
-    basetextdocumentlayout.h
+    basetextdocumentlayout.h \
+    completionsettings.h
 
 
 FORMS += behaviorsettingspage.ui \
index 410325d..dca81be 100644 (file)
@@ -91,7 +91,8 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe
         return false;
 
     Core::BaseFileWizardParameters wizardParameters(Core::IWizard::FileWizard);
-    wizardParameters.setDescription(tr("Creates a text file (.txt)."));
+    wizardParameters.setDescription(tr("Creates a text file. The default file extension is <tt>.txt</tt>. "
+                                       "You can specify a different extension as part of the filename."));
     wizardParameters.setDisplayName(tr("Text File"));
     wizardParameters.setCategory(QLatin1String("U.General"));
     wizardParameters.setDisplayCategory(tr("General"));
index de018d4..26a829e 100644 (file)
@@ -33,6 +33,7 @@
 #include "basetexteditor.h"
 #include "behaviorsettings.h"
 #include "behaviorsettingspage.h"
+#include "completionsettings.h"
 #include "displaysettings.h"
 #include "displaysettingspage.h"
 #include "fontsettingspage.h"
 #include "texteditorplugin.h"
 
 #include <extensionsystem/pluginmanager.h>
+#include <coreplugin/icore.h>
 #include <utils/qtcassert.h>
 
 #include <QtGui/QApplication>
 
 using namespace TextEditor;
 using namespace TextEditor::Constants;
+using namespace TextEditor::Internal;
+
+namespace TextEditor {
+namespace Internal {
+
+class TextEditorSettingsPrivate
+{
+public:
+    FontSettingsPage *m_fontSettingsPage;
+    BehaviorSettingsPage *m_behaviorSettingsPage;
+    DisplaySettingsPage *m_displaySettingsPage;
+
+    CompletionSettings m_completionSettings;
+
+    void fontZoomRequested(int pointSize);
+    void zoomResetRequested();
+};
+
+void TextEditorSettingsPrivate::fontZoomRequested(int zoom)
+{
+    FontSettings &fs = const_cast<FontSettings&>(m_fontSettingsPage->fontSettings());
+    fs.setFontZoom(qMax(10, fs.fontZoom() + zoom));
+    m_fontSettingsPage->saveSettings();
+}
+
+void TextEditorSettingsPrivate::zoomResetRequested()
+{
+    FontSettings &fs = const_cast<FontSettings&>(m_fontSettingsPage->fontSettings());
+    fs.setFontZoom(100);
+    m_fontSettingsPage->saveSettings();
+}
+
+} // namespace Internal
+} // namespace TextEditor
+
 
 TextEditorSettings *TextEditorSettings::m_instance = 0;
 
 TextEditorSettings::TextEditorSettings(QObject *parent)
     : QObject(parent)
+    , m_d(new Internal::TextEditorSettingsPrivate)
 {
     QTC_ASSERT(!m_instance, return);
     m_instance = this;
@@ -102,44 +140,50 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
     formatDescriptions.append(FormatDescription(QLatin1String(C_DIFF_FILE), tr("Diff File"), Qt::darkBlue));
     formatDescriptions.append(FormatDescription(QLatin1String(C_DIFF_LOCATION), tr("Diff Location"), Qt::blue));
 
-    m_fontSettingsPage = new FontSettingsPage(formatDescriptions,
-                                              QLatin1String("A.FontSettings"),
-                                              this);
-    pm->addObject(m_fontSettingsPage);
+    m_d->m_fontSettingsPage = new FontSettingsPage(formatDescriptions,
+                                                   QLatin1String("A.FontSettings"),
+                                                   this);
+    pm->addObject(m_d->m_fontSettingsPage);
 
     // Add the GUI used to configure the tab, storage and interaction settings
     TextEditor::BehaviorSettingsPageParameters behaviorSettingsPageParameters;
     behaviorSettingsPageParameters.id = QLatin1String("B.BehaviourSettings");
     behaviorSettingsPageParameters.displayName = tr("Behavior");
     behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text");
-    m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
-    pm->addObject(m_behaviorSettingsPage);
+    m_d->m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
+    pm->addObject(m_d->m_behaviorSettingsPage);
 
     TextEditor::DisplaySettingsPageParameters displaySettingsPageParameters;
     displaySettingsPageParameters.id = QLatin1String("D.DisplaySettings"),
     displaySettingsPageParameters.displayName = tr("Display");
     displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
-    m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
-    pm->addObject(m_displaySettingsPage);
+    m_d->m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
+    pm->addObject(m_d->m_displaySettingsPage);
 
-    connect(m_fontSettingsPage, SIGNAL(changed(TextEditor::FontSettings)),
+    connect(m_d->m_fontSettingsPage, SIGNAL(changed(TextEditor::FontSettings)),
             this, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)));
-    connect(m_behaviorSettingsPage, SIGNAL(tabSettingsChanged(TextEditor::TabSettings)),
+    connect(m_d->m_behaviorSettingsPage, SIGNAL(tabSettingsChanged(TextEditor::TabSettings)),
             this, SIGNAL(tabSettingsChanged(TextEditor::TabSettings)));
-    connect(m_behaviorSettingsPage, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
+    connect(m_d->m_behaviorSettingsPage, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
             this, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)));
-    connect(m_behaviorSettingsPage, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
+    connect(m_d->m_behaviorSettingsPage, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)),
             this, SIGNAL(behaviorSettingsChanged(TextEditor::BehaviorSettings)));
-    connect(m_displaySettingsPage, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
+    connect(m_d->m_displaySettingsPage, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
             this, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)));
+
+    // TODO: Move these settings to TextEditor category
+    if (QSettings *s = Core::ICore::instance()->settings())
+        m_d->m_completionSettings.fromSettings(QLatin1String("CppTools/"), s);
 }
 
 TextEditorSettings::~TextEditorSettings()
 {
     ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
-    pm->removeObject(m_fontSettingsPage);
-    pm->removeObject(m_behaviorSettingsPage);
-    pm->removeObject(m_displaySettingsPage);
+    pm->removeObject(m_d->m_fontSettingsPage);
+    pm->removeObject(m_d->m_behaviorSettingsPage);
+    pm->removeObject(m_d->m_displaySettingsPage);
+
+    delete m_d;
 
     m_instance = 0;
 }
@@ -166,6 +210,8 @@ void TextEditorSettings::initializeEditor(BaseTextEditor *editor)
             editor, SLOT(setBehaviorSettings(TextEditor::BehaviorSettings)));
     connect(this, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
             editor, SLOT(setDisplaySettings(TextEditor::DisplaySettings)));
+    connect(this, SIGNAL(completionSettingsChanged(TextEditor::CompletionSettings)),
+            editor, SLOT(setCompletionSettings(TextEditor::CompletionSettings)));
 
     connect(editor, SIGNAL(requestFontZoom(int)),
             this, SLOT(fontZoomRequested(int)));
@@ -178,44 +224,50 @@ void TextEditorSettings::initializeEditor(BaseTextEditor *editor)
     editor->setStorageSettings(storageSettings());
     editor->setBehaviorSettings(behaviorSettings());
     editor->setDisplaySettings(displaySettings());
+    editor->setCompletionSettings(completionSettings());
 }
 
 
-void TextEditorSettings::fontZoomRequested(int zoom)
+const FontSettings &TextEditorSettings::fontSettings() const
 {
-    FontSettings &fs = const_cast<FontSettings&>(fontSettings());
-    fs.setFontZoom(qMax(10, fs.fontZoom() + zoom));
-    m_fontSettingsPage->saveSettings();
+    return m_d->m_fontSettingsPage->fontSettings();
 }
 
-void TextEditorSettings::zoomResetRequested()
+const TabSettings &TextEditorSettings::tabSettings() const
 {
-    FontSettings &fs = const_cast<FontSettings&>(fontSettings());
-    fs.setFontZoom(100);
-    m_fontSettingsPage->saveSettings();
+    return m_d->m_behaviorSettingsPage->tabSettings();
 }
 
-const FontSettings &TextEditorSettings::fontSettings() const
+const StorageSettings &TextEditorSettings::storageSettings() const
 {
-    return m_fontSettingsPage->fontSettings();
+    return m_d->m_behaviorSettingsPage->storageSettings();
 }
 
-const TabSettings &TextEditorSettings::tabSettings() const
+const BehaviorSettings &TextEditorSettings::behaviorSettings() const
 {
-    return m_behaviorSettingsPage->tabSettings();
+    return m_d->m_behaviorSettingsPage->behaviorSettings();
 }
 
-const StorageSettings &TextEditorSettings::storageSettings() const
+const DisplaySettings &TextEditorSettings::displaySettings() const
 {
-    return m_behaviorSettingsPage->storageSettings();
+    return m_d->m_displaySettingsPage->displaySettings();
 }
 
-const BehaviorSettings &TextEditorSettings::behaviorSettings() const
+const CompletionSettings &TextEditorSettings::completionSettings() const
 {
-    return m_behaviorSettingsPage->behaviorSettings();
+    return m_d->m_completionSettings;
 }
 
-const DisplaySettings &TextEditorSettings::displaySettings() const
+void TextEditorSettings::setCompletionSettings(const TextEditor::CompletionSettings &settings)
 {
-    return m_displaySettingsPage->displaySettings();
+    if (m_d->m_completionSettings == settings)
+        return;
+
+    m_d->m_completionSettings = settings;
+    if (QSettings *s = Core::ICore::instance()->settings())
+        m_d->m_completionSettings.toSettings(QLatin1String("CppTools/"), s);
+
+    emit completionSettingsChanged(m_d->m_completionSettings);
 }
+
+#include "moc_texteditorsettings.cpp"
index a583630..ff6c9b9 100644 (file)
@@ -45,11 +45,16 @@ struct TabSettings;
 struct StorageSettings;
 struct BehaviorSettings;
 struct DisplaySettings;
+struct CompletionSettings;
+
+namespace Internal {
+class TextEditorSettingsPrivate;
+}
 
 /**
  * This class provides a central place for basic text editor settings. These
  * settings include font settings, tab settings, storage settings, behavior
- * settings and display settings.
+ * settings, display settings and completion settings.
  */
 class TEXTEDITOR_EXPORT TextEditorSettings : public QObject
 {
@@ -68,6 +73,9 @@ public:
     const StorageSettings &storageSettings() const;
     const BehaviorSettings &behaviorSettings() const;
     const DisplaySettings &displaySettings() const;
+    const CompletionSettings &completionSettings() const;
+
+    void setCompletionSettings(const TextEditor::CompletionSettings &);
 
 signals:
     void fontSettingsChanged(const TextEditor::FontSettings &);
@@ -75,15 +83,12 @@ signals:
     void storageSettingsChanged(const TextEditor::StorageSettings &);
     void behaviorSettingsChanged(const TextEditor::BehaviorSettings &);
     void displaySettingsChanged(const TextEditor::DisplaySettings &);
-
-private slots:
-    void fontZoomRequested(int pointSize);
-    void zoomResetRequested();
+    void completionSettingsChanged(const TextEditor::CompletionSettings &);
 
 private:
-    FontSettingsPage *m_fontSettingsPage;
-    BehaviorSettingsPage *m_behaviorSettingsPage;
-    DisplaySettingsPage *m_displaySettingsPage;
+    Internal::TextEditorSettingsPrivate *m_d;
+    Q_PRIVATE_SLOT(m_d, void fontZoomRequested(int pointSize));
+    Q_PRIVATE_SLOT(m_d, void zoomResetRequested());
 
     static TextEditorSettings *m_instance;
 };
index 43e2692..a82abe9 100644 (file)
Binary files a/src/plugins/welcome/images/welcomebg.png and b/src/plugins/welcome/images/welcomebg.png differ
index f00d137..e60f814 100644 (file)
@@ -76,12 +76,7 @@ QToolButton:pressed, QPushButton:pressed{
    <item>
     <widget class="QWidget" name="gradientWidget" native="true">
      <property name="styleSheet">
-      <string notr="true">/*
-#gradientWidget {
-  background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:1.0, y2:1, stop:0 rgba(240, 240, 240, 255), stop:1 rgba(200, 200, 200, 255));
-}
-*/
-#gradientWidget {
+      <string notr="true">#gradientWidget {
     border-image: url(:/welcome/images/welcomebg.png) 0;
 }
 </string>
index b3ad3dd..e861992 100644 (file)
@@ -33,6 +33,9 @@
 #include "helpmanager.h"
 #include "openpagesmanager.h"
 
+#include <utils/filterlineedit.h>
+#include <utils/styledbar.h>
+
 #include <QtGui/QMenu>
 #include <QtGui/QIcon>
 #include <QtGui/QStyle>
@@ -423,19 +426,27 @@ void BookmarkWidget::setup(bool showButtons)
     regExp.setCaseSensitivity(Qt::CaseInsensitive);
 
     QLayout *vlayout = new QVBoxLayout(this);
-    vlayout->setMargin(4);
-
-    QLabel *label = new QLabel(tr("Filter:"), this);
-    vlayout->addWidget(label);
+    vlayout->setMargin(0);
+    vlayout->setSpacing(0);
 
-    searchField = new QLineEdit(this);
+    searchField = new Utils::FilterLineEdit(this);
     setFocusProxy(searchField);
+
+    Utils::StyledBar *toolbar = new Utils::StyledBar(this);
+    toolbar->setSingleRow(false);
+    QLayout *tbLayout = new QHBoxLayout();
+    tbLayout->setMargin(4);
+    tbLayout->addWidget(searchField);
+    toolbar->setLayout(tbLayout);
+
+    vlayout->addWidget(toolbar);
+
     searchField->installEventFilter(this);
-    vlayout->addWidget(searchField);
     connect(searchField, SIGNAL(textChanged(const QString &)), this,
         SLOT(filterChanged()));
 
     treeView = new TreeView(this);
+    treeView->setFrameStyle(QFrame::NoFrame);
     vlayout->addWidget(treeView);
 
 #ifdef Q_OS_MAC
index e728a9a..a8ed1f1 100644 (file)
@@ -52,7 +52,7 @@ ContentWindow::ContentWindow()
     setFocusProxy(m_contentWidget);
 
     QVBoxLayout *layout = new QVBoxLayout(this);
-    layout->setMargin(4);
+    layout->setMargin(0);
     layout->addWidget(m_contentWidget);
 
     connect(m_contentWidget, SIGNAL(customContextMenuRequested(QPoint)), this,
@@ -63,6 +63,8 @@ ContentWindow::ContentWindow()
     QHelpContentModel *contentModel =
         qobject_cast<QHelpContentModel*>(m_contentWidget->model());
     connect(contentModel, SIGNAL(contentsCreated()), this, SLOT(expandTOC()));
+
+    m_contentWidget->setFrameStyle(QFrame::NoFrame);
 }
 
 ContentWindow::~ContentWindow()
index 0b9bf09..1bc86d6 100644 (file)
@@ -34,6 +34,9 @@
 #include "openpagesmanager.h"
 #include "topicchooser.h"
 
+#include <utils/filterlineedit.h>
+#include <utils/styledbar.h>
+
 #include <QtGui/QLayout>
 #include <QtGui/QLabel>
 #include <QtGui/QLineEdit>
@@ -41,6 +44,7 @@
 #include <QtGui/QMenu>
 #include <QtGui/QContextMenuEvent>
 #include <QtGui/QListWidgetItem>
+#include <QtGui/QToolBar>
 
 #include <QtHelp/QHelpEngine>
 #include <QtHelp/QHelpIndexWidget>
@@ -52,17 +56,29 @@ IndexWindow::IndexWindow()
     , m_indexWidget(0)
 {
     QVBoxLayout *layout = new QVBoxLayout(this);
-    QLabel *l = new QLabel(tr("&Look for:"));
-    layout->addWidget(l);
 
-    m_searchLineEdit = new QLineEdit();
-    l->setBuddy(m_searchLineEdit);
+    m_searchLineEdit = new Utils::FilterLineEdit();
+    m_searchLineEdit->setPlaceholderText(QString());
     setFocusProxy(m_searchLineEdit);
     connect(m_searchLineEdit, SIGNAL(textChanged(QString)), this,
         SLOT(filterIndices(QString)));
     m_searchLineEdit->installEventFilter(this);
-    layout->setMargin(4);
-    layout->addWidget(m_searchLineEdit);
+
+    QLabel *l = new QLabel(tr("&Look for:"));
+    l->setBuddy(m_searchLineEdit);
+    layout->addWidget(l);
+    layout->setMargin(0);
+    layout->setSpacing(0);
+
+    Utils::StyledBar *toolbar = new Utils::StyledBar(this);
+    toolbar->setSingleRow(false);
+    QLayout *tbLayout = new QHBoxLayout();
+    tbLayout->setSpacing(6);
+    tbLayout->setMargin(4);
+    tbLayout->addWidget(l);
+    tbLayout->addWidget(m_searchLineEdit);
+    toolbar->setLayout(tbLayout);
+    layout->addWidget(toolbar);
 
     QHelpEngine *engine = &Help::HelpManager::helpEngine();
     m_indexWidget = engine->indexWidget();
@@ -77,6 +93,7 @@ IndexWindow::IndexWindow()
         this, SIGNAL(linksActivated(QMap<QString, QUrl>, QString)));
     connect(m_searchLineEdit, SIGNAL(returnPressed()), m_indexWidget,
         SLOT(activateCurrentItem()));
+    m_indexWidget->setFrameStyle(QFrame::NoFrame);
     layout->addWidget(m_indexWidget);
 
     m_indexWidget->viewport()->installEventFilter(this);
index ecb0efd..693faf5 100644 (file)
@@ -61,7 +61,8 @@ QrcEditor::QrcEditor(QWidget *parent)
     connect(m_treeview, SIGNAL(addPrefixTriggered()), this, SLOT(onAddPrefix()));
     connect(m_treeview, SIGNAL(addFilesTriggered(QString)), this, SLOT(onAddFiles()));
     connect(m_treeview, SIGNAL(removeItem()), this, SLOT(onRemove()));
-    connect(m_treeview, SIGNAL(currentIndexChanged()), this, SLOT(updateCurrent()));
+    connect(m_treeview->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)),
+            this, SLOT(updateCurrent()));
     connect(m_treeview, SIGNAL(dirtyChanged(bool)), this, SIGNAL(dirtyChanged(bool)));
     m_treeview->setFocus();
 
index d0b077c..814d044 100644 (file)
@@ -203,13 +203,6 @@ ResourceView::~ResourceView()
 {
 }
 
-void ResourceView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
-{
-    Q_UNUSED(current)
-    Q_UNUSED(previous)
-    emit currentIndexChanged();
-}
-
 bool ResourceView::isDirty() const
 {
     return m_qrcModel->dirty();
index a0da7df..2e44da2 100644 (file)
@@ -139,14 +139,10 @@ protected:
 signals:
     void removeItem();
     void dirtyChanged(bool b);
-    void currentIndexChanged();
 
     void addFilesTriggered(const QString &prefix);
     void addPrefixTriggered();
 
-protected slots:
-    void currentChanged(const QModelIndex &current, const QModelIndex &previous);
-
 private slots:
     void onEditAlias();
     void onEditPrefix();
index a597cf6..25dc395 100644 (file)
@@ -353,8 +353,22 @@ void Launcher::handleResult(const TrkResult &result)
     QByteArray prefix = "READ BUF:                                       ";
     QByteArray str = result.toString().toUtf8();
     if (result.isDebugOutput) { // handle application output
-        logMessage("APPLICATION OUTPUT: " + result.data);
-        emit applicationOutputReceived(result.data);
+        QString msg;
+        if (result.multiplex == MuxTextTrace) {
+            if (result.data.length() > 8) {
+            quint64 timestamp = extractInt64(result.data) & 0x0FFFFFFFFFFFFFFFULL;
+            quint64 secs = timestamp / 1000000000;
+            quint64 ns = timestamp % 1000000000;
+            msg = QString("[%1.%2] %3").arg(secs).arg(ns).arg(QString(result.data.mid(8)));
+            logMessage("TEXT TRACE: " + msg);
+            }
+        } else {
+            logMessage("APPLICATION OUTPUT: " + result.data);
+            msg = result.data;
+        }
+        msg.replace("\r\n", "\n");
+        if(!msg.endsWith('\n')) msg.append('\n');
+        emit applicationOutputReceived(msg);
         return;
     }
     switch (result.code) {
index 6c44c90..40c448d 100644 (file)
@@ -264,14 +264,13 @@ QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool s
 
 /* returns 0 if array doesn't represent a result,
 otherwise returns the length of the result data */
-ushort isValidTrkResult(const QByteArray &buffer, bool serialFrame)
+ushort isValidTrkResult(const QByteArray &buffer, bool serialFrame, ushort& mux)
 {
     if (serialFrame) {
         // Serial protocol with length info
         if (buffer.length() < 4)
             return 0;
-        if (buffer.at(0) != 0x01 || byte(buffer.at(1)) != 0x90)
-            return 0;
+        mux = extractShort(buffer.data());
         const ushort len = extractShort(buffer.data() + 2);
         return (buffer.size() >= len + 4) ? len : ushort(0);
     }
@@ -280,6 +279,7 @@ ushort isValidTrkResult(const QByteArray &buffer, bool serialFrame)
     const int firstDelimiterPos = buffer.indexOf(delimiter);
     // Regular message delimited by 0x7e..0x7e
     if (firstDelimiterPos == 0) {
+        mux = MuxTrk;
         const int endPos = buffer.indexOf(delimiter, firstDelimiterPos + 1);
         return endPos != -1 ? endPos + 1 - firstDelimiterPos : 0;
     }
@@ -292,7 +292,7 @@ bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByt
     result->clear();
     if(rawData)
         rawData->clear();
-    const ushort len = isValidTrkResult(*buffer, serialFrame);
+    const ushort len = isValidTrkResult(*buffer, serialFrame, result->multiplex);
     if (!len)
         return false;
     // handle receiving application output, which is not a regular command
@@ -300,7 +300,6 @@ bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByt
     if (buffer->at(delimiterPos) != 0x7e) {
         result->isDebugOutput = true;
         result->data = buffer->mid(delimiterPos, len);
-        result->data.replace("\r\n", "\n");
         *buffer->remove(0, delimiterPos + len);
         return true;
     }
@@ -341,6 +340,19 @@ SYMBIANUTILS_EXPORT uint extractInt(const char *data)
     return res;
 }
 
+SYMBIANUTILS_EXPORT quint64 extractInt64(const char *data)
+{
+    quint64 res = byte(data[0]);
+    res <<= 8; res += byte(data[1]);
+    res <<= 8; res += byte(data[2]);
+    res <<= 8; res += byte(data[3]);
+    res <<= 8; res += byte(data[4]);
+    res <<= 8; res += byte(data[5]);
+    res <<= 8; res += byte(data[6]);
+    res <<= 8; res += byte(data[7]);
+    return res;
+}
+
 SYMBIANUTILS_EXPORT QString quoteUnprintableLatin1(const QByteArray &ba)
 {
     QString res;
index 248f6fc..e438c1b 100644 (file)
@@ -123,9 +123,16 @@ enum Command {
     TrkDSPositionFile = 0xd4
 };
 
+enum SerialMultiplexor {
+    MuxRaw = 0,
+    MuxTextTrace = 0x0102,
+    MuxTrk = 0x0190
+};
+
 inline byte extractByte(const char *data) { return *data; }
 SYMBIANUTILS_EXPORT ushort extractShort(const char *data);
 SYMBIANUTILS_EXPORT uint extractInt(const char *data);
+SYMBIANUTILS_EXPORT quint64 extractInt64(const char *data);
 
 SYMBIANUTILS_EXPORT QString quoteUnprintableLatin1(const QByteArray &ba);
 
@@ -205,6 +212,7 @@ struct SYMBIANUTILS_EXPORT TrkResult
     int errorCode() const;
     QString errorString() const;
 
+    ushort multiplex;
     byte code;
     byte token;
     QByteArray data;