<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>
<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>
<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>
<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>
<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 '%1'</translation>
+ <translation type="obsolete">Gehe zu Mode '%1'</translation>
+ </message>
+ <message>
+ <location filename="../../../src/plugins/coreplugin/modemanager.cpp" line="+180"/>
+ <source>Switch to <b>%1</b> mode</source>
+ <translation>Gehe zu Mode <b>'%1'</b></translation>
</message>
</context>
<context>
<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><New branch></source>
<translation><Neuer Branch></translation>
</message>
<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>
</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>
<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>
<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>
<translation>Schritt zur Bereinigung hinzufügen</translation>
</message>
<message>
- <location line="-210"/>
+ <location line="-218"/>
<source>Build Steps</source>
<translation>Erstellungsschritte</translation>
</message>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
</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>
<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><font color="#0000ff">Configuration is faulty, please check the Build Issues view for details.</font></source>
<translation><font color="#0000ff">Die Konfiguration ist fehlerhaft. Details befinden sich in der Ansicht "Build-Probleme".</font></translation>
</message>
<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><not found></source>
<translation><nicht gefunden></translation>
</message>
<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>
<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"/>
<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><line number></source>
<translation><Zeilennummer></translation>
</message>
<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>
<translation><b>Qt Apps</b><br /><font color='gray'>Finden Sie freie, Qt-basierte Applikationen</font></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>
<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>
<translation>Es ist kein Ziel festgelegt.</translation>
</message>
<message>
- <location line="+103"/>
+ <location line="+102"/>
<source>Qt Creator</source>
<translation>Qt Creator</translation>
</message>
<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><b>Device:</b> Not connected</source>
<translation><b>Gerät:</b> Nicht angeschlossen</translation>
</message>
<translation>-Neues Formular-</translation>
</message>
<message>
- <location line="+179"/>
+ <location line="+182"/>
<source>Cannot save to file "%1": permission denied.</source>
<translation>Die Datei "%1" konnte wegen nicht ausreichender Zugriffsrechte nicht geschrieben werden.</translation>
</message>
<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 '%1': %2</source>
<translation>Es konnte keine Instanz der Datei '%1' erzeugt werden: %2</translation>
</message>
<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>
<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>
<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>
<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>
<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 '%1': %2</source>
<translation>Die Datei '%1' auf dem Gerät konnte nicht geöffnet werden: %2</translation>
</message>
<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>
<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>
<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>
<context>
<name>Qt4ProjectManager::Internal::S60CreatePackageStepConfigWidget</name>
<message>
- <location line="+47"/>
+ <location line="+49"/>
<source>self-signed</source>
<translation>Selbstsigniert</translation>
</message>
<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 <b>Design</b> mode.</source>
+ <translation>Datei kann nur im <b>Entwurfsmodus</b> bearbeitet werden.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Switch mode</source>
+ <translation>Modus umschalten</translation>
</message>
</context>
<context>
<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 <b>%1</b>:</source>
<comment>%1: Project name</comment>
<translation>Qt Creator kann für das Projekt <b>%1</b> die folgenden Ziele anlegen:</translation>
<translation><b>Warnung:</b> </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>
<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>
<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>
<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>
<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>
<message>
<location/>
<source>Load</source>
- <translation type="unfinished"></translation>
+ <translation>Załadowana</translation>
</message>
</context>
<context>
<message>
<location/>
<source>Timeout:</source>
- <translation type="unfinished"></translation>
+ <translation>Czas oczekiwania:</translation>
</message>
<message>
<location/>
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/>
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/>
<location/>
<source>When this option is checked, 'Step Into' compresses several steps into one in certain situations, leading to 'less noisy' debugging. So will, e.g., the atomic
reference counting code be skipped, and a single 'Step Into' for a signal emission will end up directly in the slot connected to it.</source>
- <translation>Kiedy ta opcja jest zaznaczona "Wskocz do wnętrza" 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 "Wskocz do wnętrza" dla emisji sygnału wskoczy bezpośrednio do podłączonego slotu.</translation>
+ <translation>Kiedy ta opcja jest zaznaczona "Wskocz do wnętrza" 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 "Wskocz do wnętrza" dla emisji sygnału wskoczy bezpośrednio do podłączonego slotu.</translation>
</message>
<message>
<location/>
<message>
<location/>
<source>Shift width:</source>
- <translation type="unfinished"></translation>
+ <translation>Szerokość przesunięcia:</translation>
</message>
<message>
<source>Smart tabulators:</source>
<message>
<location/>
<source>Backspace:</source>
- <translation type="unfinished"></translation>
+ <translation>Cofnięcie:</translation>
</message>
<message>
<source>VIM's "autoindent" option</source>
<message>
<location/>
<source>Timeout:</source>
- <translation type="unfinished"></translation>
+ <translation>Czas oczekiwania:</translation>
</message>
<message>
<location/>
<message>
<location/>
<source>Timeout:</source>
- <translation type="unfinished"></translation>
+ <translation>Czas oczekiwania:</translation>
</message>
<message>
<location/>
<message>
<location/>
<source>Log count:</source>
- <translation type="unfinished"></translation>
+ <translation>Licznik dziennika:</translation>
</message>
<message>
<location/>
<message>
<location line="+4"/>
<source>You can switch between Qt Creator's modes using <tt>Ctrl+number</tt>:<ul><li>1 - Welcome</li><li>2 - Edit</li><li>3 - Debug</li><li>4 - Projects</li><li>5 - Help</li></ul></source>
- <translation>Możesz przełączać tryby Qt Creator'a używając <tt>Ctrl+liczba</tt>:<ul><li>1 - Powitanie</li><li>2 - Edycja</li><li>3 - Debug</li><li>4 - Projekty</li><li>5 - Pomoc</li></ul></translation>
+ <translation>Możesz przełączać tryby Qt Creator'a używając <tt>Ctrl+liczba</tt>:<ul><li>1 - Powitanie</li><li>2 - Edycja</li><li>3 - Debugowanie</li><li>4 - Projekty</li><li>5 - Pomoc</li></ul></translation>
</message>
<message>
<location line="+21"/>
<message>
<location/>
<source>Timeout:</source>
- <translation type="unfinished"></translation>
+ <translation>Czas oczekiwania:</translation>
</message>
<message>
<location/>
<message>
<location/>
<source>&Visualize whitespace</source>
- <translation>&Pokazuj białe znaki</translation>
+ <translation>Pokazuj &białe znaki</translation>
</message>
<message>
<source>Animate matching parentheses</source>
<message>
<location/>
<source>Auto-fold first &comment</source>
- <translation type="unfinished"></translation>
+ <translation>Zwijaj automatycznie początkowy &komentarz</translation>
</message>
<message>
<location/>
<source>Center &cursor on scroll</source>
- <translation type="unfinished"></translation>
+ <translation>Wyśrodkowuj przy &przewijaniu</translation>
</message>
</context>
<context>
<message>
<location filename="../../../src/plugins/welcome/communitywelcomepagewidget.cpp" line="+46"/>
<source><b>Forum Nokia</b><br /><font color='gray'>Mobile Application Support</font></source>
- <translation type="unfinished"></translation>
+ <translation><b>Forum Nokii</b><br /><font color='gray'>Wsparcie techniczne dla mobilnych aplikacji</font></translation>
</message>
<message>
<location line="+3"/>
<source><b>Qt LGPL Support</b><br /><font color='gray'>Buy professional Qt support</font></source>
- <translation type="unfinished"></translation>
+ <translation><b>Wsparcie techniczne Qt LGPL</b><br /><font color='gray'>Kup profesjonalne wsparcie techniczne Qt</font></translation>
</message>
<message>
<location line="+3"/>
<source><b>Qt Centre</b><br /><font color='gray'>Community based Qt support</font></source>
- <translation type="unfinished"></translation>
+ <translation><b>Qt Centre</b><br /><font color='gray'>Społeczne wsparcie techniczne Qt</font></translation>
</message>
<message>
<location line="+6"/>
<source><b>Qt Home</b><br /><font color='gray'>Qt by Nokia on the web</font></source>
- <translation type="unfinished"></translation>
+ <translation><b>Strona domowa Qt</b><br /><font color='gray'>Strona domowa Qt / Nokia</font></translation>
</message>
<message>
<location line="+3"/>
<source><b>Qt Git Hosting</b><br /><font color='gray'>Participate in Qt development</font></source>
- <translation type="unfinished"></translation>
+ <translation><b>Składnica Git dla Qt</b><br /><font color='gray'>Weź udział w rozwoju Qt</font></translation>
</message>
<message>
<location line="+3"/>
<source><b>Qt Apps</b><br /><font color='gray'>Find free Qt-based apps</font></source>
- <translation type="unfinished"></translation>
+ <translation><b>Aplikacje Qt</b><br /><font color='gray'>Znajdź darmowe aplikacje bazujące na Qt</font></translation>
</message>
<message>
<location line="+34"/>
<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ż "wczytana"</translation>
+ <translation>Nie udało się rozwiązać zależności ponieważ stan wtyczki jest inny niż "wczytana"</translation>
</message>
<message>
<location line="+23"/>
<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ż "rozwiązana"</translation>
+ <translation>Błąd ładowania biblioteki, stan wtyczki jest inny niż "rozwiązana"</translation>
</message>
<message>
<location line="+36"/>
<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ż "załadowana"</translation>
+ <translation>Błąd inicjalizacji wtyczki, jej stan jest inny niż "załadowana"</translation>
</message>
<message>
<location line="+5"/>
<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"/>
<message>
<location line="+2"/>
<source><html>The installed version of the <i>Debugging Tools for Windows</i> (%1) is rather old. Upgrading to version %2 is recommended for the proper display of Qt's data types.</html></source>
- <translation type="unfinished"></translation>
+ <translation><html>Zainstalowana wersja <i>narzędzi debugowych dla Windows</i> (%1) jest przestarzała. Zalecane jest uaktualnienie do wersji %2 w celu poprawnego wyświetlania typów danych Qt.</html></translation>
</message>
<message>
<location line="+4"/>
<message>
<location line="+37"/>
<source>Stepping %1</source>
- <translation type="unfinished"></translation>
+ <translation>Kroczenie %1</translation>
</message>
<message>
<source>Running to 0x%1...</source>
<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"/>
<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"/>
<message>
<location filename="../../../src/plugins/debugger/debuggerplugin.cpp" line="+216"/>
<source>Debug</source>
- <translation>Debug</translation>
+ <translation>Debugowanie</translation>
</message>
</context>
<context>
<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"/>
<message>
<location filename="../../../src/plugins/debugger/gdb/gdbengine.cpp" line="+290"/>
<source>The Gdb process failed to start. Either the invoked program '%1' 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 "%1" albo brak wymaganych uprawnień aby go uruchomić.</translation>
</message>
<message>
<location line="+5"/>
<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"/>
<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"/>
<message>
<location line="+777"/>
<source>crashed</source>
- <translation type="unfinished"></translation>
+ <translation>zakończył pracę błędem</translation>
</message>
<message>
<location line="+0"/>
<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"/>
<message>
<location line="+53"/>
<source>There is no gdb binary available for '%1'</source>
- <translation type="unfinished"></translation>
+ <translation>Brak dostępnego pliku binarnego gdb dla "%1"</translation>
</message>
<message>
<location line="+57"/>
<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"/>
<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 '%1' 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 "%1" 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"/>
<message>
<location line="+68"/>
<source>Adapter crashed</source>
- <translation type="unfinished"></translation>
+ <translation>Adapter zakończył pracę błędem</translation>
</message>
</context>
<context>
<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"/>
<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"/>
<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"/>
<message>
<location line="+43"/>
<source>Invalid non-negative number</source>
- <translation type="unfinished"></translation>
+ <translation>Niepoprawna liczba naturalna</translation>
</message>
<message>
<location line="+58"/>
<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"/>
<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"/>
<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"/>
<location filename="../../../src/plugins/designer/codemodelhelpers.cpp" line="+129"/>
<source>The generated header of the form '%1' could be found.
Rebuilding the project might help.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można odnaleźć wygenerowanego pliku nagłówkowego dla formularza "%1".
+Spróbuj ponownie przebudować projekt.</translation>
</message>
<message>
<location line="+6"/>
<source>The generated header '%1' 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 "%1" w modelu kodu.
+Spróbuj ponownie przebudować projekt.</translation>
</message>
</context>
<context>
<source>No documents matching '%1' could be found.
Rebuilding the project might help.</source>
<translation>Brak dokumentów załączających "%1".
-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"/>
<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"/>
<message>
<location line="+32"/>
<source>Git SVN Log</source>
- <translation type="unfinished"></translation>
+ <translation>Dziennik git SVN</translation>
</message>
<message>
<location line="+14"/>
'%1' failed (exit code %2).
</source>
<translation>
-'%1' zakończone niepowodzeniem (kod wyjściowy %2).
+'%1' zakończone błędem (kod wyjściowy %2).
</translation>
</message>
<message>
<message>
<location line="+45"/>
<source>Request failed for '%1': %2</source>
- <translation>Żądanie zostało niepomyślnie zakończone dla "%1": %2</translation>
+ <translation>Żądanie zostało błędnie zakończone dla "%1": %2</translation>
</message>
<message>
<location line="+80"/>
<message>
<location line="-51"/>
<source>Clean Project...</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść projekt...</translation>
</message>
<message>
<location line="+0"/>
<source>Clean Project "%1"...</source>
- <translation type="unfinished"></translation>
+ <translation>Wyczyść projekt "%1"...</translation>
</message>
<message>
<location line="+7"/>
<message>
<location line="+3"/>
<source>Pull</source>
- <translation type="unfinished"></translation>
+ <translation>Pociągnij</translation>
</message>
<message>
<location line="+4"/>
<message>
<location line="+3"/>
<source>Push</source>
- <translation type="unfinished"></translation>
+ <translation>Popchnij</translation>
</message>
<message>
<location line="+6"/>
<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"/>
<message>
<location line="+3"/>
<source>&Rewrap Paragraph</source>
- <translation type="unfinished"></translation>
+ <translation>Zawiń &ponownie paragraf</translation>
</message>
<message>
<location line="+2"/>
<message>
<location line="+5"/>
<source>&Visualize Whitespace</source>
- <translation>&Pokazuj białe znaki</translation>
+ <translation>Pokazuj &białe znaki</translation>
</message>
<message>
<location line="+4"/>
<message>
<location line="+10"/>
<source>Copying failed</source>
- <translation>Kopiowanie zakończone niepowodzeniem</translation>
+ <translation>Błąd kopiowania</translation>
</message>
<message>
<location line="+1"/>
<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"/>
<message>
<location/>
<source>Log count:</source>
- <translation type="unfinished"></translation>
+ <translation>Licznik dziennika:</translation>
</message>
<message>
<location/>
<message>
<location/>
<source>Timeout:</source>
- <translation type="unfinished"></translation>
+ <translation>Czas oczekiwania:</translation>
</message>
<message>
<location/>
<message>
<location/>
<source>Connection Timeout:</source>
- <translation type="unfinished"></translation>
+ <translation>Czas oczekiwania na połączenie:</translation>
</message>
<message>
<location/>
<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"/>
<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"/>
<message>
<location line="+9"/>
<source>expected anchor line</source>
- <translation type="unfinished"></translation>
+ <translation>oczekiwano linii kotwicznej</translation>
</message>
<message>
<location line="+93"/>
<message>
<location filename="../../../src/libs/utils/unixutils.cpp" line="+60"/>
<source><table border=1 cellspacing=0 cellpadding=3><tr><th>Variable</th><th>Expands to</th></tr><tr><td>%d</td><td>directory of current file</td></tr><tr><td>%f</td><td>file name (with full path)</td></tr><tr><td>%n</td><td>file name (without path)</td></tr><tr><td>%%</td><td>%</td></tr></table></source>
- <translation type="unfinished"></translation>
+ <translation><table border=1 cellspacing=0 cellpadding=3><tr><th>Zmienna</th><th>Rozwinięcie</th></tr><tr><td>%d</td><td>katalog bieżącego pliku</td></tr><tr><td>%f</td><td>nazwa pliku (z pełną ścieżką)</td></tr><tr><td>%n</td><td>nazwa pliku (bez ścieżki)</td></tr><tr><td>%%</td><td>%</td></tr></table></translation>
</message>
</context>
<context>
<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"/>
<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"/>
<message>
<location line="+28"/>
<source>Incoming Source</source>
- <translation type="unfinished"></translation>
+ <translation>Nadchodzące źródło</translation>
</message>
<message>
<location line="+18"/>
<message>
<location line="+19"/>
<source>"%1" crashed.</source>
- <translation>Wystąpił błąd w "%1" - proces zakończony.</translation>
+ <translation>"%1" zakończył pracę błędem.</translation>
</message>
<message>
<location line="+5"/>
<message>
<location line="+1"/>
<source>Example Object Class-name:</source>
- <translation type="unfinished"></translation>
+ <translation>Przykładowa nazwa klasy obiektu:</translation>
</message>
</context>
<context>
<message>
<location line="+2"/>
<source>Open Terminal here...</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz tutaj terminal...</translation>
</message>
<message>
<location line="+9"/>
<message>
<location line="+1"/>
<source>Show uninspectable items</source>
- <translation type="unfinished">Pokazuj elementy</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>[Inspector] disconnected.
</source>
- <translation type="unfinished"></translation>
+ <translation>[Inspektor] rozłączony.
+
+</translation>
</message>
<message>
<location line="+14"/>
<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"/>
<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 '%1'.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie znaleziono żadnych konfiguracji uruchamiania dla projektu "%1".</translation>
</message>
<message>
<location line="+2"/>
<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"/>
<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 -> About Plugins...</source>
- <translation type="unfinished"></translation>
+ <translation>Qt Creator -> Informacje o wtyczkach...</translation>
</message>
<message>
<location line="+2"/>
<source>Help -> About Plugins...</source>
- <translation type="unfinished"></translation>
+ <translation>Pomoc -> 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"/>
<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>
<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>
<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"/>
<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"/>
<message>
<location line="+323"/>
<source>'%1' does not contain a valid Maemo simulator image.</source>
- <translation type="unfinished"></translation>
+ <translation>"%1" 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>
<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>
<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"/>
<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"/>
<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->Language menu.</source>
- <translation type="unfinished"></translation>
+ <translation>Aby zmienić język podczas debugowania przejdź do menu: Debugowanie->Język.</translation>
</message>
</context>
<context>
<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"/>
<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>
<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"/>
<message>
<location line="+4"/>
<source>Smooth</source>
- <translation type="unfinished"></translation>
+ <translation>Gładki</translation>
</message>
<message>
<location line="+12"/>
<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"/>
<message>
<location line="+4"/>
<source>Smooth</source>
- <translation type="unfinished"></translation>
+ <translation>Gładki</translation>
</message>
<message>
<location line="-8"/>
<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"/>
<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>
<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"/>
<message>
<location line="+11"/>
<source>Please configure a path.</source>
- <translation type="unfinished"></translation>
+ <translation>Skonfiguruj ścieżkę.</translation>
</message>
<message>
<location line="+59"/>
<message>
<location line="+17"/>
<source>Pasted: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Wklejono: %1</translation>
</message>
</context>
<context>
<message>
<location line="+3"/>
<source>Gdb binary</source>
- <translation type="unfinished"></translation>
+ <translation>Plik binarny Gdb</translation>
</message>
<message>
<location line="+2"/>
<message>
<location line="+30"/>
<source>Unable to start pdb '%1': %2</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można rozpocząć pdb "%1": %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"/>
<message>
<location line="+10"/>
<source>The Pdb process failed to start. Either the invoked program '%1' 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 "%1" albo brak wymaganych uprawnień aby go uruchomić.</translation>
</message>
<message>
<location line="+5"/>
<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>
<message>
<location line="+40"/>
<source>Packaging Error: Cannot open file '%1'.</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd pakowania: Nie można otworzyć pliku "%1".</translation>
</message>
<message>
<location line="+10"/>
<source>Packaging Error: Cannot write file '%1'.</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd pakowania: Nie można zapisać pliku "%1".</translation>
</message>
<message>
<location line="+13"/>
<source>Packaging Error: Could not replace file '%1'.</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd pakowania: Nie można zastąpić pliku "%1".</translation>
</message>
<message>
<location line="+6"/>
<source>Packaging Error: Could not copy '%1' to '%2'.</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd pakowania: Nie można skopiować pliku "%1" do "%2".</translation>
</message>
<message>
<location line="+15"/>
<message>
<location line="+8"/>
<source>Packaging failed.</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd pakowania.</translation>
</message>
<message>
<location line="+1"/>
<message>
<location line="+4"/>
<source>Packaging Error: Command '%1' failed.</source>
- <translation type="unfinished"></translation>
+ <translation>Błąd pakowania: Komenda "%1" zakończona błędem.</translation>
</message>
<message>
<location line="+3"/>
<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"/>
<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>
<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>
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===========
/*!
PluginManagerPrivate::PluginManagerPrivate(PluginManager *pluginManager) :
extension(QLatin1String("xml")),
m_profileElapsedMS(0),
+ m_profilingVerbosity(0),
q(pluginManager)
{
}
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);
m_profileTimer->start();
m_profileElapsedMS = 0;
qDebug("Profiling started");
+ } else {
+ m_profilingVerbosity++;
}
}
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);
}
}
}
bool runningTests() const;
QString testDataDirectory() const;
+ void profilingReport(const char *what, const PluginSpec *spec = 0);
+
signals:
void objectAdded(QObject *obj);
void aboutToRemoveObject(QObject *obj);
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;
return _functionScopes.value(node);
}
+bool Bind::isGroupedPropertyBinding(AST::Node *node) const
+{
+ return _groupedPropertyBindings.contains(node);
+}
+
ObjectValue *Bind::switchObjectValue(ObjectValue *newObjectValue)
{
ObjectValue *oldObjectValue = _currentObjectValue;
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);
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;
}
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('.'));
Interpreter::ObjectValue *_rootObjectValue;
QHash<AST::Node *, Interpreter::ObjectValue *> _qmlObjects;
+ QSet<AST::Node *> _groupedPropertyBindings;
QHash<AST::FunctionDeclaration *, Interpreter::ObjectValue *> _functionScopes;
QStringList _includedScripts;
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)
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);
{
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.
}
}
}
+
+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;
+}
namespace Interpreter {
class Context;
+ class Value;
}
class QMLJS_EXPORT ScopeBuilder
private:
void setQmlScopeObject(AST::Node *node);
+ const Interpreter::Value *scopeObjectLookup(AST::UiQualifiedId *id);
Document::Ptr _doc;
Interpreter::Context *_context;
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
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
#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);
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));
#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)
{
}
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()
<< ' ' << 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
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;
}
}
#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
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;
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;
};
#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>
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)
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.
*/
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 ||
//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.
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,
}
}
- 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(')'));
} 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);
}
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);
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;
#include <coreplugin/progressmanager/progressmanager.h>
#include <coreplugin/vcsmanager.h>
#include <coreplugin/filemanager.h>
+#include <texteditor/texteditorsettings.h>
#include <cppeditor/cppeditorconstants.h>
#include <QtCore/QtConcurrentRun>
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());
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
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;
}
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()
namespace CppTools {
namespace Internal {
-class CppCodeCompletion;
class CppModelManager;
struct CppFileSettings;
int m_context;
CppModelManager *m_modelManager;
- CppCodeCompletion *m_completion;
QSharedPointer<CppFileSettings> m_fileSettings;
static CppToolsPlugin *m_instance;
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
// 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;
}
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
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;
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
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
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
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();
void GradientLine::setupGradient()
{
ModelNode modelNode = m_itemNode.modelNode();
+ if (!modelNode.isValid())
+ return;
m_colorList.clear();
m_stops.clear();
if (horizontalCentered())
m_horizontalTarget = m_fxItemNode.anchors().instanceAnchor(AnchorLine::HorizontalCenter).qmlItemNode();
-
+ emit itemNodeChanged();
emit parentChanged();
emit topAnchorChanged();
emit bottomAnchorChanged();
: TextEditor::ICompletionCollector(parent),
m_modelManager(modelManager),
m_editor(0),
- m_startPosition(0),
- m_caseSensitivity(Qt::CaseSensitive)
+ m_startPosition(0)
{
Q_ASSERT(modelManager);
}
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; }
// 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;
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)
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();
TextEditor::ITextEditable *m_editor;
int m_startPosition;
QList<TextEditor::CompletionItem> m_completions;
- Qt::CaseSensitivity m_caseSensitivity;
QList<TextEditor::CompletionItem> m_snippets;
QDateTime m_snippetFileLastModified;
m_modelManager(0),
m_wizard(0),
m_editor(0),
- m_actionHandler(0),
- m_completion(0)
+ m_actionHandler(0)
{
m_instance = this;
}
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();
namespace Internal {
class QmlJSEditorFactory;
-class CodeCompletion;
class QmlJSTextEditor;
class QmlJSPreviewRunner;
QmlFileWizard *m_wizard;
QmlJSEditorFactory *m_editor;
TextEditor::TextEditorActionHandler *m_actionHandler;
- CodeCompletion *m_completion;
};
} // namespace Internal
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));
// 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;
}
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")))
{
}
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")))
{
}
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)
{
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")))
{
}
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)
{
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")))
{
}
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));
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
#include "basetexteditor_p.h"
#include "behaviorsettings.h"
#include "codecselector.h"
+#include "completionsettings.h"
#include "completionsupport.h"
#include "tabsettings.h"
#include "texteditorconstants.h"
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);
d->m_lastScrollPos = -1;
setCursorWidth(2);
- d->m_allowSkippingOfBlockEnd = false;
-
// from RESEARCH
setLayoutDirection(Qt::LeftToRight);
// parentheses matcher
- d->m_parenthesesMatchingEnabled = false;
d->m_formatRange = true;
d->m_matchFormat.setForeground(Qt::red);
d->m_rangeFormat.setBackground(QColor(0xb4, 0xee, 0xb4));
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;
:
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),
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)) {
{
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);
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))
d->m_document->setStorageSettings(storageSettings);
}
+void BaseTextEditor::setCompletionSettings(const TextEditor::CompletionSettings &completionSettings)
+{
+ setAutoParenthesesEnabled(completionSettings.m_autoInsertBrackets);
+}
+
void BaseTextEditor::collapse()
{
QTextDocument *doc = document();
class BaseTextEditorEditable;
class FontSettings;
struct BehaviorSettings;
+struct CompletionSettings;
struct DisplaySettings;
struct StorageSettings;
struct TabSettings;
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;
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);
int m_cursorBlockNumber;
bool m_inKeyPressEvent;
-
};
} // namespace Internal
--- /dev/null
+/**************************************************************************
+**
+** 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
+ ;
+}
--- /dev/null
+/**************************************************************************
+**
+** 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
**************************************************************************/
#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)
{
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;
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;
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:
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)
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;
}
namespace TextEditor {
+namespace Internal {
+class ICompletionCollectorPrivate;
+}
+
class ICompletionCollector;
class ITextEditable;
+struct CompletionSettings;
struct CompletionItem
{
{
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();
// 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
itexteditor.cpp \
texteditoroverlay.cpp \
texteditoroptionspage.cpp \
- basetextdocumentlayout.cpp
+ basetextdocumentlayout.cpp \
+ completionsettings.cpp
HEADERS += texteditorplugin.h \
textfilewizard.h \
colorschemeedit.h \
texteditoroverlay.h \
texteditoroptionspage.h \
- basetextdocumentlayout.h
+ basetextdocumentlayout.h \
+ completionsettings.h
FORMS += behaviorsettingspage.ui \
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"));
#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;
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;
}
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)));
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"
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
{
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 &);
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;
};
<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>
#include "helpmanager.h"
#include "openpagesmanager.h"
+#include <utils/filterlineedit.h>
+#include <utils/styledbar.h>
+
#include <QtGui/QMenu>
#include <QtGui/QIcon>
#include <QtGui/QStyle>
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
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,
QHelpContentModel *contentModel =
qobject_cast<QHelpContentModel*>(m_contentWidget->model());
connect(contentModel, SIGNAL(contentsCreated()), this, SLOT(expandTOC()));
+
+ m_contentWidget->setFrameStyle(QFrame::NoFrame);
}
ContentWindow::~ContentWindow()
#include "openpagesmanager.h"
#include "topicchooser.h"
+#include <utils/filterlineedit.h>
+#include <utils/styledbar.h>
+
#include <QtGui/QLayout>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QMenu>
#include <QtGui/QContextMenuEvent>
#include <QtGui/QListWidgetItem>
+#include <QtGui/QToolBar>
#include <QtHelp/QHelpEngine>
#include <QtHelp/QHelpIndexWidget>
, 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();
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);
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();
{
}
-void ResourceView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
-{
- Q_UNUSED(current)
- Q_UNUSED(previous)
- emit currentIndexChanged();
-}
-
bool ResourceView::isDirty() const
{
return m_qrcModel->dirty();
signals:
void removeItem();
void dirtyChanged(bool b);
- void currentIndexChanged();
void addFilesTriggered(const QString &prefix);
void addPrefixTriggered();
-protected slots:
- void currentChanged(const QModelIndex ¤t, const QModelIndex &previous);
-
private slots:
void onEditAlias();
void onEditPrefix();
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) {
/* 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);
}
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;
}
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
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;
}
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;
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);
int errorCode() const;
QString errorString() const;
+ ushort multiplex;
byte code;
byte token;
QByteArray data;